DKM-411 Modbus Application Manual V3.0
(15.01.2017)
- 7 -
The function 03 (read multiple registers) will be used for data reading. The MODBUS master will send a
query. The answer will be one of the below:
-A response containing the requested data
-An exceptional response indicating a read error.
The maximum number of registers read in one message is 16. If more registers are requested, the
unit will send only the first 16 registers.
The query message specifies the starting register and quantity of registers to be read. The
message structure is below:
Byte
Description
Value
0
Controller address
1 to 240
1
Function code
3
2
Starting address high
See below the description of available registers
3
Starting address low
4
Number of registers high
always 0
5
Number of registers low
max 10h (16 decimal)
6
CRC low byte
See below for the checksum calculation
7
CRC high byte
Here is the sequence to read 16 registers starting from address 20h (32 decimal):
01 03 00 20 00 10 45 CC (each byte is expressed as 2 hexadecimal characters)
The checksum value in the above message may be used for the verification of checksum
calculation algorithm.
The normal response will be:
Byte
Description
Value
0
Controller address
same as in the query
1
Function code
3
2
Data lenght in
bytes
(L)
number of registers * 2
3
High byte of 1st register
4
Low byte of 1st register
5
High byte of 2nd register
6
Low byte of 2nd register
....
L+1
High byte of the last register
L+2
Low byte of the last register
L+3
CRC low byte
See below for the checksum calculation
L+4
CRC high byte
The exceptional response will be:
Byte
Description
Value
0
Controller address
same as in the query
1
Function code
131 (function code + 128)
2
Exception code
2 (illegal address)
3
CRC low byte
See below for the checksum calculation
4
CRC high byte
DATA READING