Funktion 3: READ HOLDING REGISTERS
Mit der Funktion READ HOLDING REGISTERS können die Ein- und Ausgangsworte und die Register gelesen werden. Eingänge ab dem Offset 0 - 0xFF und Ausgänge ab den Offset 0x800 - 0x8FF.
In diesem Beispiel werden die ersten zwei analogen Ausgänge gelesen. Die analogen Ausgänge beginnen beim Offset 0x800 (hex). Die Länge bezeichnet die Anzahl, der zu lesenden Kanäle.
Anfrage (Query)
Byte Name |
Beispiel |
| ||
---|---|---|---|---|
Start - Rahmen |
- |
- |
":" |
0x3A |
Adresse |
11 |
0x0B |
"0B" |
0x30, 0x42 |
Funktions-Code |
3 |
0x03 |
"03" |
0x30, 0x33 |
Start-Adresse high |
8 |
0x08 |
"08" |
0x30, 0x38 |
Start-Adresse low |
0 |
0x00 |
"00" |
0x30, 0x30 |
Anzahl high |
0 |
0x00 |
"00" |
0x30, 0x30 |
Anzahl low |
2 |
0x02 |
"02" |
0x30, 0x32 |
Error Check, LRC/CRC |
|
0xC6, 0xC1 |
"E8" |
0x45, 0x38 |
Ende - Rahmen |
|
t1-t2-t3 |
CRLF |
0x0D, 0x0A |
Der Feldbus-Koppler-Box antwortet mit dem Byte Count 4, d.h. 4 Byte Daten kommen zurück. Die Anfrage waren 2 Analogkanäle, die auf 2 Worte aufgeteilt sind. Im analogen Ausgangsprozessabbild hat der 1. Kanal einen Wert von 0x3FFF und der 2. Kanal 0x0.
Antwort (Response)
Byte Name |
Beispiel |
| ||
---|---|---|---|---|
Start - Rahmen |
- |
- |
":" |
0x3A |
Adresse |
11 |
0x0B |
"0B" |
0x30, 0x42 |
Funktions-Code |
3 |
0x03 |
"03" |
0x30, 0x33 |
Byte Count |
4 |
0x04 |
"04" |
0x30, 0x34 |
Daten 1 High-Byte |
63 |
0x3F |
"3F" |
0x33, 0x46 |
Daten 1 Low-Byte |
255 |
0xFF |
"FF" |
0x46, 0x46 |
Daten 2 High-Byte |
0 |
0x00 |
"00" |
0x30, 0x30 |
Daten 2 Low-Byte |
0 |
0x00 |
"00" |
0x30, 0x30 |
Error Check, LRC/CRC |
|
0xC6, 0xC1 |
"B0" |
0x42, 0x30 |
Ende - Rahmen |
|
t1-t2-t3 |
CRLF |
0x0D, 0x0A |