数据块(DB)用来分类存储设备或生产线中变量的值,数据块也是用来实现各逻辑块之间的数据交换、数据传递和共享数据的重要途径。数据块丰富的数据结构便于提高程序的执行效率。与逻辑块不同,数据块只有变量声明部分,没有指令部分。不同型号CPU允许建立数据块的块数和每个数据块可以占用的最大字节数均不同,具体的参数可以查看CPU的技术规范手册。
数据块分为共享数据块和背景数据块两种。共享数据块又称全局数据块,它不属于任何逻辑块。背景数据块是专门指定给某个功能块(FB)或者系统功能块(SFB)使用的数据块,它是FB或SFB运行时的工作存储区。
在共享数据块的变量声明表中可以定义变量的名称、数据类型、注释和变量初始值。
初始值为纯粹的组态值,当由UDT生成数据块或在全局数据块中生成新变量时,组态的初始值被用作为实际值。 可以通过菜单命令 “View > Data view” 来查看实际值。
初始值对于数据块或新声明的变量数据块来说,组态的有效次数仅为一次。如果变量已经存在,实际值将不会随着初始值的变化而发生改变。
对于CPU来说,生效的数据为实际值,初始值虽也可以下载到CPU中并可在线监控,但不会被CPU采用。
以下方法可以将初始值传送给 CPU 作为实际值:
图1 变量视图
图2 切换到数据视图
图3 执行初始化DB块
图4 是否使用初始值覆盖实际值
图5 执行初始化数据结果
3. 最后将数据块下载至CPU中,初始值就会替代实际值在CPU中生效。
注意:
在共享数据块的声明视图(Declaration view)中,用户可以添加或者删除DB变量,而在数据视图中(Data view)中,用户可以查看变量实际值,但不可以添加或者删除DB变量。
而在STEP 7中,如需装载实际值到初始值中,没有与之相关的菜单命令,可以通过如下操作来实现:
在TIA Protal中,数据块的使用和STEP 7基本一致,并且建立数据块也可以设置初始值,但是下载数据块时可以选择重新初始化使初始值生效,也可以选择无操作,则数据块的实际值会生效。
图6 下载时数据块初始化
TIA Protal中监视数据块,可以使用快照功能把数据块的实际值复制到初始值中
图7 使用快照
执行将快照值复制到起始值中功能,软件会提示是否覆盖所选块的所有值,点击确定。
图8 复制快照值到起始值
执行完将快照值复制到起始值功能,快照值会复制到起始值中,结果如下:
图9 执行快照复制结果
在建立DB块时,有时需要设置DB块属性:DB在PLC中写保护 、未链接和非掉电保持,如下图所示:
图10 STEP 7 中DB属性的设置
图11 TIA Protal V15 中DB属性的设置
1. 勾选DB在PLC中写保护
2. 勾选未链接
3. 不勾选非掉电保持
图12 315-2PN/DP保持性存储器的使用情况
数据块属性/内存区域 | 装载存储器(MMC) | 工作存储器(CPU) | 保持性存储器(CPU) |
非掉电保持不勾选(系统默认) | 是 | 否 | 是 |
非掉电保持勾选 | 是 | 是 | 否 |
未链接不勾选(系统默认) | 是 | 是 | 否 |
未链接勾选 | 是 | 否 | 否 |