Modbus Address Mapper
Convert coils and registers between Modbus reference numbers, zero-based offsets, and one-based element indexes.
Mapping Inputs
Mapped Address
⚠️ Engineering Caution:
This tool is intended for screening and pre-check workflows. Results are usually directionally useful, but they
can still shift with equipment selection, environmental conditions, naming conventions, revision status, or
interpretation rules. Confirm any value that affects ordering, substitution, compliance, or installation before
acting on it.
Frequently Asked Questions
Does 40001 equal offset 0?
In common Modbus reference conventions, yes. Holding register 40001 is usually treated as the first register and corresponds to zero-based offset 0.
Can I use this for coils too?
Yes. The mapper supports coils, discrete inputs, input registers, and holding registers using practical reference-base assumptions.
What This Calculator Is For
Modbus addressing becomes confusing fast because device manuals, HMIs, PLC drivers, and SCADA packages do not always describe the same address in the same way. One system may show a holding register as 40001, while another expects an offset of 0, and another uses a one-based word index.
This tool helps convert those common Modbus representations into a cleaner practical reference.
Typical questions include:
- Is holding register
40001the same as offset0? - What offset matches input register
30017? - If a driver wants zero-based addressing, what should I enter for
coil 00025? - How do I sanity-check whether a manual is using a reference number or an offset?
What It Calculates
The tool maps common Modbus object groups:
- coils (
0xxxx/00001style) - discrete inputs (
1xxxx/10001style) - input registers (
3xxxx/30001style) - holding registers (
4xxxx/40001style)
It converts between:
- reference-style address number
- zero-based offset
- one-based element number inside the selected object group
Core Relationships
For a selected Modbus object group:
Zero-Based Offset = Reference Number - Reference BaseOne-Based Element = Zero-Based Offset + 1Reference Number = Reference Base + Zero-Based Offset
Practical base assumptions used here are:
- coils →
00001 - discrete inputs →
10001 - input registers →
30001 - holding registers →
40001
Practical Use Cases
This tool is useful for:
- matching PLC driver configuration to vendor manuals
- troubleshooting SCADA/HMI Modbus tag mapping
- converting third-party equipment tables into PLC import values
- checking whether a software package expects zero-based or one-based addressing
- reducing commissioning errors caused by off-by-one Modbus mapping mistakes
Important Limitations
This tool handles the practical address-number mapping problem, but real integrations can still differ because of:
- vendor documentation conventions
- byte order / word order differences
- driver-specific zero-based options
- function-code limitations
- packed-bit representations within words
Always confirm object type and driver expectations before commissioning live equipment.
FAQ
Is 40001 the same as offset 0?
In many common Modbus references, yes. 40001 is typically the first holding register and often corresponds to zero-based offset 0.
Why do Modbus addresses cause so many mistakes?
Because some tools show full reference numbers like 40017, while others want only the offset like 16. Both may refer to the same location.
Does this tool handle byte swapping?
No. This tool focuses on address mapping only. Byte order and 32-bit value assembly must still be handled separately.