MODBUS Address Table

MODBUS addresses (word accesses)
MODBUS address

Byte

BYTE

Bit (byte-oriented)

BOOL

Word

WORD

Double word

DWORD

HEX DEC
0000 0 %MB0 %MX0.0 … %MX0.7 %MW0 %MD0
%MB1 %MX1.0 … %MX1.7
0001 1 %MB2 %MX2.0 … %MX2.7 %MW1
%MB3 %MX3.0 … %MX3.7
0002 2 %MB4 %MX4.0 … %MX4.7 %MW2 %MD1
%MB5 %MX5.0 … %MX5.7
0003 3 %MB6 %MX6.0 … %MX6.7 %MW3
%MB7 %MX7.0 … %MX7.7
7FFE 32766 %MB65532 %MX65532.0 … %MX65532.7 %MW32766 %MD16383
%MB65533 %MX65533.0 … %MX65533.7
7FFF 32767 %MB65534 %MX65534.0 … %MX65534.7 %MW32767
%MB65535 %MX65535.0 … %MX65535.7
8000 32768 %MB65536 %MX65536.0 … %MX65536.7 %MW32768 %MD16384
%MB65537 %MX65537.0 … %MX65537.7
8001 32769 %MB65538 %MX65538.0 … %MX65538.7 %MW32769
%MB65539 %MX65539.0 … %MX65539.7
8002 32770 %MB65540 %MX65540.0 … %MX65540.7 %MW32770 %MD16385
%MB65541 %MX65541.0 … %MX65541.7
8003 32771 %MB65542 %MX65542.0 … %MX65542.7 %MW32771
%MB65543 %MX65543.0 … %MX65543.7
FFFE 65534 %MB131068 %MX131068.0 … %MX131068.7 %MW65534 %MD32767
%MB131069 %MX131069.0 … %MX131069.7
FFFF 65535 %MB131070 %MX131070.0 … %MX131070.7 %MW65535
%MB131071 %MX131071.0 … %MX131071.7
Address assignment (bit accesses)
MODBUS address

Byte

BYTE

Bit (byte-oriented)

BOOL

Word

WORD

Double word

DWORD

HEX DEC
0000 0 %MB0 %MX0.0 %MW0 %MD0
0001 1 %MX0.1
0002 2 %MX0.2
0003 3 %MX0.3
0004 4 %MX0.4
0005 5 %MX0.5
0006 6 %MX0.6
0007 7 %MX0.7
0008 8 %MB1 %MX1.0
0009 9 %MX1.1
000A 10 %MX1.2
000B 11 %MX1.3
000C 12 %MX1.4
000D 13 %MX1.5
000E 14 %MX1.6
000F 15 %MX1.7
0010 16 %MB2 %MX2.0 %MW1
0011 17 %MX2.1
0012 18 %MX2.2
0013 19 %MX2.3
0014 20 %MX2.4
0015 21 %MX2.5
0016 22 %MX2.6
0017 23 %MX2.7
0018 24 %MB3 %MX3.0
0019 25 %MX3.1
001A 26 %MX3.2
001B 27 %MX3.3
001C 28 %MX3.4
001D 29 %MX3.5
001E 30 %MX3.6
001F 31 %MX3.7
0020 32 %MB4 %MX4.0 %MW2 %MD1
0021 33 %MX4.1
0022 34 %MX4.2
0FFF 4095 %MB511 %MX511.7 %MW255 %MD127
1000 4096 %MB512 %MX512.0 %MW256 %MD128
7FFF 32767 %MB4095 %MX4095.7 %MW2047 %MD1023
8000 32768 %MB4096 %MX4096.0 %MW2048 %MD1024
FFFF 65535 %MB8191 %MX8191.7 %MW4095 %MD2047

Calculation of the bit variable from the hexadecimal address:

Formula:
  Bit variable (BOOL) := %MXBYTE.BIT
where: DEC Decimal address  
  BYTE DEC / 8  
  BIT DEC mod 8 (Modulo division)

Examples:

  • Address hexadecimal = 16#2002

    DEC := 8194

    BYTE := 8194 / 8 := 1024

    BIT := 8194 mod 8 := 2

    Bit variable: %MX1024.2

  • Address hexadecimal = 16#3016

    DEC := 12310

    BYTE := 12310 / 8 := 1538,75 -> 1538

    BIT := 12310 mod 8 := 6

    Bit variable: %MX1538.6

  • Address hexadecimal = 16#55AA

    DEC := 21930

    BYTE := 21930 / 8 := 2741,25 -> 2741

    BIT := 21930 mod 8 := 2

    Bit variable: %MX2741.2

Calculation of the hexadecimal address from the bit variable:

Examples:

  • Bit variable := %MX515.4

    DEC := 515 * 8 + 4 := 4124

    Address hex := 16#101C

  • Bit variable := %MX3.3

    DEC := 3 * 8 + 3 := 27

    Address hex := 16#001B

  • Bit variable := %MX6666.2

    DEC := 6666 * 8 + 2 := 53330

    Address hex := 16#D052