Deklaration von Ein-/Ausgangsvariablen in ST

Syntax
VAR_IN_OUT
name_1, name_2, ..., name_n : data-type;
name_3, name_4, ..., name_n : STRING[length];
name_5, name_6, ..., name_n : ARRAY [x..y] OF type;
name_7, name_8, ..., name_n : ARRAY [x1..y1, x2..y2, x3..y3] OF type;
END_VAR

Bedeutung

Deklaration einer bzw. mehrerer →Ein-/Ausgangsvariablen, wobei name_1 , name_2 usw. →IEC-Bezeichner sein müssen.
Die Deklaration mehrerer solcher Abschnitte ist zulässig. Die Deklaration ist innerhalb der Deklaration eines →Funktionsbausteins, einer →Funktion oder einer →Methode möglich.

Ein →Datentyp ist als Typ für eine Variable möglich.

Informieren Sie sich unter "Unterstützte Datentypen", welche Datentypen Sie für die Deklaration von Variablen angeben können. Außerdem ist es möglich,

Gut zu wissen

images/s/b2ic8e/9012/1ca6q62/_/images/icons/emoticons/lightbulb.svg 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.

images/s/b2ic8e/9012/1ca6q62/_/images/icons/emoticons/lightbulb.svg In einem Abschnitt VAR_IN_OUT...END_VAR ist auch die Deklaration von Funktionsbaustein-Instanzen zulässig.

Beispiel
VAR_IN_OUT
In_out1 : INT;
In_out2: ARRAY [1..2] of BOOL;
In_out3 : STRING[10];
END_VAR

Beachten Sie Folgendes für die Verwendung von Ein-/Ausgangsvariablen:

  • →Zuweisungen auf Ein-/Ausgangsvariablen erfordern Ausdrücke auf der rechten Seite des Zuweisungsoperators ":=" , die auch auf der linken Seite des Zuweisungsoperators ":=" stehen könnten. Bei einer Variable muss es sich außerdem um eine Variable handeln, die nicht temporär ist (vergleiche: →temporäre Variable).

  • Bei Aufrufen von Bausteinen mit Ein-/Ausgangsvariablen müssen Sie formale Aufrufe verwenden (siehe FAQ-Artikel " Wann soll ich einen formalen Aufruf verwenden? Wann einen nicht-formalen Aufruf?" für weitere Informationen zum formalen Aufruf). Außerdem müssen die Ein-/Ausgangsvariablen immer vom gleichen Datentyp sein, da eine implizite Konvertierung für Ein-/Ausgangsvariablen nicht erlaubt ist. Die Zuweisung einer Ein-/Ausgangsvariable auf sich selbst ist im Aufruf nicht erlaubt – dieser Aufruf ist daher nicht möglich: MyFB(In_out1 := MyFB.In_out1);

  • Der Aufruf einer Funktionsbaustein-Instanz ist erlaubt, falls diese als Ein-/Ausgangsvariable deklariert wurde.

  • Der lesende Zugriff auf Ein-/Ausgangsvariablen ist außerhalb des Funktionsbausteins oder der Funktion nicht erlaubt. Ebenso ist eine Zuweisung darauf außerhalb des Aufrufs des Funktionsbausteins oder der Funktion nicht erlaubt.

  • Bei einem Aufruf einer Funktionsbaustein-Instanz ist es möglich, einer Ein-/Ausgangsvariablen eine →Eingangsvariable der gleichen Funktionsbaustein-Instanz zuzuweisen. logi.cals rät Ihnen jedoch davon ab, da es dadurch möglich ist, die Werte für Eingangsvariablen innerhalb des Funktionsbausteins zu verändern. Dies ist jedoch laut der →IEC-Norm nicht zulässig.