Skip to main content

部分:参数

在本节中,可以定义所有参数,这些参数必须可用于参数化 参数 模块实例的。

SEC Parameters                               //optional: yes, modifier: [UPDATE]
    SEC Param : <parameter identifier>         //optional: yes, modifier [HIDE,UPDATE]
            Variable := <variable name>;         //optional: yes, type: InstancePath
            VariableType := <data type>          //optional: yes, type: @JG???IEC-Typ
            Name := <parameter name>;            //optional: no, type: text
            Desc := <parameter description>;     //optional: no, type: text
            Group := <parameter group name>      //optional: yes, type: text
            MustBeSet := TRUE/FALSE              //optional: yes, type: BoolFlag
            Default := <default value>;          //optional: yes, type: LiteralOrConstant
            Max := <max value>;                  //Optional: yes, type: LiteralOrConstant
            Min := <min value>;                  //Optional: yes, type: LiteralOrConstant
    END_SEC
END_SEC

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

. 规格:
  • 本节的目标 Param 必须唯一标识参数。

  • 定义 Variable 是相对于模块功能块的输入实例路径。该变量将存储参数值,其类型定义了参数类型。如果 Variable 声明时,参数 VariableType 不必定义并且将被忽略。

  • 参数 VariableType 定义变量的 IEC 类型。如果 VariableType 已声明,但没有给出实际存在的 FB 变量 Variable 定义,即 Default 定义必须存在。该值必须匹配 VariableType

  • 参数 NameDesc 是字符串,必须在文本列表中定义。

  • 模块参数可以是基本类型和枚举,但不能是结构体和数组的实例。

  • 参数变量必须有 初始化值,它们在功能块的声明中定义。

  • 可选参数 Default 允许覆盖初始化值。对于初始化表达式和默认值,允许使用正确类型的文字和常量。这包括库参数。

  • 可选参数 Group 允许将参数分组。然后,每个组在模块编辑器中显示为单独的选项卡 参数

  • 使用可选参数 MustBeSet 可以强制用户在模块编辑器中设置参数。如果未设置该参数,则会出现错误消息。

  • 定义 最小最大限度 允许设置参数值的限制。仅对于数字类型或时间的变量才可以检查这些限制。所有其他变量类型都是不允许的,并且会产生错误。

20. 例子
SEC Parameters
        SEC Param : InParam1
                Variable := xIn1;
                VariableTyp := BOOL;
                Name := TL.Input1_Name;
                Desc := TL.Input1_Desc;
        END_SEC
END_SEC

变量 xIn1 必须在功能块的声明部分定义: xIn1 : BOOL := FALSE ;



初始化值

初始化值是在初始化时定义的变量的值。在 FB 的简单变量中,该值始终位于变量声明的右侧:

iVar : INT := 17 ;  // Initialisierungswert: 17

如果在结构中定义变量,则结构的初始化至关重要:

TYPE s : STRUCT
        i1 : INT := 7 ;
        r1 : REAL := 5 ;
END_STRUCT END_TYPE

模块 FB 中的声明:

structVar : s := (i1 := 2, r1 := 0.0) ;

在这种情况下,初始化值定义了 structVar.i12 (并不是 7)。

在嵌套结构中,必须考虑从模块 FB 到变量的路径中的所有初始化。变量的最外层初始化决定了其值。