数据块(DB)介绍
(1)数据块(DB)简介
数据块用于存储用户数据及程序中间变量。新建数据块时,默认状态是优化的存储方式,且数据块中存储的变量是非保持的。数据块占用****CPU的装载存储区和工作存储区,与标识存储器的功能类似,都是全局变量,不同的是,M数据区的大小在CPU技术规范中已经定义,且不可扩展,而数据块存储区由用户定义,最大不能超过工作存储区或装载存储区。SIMATICS7-1500 PLC****的非优化数据最大数据空间为64KB。而优化的数据块的存储空间要大得多,但其存储空间与CPU的类型有关。
按照功能分,数据块****DB可以分为:全局数据块、背景数据块和基于数据类型(用户定义数据类型、系统数据类型和数组类型)的数据块。
(2)全局数据块**(DB)**及其应用
全局数据块用于存储程序数据,因此,数据块包含用户程序使用的变量数据。一个程序中可以创建多个数据块。全局数据块必须创建后才可以在程序中使用。
以下用一个例题来说明数据块的应用。
【例1】用数据块实现电动机的启停控制。
【解】①新建一个项目,本例为“块应用”,如图1所示:
图****1
在项目视图的项目树中,选中并单击“新添加的设备”(本例为PLC_1)→“程序块”→“添加新块”,弹出界面“添加新块”。
②如图2****所示:
图****2
在“添加新块”界面中,选中“添加新块”的类型为DB,输入数据块的名称,再单击“确定”按钮,即可添加一个新的数据块,但此数据块中没有数据。
③****打开“数据块1”,如图3所示:
图****3
在“数据块1”中,新建一个变量A,如是非优化访问数据块,其地址实际就是DB1.DBX0.0。
**④在“程序编辑器”中,输入如图4 **所示的程序,此程序能实现启停控制,保存程序。
图****4
数据块创建后,在全局数据块的属性中可以切换有的方式。在项目视图的项目树中,选中并单击数据块1”,单击鼠标右键,在弹出的快捷菜单中,单击“属性”选项,弹出如图5所示的界面,选中“属性”,如果取消“优化的块访问”则切换到“非优化存储方式”这种存储方式与S7-300/400兼容。
图****5
如楚”非优化存储方式”,可以使用绝对为式说回该数据块(如** DB1.DBX0.0)**,如是“优化存储方式”则只能采用符号方式访问该数据块(如”数据块1“.A)。
(3)数组DB及其应用
数组DB是一种特殊类型的全局数据块,它包含一个任意数据类型的数组。其数据类型可以为基本数据类型,也可以是PLC数据类型的数组。创建数组DB时,需要输入数组的数据类型和数组上限,创建完数组DB后,可以修改其数组上限,但不能修改数据类型。数组DB始终启用“优化块访问”属性,不能进行标准访问,并且为非保持型属性,不能修改为保持属性。
数组DB在SIMATIC S7-1500 PLC中较为常用,以下的例子是用数据块创建数组。
【例2】用数据块创建一个数组****ary[0..5],数组中包含6个整数,并编写程序把模拟量通道IW752:P采集的数据保存到数组的第3****个整数中。
【解】①新建项目“块应用(数组)”,进行硬件组态,并创建共享数组块DB1,如图****6所示,双击“DB1”打开数据块“DB1”。
图****6
②在DB1****中创建数组。数组名称ary,数组为****Array[0..5],表示数组中有6个元素,Int表示数组的数据为整数,如图7****所示,保存创建的数组。
图****7
③****在Main[OB1]中编写梯形图程序,如图8所示。
图****8