Variablenkonfiguration - VAR_CONFIG
Sie können die Variablenkonfiguration für die Zuordnung von Funktionsbaustein-Variablen auf das Prozessabbild verwenden, also um die Variablen den Geräte-E/As zuzuweisen, ohne die endgültige Adresse bereits bei der Deklaration der Funktionsbaustein-Variablen angeben zu müssen. Die Zuweisung der endgültigen Adresse erfolgt in diesem Fall zentral für alle Funktionsbausteininstanzen der Anwendung in einer globalen VAR_CONFIG-Liste.
Zu diesem Zweck können den Funktionsbausteinvariablen in der Deklaration zwischen den Schlüsselwörtern VAR und END_VAR unvollständige Adressen zugewiesen werden. Diese Adressen werden mit einem Stern gekennzeichnet.
<Kennung> AT %<I|Q>* : <Datentyp>
Beispiel für die Verwendung unvollständig definierter Adressen:
FUNCTION_BLOCK locio
VAR
xLocIn AT %I*: BOOL := TRUE;
xLocOut AT %Q*: BOOL;
END_VAR
In diesem Beispiel werden 2 lokale E/A-Variablen definiert: Eine lokale Eingangs- (%I*) und eine lokale Ausgangsvariable (%Q*).
So definieren Sie die Adressen bei der Konfiguration der Variablen in der Liste mit den globalen Variablen (GVL):
Schritt |
Aktion |
---|---|
1 |
Führen Sie den Befehl Objekt hinzufügen aus. |
2 |
Fügen Sie ein Objekt des Typs Globale Variablenliste (GVL) im Gerätebaum ein. |
3 |
In dieser GVL geben Sie die Deklarationen der Instanzvariablen mit den exakten Adressen zwischen den Schlüsselwörtern VAR_CONFIG und END_VAR ein. |
Bei der Definition der Adressen ist Folgendes zu beachten:
oDie Instanzvariablen müssen mit dem vollständigen Instanzpfad angegeben werden, wobei die einzelnen POU- und Instanznamen durch jeweils einen Punkt von einander getrennt sind.
oDie Deklaration muss eine Adresse enthalten, deren Klasse (Eingang/Ausgang) mit der unvollständig angegebenen Adresse (%I*, %Q*) im Funktionsbaustein übereinstimmt.
oDer Datentyp muss ebenfalls mit der Deklaration im Funktionsbaustein übereinstimmen.
<Instanzvariablenpfad> AT %<I|Q><Speicherort> : <Datentyp>;
Konfigurationsvariablen, deren Instanzpfad nicht gültig ist, weil die Instanz nicht existiert, werden als Fehler gemeldet. Es wird auch ein Fehler ausgegeben, wenn keine endgültige Adresskonfiguration für eine Instanzvariable vorliegt, die einer unvollständigen Adresse zugewiesen wurde.
Beispiel für eine Variablenkonfiguration
Folgende Verwendung des Funktionsbausteins locio - siehe Beispiel oben - liegt in einem Programm vor:
PROGRAM PLC_PRG
VAR
locioVar1: locio;
locioVar2: locio;
END_VAR
In diesem Fall sieht eine gültige Variablenkonfiguration (in einer globalen Variablenliste) aus wie folgt:
VAR_CONFIG
PLC_PRG.locioVar1.xLocIn AT %IX1.0 : BOOL;
PLC_PRG.locioVar1.xLocOut AT %QX0.0 : BOOL;
PLC_PRG.locioVar2.xLocIn AT %IX1.0 : BOOL;
PLC_PRG.locioVar2.xLocOut AT %QX0.3 : BOOL;
END_VAR
HINWEIS: Änderungen an direkt zugeordneten E/A werden sofort im Prozessabbild angezeigt, wohingegen Änderungen an Variablen, die über VAR_CONFIG zugeordnet wurden, nicht vor Abschluss der entsprechenden Task erscheinen.
HINWEIS: Die Schlüsselwörter VAR_GLOBAL und VAR_CONFIG können in einer globalen Variablenliste nur exklusiv verwendet werden.