CAS Newsletter December 2011
The purpose of this article is to provide a very brief description of the Web Services Description Language (or WSDL) as well as provide some resources of where to more detailed information and tutorials on the language.
WSDL is simply an XML file. However, this file has a specific structure that can provide useful information to a user. Specifically, WSDL is used to describe the functionality offered by a Web service.
Very briefly, the 5 parts are described below:
These elements together make up a WSDL definition.
For more information on WSDL and Web Services please refer to these websites:
For some tutorials about WSDL and Web Services please refer to these websites:
Sometimes Hypertemrinal tells you the port is in use even when you think it is not. Skype likes grabbing your com port especially COM1. When you try to use the port you can’t, even after you quit Skype. To remedy this situation, use Process Explorer to find and kill any process using the com port because Skype is not the only offender.
An alternative solution:
When sending a Modbus TCP frame, the frame is split into 6 different sections:
The very important bytes for this frame are the Unit Identifier, Function Code and Data bytes and some scanners will only use these bytes when polling for and displaying information via a Modbus TCP protocol.
However other scanners will use the transaction identifier as a means of validating response messages.
The actual use for the transaction identifier is for synchronization between messages of server and client. So if a scanner checks the transaction identifier from the query it sent against the transaction identifier from the response it receives and the values do not match, it identifies the response message as an invalid Modbus message and will timeout.
The Visual Test Shell (or VTS) is a free and open source software. This application is used for testing the BACnet functionality of various devices used in building automation systems.
The application can “generate BACnet compliant service messages, detect and decode BACnet compliant service messages, and run scripts to generate, receive and respond to BACnet compliant service messages.” (VTS3Guide.doc)
Download the application, version 3.5.5.
The VTS is a testing suite that is listed by the BACnet Testing Laboratories and BACnet.org as a useful open source tool for testing your own BACnet implementations.
For more information on the project or to find some help, visit their forums.
Go to the Visual Test Shell project website and press the Download button to begin downloading.
Check your downloads directory for the newly downloaded zip file.
Unzip the files and you will see the following file directory:
Docs – Contains all the guides and documents for using VTS
To start the application, simply double-click the VTS.exe icon.
Note: The PTP.dll must be included in the same directory as the VTS.exe. If it is not, the application will not work.
When you want to use the Visual Test Shell (VTS) for the first time, browse to the directory where you installed the application.
Double-click on the VTS.exe to start the application.
You will notice that two files will be generated:
After starting the application you will see this screen:
Here is a brief description of the Menus and their contents:
This is just a brief description of what you can do in VTS. Future articles will delve into these options more and provide instructions on how to accomplish various tasks.
To Configure a Device in the Visual Test Shell (VTS), follow these instructions.
1) Click on the “Edit” menu and Select the “Devices…” option
9) Right-Click the newly created property. In the Right-Click menu, Select the “New Value” option to add a new value to the selected property.
12) Repeat steps 4 through 6 and 11 to add more objects to a device.
13) Right-Click to bring up the Right-Click menu and Select the “New Device” option to create a new device (see Figure 4: Device Configuration Dialogue Right-Click Menu). Repeat steps 3 through 12 to configure another device.
After configuring some devices and objects, the next step is to configure the ports (or connections) to connect to these devices. For the Visual Test Shell (VTS) to be able to communicate with a device, a Port must refer to a configured Device object. Follow these instructions to configure ports in the VTS.
1) In the “Edit” menu, Select the “Ports…” menu option.
2) You will see the Ports Configuration Dialogue. Click on the “New” button to begin configuring a new port
3) Fill in the Fields for the Port
Here is a brief description of these fields.
There is also a drop down menu containing a list of configured devices. Select one of these devices to signify a connection on this port to that specific device.
Below is a set of tabs that detail the specific type of port. The next step will detail to different types of ports and some of their configuration fields.
4) Select a tab to choose the type of the port. Null contains no specific parameters.
These two are usually enough for the configuration of a simple BACnet IP port.
Once one or multiple ports have been configured the next step is to configure Names. The next article will detail the steps and describe some of the options and fields required for configuring Names.
After configuring the Devices and Ports, the next step is to configure the Names. In the Visual Test Shell (VTS) a name is a shortcut for an address. They are used not only in the source and destination address areas of ports, but also in the SNET and DNET portion of the BACnet network layer.
Note: A Name specifies the physical (MAC) address AND the local Port for a BACnet destination. AS such, make sure to set up a Port for the device (see the Visual Test Shell – Configuring Ports article) BEFORE setting up a Name.
Note: VTS will create an entry for itself named TD ( or Test Device). Remember, however, that you MUST create an entry for the device being tested, and it must be named IUT, which stands for Implementation Under Test.
Follow these steps and descriptions to configure a Name.
1) Click on the “Edit” menu and Select the “Names…” option
2) In the Names dialogue, Click the “New” Button to begin configuring a new Name.
3) Fill in the fields and options. The following is a brief description of the various options for configuring a Name.
Name – Give the entry a name
Port – Choose one of the configured Ports. If no Ports have been configured, the only option will be “any port”.
Network – If you selected Remote Broadcast or Station as the Address Type, then enter in the specific network in this field.
Address – If you selected Remote Station as the Address Type, then enter in the remote device’s address in this field.
4) Once all the fields have been filled, Click the “Okay” button to finalize the Name configuration. You can create and configure more Names by Clicking the “New” button, or delete unneeded Names by Clicking the “Delete” button.
Configuring names is the last part of the configuring the VTS. Once the configuration is complete, the next step is to test the configuration. The easiest way to test your configuration is to send packets. The next article will describe how to send packets manually.
After configuring the Devices (and Objects), Ports, and Names in the Visual Test Shell (VTS) the next step is to begin sending packets. Packets can be sent in two ways:
In this article you will find instructions on how to create and send a Who-Is message. Please note that there are many other messages that can be created and sent and that some experimentation is necessary to fully understand how to create these messages.
The following instructions are for creating and sending a Who-Is message.
1) Click on the “Send” menu.
Here is a brief description of the menu options:
2) Move the mouse over the “Remote Device Management” submenu and Click on the “Who-Is” message.
3) View the Send Packet dialogue. Note: the dialogue will contain different options depending on what was selected from the “Send” menu. Configure the Who-Is fields contained in the Who-Is tab
The following is a brief description of the dialogue window:
4) Click through the other tabs and fill in the information required there.
5) When you are satisfied with the packet you created, you can View the byte stream that will be sent, then Click the “Send” or “Send and Close” to send the packet. If you do not want to send the packet, simply Click the “Close” button.
6) You can see the packet information in detail in the “Detail View” or the “Hex View” frames. Note: You can click on various sections in the Detail View which will highlight the actual bytes in the Hex View.
Once the packet has been sent, you can keep track of the packets sent in the main view.
In order to test a BACnet MSTP device using the Visual Test Shell (VTS) there are a few items to take into consideration.
1) The VTS will not connect to an MSTP link using an RS-485 port on a PC.
2) The most common way to connect VTS with MSTP is to connect the VTS on IP and use a BACnet IP-to-MSTP router.
3) The MSTP tab in the VTS Ports dialogue uses a device called the NB-Link from American Auto-Matrix.
If you do not have a NB-Link from American Auto-Matrix you must use the IP-to-MSTP router option to test the MSTP device with VTS.