简介
接口中包含有块所用局部变量和局部常量的声明。这些变量可分为以下两组:
在程序中调用时构成块接口的块参数。
用于存储中间结果的局部数据。
变量声明可用于定义程序中块的调用接口,以及块中需使用的变量/常量名称和数据类型。
函数块接口中还定义了分配给函数块的背景结构。
块参数
下表列出了块参数的类型:
类型 | 区域 | 功能 | 可用于 |
---|---|---|---|
输入参数 | Input | 其值由块读取的参数。 | 函数、函数块和某些类型的组织块 |
输出参数 | Output | 其值由块写入的参数。 | 函数和函数块 |
输入/输出参数 | InOut | 调用时由块读取其值,执行后又由块写入其值的参数。 | 函数和函数块 |
返回值 | 返回 | 返回到调用块的值。 | 功能 |
根据打开块的类型不同,可能显示其它的区域。
局部数据
下表列出了局部数据的类型:
类型 | 区域 | 功能 | 可用于 |
---|---|---|---|
临时局部数据 | Temp | 用于存储临时中间结果的变量。只保留一个周期的临时局部数据。如果使用临时局部数据,则必须确保在要读取这些值的周期内写入这些值。否则,这些值将为随机数。 |
函数、函数块和组织块 注: 临时局部数据不显示在背景数据块中。 |
静态局部数据 | Static | 用于在背景数据块中存储静态中间结果的变量。静态数据会一直保留到被覆盖,这可能在几个周期之后。在此代码块中作为多重实例调用的块名称,也将存储在静态局部数据中。 | 函数块 |
常量 | 常量 | 在块中使用且带有声明符号名的常量。 |
函数、函数块和组织块 注: 局部常量不显示在背景数据块中。 |
块接口中的有效数据类型
S7-1200 中块接口的有效数据类型
下表列出了接口各区域可分配的参数数据类型。
区域 |
标准 数据类型 |
ARRAY STRUCT STRING / WSTRING DT |
ARRAY [*] | VOID | VARIANT |
---|---|---|---|---|---|
组织块 | |||||
Temp | √ | √ | - | - | √ |
常量 | √ | √ (1) (2) | - | - | - |
函数块 | |||||
Input | √ | √ | - | - | √ |
Output | √ | √ | - | - | - |
InOut | √ | √ (1) | √ (4) | - | √ |
Static | √ | √ | - | - | - |
Temp | √ | √ | - | - | √ |
常量 | √ | √ (1) (2) | - | - | - |
函数 | |||||
Input | √ | √ (1) | √ (4) | - | √ |
Output | √ | √ (1) | √ (4) | - | √ |
InOut | √ | √ (1) | √ (4) | - | √ |
Temp | √ | √ | - | - | √ |
返回 | √ | √ (3) | - | √ | - |
常量 | √ | √ (1) (2) | - | - | - |
(1) 不能在这些区域中声明 STRING 和 WSTRING 的长度。STRING 标准长度通常为 254;WSTRING 标准长度为 16832。不允许声明 MyString[3] 格式。在这些区域中,仅允许在具有优化访问权的块中声明 WSTRING。 (2) 不允许使用数据类型为 ARRAY 或 STRUCT 的常量。 (3) WSTRING 数据类型的函数值不得超过 1022 个字符。 (4) 固件版本 V4.2 及更高版本中,ARRAY[*] 可用于具有优化访问的块中。 |
S7-1500 中块接口的有效数据类型
下表列出了接口各区域可分配的参数数据类型。
区域 |
标准 数据类型 |
ARRAY STRUCT STRING / WSTRING DT |
ARRAY[*] | 参数类型 | VOID | DB_ANY | POINTER | ANY | VARIANT | REF_TO |
---|---|---|---|---|---|---|---|---|---|---|
组织块 | ||||||||||
Temp | √ | √ | - | - (4) | - | √ | - | √ (3) | √ | √ |
常量 | √ | √ (1) (5) | - | - | - | - | - | - | - | - |
函数块 | ||||||||||
Input | √ | √ | - | √ | - | √ | √ | √ | √ | - |
Output | √ | √ | - | - | - | √ | - | - | - | - |
InOut | √ | √ (1) | √(7)(8) | - (4) | - | √ | √ | √ | √ | - |
Static | √ | √ | - | - | - | √ | - | - | - | - |
Temp | √ | √ | - | - (4) | - | √ | - | √ (3) | √ | √ |
常量 | √ | √ (1)(5) | - | - | - | - | - | - | - | - |
函数 | ||||||||||
Input | √ | √ (1) | √ (7) | √ | - | √ | √ | √ | √ | √ |
Output | √ | √ (1) | √ (7) | - | - | √ | √ | √ | √ | √ |
InOut | √ | √ (1) | √ (7) | - (4) | - | √ | √ | √ | √ | - |
Temp | √ | √ | - | - (4) | - | √ | - | √ (3) | √ | √ |
返回 | √ | √ (6) | - | - | √ | √ | √ | √(2) | - | √ |
常量 | √ | √ (1) (5) | - | - | - | - | - | - | - | - |
(1) 不能在这些区域中声明 STRING 和 WSTRING 的长度。STRING 标准长度通常为 254;WSTRING 标准长度为 16832。不允许声明 MyString[3] 格式。在这些区域中,仅允许在具有优化访问权的块中声明 WSTRING。 (2) 在 SCL 中,ANY 不允许作为函数值。 (3) ANY 只能用于“Temp”区域中的标准访问块。 (4) “INSTANCE”参数类型是“TEMP”和“InOut”区域中唯一允许出现的例外。 (5) 不允许使用数据类型为 ARRAY 或 STRUCT 的常量。 (6) WSTRING 数据类型的函数值不得超过 1022 个字符。 (7) 固件版本 V2.0 及更高版本中,ARRAY[*] 可用于具有优化访问的块中。 (8) 仅当未设置属性“在 IDB 中设置”(Set in IDB) 时,ARRAY[*] 才可用。 |
块接口的布局
块接口的布局
下图显示了块接口的结构。具体的列数和区域取决于块类型。
各列的含义
下表列出了各列的含义。可根据需要显示或隐藏各列。显示的列数取决于 CPU 系列和打开对象的类型。
列 | 说明 |
---|---|
单击该符号,可将元素拖放到程序中作为操作数。 | |
名称 | 元素的名称。 |
数据类型 | 元素的数据类型。 |
偏移 |
块中变量的相对地址。仅标准访问的块中,才显示该列。 注: SIMATIC 系统库中的许多指令都具有“优化块访问”属性,因此不占用任何固定存储器地址。即使将这些指令用作标准访问块中的多重实例,这些指令也不显示偏移量。 |
默认值 |
代码块接口中可预分配给特定变量的值,或局部常量的值。 对于变量,可选择是否指定默认值。如果未指定任何值,则使用指定数据类型的预定义值。例如,BOOL 类型的预定义值为“false”。 在相应的背景数据块中,将变量的默认值应用为初始值。在背景数据块中,可使用实例特定的起始值对这些值进行替换。 而在块接口中常量通常为声明的默认值。这些常量不显示在背景数据块中,也无法在此指定实例特定的值。 |
保持性 |
将变量标记为具有保持性。 即使在关断电源后,保持性变量的值也将保留不变。 该列仅在具有优化访问特性的函数块接口中显示。 |
在 HMI 工程组态中可见 | 指示 HMI 选择列表中是否默认显示变量。 |
从 HMI/OPC UA 可访问 | 指示在运行过程中,HMI/OPC UA 是否可访问该变量。 |
从 HMI/OPC UA 可写 | 指示在运行过程中,是否可从 HMI/OPC UA 写入变量。 |
设定值 |
将变量标记为设定值。设定值是指调试过程中可能需要微调的值。 该列仅适用于函数块的接口中。 |
监控 | 指示是否已为该变量的过程诊断创建有监视。 |
注释 | 说明元素的注释信息。 |
-
接口
+关注
关注
33文章
8580浏览量
151044 -
函数
+关注
关注
3文章
4329浏览量
62576 -
数据类型
+关注
关注
0文章
236浏览量
13618 -
Inout
+关注
关注
0文章
4浏览量
6188 -
S7-1500
+关注
关注
3文章
300浏览量
6392
原文标题:博途:块接口概述
文章出处:【微信号:gh_a8b121171b08,微信公众号:机器人及PLC自动化应用】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
评论