Pick a device table, translate the human label into the address actually carried in the Modbus PDU, and see whether the requested function code is legal for that table. The default example reads two input registers from labels 30002 and 30003.
Selected tableInput registers 3x
AccessRead-only 16-bit
Doc label30002
PDU address0x0001
TrySelect Input registers 3x, documentation label 30002, FC04, and Quantity 2 before Step; then try FC06.
ObserveOn-wire PDU address becomes 1 after subtracting the table base and 1-based label; FC06 produces an access exception on the read-only table.
ExplainThe 3x prefix documents a register table rather than traveling on wire; translation yields a zero-based 16-bit address, and table access rules constrain legal function codes.
Technical boundariesThe map omits vendor-specific base conventions, multiword byte/word order, scaling, signed types, sparse maps, atomic reads, transport framing, device busy states, and access security.
When FC01 or FC02 returns multiple bits, the first addressed bit is packed into the least significant bit of the first data byte. Extra bits in the final byte are padding.
Register values
Register data is carried as 16-bit quantities in big-endian byte order. Device manuals define scaling, units, and signed versus unsigned interpretation.
Real devices vary
A device may implement only a subset of addresses and functions. Valid table family does not guarantee that every address in that range exists.