部分:InstRefs
这部分 InstRefs
定义对 FB 实例或结构实例的引用。
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_SEC
有关定义类型语法的详细信息,请参阅 部分 模块声明。
Inst_Ref.Variable
定义类型变量的输入实例路径POINTER TO <T>
或类型<interface>
。 (<T>
是任何结构或FB类型)InstRef_Multi.Variable
定义类型的输入实例路径POINTER TO POINTER TO <T>
或类型POINTER TO <interface>
。 (<T>
是任何结构或FB类型)两个不同的 InstRef 或 InstRef-Multi 条目不得使用相同的变量。
目标必须唯一标识实例引用。这意味着不能存在两个不同的实例引用声明(部分
InstRef
和InstRef_Multi
) 具有相同的目标(大小写拼写不相关)。输入整型变量定义为
Var_Count
总共只能使用一次VarCounts
的Slot_Multi
或者InstRef_Multi
。仅由以下定义的整型变量Var_Count
的VarArray
可以并行使用Var_Counts
的Slot_Multi
或者InstRef_Multi
。
SEC InstRef_Multi : Elements Variable := piElems ; Var_Count := uiArraySize ; Desc := TL.Elems_Desc ; Cardinality := [1 .. 10] ; END_SEC
在其他声明中,功能块的声明部分必须包含: uiArraySize : UINT; piElems : POINTER TO Interface;
piElems
指向全局创建的、正确初始化的 ARRAY[0..uiArraySize-1] OF interface
或者 OF POINTER TO <T>
,它指向各个实例。结果,第 i 个对象可以通过以下方式访问: piElems[i]
。