[西门子] 西门子PLC1200中OB、FB、FC、DB概念详解(三)——数据块(DB)

[复制链接]
查看300 | 回复0 | 2024-4-30 21:47:57 | 显示全部楼层 |阅读模式
一、数据块(DB)

数据块用于存储各种类型的数据,其中包括操作的中间状态或 FB的其他控制信息参数,以及许多指令(如定时器和计数器)所需的数据结构。可以按位、字节、字或双字访问数据块。

DB块的绝对地址:

DB1.DBX0.0、DB1.DBB1、DB1.DBW2、DB1.DBD4。
分类:全局数据块和背景数据块。全局数据块即全局有效,而背景数据块主要用于作为FB块的存储区。在全局DB块中可定义程序块中需要使用到的各种数据类型的变量,如基本数据类型的变量、复杂数据类型的变量等。    新建数据块时,默认“优化的访问块”且数据块中存储变量的属性是非保持性的。在优化的访问块状态下通过符号寻址的方式对数据块中的数据进行读写,若需要取消优化的块,在数据块的属性栏中取消勾选“优化的访问块”再进行编译时即可生成绝对地址。


在上图中DB块的访问设置里面除了优化的访问块设置外,还有“仅存储在装载内存中”及“在设备中写保护数据块”两项可进行勾选设置。        仅存储在装载内存中:若勾选此选项时,DB块下载后只存储于装载存储区中,若需要将数据复制到工作存储区中需要使用“READ-DBL”指令来实现,同样如需要将数据写入到装载存储中的DB块中,需使用“WRIT-DBL”来实现。       在设备中写保护数据块:若勾选此选项时,则此DB块只支持可读访问。对于背景数据块和函数块相关联,存储函数块的输入、输出、输入/输出、静态变量的参数,其变量只能在函数块中定义,不能在背景数据块中直接创建,程序在调用时,可为之分配一个已创建的背景DB块,也可以直接定义一个新的DB块,该DB块将自动生成并作为这个函数块的背景数据块。     

二、DB块的应用

1. 创建DB块,在建立DB块时,可以选择建立全局DB块或FB块的背景DB块。

在项目树中此PLC的"程序块"下即可以添加新的数据块。



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

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

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

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

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

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



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



如果取消勾选数据块的属性对话框中的“优化的块访问”的复选框,则在数据块中可以看到“偏移量”列,并且系统在编译之后在该列生成每个变量的地址偏移量。设置成优化访问的数据块则无此列。默认情况下会有一些变量属性列未被显示出来,可以通过右键单击任意列标题,可在出现的菜单中选择显示被隐藏的列,见下图:



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

如下图所示:



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





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





3. 数据块的访问:

符号访问:<DB块名>.<变量名>;例如:"数据块_1".e;

绝对地址访问:<DB块号>.<变量长度及偏移量>:DB3.DBW4。

免责声明:本文部分文字内容来自网络,如有雷同,敬请联系作者删除!


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
您需要登录后才可以回帖 登录 | 注册哦

本版积分规则