
CHAPTER 11: MODBUS PROTOCOL
FUNCTION CODE 03H (READ SETPOINTS)
8 SERIES PROTECTIVE RELAY PLATFORM – COMMUNICATIONS GUIDE
11-3
Function Code 03H (Read Setpoints)
Modbus Implementation: Read Holding Registers
8 Series relay Implementation: Read Setpoints
For the 8 Series relay implementation of Modbus, the function code can be used to read
any setpoints (“holding registers”). Holding registers are 16 bit (two byte) values
transmitted high order byte first. As a result all 8 Series relay Setpoints are sent as two
bytes. The maximum number of registers that can be read in one transmission is 125.
The slave response to this function code is the slave address, function code, a count of the
number of data bytes to follow, the data itself and the CRC. Each data item is sent as a two
byte number with the high order byte sent first.
For example, consider a request for slave 17 to respond with 3 registers starting at address
006B. For this example the register data in these addresses is as follows:
The master/slave packets have the following format:
Table 11-1: Master Packet Format for Function Code 03H
Table 11-2: Slave Packet Format for Function Code 03H
Error ID
Exception
Description
01
ILLEGAL FUNCTION
The function code transmitted is not one of the
functions supported by the 8 Series relay.
02
ILLEGAL DATA ADDRESS
The address referenced in the data field transmitted
by the master is not an allowable address for the
8 Series relay.
03
ILLEGAL DATA VALUE
The value referenced in the data field transmitted by
the master is not within range for the selected data
address.
Address
Data
006B
022B
006C
0000
006D
0064
MASTER TRANSMISSION
BYTES
EXAMPLE
DESCRIPTION
SLAVE ADDRESS
1
FE
message for slave 254
FUNCTION CODE
1
03
read registers
DATA STARTING ADDRESS
2
4A 8A
data starting at 4A8A
NUMBER OF SETPOINTS
2
00 04
4 registers = 8 bytes total
CRC (low, high)
2
67 F4
CRC error code
SLAVE RESPONSE
BYTES
EXAMPLE
DESCRIPTION
SLAVE ADDRESS
1
FE
message from slave 254
FUNCTION CODE
1
03
read registers
BYTE COUNT
1
08
4 registers = 8 bytes total
DATA 1
2
00 00
value in address 4A8A (16-bit)
DATA 2
2
04 B0
value in address 4A8B (16-bit)
DATA 3
2
00 00
value in address 4A8C (32-bit)
DATA 4
2
00 64
CRC (low, high)
2
E7 75
CRC error code