Operator: __VARINFO
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
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 locallyPROGRAM 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: Bedeutet, dass die Variable nicht global im Speicher liegt, sondern relativ zu einer Instanz oder auf dem Stack 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: |