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 |