B-4 B30 Bus Differential System GE Multilin
B.2 MODBUS FUNCTION CODES APPENDIX B
B
B.2MODBUS FUNCTION CODES B.2.1 SUPPORTED FUNCTION CODES
Modbus officially defines function codes from 1 to 127 though only a small subset is generally needed. The relay supports
some of these functions, as summarized in the following table. Subsequent sections describe each function code in detail.
B.2.2 READ ACTUAL VALUES OR SETTINGS (FUNCTION CODE 03/04H)
This function code allows the master to read one or more consecutive data registers (actual values or settings) from a relay.
The maximum number of registers that can be read in a single packet is 125. See the Modbus memory map table for exact
details on the data registers.
Since some PLC implementations of Modbus only support one of function codes 03h and 04h. The UR interpretation allows
either function code to be used for reading one or more consecutive data registers. The data starting address will determine
the type of data being read. Function codes 03h and 04h are therefore identical.
The following table shows the format of the master and slave packetsin Modbus RTU. Modbus TCP/IP ADUs have a MBAP
instead of slave address, and CRC is in another stack layer. The example shows a master device requesting three register
values starting at address 4050h from slave device 11h (17 decimal); the slave device responds with the values 40, 300,
and 0 from registers 4050h, 4051h, and 4052h, respectively.
FUNCTION CODE MODBUS DEFINITION GE MULTILIN DEFINITION
HEX DEC
03 3 Read holding registers Read actual values or settings
04 4 Read holding registers Read actual values or settings
05 5 Force single coil Execute operation
06 6 Preset single register Store single setting
10 16 Preset multiple registers Store multiple settings
Table B–4: MASTER AND SLAVE DEVICE PACKET TRANSMISSION EXAMPLE
MASTER TRANSMISSION SLAVE RESPONSE
PACKET FORMAT EXAMPLE (HEX) PACKET FORMAT EXAMPLE (HEX)
SLAVE ADDRESS 11 SLAVE ADDRESS 11
FUNCTION CODE 04 FUNCTION CODE 04
DATA STARTING ADDRESS - high 40 BYTE COUNT 06
DATA STARTING ADDRESS - low 50 DATA #1 - high 00
NUMBER OF REGISTERS - high 00 DATA #1 - low 28
NUMBER OF REGISTERS - low 03 DATA #2 - high 01
CRC - low A7 DATA #2 - low 2C
CRC - high 4A DATA #3 - high 00
DATA #3 - low 00
CRC - low 0D
CRC - high 60