Networks

Modbus Address Translator

Translate zero-based offsets, one-based indexes and conventional 5- or 6-digit Modbus references without off-by-one errors.

YOUR INPUTS

LIVE RESULT

Wire offset0
Address bytes (hex)
00 00
Read function
03
5-digit reference
40001
6-digit reference
400001

Calculated

FOLLOW THE SIGNAL
Modbus Address TranslatorDEVICE MANUAL40001ON THE WIRE0x0000FC 03 / 0
THE RELATIONSHIP40001 → 0 → 0x0000

How to use this on a job

“Register 1” is not enough information. It could mean wire offset 1, the first item at offset 0, or a holding-register reference such as 40001. Decide what the manual means before typing the number into a client.

  1. 01

    Select the data area: coils, discrete inputs, input registers or holding registers. The area determines the read function, not a prefix transmitted with the address.

  2. 02

    Select the document’s convention. Zero-based is already a wire offset. One-based indexes subtract one. Conventional 5- and 6-digit references remove the area prefix and then subtract one.

  3. 03

    Read the resulting 16-bit address and read function. Confirm this convention against a known register in the manual before writing anything. The result is a translation, not a live connection.

Work through one example

wire offset = documented index − 1 (one-based only)

Conventional holding reference 40001 becomes offset 0 and bytes 00 00, using function 03 for a read. Conventional reference 400101 in the six-digit scheme becomes offset 100, bytes 00 64. A one-based input index of 101 also becomes offset 100, but uses function 04.

Before you trust the answer

40001 is a documentation convention, not a number to send unchanged as the first holding-register address. Vendors also publish plain hexadecimal offsets and other schemes. The two prefixed modes here implement the stated conventional schemes only; they do not auto-detect every manual.

TRYPLC FIELD REFERENCE / 01

Modbus Address Translator

Translate zero-based offsets, one-based indexes and conventional 5- or 6-digit Modbus references without off-by-one errors.

  • Holding registers → read function 03
  • Input registers → read function 04
  • Coils → read function 01
  • Discrete inputs → read function 02
  • Wire address range: 0 to 65535
Modbus Address TranslatorDEVICE MANUAL40001ON THE WIRE0x0000FC 03 / 0

How to use this on a job

“Register 1” is not enough information. It could mean wire offset 1, the first item at offset 0, or a holding-register reference such as 40001. Decide what the manual means before typing the number into a client.

  1. 01

    Select the data area: coils, discrete inputs, input registers or holding registers. The area determines the read function, not a prefix transmitted with the address.

  2. 02

    Select the document’s convention. Zero-based is already a wire offset. One-based indexes subtract one. Conventional 5- and 6-digit references remove the area prefix and then subtract one.

  3. 03

    Read the resulting 16-bit address and read function. Confirm this convention against a known register in the manual before writing anything. The result is a translation, not a live connection.

Work through one example

wire offset = documented index − 1 (one-based only)

Conventional holding reference 40001 becomes offset 0 and bytes 00 00, using function 03 for a read. Conventional reference 400101 in the six-digit scheme becomes offset 100, bytes 00 64. A one-based input index of 101 also becomes offset 100, but uses function 04.

Before you trust the answer

40001 is a documentation convention, not a number to send unchanged as the first holding-register address. Vendors also publish plain hexadecimal offsets and other schemes. The two prefixed modes here implement the stated conventional schemes only; they do not auto-detect every manual.

https://tryplc.com/tools/modbus-address