S7-1500 DB数据块的类型和使用方法2

电子说

1.3w人已加入

描述

1.4 通过PLC 数据类型创建DB

PLC数据类型是一个用户自定义的数据类型模板,可以由不同的数据类型组成,提供一个固定格式的数据结构,便于用户使用。PLC数据类型的变量在程序中作为一个整体变量使用。

  1. 创建PLC 数据类型

在“PLC 数据类型”文件夹中,单击“添加新数据类型”后,会创建和打开一个PLC 数据类型的声明表。选择该PLC 数据类型,并在快捷菜单中选择“重命名”命令,就可以给这个PLC数据类型重新命名。然后在声明表中声明变量及数据类型,完成PLC 数据类型的创建。比如创建一个名称为“PLC_DT_1”的PLC数据类型,在这个数据类型中包含3个变量,如图7所示。

数据

图7

  1. 创建固定数据结构的 DB 块

单击“添加新块”命令,选择数据块,并在类型的下拉列表中选择所创建的PLC 数据类型“PLC_DT_1”,如图8所示。

数据

图8

然后点击“确定”,生成与“PLC_DT_1”相同数据结构的DB块。

通过PLC 数据类型创建DB与通过系统数据类型创建DB的目的相同,一个是用户自定义的数据类型,一个系统给出的特定的数据类型,但是用户自定义的数据类型在全局DB块中的变量类型向导中是可见的。

1.5 数组DB

数组DB是一种特殊类型的全局数据块,它包含一个任意数据类型的数组。例如可以是基本数据类型,也可以是PLC数据类型(UDT)的数组,但这种数据块不能包含除数组之外的其它元素。创建数组DB时需要输入数组的数据类型和数组的上限。创建完数组DB后,可以在其属性中随时更改数组的上限,但是无法更改数据类型。数组DB始终启用“优化块访问”(Optimized block access)属性,不能进行标准访问,并且为非保持性属性,不能修改为保持性属性。数组DB的声明如图9所示。

数据

图9

数组DB块的名称与块中变量(只能有一个数组变量)的名称是相同的,如图10所示。

数据

图10

数组DB块中变量元素的访问需要使用“THIS[x]”替代变量的名称,例如图10中变量的第一个元素为DDD.THIS[0],如图11所示。

数据

图11

可以使用函数“ReadFromArrayDB”和“WriteTOArrayDB”等对数组DB进行类似间接寻址的访问,比如将数组DB中的变量值复制到“变量1”中,可以参考图12中的程序。

数据

图12

在DB13(数据块_7)中共有3个数组元素,由“Tag_58”的值决定将哪个元素的值复制给“数据块_10”中的“变量1”。示例中“Tag_58”的值为1,所以是将“数据块_7[1]”的值赋值给“变量1”。

1.6 什么类型的DB可以与VARIANT转换

S7-1500中使用VARIANT数据类型变量作为程序块中参数的传递,指令DB_ANY_TO_VARIANT或者VARIANT_TO_DB_ANY用于参数DB_ANY和VARIANT转换,DB_ANY的使用是有要求的,必须是格式固定的,使用要求参考下表(DB_ANY_TO_VARIANT的在线帮助)中的加粗标记。

输入变量 转换结果... 转换选项
DB_ANY 作为 PLC 数据类型或系统数据类型 (SDT) 的实例化数据块的数据块。 可以转换
DB_ANY ...作为 ARRAY 数据块的数据块。 可以转换
DB_ANY ...作为函数块或全局数据块中的实例化数据块 不可转换

所以说通常情况下,通过系统数据类型、用户数据类型创建的数据块、数组DB与全局DB访问和使用的方式是相同的,而在特殊的情快下,这些数据块类型是不可替代的。

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

全部0条评论

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

×
20
完善资料,
赚取积分