Skip to main content

Variablenkonfiguration - VAR_CONFIG

Sie verwenden die „Variablenkonfiguration“, um Variablen von Funktionsbausteinen auf das Prozessabbild zu mappen. Bei der Deklaration im Funktionsbaustein weisen Sie die Variablen den Ein-/Ausgängen von Geräten zu, ohne die vollständige Adresse anzugeben. Die Angabe der exakten Adressen erfolgt später zentral für alle Funktionsbaustein-Instanzen der Applikation in einer globalen Variablenliste mit VAR_CONFIG-Deklarationen. Diese globale Variablenliste mit den VAR_CONFIG-Deklarationen wird Variablenkonfiguration genannt.

Wichtig

Änderungen von Variablen, die direkt den E/A-Adressen zugewiesen sind, zeigt CODESYS unmittelbar im Prozessabbild an. Änderungen von Variablen, die über eine Variablenkonfiguration abgebildet sind, zeigt CODESYS erst am Ende der zuständigen Task an.

Deklaration der Variablen im Funktionsbaustein

Bei der Deklaration der Variablen im Funktionsbaustein deklarieren Sie die Variablen zwischen den Schlüsselwörtern VAR und END_VAR. Dabei ordnen Sie den Variablen unvollständige Adressen zu. Diese unvollständigen Adressen kennzeichnen Sie mit einem *.

Syntax:

<Bezeichner> AT %<I\|Q>*:<Datentyp>;

Beispiel 19. Beispiel

Es werden 2 lokale E/A-Variablen definiert: die Eingangsvariable xLocIn und die Ausgangsvariable xLocOut.

FUNCTION_BLOCK locio
VAR
  xLocIn AT %I*: BOOL := TRUE;
  xLocOut AT %Q*: BOOL;
END_VAR


Die endgültige Definition der Adressen erfolgt in der Variablenkonfiguration in einer globalen Variablenliste.

In der globalen Variablenliste, die Sie als Variablenkonfiguration verwenden, geben Sie die Deklarationen der Variablen mit den exakten Adressen zwischen den Schlüsselwörtern VAR_CONFIG und END_VAR ein.

Die VAR_CONFIG-Variablen müssen Sie mit dem vollständigen Instanzpfad angeben, wobei die einzelnen POU- und Instanznamen durch jeweils einen Punkt getrennt sind. Die Deklaration muss eine Adresse enthalten, deren Klasse (Eingang/Ausgang) mit der Klasse der unvollständig angegebenen Adresse (%I*, %Q*) im Funktionsbaustein übereinstimmt. Der Datentyp muss ebenfalls übereinstimmen.

Syntax:

<instance variable path> AT %<I\|Q><location>: <data type>;

Wenn die Instanz des Pfads nicht existiert, erfolgt eine Fehlermeldung. CODESYS gibt auch einen Fehler aus, wenn keine Adresskonfiguration für eine Variable vorliegt, die Sie mit einer unvollständigen Adresse deklariert haben.

Beispiel 20. Beispiel

Folgende Verwendung des Funktionsbausteins locio des obigen Beispiels liegt in einem Programm vor:

PROGRAM PLC_PRG
VAR
  locioVar1: locio;
  locioVar2: locio;
END_VAR

Dann würde eine korrekte Variablenkonfiguration in einer globalen Variablenliste beispielsweise folgendermaßen aussehen:

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


Anlegen einer Variablenkonfiguration

Voraussetzungen: Sie haben ein Projekt geöffnet, das eine Steuerungskonfiguration mit einem Feldgerät besitzt. Das Projekt enthält ein Programm, zum Beispiel PLC_PRG, und einen Funktionsbaustein, zum Beipsiel func1. Das Feldgerät besitzt Ein- und Ausgänge. In den Optionen für den Deklarationseditor ist die textuelle Ansicht ausgewählt.

Im Funktionsbaustein Variablen auf Geräte-E/As mit unvollständigen Adressen zuweisen und anschließend eine Variablenkonfigurgation erstellen.

  1. Doppelklicken Sie im Gerätebaum auf den Funktionsbaustein, zum Beispiel func1.

    Der Editor des Bausteins öffnet sich.

  2. Geben Sie im Deklarationsteil zwischen den Schlüsselwörtern VAR und END_VAR ein: xLocIn AT %I*: BOOL := TRUE; und in die nächste Zeile XLocOut AT %Q*:BOOL;

    Sie haben eine Eingangsvariable xLocIn deklariert und diese der unvollständigen Eingangsadresse %I* eines Feldgeräts zugewiesen. Die deklarierte Ausgangsvariable haben Sie der unvollständigen Ausgangsadresse %Q* zugewiesen.

  3. Klicken Sie auf das Objekt PLC_PRG im Gerätebaum und fügen Sie im Deklarationsteil des Programms zwischen VAR und END_VAR zum Beispiel folgende Deklarationen ein:

    locioVar1: func;

    locioVar2: func;

  4. Selektieren Sie das Objekt Application im Gerätebaum, wählen Sie den Kontextmenü-Befehl Objekt hinzufügen → Globale Variablenliste und klicken Sie im Dialog Globale Variablenliste hinzufügen auf die Schaltfläche Hinzufügen.

    Die globale Variablenliste wird im Gerätebaum hinzugefügt und ihr Editor öffnet sich.

  5. Ändern Sie das Schlüsselwort VAR_GLOBAL in VAR_CONFIG um.

  6. Wählen Sie den Befehl Deklarationen → Alle Instanzpfade hinzufügen.

    Die folgende Instanzpfade werden hinzugefügt:

    PLC_PRG.logioVar1.xLocIn AT %I*;
    PLC_PRG.logioVar2.xLocIN AT %I*;
    PLC_PRG.logioVar1.xLocOut AT %Q*;
    PLC_PRG.logioVar2.xLocOut AT %Q*;
  7. Jetzt ersetzen Sie die unvollständigen Adressangaben %I* und %Q* mit den exakten vollständigen Adressen.