Sektion: InstRefs
Die Sektion InstRefs definiert Referenzen von FB-Instanzen oder Strukturinstanzen.
SEC InstRefs //optional: yes, modifier: [UPDATE]
SEC InstRef : <identifier> //target: yes, optional: yes, modifier [HIDE,UPDATE]
Variable := <variable name>; //optional: no, type: InstancePath
Desc := <description>; //optional: no, type: text
Optional := TRUE/FALSE; //optional: yes, type: BoolFlag
END_SEC
...
SEC InstRef_Multi : <identifier> //optional: yes, modifier [HIDE,UPDATE]
Variable := <variable name>; //optional: no, type: InstancePath
Var_Count := <variable for count>; //optional: no, type: InstancePath
Desc := <description>; //optional: no, type: text
Cardinality := [<minimum> .. <maximum>]; //optional: no, type: Cardinality
END_SEC
END_SECDetails über die Syntax der Definitionstypen sind im Kapitel Syntax der Moduldeklaration beschrieben.
Inst_Ref.Variabledefiniert den Eingangs-Instanzpfad einer Variablen vom TypPOINTER TO <T>oder vom Typ<Interface>. (<T>ist ein beliebiger Struktur- oder FB-Typ.)InstRef_Multi.Variabledefiniert den Eingangs-Instanzpfad vom TypPOINTER TO POINTER TO <T>oder vom TypPOINTER TO <Interface>. (<T>ist ein beliebiger Struktur- oder FB-Typ.)Zwei verschiedene InstRef- oder InstRef-Multi Einträge dürfen nicht dieselbe Variable verwenden.
Das Target muss die Instanzreferenz eindeutig identifizieren. D.h. es darf keine zwei unterschiedlichen Instanzreferenz-Deklarationen (Abschnitt
InstRefundInstRef_Multi) geben, deren Target bis auf Groß-Kleinschreibung übereinstimmt.Die durch
Var_Countadressierte (ganzzahlige) Eingangsvariable darf nur einmal in allenVarCountsderSlot_MultioderInstRef_Multiverwendet werden. Integer-Variablen definiert durchVar_CountvonVarArraykönnen parallel zuVar_CountsvonSlot_MultioderInstRef_Multiverwendet werden.
SEC InstRef_Multi : Elements
Variable := piElems ;
Var_Count := uiArraySize ;
Desc := TL.Elems_Desc ;
Cardinality := [1 .. 10] ;
END_SECFolgende Deklaration muss im Deklarationsteil des Funktionbausteines stehen: uiArraySize : UINT; piElems : POINTER TO Interface;
piElems zeigt auf eine global angelegtes, korrekt initialisiertes ARRAY[0..uiArraySize-1] OF Interface bzw. OF POINTER TO <T>, das auf die einzelnen Instanzen zeigt. So kann mittels piElems[i] auf das i-te Objekt zugegriffen werden.