ReadWriteTerminalReg

ReadWriteTerminalReg 1:

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

ReadWriteTerminalReg 2:

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

ReadWriteTerminalReg 3:

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)