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 |