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