Skip to main content

部分:VarArray s

参数 VarArrays 允许创建具有可配置大小的数组。

SEC VarArrays                                       //optional: yes, modifier: [UPDATE]]
    SEC VarArray : <slot identifier>                    //optional: yes, modifier []
            Variable := <variable name>;                //optional: no, type: InstancePath
            Var_Count := <variable count>;              //optional: no, type: InstancePath
            Inst_Name := <instance name>;               //optional: yes, type: StringLiteral
            Pragmas := [<pragma1>, <pragma2>,...];      //optional: yes, type: Pragmalist
            Var_Decl_Flags := <Flag1> | <Flag2> | ... ; //optional: yes, type: Flags
    END_SEC
END_SEC

有关定义类型语法的详细信息,请参阅 部分 模块声明

. 规格:
  • 定义 Variable 是相对于模块功能块的输入实例路径。数据类型是 POINTER TO <ELEMTYPE><ELEMTYPE> 可以是任何数据类型。

  • 一个部分的目标 VarArray 必须唯一标识变量数组。

  • Var_Count 定义整数的输入实例路径 Variable 模块功能块的。为了在编辑器中可用以进行配置,必须将该变量定义为参数。或者变量 Var_Count Slot_Multi 或 InstRef_Multi 可用于定义该变量。多个 VarArray 可以使用相同的 Var_Count 多变的。如果数组大小为0,则不会生成数组,并且数组的指针将设置为0。

  • Inst_Name 定义创建的数组变量的名称。占位符 %Instancename%%VariablePath% (大小写拼写无关)将被替换为模块实例的实例名称。指针变量的实例路径。点将被下划线替代。如果省略定义则使用默认值 AC_ARRAY_%VariablePath%。用来。

  • 如果模块的两个不同的 VarArray 具有相同的值,则会产生错误 Inst_Name,其中不包括占位符 %VariablePath%

  • Pragmas 包含编译器编译指示列表,它将插入到生成的数组变量之前。

  • Var_Decl_Flags 可用于指定创建的数组的变量类型。可能的标志是 NONE, RETAIN, 和 PERSISTENT。这些标志被添加到变量部分 VAR_INPUT,其中创建了数组。 (例如:对于标志 RETAIN, VAR_INPUT RETAIN)。

26. 例子
SEC VAR_ARRAYS
        SEC VAR_ARRAY : NameList
                Variable  := psNameList;
                Var_Count := uiArraySize;
        END_SEC
        ...
        SEC PARAM : ArraySize
                Variable := uiArraySize;
                Name     := TL.ArraySize_Name;
                Desc     := TL.ArraySize_Desc;
        END_SEC
END_SEC

在其他声明中,功能块的声明部分必须包含: uiArraySize: UINT := 7; psNameList: POINTER TO STRING;