Skip to main content
Skip table of contents

Modbus

DASYLab began offering support for Modbus TCP in version 11 service pack 1. The T4, T7, and UE9 natively supports this protocol when connected over Ethernet.  With LJSocket, any program capable of Modbus TCP can communicate with UD family devices (U3, U6 and UE9) over USB. Since DASYLab provides built in support for analog and digital I/O through this convenient protocol, we suggest that our clients utilize those native modules if possible. However, please note that Modbus does not expose some of our devices' more advanced functionality, particularly stream mode.

T4 and T7 over Ethernet: Modbus over Ethernet will work with all firmware versions.

UE9 over Ethernet: Modbus over Ethernet will require version 1.41 of the communications firmware and version 2.04 of the control firmware. However, we suggest that you use more recent releases if possible. We conducted our testing with version 1.50 and 2.18 of the communication and control firmware respectively. As of this writing, both of these releases are in beta and, thus, we provide these versions on our beta firmware page. More information on firmware upgrades can be found on our firmware page.

Any UD Family Device over USB with LJSocket: Please refer to our LJSocket documentation.

Setting Up DASYLab: DASYLab introduced support for Modbus over TCP in version 11 service pack 1 before improving upon it in service pack 2. The modules can be found in the "Modules" tab under the "Inputs/Outputs" node. As described in the "configuration" section below, you should Analog Input and Analog Output modules for all operations, even digital I/O. After placing a module, double click on it to change its properties.

  • The device's IP address should be entered using the common "ip address:port" format. If using UE9 over Ethernet, the device IP address can be found using our LJControlPanel application and the port will be 502. If using the T4/T7 over Ethernet, the device IP address can be found using our Kipling application and the port will be 502. LJSocket users should consult the documentation but the port will be 502n. 
  • DASYLab's address field should be set to 0 (0x0) and its "Register" field will correspond with the "addresses" listed on the T4/T7 Modbus Map or  U3, U6 and UE9 Modbus map. The drop down menu before the "Register" text box should be left as 30 but its value will not affect the register that is actually read. For example, a value of "0" in the text box will operate on register 0. 
  • The check boxes titled "Register starts at 0" and "Big Endian" should be selected. 
  • The sampling rate can be set after clicking on the "Interface" button. 

A screen shot demonstrating this configuration has been attached below for your convenience. 

Configuration: The Analog Input and Analog Output modules are analogous to read and write register respectively. The "Data Type" drop down controls how many registers are read at once. For example, use "Float" for reading AIN and "Word" for controlling FIO lines.

Error Handling: In our testing we found that when using LJSocket, the first attempt at reading from a device not attached to a local computer may timeout. If you have this issue, we suggest you change the "Error Handling" option under the "Interface" button to the "Ignore Error" option. It may still be beneficial, however, to save the error in a global variable to deal with it during the experiment in the event that it is more serious.

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.