部分:参数
在本节中,可以定义所有参数,这些参数必须可用于参数化 参数 模块实例的。
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 到变量的路径中的所有初始化。变量的最外层初始化决定了其值。