Registerkommunikation
Registerzugriff über den Prozessdatenaustausch
- Bit 7=1: Registermodus
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 ausgelesen. - Bit 6=0: lesen, Bit 6=1: schreiben
In Bit 6 des Control-Bytes legen Sie fest, ob ein Register ausgelesen oder beschrieben werden soll. - Bit 6=0: Ein Register wird ausgelesen, ohne es zu verändern. Der Wert kann dem Eingangs-Prozessabbild entnommen werden.
- Bit 6=1: Die Nutzdaten werden in ein Register geschrieben. Sobald das Status-Byte im Eingangs-Prozessabbild eine Quittung geliefert hat, ist der Vorgang abgeschlossen (siehe Bsp.).
- Bit 0 bis 5: Adresse
In die Bits 0 bis 5 des Control-Bytes wird die Adresse des anzusprechenden Registers eingetragen
Control-Byte im Register-Modus (REG=1)
MSB
REG=1 | W/R | A5 | A4 | A3 | A2 | A1 | A0 |
REG = 0bin: Prozessdatenaustausch
REG = 1bin: Zugriff auf Registerstruktur
W/R = 0bin: Register lesen
W/R = 1bin: Register schreiben
A5..A0 = Registeradresse
Mit Adressen A5...A0 sind insgesamt 64 Register adressierbar.
Beispiel Registerkommunikation
Das Control- bzw. Status-Byte belegt die niedrigste Adresse eines logischen Kanals. Die entsprechenden Registerwerte befinden sich in den folgenden 2-Datenbytes. (Ausnahme ist der BK2000: hier wird nach dem Control- bzw. Status-Byte ein nicht genutztes Daten-Byte eingeschoben, und somit der Registerwert auf eine Word-Grenze gelegt).
Beispiel 1:
Lesen des Registers 8 im BK2000 mit einer KL3062 und der Endklemme:
Werden die folgenden Bytes von der Steuerung zur Klemme übertragen,
Byte | Byte 3 | Byte 2 | Byte 1 | Byte 0 |
Name | DataOUT 1 | DataOUT 0 | Nicht benutzt | Control-Byte |
Wert | 0xXX | 0xXX | 0xXX | 0x88 |
So liefert die Klemme die folgende Typ-Bezeichnung zurück (0x0BF6 entspricht im unsigned Integer 3062)
Byte | Byte 3 | Byte 2 | Byte 1 | Byte 0 |
Name | DataIN 1 | DataIN 0 | Nicht benutzt | Status-Byte |
Wert | 0x0B | 0xF6 | 0x00 | 0x88 |
Beispiel 2:
Schreiben des Registers 31 im BK2000 mit einer intelligenten Klemme und der Endklemme:
Werden die folgenden Bytes (Code-Wort) von der Steuerung zur Klemme übertragen,
Byte | Byte 3 | Byte 2 | Byte 1 | Byte 0 |
Name | DataOUT 1 | DataOUT 0 | Nicht benutzt | Control-Byte |
Wert | 0x12 | 0x35 | 0xXX | 0xDF |
So wird das Code-Wort gesetzt und die Klemme liefert als Quittung die Registeradresse mit dem Bit 7 für Registerzugriff zurück.
Byte | Byte 3 | Byte 2 | Byte 1 | Byte 0 |
Name | DataIN 1 | DataIN 0 | Nicht benutzt | Status-Byte |
Wert | 0x00 | 0x00 | 0x00 | 0x9F |