ReadWriteTerminalReg

ReadWriteTerminalReg 1:

Der Funktionsbaustein "ReadWriteTerminalReg" ermöglicht einen komfortableren Zugriff auf die Register der Klemme über das Status-/Controlbyte 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 Status-/Controlbyte 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 dem 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 gelesen und 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 CURRREGVALUE zur Verfügung.

WRITE: Über eine positive Flanke an diesem Eingang wird der Baustein aktiviert und in den 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 dem 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

CONTROL: Kontrollbyte 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.

CURREGVALUE: Bei einem erfolgreichen Lese- oder Schreibzugriff wird über die Variable der aktuelle Registerwert ausgegeben.

Fehlerbeschreibung:

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 diesen Register möglicherweise nicht erlaubt oder fehlgeschlagen ) 

 

Beispiele für einen Aufruf in FUP:

VAR
   ReadWriteTerminalReg1               : ReadWriteTerminalReg;
   State                    AT%IB0     : BYTE;
   Control                  AT%QB0     : BYTE;
   DataIn                   AT%IW1     : WORD;
   DataOut                  AT%QW1     : WORD;
   Start_ReadTerminalType              : BOOL;
   Start_WriteFeatureRegister          : BOOL;
   RWTerminalReg_Busy                  : BOOL;
   RWTerminalReg_Err                   : BOOL;
   RWTerminalReg_ErrId                 : UDINT;
   TerminalType                        : WORD;
   FeatureRegValue                     : WORD;
END_VAR

 

 Beispiel 1

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-Systemmanager verknüpft. Die Klemmenbezeichnung lautet: KL4002.

 

Beispiel 2

ReadWriteTerminalReg 3:

Im Beispiel 2 wird in dem Feature-Register (Register 32) einer analogen Ausgangsklemme KL4002 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

IO-Hardware

Einzubindende SPS-Bibliotheken

TwinCAT Version >= 2.7.0

PC (i386)

Alle Klemmen mit Status/Control-Byte (inteligente Klemmen)

Standard.Lib; TcPlcCoupler.Lib