S7-300 CPU 数据块

数据块(DB)用来分类存储设备或生产线中变量的值,数据块也是用来实现各逻辑块之间的数据交换、数据传递和共享数据的重要途径。数据块丰富的数据结构便于提高程序的执行效率。与逻辑块不同,数据块只有变量声明部分,没有指令部分。不同型号CPU允许建立数据块的块数和每个数据块可以占用的最大字节数均不同,具体的参数可以查看CPU的技术规范手册。

数据块分为共享数据块和背景数据块两种。共享数据块又称全局数据块,它不属于任何逻辑块。背景数据块是专门指定给某个功能块(FB)或者系统功能块(SFB)使用的数据块,它是FB或SFB运行时的工作存储区。

数据块初始值与实际值(STEP 7)

在共享数据块的变量声明表中可以定义变量的名称、数据类型、注释和变量初始值。

初始值为纯粹的组态值,当由UDT生成数据块或在全局数据块中生成新变量时,组态的初始值被用作为实际值。 可以通过菜单命令  “View > Data view” 来查看实际值。

初始值对于数据块或新声明的变量数据块来说,组态的有效次数仅为一次。如果变量已经存在,实际值将不会随着初始值的变化而发生改变。

对于CPU来说,生效的数据为实际值,初始值虽也可以下载到CPU中并可在线监控,但不会被CPU采用。

以下方法可以将初始值传送给 CPU 作为实际值:

  • 1. 打开DB数据块,菜单栏切换到声明视图 “View > Declaration view ”,在“Initial value” 栏输入新的初始值;

  • 图1 变量视图

  • 2. 菜单栏切换到数据视图“View > Data view ”,然后,执行菜单命令 “Edit > Initialize Data Block”将所有“Intial value”栏的数值传送至“Actual value”栏。

  • 图2 切换到数据视图

    图3 执行初始化DB块

    图4 是否使用初始值覆盖实际值

    图5 执行初始化数据结果

    3. 最后将数据块下载至CPU中,初始值就会替代实际值在CPU中生效。

    注意:

    在共享数据块的声明视图(Declaration view)中,用户可以添加或者删除DB变量,而在数据视图中(Data view)中,用户可以查看变量实际值,但不可以添加或者删除DB变量。

    而在STEP 7中,如需装载实际值到初始值中,没有与之相关的菜单命令,可以通过如下操作来实现:

    STEP 7中,如何将数据块的实际值保存为初始值

    数据块初始值与实际值(TIA Protal)

    在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)
    非掉电保持不勾选(系统默认)
    非掉电保持勾选
    未链接不勾选(系统默认)
    未链接勾选