深入解析西门子博途文本块接口的结构与功能

工业控制

1094人已加入

描述

① 块声明 在块声明中,定义块的名称与类型
② 声明部分 在声明部分, 声明该块的参数和局部数据。声明部分已输入到空白块接口中。但用户可根
据需要进行移动、复制或删除各部分。
③ 侧栏 在侧栏中,可设置书签。
④ 行号 行号将显示在声明部分的左侧。

 

plc

块声明和返回值使用的语法如下:

 

块类型 语法 示例
函数 (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 := [1,1,0,0,0,1,0,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];

 

例如:

plc

审核编辑:黄飞

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分