Chapter 11
11.2.2
Read Holding Registers [03h]
How to read multiple holding register data on Modbus communication?
Q
Reads the specified number of consecutive holding registers from the specified holding register
A
number.
Examples of readings of the latest trip information (holding register number =0012h to 0017h)
from the inverter at slave address 1 are shown below.
No.
1
Slave address
2
Function code
3
Register start No. (High)
4
Register start No. (Low)
5
Number of holding registers (High)
6
Number of holding registers (Low)
7
CRC-16 (High)
8
CRC-16 (Low)
No.
1
Slave address
2
Function code
3
Number of data bytes
4
Register data 1 (High)
5
Register data 1 (Low)
6
Register data 2 (High)
7
Register data 2 (Low)
8
Register data 3 (High)
9
Register data 3 (Low)
10
Register data 4 (High)
11
Register data 4 (Low)
12
Register data 5 (High)
13
Register data 5 (Low)
14
Register data 6 (High)
15
Register data 6 (Low)
16
CRC-16 (High)
17
CRC-16 (Low)
*1. Broadcasting is disabled.
*2. Note that the starting number is 1 less than the actual register number. Specify a number of
"(Register No.) - 1".
*3. The maximum number of data that can be read is 16 registers (32 bytes). If it is exceeded,
an exceptional response of exception code "03h" is returned.
*4. Data of the number of data bytes is transferred. In this example, it is 12 bytes because of
the six holding registers.
If the command cannot be executed successfully, an exceptional response is returned. For
!
details, refer to "11.2.9 Exceptional Responses".
Query
Field name
*1
*2
*2
*3
*3
Response
Field name
*4
11-2-3
RS485 Communication
Example
(HEX)
01
03
00
Register start No. = (Register No.)-1
11
00
6 registers
06
95
CD
Example
(HEX)
01
03
0C
00
0003h → 03d → E03 (Trip factor =
Overcurrent)
03
00
0004h → 4 (Inverter status =
during acceleration).
04
00
00
0000 04D2h → 1234d → 12.34 (Hz)
(Frequency)
04
D2
00
001Eh → 30d → 3.0 (A) (Output current)
1E
01
011Ch → 284d → 284 (VDC) (DC bus Voltage)
1C
77
3D
"h" = Hexadecimal "d" = Decimal