Modbus Register Map Workbench

Translate Modbus register labels into PDU addresses and choose valid read/write functions.

animation
modbus
industrial
protocols
Learner-ready Modbus register map workbench with four table types, Modicon-to-PDU address translation, read/write access checks, request/response PDU bytes, bit packing, scenario presets, quick reference, source links, and desktop/mobile visual verification.
Register map 0x / 1x / 3x / 4x PDU address Access rules

Modbus Register Map Workbench

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 table Input registers 3x
Access Read-only 16-bit
Doc label 30002
PDU address 0x0001
1. Pick table 2. Translate 3. Request 4. Lookup 5. Response 6. Diagnose

Configure lookup

00001 30002
2 registers 25.1 C, 53.6 %RH
Table family 3x input registers

Read-only 16-bit measurement values.

Documentation label 30002

Human-facing labels are one-based and include the table family.

On-wire PDU address 0x0001

Modbus request PDUs carry the zero-based address, not the 3x/4x prefix.

Function check FC04 is valid

FC04 reads input registers only.

Client request

Unit 17 reads two input registers beginning at PDU address 1.

Server lookup

The server maps address 1 to label 30002 in the input register table.

Response

The response returns a byte count followed by two big-endian register values.

Coils 0x

Read/write output bits. Examples: relays, lamps, motor run commands.

Discrete inputs 1x

Read-only input bits. Examples: limit switches, door contacts, alarms.

Input registers 3x

Read-only 16-bit measurements. Examples: temperature, humidity, pressure.

Holding registers 4x

Read/write 16-bit values. Examples: setpoints, modes, configuration.

Request PDU

Read request: function, starting address, and quantity.

Response PDU

Normal response: function, byte count, and register data.

Valid request: FC04 reads input registers

The PDU address 0x0001 selects documentation label 30002. The response contains two 16-bit values: 251 and 536.

Quick reference

Four data tables

  • Coils: read/write bits, typically output commands.
  • Discrete inputs: read-only bits, typically physical input states.
  • Input registers: read-only 16-bit measurements.
  • Holding registers: read/write 16-bit settings and state.

Address translation

  • Documentation labels are usually one-based: 30001, 40001, and so on.
  • The PDU uses zero-based addresses: label 40001 becomes address 0x0000.
  • The 0x/1x/3x/4x prefix is a table hint, not bytes sent in the PDU.

Function match

  • FC01/FC02 read bit tables.
  • FC03/FC04 read 16-bit register tables.
  • FC05/FC15 write coils; FC06/FC16 write holding registers.

Technical accuracy notes

Bit packing

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.