Funktion 23: Schreiben und Lesen mehrerer analoger Aus- oder Eingänge
Mit der Funktion 23 können mehrere analoge Ausgänge beschrieben
und in einem Telegramm mehrere analoge Eingänge gelesen werden. In
diesem Beispiel werden die ersten 2 analogen Ausgangsworte
beschrieben und die ersten zwei analogen Eingänge gelesen. Die
analogen Ausgänge beginnen beim Offset 0x0800 und die Eingänge ab
dem Offset 0x0000. Hier beschreibt der Offset immer ein Wort. Der
Offset 0x0003 schreibt ab dem 4. Wort auf das
Ausgangsprozessabbild. Die Länge gibt die Anzahl der Worte an und
der Byte Count setzt sich aus den zu schreibenden Bytes
zusammen.
Beispiel: 4 Worte - entsprechen 8 Byte Count.
Die Datenbytes enthalten die Werte für die analogen Ausgänge. In
diesem Beispiel sind es zwei Worte, die zu beschreiben sind. Das
erste Wort mit dem Wert 0x3FFF und das zweite Wort mit dem Wert
0x7FFF.
Anfrage (Query)
Byte Name |
Modbus RTU |
Modbus ASCII | ||
---|---|---|---|---|
Start - Rahmen |
- |
- |
":" |
0x3A |
Adresse |
11 |
0x0B |
"0B" |
0x30, 0x42 |
Funktions-Code |
23 |
0x17 |
"17" |
0x31, 0x17 |
Lesen Start-Adresse high |
0 |
0x00 |
"00" |
0x30, 0x30 |
Lesen Start-Adresse low |
0 |
0x00 |
"00" |
0x30, 0x30 |
Lesen Länge high |
0 |
0x00 |
"00" |
0x30, 0x30 |
Lesen Länge low |
2 |
0x02 |
"02" |
0x30, 0x32 |
Schreiben Start-Adresse high |
8 |
0x08 |
"08" |
0x30, 0x38 |
Schreiben Start-Adresse low |
0 |
0x00 |
"00" |
0x30, 0x30 |
Schreiben Länge high |
0 |
0x00 |
"00" |
0x30, 0x30 |
Schreiben Länge low |
2 |
0x02 |
"02" |
0x30, 0x32 |
Byte Count |
4 |
0x04 |
"04" |
0x30, 0x34 |
Daten 1 high |
63 |
0x3F |
"3F" |
0x33, 0x46 |
Daten 1 low |
255 |
0xFF |
"FF" |
0x46, 0x46 |
Daten 2 high |
127 |
0x7F |
"7F" |
0x37, 0x46 |
Daten 2 low |
255 |
0xFF |
"FF" |
0x46, 0x46 |
Error Check, LRC/CRC |
|
0x76, 0xD3 |
"12" |
0x31, 0x32 |
Ende - Rahmen |
|
t1-t2-t3 |
CRLF |
0x0D, 0x0A |
Antwort (Response)
Der Buskoppler/Feldbus Box antwortet mit der Start-Adresse und der Länge der übertragenen Bytes im "Byte Count". Es folgen die Dateninformationen. In diesem Beispiel steht im ersten Wort eine 0x0038 (hex) und im zweiten Wort eine 0x3F0B.
Byte Name |
Modbus RTU |
Modbus ASCII | ||
---|---|---|---|---|
Start - Rahmen |
- |
- |
":" |
0x3A |
Adresse |
11 |
0x0B |
"0B" |
0x30, 0x42 |
Funktions-Code |
23 |
0x17 |
"17" |
0x31, 0x17 |
Byte Count |
4 |
0x04 |
"04" |
0x30, 0x34 |
Daten 1 high |
0 |
0x00 |
"00" |
0x30, 0x30 |
Daten 1 low |
56 |
0x38 |
"38" |
0x33, 0x38 |
Daten 2 high |
63 |
0x3F |
"3F" |
0x33, 0x46 |
Daten 2 low |
11 |
0x0B |
"0B" |
0x30, 0x42 |
Error Check, LRC/CRC |
|
0xF8, 0xA7 |
"E3" |
0x45, 0x33 |
Ende - Rahmen |
|
t1-t2-t3 |
CRLF |
0x0D, 0x0A |