S7-1200 数据块的使用

硬件环境:

S7-1200 CPU V4.4(6ES7 214-1AG40-0XB0)

软件环境:

(1)Windows 10 Enterprise 64位

(2)STEP7 Professional V16

步骤

1. 创建DB块: 在项目中添加了S7-1200设备之后,在项目树中此PLC的"程序块"下即可以添加新的数据块。

图1 DB块的创建

在打开的"添加新块"窗口下选择数据块。 以下是对此窗口下各项配置的说明:

名称:此处可以键入DB块的符号名。如果不做更改,那么将保留系统分配的默认符号名。例如此处为DB块分配的符号名为“数据块_1”;

类型:此处可以通过下拉菜单选择所要创建的数据块类型-全局数据块、背景数据块,或是基于UDT以及SDT的全局数据块(参见链接UDTSDT)。如果要创建背景数据块,下拉菜单中列出了此项目中已有的FB供用户选择。

语言:对于创建数据块,此处不可更改。

编号:默认配置为“自动”,即系统自动为所生成的数据块配分块号。当然也可以选择“手动”,则“编号”处的下拉菜单变为高亮状态,以便用户自行分配DB块编号。

当以上的数据块属性全部定义完成,点击“确定”按钮即创建完成一个数据块。用户可以在项目树中看到刚刚创建的数据块,如图2所示:

图2 项目树中的DB块

2. 为数据块定义变量:双击打开数据块即可逐行添加变量,如图3 所示。

图3 DB块的编辑


如果取消勾选数据块的属性对话框中的“优化的块访问”的复选框,参考图10,则在数据块中可以看到“偏移量”列,并且系统在编译之后在该列生成每个变量的地址偏移量。设置成优化访问的数据块则无此列。

默认情况下会有一些变量属性列未被显示出来,可以通过右键单击任意列标题,可在出现的菜单中选择显示被隐藏的列,见图4:

图4 显示隐藏列

表1是对数据块变量定义的所有列的说明:

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

说明

单击符号以移动或复制变量。例如,可以将变量拖动到程序中作为操作数。

名称

变量名称。

数据类型

变量的数据类型。

偏移量

在非优化的数据块中,显示变量的地址。

默认值

更高级别代码块接口中或 PLC 数据类型中变量的默认值。
起始值

在启动时变量采用的值。创建数据块时,代码块中定义的默认值将用作起始值。之后,即可使用实例特定的起始值替换所用的默认值。

监视值

CPU 中的当前数据值。只有当在线连接可用并单击“监视”按钮时,此列才会出现。

快照

显示从设备加载的值。快照功能参见链接: DB 快照

保持性

将变量标记为具有保持性。即使在关断电源后,保持性变量的值也将保留不变。

在 HMI 工程组态中可见

显示默认情况下,该变量在 HMI 选择列表中是否显示。

从 HMI/OPC UA 可访问

指示在运行过程中,HMI/OPC UA 是否可访问该变量。

从 HMI/OPC UA 可写

指示在运行过程中,是否可从 HMI/OPC UA 写入变量。

设定值

设定值是指在调试过程中可能需要微调的值。经过调试之后,这些变量的值可作为起始值传输到离线程序中并进行保存。

监控

指示是否已为该变量的过程诊断创建有监视。

注释

用于说明变量的注释信息。

表1 DB块中的列属性

定义变量的数据类型:可以为变量定义基本数据类型,复杂数据类型(时间与日期,字符串,结构体,数组等),PLC数据类型(如用户自定义数据类型),系统数据类型和硬件数据类型。可以直接键入数据类型标识符(例如:使用高速计数器功能时,调用指令CTRL_HSC_EXT指令,其中CTRL引脚填写的数据类型为“HSC_Count”,需要手动直接输入。),或者通过该列中的选择按钮选择。如下图所示:

图5 定义数据类型

DB块在线的状态如图6所示,其中红色方框中是DB块中的按钮功能,具体介绍详见表2:

图6 DB块的按钮

表2中介绍了DB块中各个按钮的功能:

按钮 功能 说明
插入行

在当前变量的前面插入一行。

添加行

在当前变量的后面添加一行。

复位启动值

将为实例特定的起始值指定的所有值复位到其默认值。

更新接口

除去数据块的不一致性,不一致可能是由于更改了所使用的函数块或PLC数据类型所引起。

扩展模式

显示结构化数据类型的所有元素。

在线监视变量

显示变量当前在 CPU 中的实际值。

激活存储区预留

在CPU中,加载对当前数据块的更改而不会丢失当前值。详细用法可以参考“下载但不重新初始化”,链接

创建实际值的快照

在离线项目中,将当前的实际值保存为快照。该快照通常会捕获数据块中所有变量的实际值。 快照功能参见链接: DB 快照

使用快照重新初始化实际值

将快照作为实际值加载到 CPU 中。之后,CPU 将这些值用作在线程序中的实际值。 快照功能参见链接: DB 快照

将快照值用作起始值

在离线程序中,将快照复制到起始值中。下次从 STOP 切换为 RUN 时,程序将以新的起始值运行。

可以复制所有起始值,也可仅复制标识为“设定值”变量的起始值。快照功能参见链接: DB 快照

使用起始值重新初始化实际值

重新初始化变量的实际值。起始值将直接写入 CPU 工作存储器中。

可以复制所有实际值,也可仅复制标识为“设定值”变量的实际值。

表2 DB块中的按钮功能

DB块数据的保持性:对于可优化访问的数据块,其中的每个变量可以分别设置其保持与否;而标准数据块仅可设置其中所有的变量保持或不保持,不能对每个变量单独设置。如图7和图8所示:

图7 标准数据块中仅可设置所有的变量保持或不保持

图8 可优化访问的数据块中可以分别设置每个变量的保持性

在程序中添加DB块中的变量,可以采用拖拽的方式,鼠标左键单击DB块,在“详细视图”中显示DB块中的所有变量,选中相应的变量(例如:变量D),按住鼠标左键,将变量D直接拖动到MOVE指令的OUT1引脚即可,如图9所示:

图9 在程序中添加DB块中的变量

3. 数据块的访问:

符号访问:<DB块名>.<变量名>;例如:"Data_Block_1".A;

绝对地址访问:<DB块号>.<变量长度及偏移量>:DB1.DBX0.0;DB1.DBB0;DB1.DBW0;DB1.DBD0。

注意:复杂数据类型只能符号寻址。

4. 数据块的属性:

(1)双击打开数据块,可以看到起始值列,点击“全部监视”按钮,可以看到监视值列:

起始值:在启动时变量采用的值。创建数据块时,代码块中中定义的默认值将用作起始值。之后,即可使用实例特定的起始值替换所用的默认值。可选择是否指定起始值。如果未指定任何值,

则在启动时变量将采用默认值。如果也没有定义默认值,将使用相应数据类型的有效默认值。例如,将 BOOL 的默认值指定为"FALSE"。当CPU下载程序时,下载的是数据块的起始值。

监视值:CPU 中的当前数据值。只有当在线连接可用并单击"全部监视"按钮时,此列才会出现。当CPU上传程序时,上传的是数据块的监视值。当执行下载并复位PLC程序时,下载的是数据块的起始值,

并将监视值复制为起始值。

(2)右键点击数据块,在"属性->属性"中,可以看到数据块的如下属性,如图10所示:

仅存储在装载内存中:激活时,数据块仅存储在装载存储器中,不占用工作存储器的空间,且不链接到程序。处理数据块的指令位于"扩展指令 -> 数据块控制“中。

在设备中写保护数据块:指示数据块在目标系统中是否为只读,且在程序运行期间是否无法将其覆盖。

优化的块访问:在带有优化访问功能的块变量声明中,仅包含数据元素的符号名称。系统将自动优化并管理地址。这将提高 CPU 的性能并同时有效防止来自诸如 SIMATIC HMI 的访问错误。

数据块从OPC UA可访问:如果选中该复选框,则该数据块可作为完整的对象从 OPC UA 进行访问。之后,可为 OPC UA 分别发布或锁定该数据块的各个变量。

数据块可通过 Web 服务器访问:如果选中该复选框,则数据块可作为一个完整的对象从 Web 服务器进行访问。之后,可对该数据块的各变量进行分别发布或锁定。

图10 DB属性