HollySys Modbus TCP
The EMQX Neuron HollySys Modbus TCP driver is for collecting HollySys PLC tags using the Modbus TCP protocol,
For the generic steps, see Create a Southbound Driver and Groups and Tags.
Modbus TCP is a version of the Modbus protocol based on Ethernet, which uses TCP/IP for communication. Unlike the traditional Modbus RTU protocol, Modbus TCP allows devices to be interconnected directly through Ethernet without any special hardware or communication interface. Compared with Modbus RTU, this gives it a higher communication speed and a wider range of applications.
Add Driver
On Data Collection → South Devices, click Add Device.
- Name: The name of this device node.
- Driver: Select the HollySys Modbus TCP driver.
Connection Parameters
Click the driver card to open the Device Configuration page and fill in:
| Parameter | Description |
|---|---|
| Maximum Retry Times | The maximum number of retries after a failed attempt to send a read command. |
| Retry Interval | Resend reading instruction interval(ms) after a failed attempt to send a read command. |
| Endianness | Byte order of tags with 32 bits, ABCD corresponds to 1234. |
| Send Interval | The waiting time between sending each read/write command. Some serial devices may discard certain commands if they receive consecutive commands in a short period of time. |
| IP Address | The IP address of the device when using TCP connection with EMQX Neuron as the client. |
| Port | The port number of the device when using TCP connection with EMQX Neuron as the client. |
| Connection Timeout | The time the system waits for a device to respond to a command. |
| Check Header | Choose whether to verify the message header. After selecting True, when encountering packet header errors, the neuron and device will reconnect. |
Tag Configuration
The data types and address formats supported by this driver are listed below.
Data types
- BIT
- BOOL
- INT16
- UINT16
- WORD
Address format
SLAVE!ADDRESS[#ENDIAN]
SLAVE
Required, Slave is the slave address or site number.
ADDRESS
HollySys PLC maps data units onto the Modbus address space for access through the Modbus TCP protocol. The EMQX Neuron HollySys Modbus TCP driver frees users from details of the address mapping, and designates the PLC data unit name as the ADDRESS.
| Area | Data unit example | Attribute | Register Size | Data Type |
|---|---|---|---|---|
| IX (Input) | IX0.0 ... IX0.7, IX1.0 ... IX1.7 ... | Read | 1Bit | BOOL/BIT |
| IW (Input Registers) | IW0, IW1, ... | Read | 16Bit,2Byte | INT16/UINT16 |
| QX (Coils) | QX0.0 ... QX0.7, QX1.0 ... QX1.7 ... | Read/Write | 1Bit | BOOL/BIT |
| QW (Hold Registers) | QW0, QW1, ... | Read/Write | 16Bit,2Byte | INT16/UINT16 |
| MX (Coils) | MX0.0 ... MX0.7, MX1.0 ... MX1.7 ... | Read/Write | 1Bit | BOOL/BIT |
| MW (Hold Registers) | MW0, MW1, ... | Read/Write | 16Bit,2Byte | INT16/UINT16 |
#ENDIAN
Optional, byte order, applicable to data types int16/uint16, see the table below for details.
| Symbol | Byte Order | Supported Data Types | Note |
|---|---|---|---|
| #B | 2,1 | int16/uint16 | |
| #L | 1,2 | int16/uint16 | Default byte order if not specified |
TIP
The byte order of a tag has a higher priority than the byte order configuration of a node. That is to say, once the byte order is configured for a tag, it follows the configuration of that tag and ignores the node configuration. The byte order can be illustrated using the notation ABCD, which corresponds directly to the sequence 1234. As an example, the ABCD designation represents the standard or default Endianness 1234. (#LL).
Example Addresses
| Address | Data Type | Description |
|---|---|---|
| 1!IX1.0 | bit | Data unit IX1.0 on slave 1, read only. |
| 1!QW0 | int16 | Data unit QW0 on slave 1, support read/write. |
| 2!MW1 | int16 | Data unit MW1 on slave 1, support read/write. |