Messages
All Modbus TCP messages consist of an MBAP header (Modbus Application Protocol), a function code, and a data payload.
The MBAP header contains the following fields:
Field |
Length (Bytes) |
Description |
---|---|---|
Transaction ID |
2 |
Used for transaction pairing. The Modbus Client sets the value and the Server (the sensor) copies the value into its responses. |
Protocol ID |
2 |
Always set to 0. |
Length |
2 |
Byte count of the rest of the message, including the Unit identifier and data fields. |
Unit ID |
1 |
Used for intra-system routing purpose. The Modbus Client sets the value and the Server (the sensor) copies the value into its responses. |
Modbus Application Protocol Specification describes the standard function codes in detail.
Function Code |
Name |
Data Size (bits) |
Description |
---|---|---|---|
3 |
Read Holding Registers |
16 |
Read multiple data values from the sensor. |
4 |
Read Input Registers |
16 |
Read multiple data values from the sensor. |
6 |
Write Single Register |
16 |
Send a command or parameter to the sensor. |
16 |
Write Multiple Registers |
16 |
Send a command and parameters to the sensor. |
The data payload contains the registers that can be accessed by Modbus TCP messages. If a message accesses registers that are invalid, a reply with an exception is returned. Modbus Application Protocol Specification defines the exceptions and describes the data payload format for each function code.
The sensor data includes 16-bit, 32-bit, and 64-bit data. All data are sent in big endian format, with the 32-bit and 64-bit data spread out into two and four consecutive registers.
Register |
Name |
Bit Position |
---|---|---|
0 |
32-bit Word 1 |
31 .. 16 |
1 |
32-bit Word 0 |
15 .. 0 |
Register |
Name |
Bit Position |
---|---|---|
0 |
64-bit Word 3 |
63 .. 48 |
1 |
64-bit Word 2 |
47 .. 32 |
2 |
64-bit Word 1 |
31 .. 16 |
3 |
64-bit Word 0 |
15 .. 0 |