简介
接口中包含有块所用局部变量和局部常量的声明。这些变量可分为以下两组:
在程序中调用时构成块接口的块参数。
用于存储中间结果的局部数据。
变量声明可用于定义程序中块的调用接口,以及块中需使用的变量/常量名称和数据类型。
函数块接口中还定义了分配给函数块的背景结构。
块参数
下表列出了块参数的类型:
类型 区域 功能 可用于
输入参数 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 写入变量。
设定值 将变量标记为设定值。设定值是指调试过程中可能需要微调的值。
该列仅适用于函数块的接口中。
监控 指示是否已为该变量的过程诊断创建有监视。
注释 说明元素的注释信息。
日韩贸易战使中国上游材料企业从中受益 我国各环节已陆续进入国际动力电池巨头供应链
如何理解TCP客户端通信
光电倍增管分压电路
信仰崩塌?诺基亚新机取消指纹识别!
家用高清播放器的选购
块接口中的有效数据类型和布局
半孔板是什么样子的
如何降低晶体管和变压器损耗,提高开关电源效率?牛人这样说
5G是产业互联网需求的最优解
中国研发首个为亚洲象量身订制的智能项圈,基于北斗导航和IOT技术
微软正在利用Google在Android Marshmallow中添加的一项功能
Android 8.0就要来了!华为P10将很快升级
什么样的声音称为噪声?
为何这款手机能获得市场的认可?三星会否因此取得反弹?
安森美半导体的1600万像素XGS传感器为工厂自动化和智能交通系统(ITS)带来高质量、低功耗成像
VR发展趋向于稳定,VR行业发展前景十分广阔
全球通信电源技术发展五大趋势浅析
多功能食品安全检测仪的操作步骤
CC1101工作原理 基于与STM32的CC1101接口移植
D类音频功率放大器设计基础,D类功放设计