53
—
Modbus
Error Codes
Modbus protocol defines a common way of error reporting. Every request (read or write) sent in unicast
mode is expected to return a value in packet of the same structure. In case of a message delivery error
(not a CRC problem but a message execution problem), the generated response contains a function
code with MSB (80h) set and a single byte representing the error code, called “exception code”.
The following default exception codes are available:
Data and Control Registers
A register is always a two-byte (16-bit) value, which can be interpreted as either signed or unsigned
values or which has a special format.
In case of data represented in more than one register the concatenated registers will contain
information with MSB in the lowest address and LSB in the highest address within concatenated
addresses.
Do not use registers other than those specified.
Note 1: Format of one-word register for current values
unsigned = 16-bit unsigned integer notation, resolution 0.01 A
signed = 6-bit signed integer notation, resolution 0.01 A
0000h…7FEFh = 0.00 … 327.51 A
8000h…FFFFh = -327.66 … -0.01 A
Note 2: Format of double-word register for branch power and energy values
unsigned = 32-bit unsigned integer notation,
signed = 32-bit signed integer notation
Code Name Description
Illegal function Function is not supported
Illegal data address Register address is out of control unit’s range, or trying to write into
a read only register
Illegal data value Value is out of range
Slave device failure Unrecoverable error occurred while the control unit was attempting
to perform the requested action, for example, time-out
Slave device busy Control unit is currently in User Interface Configuration Mode. Unable
to execute the requested action .
Special values Meaning
Data pending, acquisition in progress
Reserved
The sensor is known but not accessible at the moment
Data type TrueRMS / AC / DC is disabled
Overload (beyond full range)
Forbidden (no Sensor with ID xx)
—
Values with special meanings