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. |
Falls Sie den Body des Basis-Funktionsbausteins in einem abgeleiteten Funktionsbaustein aufrufen wollen, verwenden Sie SUPER();. Siehe unter "Deklaration eines Funktionsbausteins in ST" für ein Beispiel.
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.
Der Aufruf einer Funktionsbaustein-Instanz, die mit Hilfe eines vierdimensionalen ARRAYs deklariert ist, ist analog dazu. *)
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 10 wird dem Eingang IN1 der Funktionsbaustein-Instanz Inst1 zugewiesen. |
Inst2a[5].IN1 := 10; |
Der Wert 10 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 vo n 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. |