部分:参数
在本节中,可以定义所有参数,这些参数必须可用于参数化 参数 模块实例的。
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。参数
Name和Desc是字符串,必须在文本列表中定义。模块参数可以是基本类型和枚举,但不能是结构体和数组的实例。
参数变量必须有 初始化值,它们在功能块的声明中定义。
可选参数
Default允许覆盖初始化值。对于初始化表达式和默认值,允许使用正确类型的文字和常量。这包括库参数。可选参数
Group允许将参数分组。然后,每个组在模块编辑器中显示为单独的选项卡 参数 。使用可选参数
MustBeSet可以强制用户在模块编辑器中设置参数。如果未设置该参数,则会出现错误消息。定义 最小 和 最大限度 允许设置参数值的限制。仅对于数字类型或时间的变量才可以检查这些限制。所有其他变量类型都是不允许的,并且会产生错误。
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.i1 是 2 (并不是 7)。
在嵌套结构中,必须考虑从模块 FB 到变量的路径中的所有初始化。变量的最外层初始化决定了其值。