Deklaration von Funktionsbaustein-Instanzen in ST
VAR (* optional_begin *) CONSTANT RETAIN NON_RETAIN PUBLIC|PROTECTED|PRIVATE|INTERNAL (* optional_end *)
| VAR_INPUT (* optional_begin *) RETAIN NON_RETAIN (* optional_end *)
| VAR_OUTPUT (* optional_begin *) RETAIN NON_RETAIN (* optional_end *)
| VAR_GLOBAL (* optional_begin *) CONSTANT RETAIN NON_RETAIN (* optional_end *)
FB_instance_1, FB_instance_2, ..., FB_instance_n : FB-type := ( input_1 := initial-value, input_2 := initial-value, ..., output_n := initial-value);
FB_instance_A, FB_instance_B, ..., FB_instance_n: ARRAY [x..y] OF FB-type := [(input_1 := initial-value, input_2 := initial-value, ...), (input_1 := initial-value, input_2 := initial-value, ...), ...];
FB_instance_C, FB_instance_D, ..., FB_instance_n: ARRAY [x1..y1, x2..y2, x3..y3] OF FB-type; (* Initialisierungswerte sind hier ebenfalls möglich. *)
(* Zusätzliche Daten, wie partielle Adressen, sind ebenfalls für die Funktionsbaustein-Instanzen möglich. *)
END_VAR
VAR_IN_OUT
FB_instance_1, FB_instance_2, ..., FB_instance_n : FB-type;
FB_instance_A, FB_instance_B, ..., FB_instance_n: ARRAY [x..y] OF FB-type;
FB_instance_C, FB_instance_D, ..., FB_instance_n: ARRAY [x1..y1, x2..y2, x3..y3] OF FB-type;
END_VAR
VAR_EXTERNAL (* optional_begin *) CONSTANT (* optional_end *)
name_1, name_2, ..., name_n : FB-type;
name_5, name_6, ..., name_n : ARRAY [x..y] OF FB-type;
name_7, name_8, ..., name_n : ARRAY [x1..y1, x2..y2, x3..y3] OF FB-type;
END_VAR
Bedeutung |
||||||||||
Deklaration einer oder mehrerer →Funktionsbaustein-Instanzen, wobei FB_instance_1 usw. →IEC-Bezeichner sein müssen Das optionale Schlüsselwort RETAIN oder NON_RETAIN markiert alle Elemente dieses Abschnitts als →gepuffert oder nicht-gepuffert. RETAIN oder NON_RETAIN sind innerhalb der Deklaration eines Programms und der Deklaration eines Funktionsbausteins zulässig. Falls Funktionsbaustein- Instanzen im aktuellen Abschnitt mit RETAIN oder NON_RETAIN deklariert sind, informieren Sie sich über das Verhalten deren Variablen bgzl. RETAIN und NON_RETAIN im FAQ-Artikel "Wie wird das Schlüsselwort "RETAIN" für Funktionsbaustein-Instanzen berücksichtigt?". Mit dem optionalen Schlüsselwörter für die Sichtbarkeit definieren Sie die Sichtbarkeit aller Elemente dieses Abschnitts. Diese Schlüsselwörter sind nur innerhalb der Deklaration eines Funktionsbausteins zulässig.
Abweichungen von IEC-Norm
Falls Sie es bevorzugen, dass eine andere Sichbarkeit für Elemente ohne Schlüsselwort gilt, definieren Sie die logi.CAD 3-Konfigurationsvariable lc3.var.access.default und Wert
PUBLIC, PRIVATE oder INTERNAL. Dieser Wert gilt dann als neuer Standard. Beim Wert PROTECTED für die
Konfigurationsvariable ist weiterhin der Standard PROTECTED gültig, wie dies laut der →IEC-Norm vorgegeben ist.
Ein vorhandener →Funktionsbaustein (in →ST, →FBS oder →KOP erstellt ) ist als Typ für eine Funktionsbaustein-Instanz möglich. Bei der Deklaration einer Funktionsbaustein-Instanz im Abschnitt VAR...END_VAR, VAR_INPUT...END_VAR oder VAR_OUTPUT...END_VAR können Sie die →Eingangsvariablen und →Ausgangsvariablen des Funktionsbausteins initialisieren. Der Initialisierungswert muss mit dem Datentyp der deklarierten Variable übereinstimmen oder ein Datentyp sein, der aufgrund der impliziten Konvertierung in diesen umgewandelt werden kann. Sie können Funktionsbaustein-Instanzen auch mit Hilfe von ein- oder mehrdimensionalen ARRAYs deklarieren (auch dies ist analog zur "Deklaration eines ARRAY-Datentyps in ST") oder mit Hilfe von Strukturelementen deklarieren (siehe "Deklaration eines strukturierten Datentyps in ST"). Einschränkung und Hinweis zur Verwendung
|
logi.CAD 3 bietet außerdem die Möglichkeit, noch nicht festgelegte Speicherorte bei der Deklaration anzugeben. Siehe "Deklaration eines Sprachelements mit partieller Adresse in ST" für Details.
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.
VAR
Inst1, Inst2 : TOF;
(* Deklaration von zwei Instanzen des Funktionsbausteins
'TOF'
*)
Inst3 : Control := (IN1 :=
10
, IN2 :=
20
, T1 := T#3ms);
(* Deklaration einer Instanz des Funktionsbausteins
'Control'
mit Initialisierung der Eingänge
'IN1'
,
'IN2'
und
'T1'
*)
TONArr2 : ARRAY [
0
..
2
] OF TON := [(PT:=T#100ms), (PT:=T#50ms)];
(* Deklaration von
3
Instanzen des TON-Bausteins, bei den ersten
2
Instanzen wird der Eingang
'PT'
initialisiert *)
END_VAR
VAR_INPUT
I_TON : TON;
END_VAR
VAR_OUTPUT
O_TON : TON;
END_VAR
VAR_IN_OUT
IO_TMR : TOF;
END_VAR
PROGRAM Test
VAR
myFB : FB := (in1 := 1, c := (re := 1, im := 2));
END_VAR
END_PROGRAM
FUNCTION_BLOCK FB
VAR_INPUT
in1 : int;
c : complex;
END_VAR
END_FUNCTION_BLOCK
TYPE
complex : STRUCT
re : REAL;
im : REAL;
END_STRUCT;
END_TYPE