Modbus 40001 vs actual address offset 0

40001 is a traditional holding-register reference, while the first register in a conventional FC03 request has raw offset 0. Whether a PLC, HMI or client API expects the displayed 40001 or a zero-based offset depends on its documented convention.

Synthetic read-only example: A device map labels a status word 40001. A client API whose START_ADDRESS means transmitted offset may require 0. This is not a real PLC or VFD observation.

Check sequence: vendor map → data class → FC03 or FC04 → API address convention → approved read-only verification. Do not blindly subtract 1 or 40001 and do not change production controller/drive settings. Unit ID and physical I/O addresses are separate.

Synthetic address comparison
Data classHolding register16-bit word
Function code03Read holding registers
Traditional reference40001First holding register
Wire offset0Zero-based first register address
Next reference40002Normally offset 1

Modbus Organization · Siemens STEP 7 V21

Manufacturer-, model- and version-specific documentation governs.