Aufruf der Funktionsbaustein-Instanz in ST
FB_instance_1(); (* Aufrufe von Funktionsbaustein-Instanzen ohne Parameterliste *) FB_instance_2[n](); (* Diese Funktionsbaustein-Instanz ist mit Hilfe von 'ARRAY [x..y] OF' deklariert. *) FB_instance_2[n, n](); (* Diese Funktionsbaustein-Instanz ist mit Hilfe von 'ARRAY [x1..y1, x2..y2] OF' deklariert. *) FB_instance_3 (input_1:=x1,input_2:=x2,...,input_n:=xn, output_1=>y1,output_2=>y1,...,output_n=>yn); (* Aufruf einer Funktionsbaustein-Instanz mit Parameterliste *)
Bedeutung |
---|
formaler →Aufruf der →Funktionsbaustein-Instanzen (= formaler Funktionsbaustein-Aufruf) ohne oder mit Parameterliste Die Parameterliste beim formalen →Aufruf kann aus folgenden Elementen bestehen:
Als Alternativen können Sie auch die folgenden Varianten beim Aufruf verwenden:
Erweiterung zur IEC-Norm Als Erweiterung zur →IEC-Norm können:
Im FAQ-Artikel "Wann soll ich einen formalen Aufruf verwenden? Wann einen nicht-formalen Aufruf?" finden Sie Informationen darüber, wann der formale Aufruf im Vergleich zum nicht-formalen Aufruf zu verwenden ist. |
Inst1(); Inst2a[5](); (* Aufruf einer Funktionsbaustein-Instanz, die mit Hilfe eines eindimensionalen ARRAYs deklariert ist *) Inst2b[1, 3] (); (* Aufruf einer Funktionsbaustein-Instanz, die mit Hilfe eines zweidimensionalen ARRAYs deklariert ist *) Inst2c[2, 4, 1] (); (* Aufruf einer Funktionsbaustein-Instanz, die mit Hilfe eines dreidimensionalen ARRAYs deklariert ist *) Inst3 (IN1 := 10, IN2 := 20, T1 := T#3ms, OUT => result); (* Aufruf der Funktionsbaustein-Instanz 'Inst4' mit Zuweisungen auf 2 Array-Elemente und Zuweisung eines Strukturelements *) (* Annahmen: Eingangsvariable 'arrVar' ist als Array-Variable mit Array-Unterbereich [1..2] deklariert. *) (* Ausgangsvariable 'out' ist basierend auf einem strukturierten Datentyp mit Strukturelement 'Elem1' deklariert. *) Inst4(arrVar[1] := 16#01, arrVar[2] := 16#02, out.Elem1 => result1);
Beispiele für unvollständige Parameterliste beim formalen Aufruf für eine Funktionsbaustein-Instanz und Zugriffe vom Aufruf getrennt:
Syntax | Bedeutung |
---|---|
Inst1.IN1 := 10; | Der Wert wird dem Eingang IN1 der Funktionsbaustein-Instanz Inst1 zugewiesen. |
Inst2a[5].IN1 := 10; | Der Wert wird dem Eingang IN1 der Funktionsbaustein-Instanz Inst2a zugewiesen, die mit Hilfe von ARRAY [1..5] OF deklariert ist. |
Inst1(IN2 := 20); | Die Funktionsbaustein-Instanz Inst1 wird aufgerufen. Dabei wird der Wert 20 dem Eingang IN2 zugewiesen, der Eingang IN1 behält den Wert 10 .
|
result := Inst1.OUT; | Wegen des gelesenen Ausgangs OUT von Inst1 wird der Wert 30 (unter der Annahme, dass Inst1 die Werte addiert) der lokalen Variable result zugewiesen. |
Inst1(IN2 := fun2(EN := FALSE)); | Die Funktionsbaustein-Instanz Inst1 wird aufgerufen.Da EN := FALSE , wird fun2 nicht aufgerufen und dem Eingang IN2 nicht zugewiesen. Daher behält der Eingang IN2 den Wert 20 vom letzten Aufruf. Detaillierte Informationen über das Verhalten von Aufrufen mit einer Zuweisung auf den Eingang EN finden Sie unter "Zuweisungen in ST". |