Der Operator ist eine Erweiterung der Norm IEC 61131-3.
Der Operator liefert Informationen zu einer Variablen zurück. Sie können die Informationen
als Datenstruktur in einer Variablen des Datentyps __SYSTEM.VAR_INFO
speichern.
Syntax in der Deklaration
<name of the info variable> : __SYSTEM.VAR_INFO; // Data structure for info variable
Syntax beim Aufruf
<name of the info variable> := __VARINFO( <variable name> ); // Call of the operator
Beispiel
FUNCTION_BLOCK FB_Velocity VAR_INPUT rVelocity: REAL := 1.2; END_VAR VAR_OUTPUT END_VAR VAR infoVelocity: __SYSTEM.VAR_INFO; //Info of Velocity END_VAR infoVelocity := __VARINFO(rVelocity); // Gets the info of Velocity locally
PROGRAM PLC_PRG VAR iCounter : INT := 0; // Counts the calls infoCounter : __SYSTEM.VAR_INFO; //Info of Counter arrA : ARRAY [1..2, 1..2, 1..2] OF INT := [0, 1, 2, 3, 4, 5, 6, 7]; // Stores the A data infoA : __SYSTEM.VAR_INFO; //Info of A fbVel : FB_Velocity; END_VAR iCounter := iCounter + 1; infoCounter := __VARINFO(iCounter); infoA := __VARINFO(arrA); fbVel();
Im Applikationscode sind die Variablen iCounter
und arrA
bekannt. Die Variableninformationen werden in den Variablen infoCounter
und infoA
abgelegt. Außerdem ist der Funktionsbaustein FB_Velocity
instanziert.
Datentyp __SYSTEM.VAR_INFO
Name |
Datentyp |
Initialisierung |
Beschreibung |
---|---|---|---|
|
|
0 |
Adresse der Variablen Beispiel: Hinweis: Beim Bitzugriff einer Variablen |
|
|
0 |
Offset der Variablenadresse in Bytes. Beispiel: Hinweis: Wenn die Variable global ist, dann ist der Offset relativ zum Beginn der Area. Wenn die Variable eine lokale Variable in einer Funktion oder Methode ist, dann ist der Offset relativ zum aktuellen Stack-Frame. Wenn die Variable eine lokale Variable in einem Funktionsbaustein ist, dann ist der Offset relativ zur Funktionsbaustein-Instanz. |
|
|
0 |
Speicherbereichsnummer Beispiel: Hinweis: Die Speicherbereiche sind geräteabhängig. |
|
|
0 |
Anzahl der Bits in Bytes Beispiel: Hinweis: Wenn die Variable kein ganzzahliger Datentyp ist, gilt: |
|
|
0 |
Speicherplatzgröße der Variablen in Bits Beispiel: |
|
|
0 |
Bitadresse der Variablen Voraussetzung: Die Variable liegt im Eingangsspeicherbereich |
|
|
|
Datentypklasse der Variablen Beispiel: Hinweis: Bei benutzerdefinierten Datentypen oder Funktionsbaustein-Instanzen wird
als Datantypklasse |
|
|
'' |
Datentypname der Variablen als Hinweis: Bei benutzerdefinierten Datentypen ist der Funktionsbausteinname oder der DUT-Name angegeben. Beispiel: |
|
|
0 |
Anzahl der Arrayelemente Voraussetzung: Die Variable hat den Datentyp Beispiel: |
|
|
|
Elementarer Basisdatentyp der Arrayelemente. Voraussetzung: Die Variable hat den Datentyp Beispiel: |
|
|
0 |
Speicherplatzgröße des Arrayelements in Bits Voraussetzung: Die Variable hat den Datentyp Beispiel: |
|
|
|
Information zum Speicherbereich
Beispiel: Hinweis: Die Speicherbereichkonfiguration ist geräteabhängig. |
|
|
'' |
Variablenname als Beispiel : |
|
|
'' |
Kommentar der Variablendeklaration Beispiel: |