Read Holding Register [03h]:
This function reads the contents of the specified number of consecutive holding
registers (of specified register addresses). An example follows below.
Reading Trip monitor 1 factor and trip frequency, current, and voltage from an
inverter having a slave address "1"
This example assumes the previous three trip factors are as follows:
X200
Command
2
Register Number
0012h
Trip factor
Over-Current
(E03)
Query:
No.
Field Name
1
Slave address *1
2
Function code
3
Register start address *3
(high order)
4
Register start address *3
(low order)
5
Number of holding
registers (high order)
6
Number of holding
registers(low order)
7
CRC-16 (high order)
8
CRC-16 (low order)
Note 1:
Broadcasting is disabled.
Note 2:
Data is transferred by the specified number of data bytes (data size). In this
case, 6 bytes are used to return the content of three holding registers.
Note 3:
The PDU Register Number are addressed starting at zero. Therefore register
numbered "0012h" are addressed as "0011h". Register address value
(transmitted on Modbus line) is 1 less than the Register Number.
D081
D081
(factor)
(frequency)
0014h
9.9Hz
Example
(Hex)
01
03
00
11
00
06
95
CD
D081
(output current)
0016h
3.0A
Response:
No.
Field Name
1
Slave address
2
Function code
3
Data size (in bytes) *2
4
Register data 1 (high order)
5
Register data 1 (high order)
6
Register data 2 (high order)
7
Register data 2 (low order)
8
Register data 3 (high order)
9
Register data 3 (low order)
10
Register data 4 (high order)
11
Register data 4 (low order)
12
Register data 5 (high order)
13
Register data 5 (low order)
14
Register data 6 (high order)
15
Register data 6 (low order)
16
CRC-16 (high order)
17
CRC-16 (low order)
B11
D081
(DC-bus Voltage)
0017h
284V
Example
(Hex)
01
03
0C
00
03
00
00
00
63
00
00
00
1E
01
1C
AF
6D