Deklaration von Ein-/Ausgangsvariablen in ST
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; (* Zusätzliche Daten sind ebenfalls für die Variablen möglich. *) END_VAR
Bedeutung |
---|
Deklaration einer bzw. mehrerer →Ein-/Ausgangsvariablen, wobei 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,
|
logi.CAD 3 bietet außerdem die Möglichkeit, zusätzliche Daten bei der Deklaration anzugeben. Siehe "Beschreibung, Kommentar, JSON-String oder Typ für Variablen oder Datentypen angeben" für Details.
In einem Abschnitt
VAR_IN_OUT...END_VAR
ist auch die Deklaration von Funktionsbaustein-Instanzen zulässig.
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.