ReadWriteTerminalReg
Der Funktionsbaustein ReadWriteTerminalReg ermöglicht einen komfortablen Zugriff auf die Register der Klemme über das Control-/Status-Byte des Klemmenkanals (Registerkommunikation). In der Standardbetriebsart werden die Daten-Ein/Ausgänge der intelligenten Klemmen (z.B. einer analogen Ausgangsklemme) für den Austausch der analogen Ausgangsdaten benutzt. Ein Handshake über das Control-/Status-Byte ermöglicht einen Registerzugriff, dabei werden die Daten-Ein/Ausgangsvariablen zum Übertragen der Registerwerte benutzt. Über eine positive Flanke an dem READ- oder WRITE-Eingang wird das Register mit der Nummer REGNO gelesen bzw. in das Register geschrieben. Der Registerschreibschutz wird von dem Funktionsbaustein bei einem Schreibzugriff aufgehoben und anschließend neu gesetzt. Bei einem Schreibzugriff auf einem Register wird der neue Registerwert zuerst geschrieben und dann gelesen. Der gelesene Wert steht an dem Ausgang CURRREGVALUE zur Verfügung. Um Änderungen der Registerwerte permanent zu speichern, muss die Spannungsversorgung des Kopplers unterbrochen werden. Die Variablen STATE, DATAIN, CTRL, DATAOUT müssen mit den entsprechenden IO-Variablen des Klemmenkanals im TwinCAT System Manager verknüpft werden.
VAR_INPUT
VAR_INPUT
STATE : BYTE;
DATAIN : WORD;
REGNO : BYTE;
READ : BOOL;
WRITE : BOOL;
TMOUT : TIME;
NEWREGVALUE : WORD;
END_VAR
STATE: Statusbyte des Klemmenkanals.
DATAIN: Dateneingangswort des Klemmenkanals.
REGNO: Nummer des Registers auf den ein Schreib- bzw. Lesezugriff erfolgen soll.
READ: Über eine positive Flanke an diesem Eingang wird der Baustein aktiviert und der aktuelle Registerwert gelesen. Bei Erfolg steht der Registerwert in der Ausgangsvariablen CURREGVALUE zur Verfügung.
WRITE: Über eine positive Flanke an diesem Eingang wird der Baustein aktiviert und in das Register REGNO der Wert der Eingangsvariablen NEWREGVALUE geschrieben. Anschließend wird der aktuelle Wert des Registers gelesen und steht bei Erfolg in der Ausgangsvariablen CURREGVALUE zur Verfügung.
TMOUT: Gibt die Timeout-Zeit an, die bei der Ausführung der Funktion nicht überschritten werden darf.
NEWREGVALUE: Datenwort, der bei einem Schreibzugriff in das Register mit der Nummer REGNO geschrieben werden soll.
VAR_OUTPUT
VAR_OUTPUT
CTRL : BYTE;
DATAOUT : WORD;
BUSY : BOOL;
ERR : BOOL;
ERRID : UDINT;
CURREGVALUE : WORD;
END_VAR
CTRL: Control-Byte des Klemmenkanals.
DATAOUT: Datenausgangswort des Klemmenkanals.
BUSY: Bei der Aktivierung des Bausteines wird dieser Ausgang gesetzt und bleibt gesetzt, bis die Ausführung der Funktion abgeschlossen wurde.
ERR: Sollte ein Fehler bei der Ausführung der Funktion auftreten, dann wird dieser Ausgang gesetzt, nachdem der BUSY-Ausgang zurückgesetzt wurde.
ERRID: Liefert bei einem gesetzten ERR-Ausgang die Fehlernummer.
Fehlernummer | Fehlerbeschreibung |
---|---|
0 | Kein Fehler |
0x100 | Timeout-Fehler. Die zulässige Ausführungszeit wurde überschritten |
0x200 | Parameter Fehler (z.B. bei einer unzulässigen Registernummer) |
0x300 | Der gelesene Wert unterscheidet sich von dem geschriebenen Wert (Schreibzugriff auf diesem Register möglicherweise nicht erlaubt oder fehlgeschlagen) |
CURREGVALUE: Bei einem erfolgreichen Lese- oder Schreibzugriff wird über die Variable der aktuelle Registerwert ausgegeben.
Beispiele für einen Aufruf in FUP:
Beispiel 1
VAR
ReadWriteTerminalReg1 : ReadWriteTerminalReg;
State AT%I* : BYTE;
Control AT%Q* : BYTE;
DataIn AT%I* : WORD;
DataOut AT%Q* : WORD;
Start_ReadTerminalType : BOOL;
Start_WriteFeatureRegister : BOOL;
RWTerminalReg_Busy : BOOL;
RWTerminalReg_Err : BOOL;
RWTerminalReg_ErrId : UDINT;
TerminalType : WORD;
FeatureRegValue : WORD;
END_VAR
Im Beispiel 1 wird aus dem Register 8 einer analogen Ausgangsklemme die Klemmenbezeichnung ausgelesen. Die Variablen State, Control, DataIn und DataOut werden mit den entsprechenden IO-Variablen der Klemme im TwinCAT System Manager verknüpft. Die Klemmenbezeichnung lautet: KL4022.
Beispiel 2
Im Beispiel 2 wird in dem Feature-Register (Register 32) einer analogen Ausgangsklemme KL4022 die Anwenderskalierung aktiviert. Der neue Wert des Feature-Registers wird dann von dem Funktionsbaustein gelesen und kann über die Ausgangsvariable CURREGVALUE überprüft werden.
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS-Bibliotheken (Kategoriegruppe) |
---|---|---|
TwinCAT v3.1.0 | PC oder CX (x86, x64, ARM) | Tc2_Coupler (IO) |