EasyManua.ls Logo

Brainboxes ED-549 - Modbus 1.1 B3 Standard Addressing; Product Data Tables and Value Encoding

Brainboxes ED-549
100 pages
Print Icon
To Next Page IconTo Next Page
To Next Page IconTo Next Page
To Previous Page IconTo Previous Page
To Previous Page IconTo Previous Page
Loading...
Product Manual V1.2
© Copyright Brainboxes Ltd
Page 95 of 100
Modbus 1.1b3 standard addressing
If you download the latest version (1.1b3) of the Modbus standard, you will find that it uses yet another
addressing style. In what it calls the “Modbus data model”, the address of each object starts at 1, i.e. it is the
logical address plus 1. You can see in the examples that the object addresses are always 1 greater than the
values actually transferred in Modbus data packets. Like the logical address, an address written this way does
not specify what is being addressed; the type of object/access needs to be stated as well.
Modbus data model addresses
Type
Logical addresses
1-65536
Coil
0-65535 (decimal)
0x0000-0xFFFF (hexadecimal)
1-65536
Discrete input
0-65535 (decimal)
0x0000-0xFFFF (hexadecimal)
1-65536
Input register
0-65535 (decimal)
0x0000-0xFFFF (hexadecimal)
1-65536
Holding register
0-65535 (decimal)
0x0000-0xFFFF (hexadecimal)
Despite being the latest official standard, this style of address notation is the least frequently seen in practice.
Product data tables and value encoding
ED-549
Modbus access
type
Modbus
function
codes
Logical
address
984 style
address
IEC 61131
address
Analogue inputs (as integer)
Holding register
3
0x0000 7
40001 8
%MW0 7
Analogue inputs (as integer)
Input register
4
0x0000 7
30001 8
N/A
Analogue inputs (as float)
Holding register
3
0x0020 7
40033 40
%MF32 39
Analogue inputs (as float)
Input register
4
0x0020 7
30033 40
N/A
Input error flags
Discrete input
2
0x0400 7
11025 1032
N/A
Input error flags
Input register
4
0x0400
31025
N/A
Input error flags
Holding register
3
0x0400
41025
%MW1024
Input channel enable
Holding register
3, 6, 16
0x0040
40065
%MW64
Input channel enable
Coil
1, 5, 15
0x0040 7
00065 72
%M64 71
Input type/range
Holding register
3, 6, 16
0x0060 7
40097 104
%MW96 103
Integer format
Holding register
3, 6, 16
0x0080
40129
%MW128
Integer format
Coil
1, 5, 15
0x0080
00129
%M128
Integer values are encoded in one of two formats, depending on the integer format setting.
“Hexadecimal” (integer format register = 0, integer format coil OFF): the input range is scaled to fill
the range of a 16-bit integer value, either as a 2’s complement number for ranges which extend to
negative values or as an unsigned number for ranges which do not go below zero.
“Engineering units” (integer format register = 1, integer format coil ON): the measurement, in mA, mV
or V, is scaled up to as high a power of 10 as possible while allowing the full range of values to fit in a
16-bit integer. For example, the ±2.5V range is expressed as the reading in Volts multiplied by 10000:
if it were multiplied by 100000 then some values would be too large to fit in a 16-bit register.

Table of Contents