Function 4: READ INPUT REGISTERS
The READ INPUT REGISTERS function reads the analog inputs.
In this example the first two analog inputs of slave number 11 are read. The analog outputs start at an offset of 0x0000. The length indicates the number of words to be read. A KL3002 has 2 words of input data, which is why the value to be entered in "Count low" is two.
Query
Byte Name | Modbus RTU | Modbus ASCII | ||
---|---|---|---|---|
Start - frame | - | - | ":" | 0x3A |
Address | 11 | 0x0B | "0B" | 0x30, 0x42 |
Function code | 4 | 0x04 | "04" | 0x30, 0x34 |
Start address high | 0 | 0x00 | "00" | 0x30, 0x30 |
Start address low | 0 | 0x00 | "00" | 0x30, 0x30 |
Count high | 0 | 0x00 | "00" | 0x30, 0x30 |
Count low | 2 | 0x02 | "02" | 0x30, 0x32 |
Error check, LRC/CRC |
| 0x71, 0x61 | "EF" | 0x45, 0x46 |
End - frame |
| t1-t2-t3 | CRLF | 0x0D, 0x0A |
The Fieldbus Box Coupler Box responds with byte count 4, i.e. 4 bytes of data are returned. The query was for 2 analog channels, and these will now be distributed over 2 words. In the analog input process image, the first channel has the value 0x0038, while the second channel has the value 0x3F1B.
Response
Byte Name | Modbus RTU | Modbus ASCII | ||
---|---|---|---|---|
Start - frame | - | - | ":" | 0x3A |
Address | 11 | 0x0B | "0B" | 0x30, 0x42 |
Function code | 4 | 0x04 | "04" | 0x30, 0x34 |
Byte Count | 4 | 0x04 | "04" | 0x30, 0x34 |
Data 1 high byte | 0 | 0x00 | "00" | 0x30, 0x30 |
Data 1 low byte | 56 | 0x38 | "38" | 0x33, 0x38 |
Data 2 high byte | 63 | 0x3F | "3F" | 0x33, 0x46 |
Data 2 low byte | 11 | 0x0B | "0B" | 0x30, 0x42 |
Error check, LRC/CRC |
| 0x80, 0x7E | "6A" | 0x36, 0x41 |
End - frame |
| t1-t2-t3 | CRLF | 0x0D, 0x0A |