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 |