Supported Modbus features
Modbus data classes
|Coils||Digital bits that can be read and written to|
|Input status||Digital bits that can be read|
|Input registers||16-bit integers that can be read|
|Holding registers||16-bit integers that can be read and written to|
Modbus data formats
|Format||Type||# of Modbus registers used|
|IEEE float1||Floating point||2|
|Packed Boolean for inputs||Integer||1|
|Packed Boolean for coils||Integer||1|
|Unsigned 16-bit read/write||Integer||1|
|Signed 64 bit||Integer||4|
|1 Meters acting as Modbus masters support two versions of IEEE float with different word orders: high/low = Big Endian, low/high = Little Endian.|
16-bit data (one word) is transmitted with most-significant byte first and least-significant byte second.
32-bit data (two words) is transmitted with the most-significant word first and the least-significant word second.
Modbus function codes
|1||Read coil status||Master and slave|
|2||Read input status||Master and slave|
|3||Read holding registers||Master and slave|
|4||Read input registers||Master|
|5||Write to a coil||Master|
|6||Write to a holding register||Master and slave|
|15||Write to multiple coils||Master|
|16||Write to multiple holding registers||Master and slave|
|17||Report slave ID (serial only)||Master and slave|
|43 (sub code 14)||Read device identification||Master and slave|
|100||Read scattered holding registers||Master and slave|
A Modbus master command to unit ID 0 is broadcast (sent to) all Modbus slave devices. The only supported broadcast command is preset multiple registers.
For serial Modbus networks with only one slave device, the master can send commands using the single connection, one-to-one address of unit ID 248, regardless of the slave device’s actual unit ID.