Deklaration von externen Variablen in ST

Syntax
VAR_EXTERNAL (* optional_begin *) CONSTANT (* optional_end *)
name_1, name_2, ..., name_n : data-type;
name_3, name_4, ..., name_n : STRING[length] := 'initial-value';
name_5, name_6, ..., name_n : ARRAY [x..y] OF type := [initial-value_1, initial-value_2, .., initial-value_n];
name_7, name_8, ..., name_n : ARRAY [x1..y1, x2..y2, x3..y3] OF data-type; (* Initialisierungswerte sind hier ebenfalls möglich. *)
END_VAR

Bedeutung

Deklaration einer bzw. mehrerer →externer Variablen, wobei name_1, name_2 usw. →IEC-Bezeichner sein müssen
Die Deklaration mehrerer solcher Abschnitte ist zulässig. Die Deklaration von externen Variablen ist innerhalb der Deklaration eines Funktionsbausteins, der Deklaration einer Funktion oder einer →Methode möglich. Solche externen Variablen ermöglichen den Zugriff auf →globale Variablen mit gleichem Namen und vom gleichen Typ. Diese globale Variablen sind in einem →Programm (im ST-Objekt) oder in einer →Ressource (im SPS-Objekt) deklariert.
Die Deklaration von externen Variablen ist aber auch innerhalb der Deklaration des Programms möglich. Solche externen Variablen ermöglichen den Zugriff auf globale Variablen, die in einer Ressource (im SPS-Objekt) deklariert sind.

Das optionale Schlüsselwort CONSTANT markiert alle externen Variablen dieses Abschnitts als →konstant (das Überschreiben solcher Werte ist dann während der Ausführung des Programms nicht mehr möglich). Falls die entsprechende globale Variable als konstant deklariert ist, muss die externe Variable mit dem Schlüsselwort CONSTANT als konstant deklariert werden.
Informieren Sie sich unter "Unterstützte Datentypen (in ST)", welche Datentypen Sie für die Deklaration angeben können. Es ist es auch möglich,

logi.CAD 3 bietet außerdem die Möglichkeit, zusätzliche Daten bei der Deklaration anzugeben. Siehe "Beschreibung, Kommentar oder JSON-String für Variablen und Datentypen angeben" für Details.

Beispiel 1
VAR_EXTERNAL
portSetting : INT;
upTime : TIME;
gVar1: ARRAY [1..2] of BOOL;
gVar2: STRING[10];
END_VAR
Beispiel 2
VAR_EXTERNAL
VALVE_POS : INT;
END_VAR