Modbus Data Address Format


Data in Modbus PLCs is stored different four different data tables depending on the intended use of the data. The four data tables are: Output Coils, Discrete Inputs, Holding Registers and Input Registers.

The Modbus PLC Data Address Format is a string that specifies the location of data in a Modbus PLC. The Address Format follows the Modicon PLC convention, consisting of a data table number, followed by a 1-based decimal number defining the coil or register number:

Data Table Format Notes
Output Coils 0nnnn Read-write
Discrete Inputs 1nnnn Read-only
Input Registers 3nnnn Read-only
Holding Registers 4nnnn Read-write

Coil/Register Number and Data Offset

The Modbus Protocol supports a number of different commands to read data from and write data to the different data tables. These commands use a 16 bit number to define the location in the data table. The 16 bit number gives an address range of 0-65535.

The Modicon coil/register numbering convention uses 1 to indicate the first coil or register, 2 to indicate the second, 3 to indicate the third and so on. The Modicon coil/register numbering convention is offset from the protocol by 1. This can sometimes cause confusion. Traditional Modicon coil/register numbering use 5 digits to specify the data table and the coil/register number:

Coil/Register Number Protocol Data Offset Table Name
00001 - 09999 0000h-270Eh Output coils
10001 - 19999 0000h-270Eh Discrete inputs
30001 - 39999 0000h-270Eh Input registers
40001 - 49999 0000h-270Eh Holding registers

The traditional Modicon 5 digit addressing restricts the protocol to the first 9999 coils or registers.

To access the full range of data allowed by the Modbus protocol, 6-digit addressing is sometimes used:

Coil/Register Number Protocol Data Offset Table Name
000001 - 065536 0000h-FFFFh Output coils
100001 - 165536 0000h-FFFFh Discrete inputs
300001 - 365536 0000h-FFFFh Input registers
400001 - 465536 0000h-FFFFh Holding registers

Fernhill SCADA supports variable length Modbus addressing. For example the first discrete input can represented by 100001, 10001, 1001, 101, or just 11.

Where Used

The Modbus PLC Data Address Format is used in these contexts:

Register Address Editor

You can use the Register Address Editor build Modbus Data Address Strings. You can access it by clicking the Browse button Browse button found at the right hand side of the Register field:

Register Address Editor

Further Information

Modbus Register Block Tag

To learn about Modbus Register Block Tags.

Modbus Driver

For an overview of the Modbus Driver.


For definitions of the terms used in Fernhill SCADA.