① 块声明 | 在块声明中,定义块的名称与类型 |
② 声明部分 | 在声明部分, 声明该块的参数和局部数据。声明部分已输入到空白块接口中。但用户可根 据需要进行移动、复制或删除各部分。 |
③ 侧栏 | 在侧栏中,可设置书签。 |
④ 行号 | 行号将显示在声明部分的左侧。 |
块声明和返回值使用的语法如下:
块类型 | 语法 | 示例 |
函数 (FC) | FUNCTION <名称> [:返回值数据类 型>]<声明> | FUNCTION "My_Function" : Int FUNCTION "My_Function" : Void |
函数块 (FB) | FUNCTION_BLOCK <名称><声明> | FUNCTION_BLOCK "My_FunctionBlock" |
组织块 (OB) | ORGANIZATION_BLOCK <名称><声明> | ORGANIZATION_BLOCK "My_OrganizationBlock" |
文本块接口分为不同的声明部分, 各声明部分的特征通过关键字对描述。允许使用不同部分,具体视块类型而定。
声明部分的顺序不重要。一个部分可在块接口中出现多次。
在下表中,列出了声明部分使用的语法结构:
声明部分 | 语法 |
Input 参数 | VAR_INPUT [] <声明> END_VAR |
Output 参数 | VAR_OUTPUT [] <声明> END_VAR |
In/out 参数 | VAR_IN_OUT [] <声明> END_VAR |
临时局部数据 | VAR_TEMP <声明> END_VAR |
静态局部数据 | VAR [] <声明> END_VAR |
常量 | VAR CONSTANT <声明> END_VAR |
属性 | 含义 |
RETAIN | 此部分中的变量具有保持性,即电源故障后变量值仍然可用。 |
DB_SPECIFIC | 在背景数据块中,可设置保持性。 |
声明变量和常量所用的语法如下:
声明 | 语法 | 示例 |
变量 | <名称> : <数据类型> [:= <值>]; | myBit : BOOL; myBit : BOOL := true; |
常量 | <名称> : <数据类型> := <值>; | PI : REAL := 3.141592; myInt: INT := INT#16#7FFF; myString: STRING := 'hello'; |
AT 声明 | <名称> AT <引用变量名称> : <数据类型>; | myReferenceToVar2 AT Var_2 : Int; |
ARRAY 声明
ARRAY 数据类型表示一个由数目固定且数据类型相同的元素组成的数据结构。
声明 ARRAY 所用的语法如下:
声明 | 语法 | 示例 |
ARRAY | <名称> : ARRAY [下限..上限] OF <数据类型> := [<初 始化列表>]; | MyARRAY_1 : ARRAY[0..7] OF BOOL; MyARRAY_1 : ARRAY[0..7] OF BOOL := [0]; |
限值可变的 ARRAY | <名称> : ARRAY [*] OF <数据类型>; | MyARRAY_1 : ARRAY[*] OF INT; MyARRAY_2 : ARRAY[*, *, *] OF INT; |
局部常量作 限值的 ARRAY | <名称> : ARRAY [#<常量名称>..#<常量名称>] OF <数 据类型> := [<初始化列表>]; | MyARRAY_1 : ARRAY[#LocConst1..#LocConst2] OF INT; MyARRAY_2 : ARRAY[1..#LocConst] OF INT; MyARRAY_3 : ARRAY[1..#LocConst] OF INT := [1,1,0,0]; |
全局常量作 限值的 ARRAY | <名称> : ARRAY ["<常量名称>".."<常量名称>"] OF <数 据类型> := [<初始化列表>]; | MyARRAY_1 : ARRAY["GlobConst1".."GlobCons t2"] OF INT; MyARRAY_2 : ARRAY[1.."GlobConst", 2..5,#l..#u] OF INT; MyARRAY_3 : ARRAY[1.."GlobConst"] OF INT:= [1,1,0,0]; |
STRUCT 数 据类型 ARRAY | <名称> : ARRAY[下限..上限] OF Struct <元素名称> : <数据类型>; <元素名称> : <数据类型>; ... END_Struct := [<初始化列表>]; | MyARRAY_1 : Array[0..1] OF Struct mem_1 : Int; mem_2 : Int; END_STRUCT := [ (2,4), (22,44) ]; |
UDT 数据类 型的 ARRAY | <名称> : ARRAY[下限..上限] OF "" := [<参 数列表>]; | MyARRAY_1 : Array[0..1] OF MyType := [ (2,4),(22,44) ]; |
STRUCT 声明
STRUCT 数据类型是指一种元素数量固定但数据类型不同的数据结构。
也可以基于 PLC 数据类型 (UDT) 创建结构。为此,需将 PLC 数据类型指定为一个结构化数据
类型。小系统将通过工具提示,显示该 PLC 数据类型的各个元素。
声明 | 语法 | 示例 |
STRUCT | <名称> : Struct <元素名称> : <数据类型> [:= <值>]; <元素名称> : <数据类型> [:= <值>]; ... END_Struct := (<初始化列表>); | myStruct : Struct mem_1 : Int; mem_2 : Int; mem_3 : BOOL; END_Struct := (6,0, TRUE) ; |
基于 PLC 数 据类型 (UDT) 的 STRUCT | <名称> : "" := (<初始化列表>); | myStruct : "myType" := (6,0, TRUE); |
STRING 和 WSTRING 的声明
STRING 和 WSTRING 数据类型存储一个字符串中的多个字符。允许在字符串中使用任何 ASCII码类型的字符。这些字符将使用一个单引号括起。
可选择指定初始化字符串的默认值。
操作数声明期间, 可在关键字 STRING 或 WSTRING 后使用方括号(例如 WSTRING[4])指定字符串的大长度。要声明大长度,则可输入一个值或使用局部/全局常量。
如果未指定大长度,则相应的操作数长度设置为标准的 254 个字符。
声明 | 语法 | 示例 |
STRING | : STRING [:= ]; | myString: STRING; myString: STRING := 'hello'; |
WSTRING | : WSTRING [:= ]; | myWstring: WSTRING; myWstring_var: WSTRING := 'helloWorld'; |
长度为定义的大值 的 STRING | : STRING[[Constant]]; | myString: STRING[10]; myString: STRING["globConst"]; myString: STRING[#locConst]; |