User manual
32 NIC Setup and Testing
A datum should consist of one or multiple registers. The leftmost
byte contains the MSB and the rightmost byte contains the LSB.
Function Code Support
The OpenComms NIC implements the following Modbus
functions. However, integrators will use function code 0x03,
and 0x06 most often due to the type of data to be acquired.
0x01 Read Coil Status
0x02 Read Input Status
0x03 Read Holding Registers
0x04 Read Input Registers
0x06 Write Single Holding Register
0x0F Force Multiple Coils
0x10 Preset Multiple Holding Registers
Read/Write Holding Registers (0x03, 0x06, 0x10)
A holding register is a 16-bit message unit. In principle, a
message in a holding register is write / readable, but holding
registers can be used by read-only data as well. Holding
registers are mapped into 40001- 49999 logic address range.
Holding registers can be read by function code 0x03. A
maximum of 125 registers can be read by a single query.
Function code 0x06 requests the server to change the content of
a single holding register, and function code 0x10 requests server
to change the contents of multiple holding registers adjacent to
each other.
Read Input Registers (0x04)
The input register block contains read-only data accessible to the
user. A datum in the input register block occupies one or
multiple registers such as described in the previous section. The
input registers are mapped into 30000-39999 of the logic address
range.