Modbus Register Address Calculator
Convert between Modbus reference numbers (40001, 30001, 10001, 00001) and the zero based address that actually goes in the message, with the matching function codes.
- The first digit selects the table; the rest is the 1 based register number.
- Address in the message = register number − 1 = 107
Modbus Reference Numbers
Address in the message = reference − table offset − 1 (40108 → 107)
The leading digit is a documentation convention, not part of the message. The message carries only the function code and the zero based address.
Worked example
Holding register 40108 is read with function code 03 at address 107 (0x006B).
Frequently Asked Questions
What is the difference between 40001 and address 0?
They are the same register. 40001 is the 1 based reference used in documentation; the message carries address 0 with function code 03.
When are 6 digit references used?
When a device has more than 9999 registers in a table: 400001 to 465536.
Which function code reads input registers?
Function code 04 reads input registers (3xxxx); 03 reads holding registers (4xxxx).
Learn more on the blog
Modbus function codes explained
A practical, field focused guide on instrumentationblog.in that explains the theory behind this tool and how engineers apply it on real plants.
Read Full Article