Beispiel der Register-Kommunikation

(Beispiele zur Register-Kommunikation via SDO siehe Objektverzeichnis, Objekt 0x4501)

Wenn Bit 7 des Control-Bytes gesetzt wird, werden die ersten zwei Byte der Nutzdaten nicht zum Prozessdatenaustausch verwendet, sondern in den Registersatz der Klemme geschrieben oder daraus gelesen.
In Bit 6 des Control-Bytes legen Sie fest, ob ein Register gelesen oder beschrieben werden soll. Wenn das Bit 6 nicht gesetzt ist, wird ein Register gelesen, ohne es zu verändern. Der Wert kann dem Eingangs-Prozessabbild entnommen werden.
Wird das Bit 6 gesetzt, werden die Nutzdaten in ein Register geschrieben. Sobald das Status-Byte im Eingangs-Prozessabbild eine Quittung geliefert hat, ist der Vorgang abgeschlossen (siehe Beispiel).
In die Bits 0 bis 5 des Control-Bytes wird die Adresse des anzusprechenden Registers eingetragen.

REG=1

W/R

A5

A4

A3

A2

A1

A0

REG: Registerbit
    REG = 0: Prozessdaten
    REG = 1: Register-Kommunikation

R/W: Zugriff auf Registerstruktur
    W/R = 0: Register lesen
    W/R = 1: Register schreiben

A5..A0: Registeradresse 
    A5...A0 sind insgesamt 64 Register adressierbar

Beispiel 1

Lesen des Registers 8 einer IP/IE1502. Die Baugruppe verfügt über zwei Kanäle, die sich mit jeweils 5 Byte ins Prozessabbild mappen.

Byte 0 (Control-Byte)

Byte 1 (Data In, D0)

Byte 2 (Data In, D1)

Byte 3 (Data In, D2)

Byte 5 (Data In, D3)

0x88

0xXX

0xXX

0xXX

0xXX

Bit 0.7 und Bit 0.3 ist gesetzt, bedeutet Register-Kommunikation aktiv, nur lesen da Bit 0.6 low ist und auslesen des Registers 8. Das Ausgangsdatenwort ist beim lesenden Zugriff ohne Bedeutung. Will man ein Register verändern, so schreibt man in das Ausgangswort die gewünschte Einstellung hinein.

Die Box liefert die folgende Typ-Bezeichnung zurück (0x05DE entspricht dem unsigned Integer 1502).
Besonderheit bei den Feldbus Boxen:

Die letzte Ziffer bedeutet nicht den Anschluss (0 für S8, 1 für M 8 und 2 für M12) sondern gibt die Anzahl der Kanäle wieder.

Byte 0 (Status-Byte)

Byte 1 (Data In, D0)

Byte 2 (Data In, D1)

Byte 3 (Data In, D2)

Byte 5 (Data In, D3)

0x88

0x00

0x00

0x05

0xDE

Hinweis

Um Register zu beschreiben muss das Passwort (0x1235) in Register 31 geschrieben werden, damit wird der Schreibschutz deaktiviert. Aktiviert wird dieser durch das Schreiben eines Wertes ungleich 0x1235. Beachten Sie das einige Einstellungen in den Registern erst nach erneutem Starten (Power-Restart) aktiviert werden.

Beispiel 2

Ablauf einer Register-Kommunikation zum Schreiben eines Registers

1. Schreiben des Register 31

Byte 0 (Control-Byte)

Byte 1 (Data In, High-Byte)

Byte 2 (Data In, Low-Byte)

0xDF

0x12

0x35

Antwort des Moduls/Busklemme

Byte 0 (Control-Byte)

Byte 1 (Data In, High-Byte)

Byte 2 (Data In, Low-Byte)

0x9F

0x00

0x00

 

2. Lesen des Register 31

Byte 0 (Control-Byte)

Byte 1 (Data In, High-Byte)

Byte 2 (Data In, Low-Byte)

0x9F

0xXX

0xXX

Antwort des Moduls/Busklemme

Byte 0 (Control-Byte)

Byte 1 (Data In, High-Byte)

Byte 2 (Data In, Low-Byte)

0x9F

0x12

0x35

 

3. Schreiben des Register 32

Byte 0 (Control-Byte)

Byte 1 (Data In, High-Byte)

Byte 2 (Data In, Low-Byte)e

0xE0

0x00

0x02

Antwort des Moduls/Busklemme

Byte 0 (Control-Byte)

Byte 1 (Data In, High-Byte)

Byte 2 (Data In, Low-Byte)

0xA0

0x00

0x00

 

4. Lesen des Register 32

Byte 0 (Control-Byte)

Byte 1 (Data In, High-Byte)

Byte 2 (Data In, Low-Byte)

0xA0

0xXX

0xXX

Antwort des Moduls/Busklemme

Byte 0 (Control-Byte)

Byte 1 (Data In, High-Byte)

Byte 2 (Data In, Low-Byte)

0xA0

0x00

0x02

 

5. Schreiben des Register 31 Codewort zurücksetzen

Byte 0 (Control-Byte)

Byte 1 (Data In, High-Byte)

Byte 2 (Data In, Low-Byte)

0xDF

0x00

0x00

Antwort des Moduls/Busklemme

Byte 0 (Control-Byte)

Byte 1 (Data In, High-Byte)

Byte 2 (Data In, Low-Byte)

0x9F

0x00

0x00