块接口中的有效数据类型和布局

描述

简介

接口中包含有块所用局部变量和局部常量的声明。这些变量可分为以下两组:

在程序中调用时构成块接口的块参数。

用于存储中间结果的局部数据。

变量声明可用于定义程序中块的调用接口,以及块中需使用的变量/常量名称和数据类型。

函数块接口中还定义了分配给函数块的背景结构。

块参数

下表列出了块参数的类型:

类型 区域 功能 可用于
输入参数 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[*] 才可用。
 

块接口的布局

块接口的布局

下图显示了块接口的结构。具体的列数和区域取决于块类型。 

S7-1500

各列的含义

下表列出了各列的含义。可根据需要显示或隐藏各列。显示的列数取决于 CPU 系列和打开对象的类型。

说明
  单击该符号,可将元素拖放到程序中作为操作数。
名称 元素的名称。
数据类型 元素的数据类型。
偏移 块中变量的相对地址。仅标准访问的块中,才显示该列。
注:
SIMATIC 系统库中的许多指令都具有“优化块访问”属性,因此不占用任何固定存储器地址。即使将这些指令用作标准访问块中的多重实例,这些指令也不显示偏移量。
默认值 代码块接口中可预分配给特定变量的值,或局部常量的值。
对于变量,可选择是否指定默认值。如果未指定任何值,则使用指定数据类型的预定义值。例如,BOOL 类型的预定义值为“false”。
在相应的背景数据块中,将变量的默认值应用为初始值。在背景数据块中,可使用实例特定的起始值对这些值进行替换。
而在块接口中常量通常为声明的默认值。这些常量不显示在背景数据块中,也无法在此指定实例特定的值。
保持性 将变量标记为具有保持性。
即使在关断电源后,保持性变量的值也将保留不变。
该列仅在具有优化访问特性的函数块接口中显示。
在 HMI 工程组态中可见 指示 HMI 选择列表中是否默认显示变量。
从 HMI/OPC UA 可访问 指示在运行过程中,HMI/OPC UA 是否可访问该变量。
从 HMI/OPC UA 可写 指示在运行过程中,是否可从 HMI/OPC UA 写入变量。
设定值 将变量标记为设定值。设定值是指调试过程中可能需要微调的值。
该列仅适用于函数块的接口中。
监控 指示是否已为该变量的过程诊断创建有监视。
注释 说明元素的注释信息。

 

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

全部0条评论

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

×
20
完善资料,
赚取积分