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.

ReadWriteTerminalReg 2: Eingänge

VAR_INPUT
    STATE       : BYTE;
    DATAIN      : WORD;
    REGNO       : BYTE;
    READ        : BOOL;
    WRITE       : BOOL;
    TMOUT       : TIME;
    NEWREGVALUE : WORD;
END_VAR

Name

Typ

Beschreibung

STATE

BYTE

Statusbyte des Klemmenkanals.

DATAIN

WORD

Dateneingangswort des Klemmenkanals.

REGNO

BYTE

Nummer des Registers auf den ein Schreib- bzw. Lesezugriff erfolgen soll.

READ

BOOL

Ü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

BOOL

Ü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

TIME

Gibt die Timeout-Zeit an, die bei der Ausführung der Funktion nicht überschritten werden darf.

NEWREGVALUE

WORD

Datenwort, der bei einem Schreibzugriff in das Register mit der Nummer REGNO geschrieben werden soll.

ReadWriteTerminalReg 3: Ausgänge

VAR_OUTPUT
    CTRL        : BYTE;
    DATAOUT     : WORD;
    BUSY        : BOOL;
    ERR         : BOOL;
    ERRID       : UDINT;
    CURREGVALUE : WORD;
END_VAR

Name

Typ

Beschreibung

CTRL

BYTE

Control-Byte des Klemmenkanals.

DATAOUT

WORD

Datenausgangswort des Klemmenkanals.

BUSY

BOOL

Bei der Aktivierung des Bausteines wird dieser Ausgang gesetzt und bleibt gesetzt, bis die Ausführung der Funktion abgeschlossen wurde.

ERR

BOOL

Sollte ein Fehler bei der Ausführung der Funktion auftreten, dann wird dieser Ausgang gesetzt, nachdem der BUSY-Ausgang zurückgesetzt wurde.

ERRID

UDINT

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)

Name

Typ

Beschreibung

CURREGVALUE

 

WORD

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 4:

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 5:

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)