A datasheet says 40001, the frame needs 0x0000, and the difference has cost more commissioning hours than any wiring fault. Enter a reference and get the table, the offset on the wire and the function code to read it.
Coils (read and write bits), discrete inputs (read-only bits), input registers (read-only words) and holding registers (read and write words). The leading digit of a conventional reference names the table: 0, 1, 3 and 4.
The rest of the reference counts from 1, but the address in the frame counts from 0. So 40001 is holding register offset 0, and 40100 is offset 99. This off-by-one is the most common Modbus mistake there is.
Five-digit references reach offset 9998. Six-digit references such as 400001 reach the full 65535 range. Some datasheets skip the convention entirely and list the raw offset in hex, which needs no conversion at all.
It is holding register 1 in the documentation and offset 0 on the wire. The frame to read it carries 00 00 as the start address.
0x03. Input registers are read with 0x04, coils with 0x01 and discrete inputs with 0x02. Holding registers are written with 0x06 (one) or 0x10 (several).
No. A hex address in a register map is normally the offset already, sent as is. Only conventional references like 40020 need the leading digit removed and one subtracted.
Genesis reads RS485 Modbus sensors, analogue transducers and 1-Wire probes on the same four ports and reports them over cellular. Tell us what you need to read.
Talk to us →