部分: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]。