西门子S7-1200 PLC程序块之DB块介绍
关注“PLC发烧友 ”,一起涨知识!
回复:西门子全套,领西门子全系列电子资料包
一、数据块(DB)
数据块用于存储程序数据,分为全局数据块和背景数据块,全局数据块即全局有效,而背景数据块主要用于作为FB块的存储区。在全局DB块中可定义程序块中需要使用到的各种数据类型的变量,如基本数据类型的变量、复杂数据类型的变量等。
新建数据块时,默认“优化的访问块”且数据块中存储变量的属性是非保持性的。在优化的访问块状态下通过符号寻址的方式对数据块中的数据进行读写,若需要取消优化的块,在数据块的属性栏中取消勾选“优化的访问块”再进行编译时即可生成绝对地址。
在上图中DB块的访问设置里面除了优化的访问块设置外,还有“仅存储在装载内存中”及“在设备中写保护数据块”两项进行勾选设置。
仅存储在装载内存中:若勾选此选项时,DB块下载后只存储于装载存储区中,若需要将数据复制到工作存储区中需要使用“READ-DBL”指令来实现,同样如需要将数据写入到装载存储中的DB块中,需使用“WRIT-DBL”来实现
在设备中写保护数据块:若勾选此选项时,则此DB块只支持可读访问。对于背景数据块和函数块相关联,存储函数块的输入、输出、输入/输出、静态变量的参数,其变量只能在函数块中定义,不能在背景数据块中直接创建,程序在调用时,可为之分配一个已创建的背景DB块,也可以直接定义一个新的DB块,该DB块将自动生成并作为这个函数块的背景数据块
在建立DB块时,可以选择建立全局DB块或FB块的背景DB块
二、全局DB块的建立
全局DB全局范围都可以用,存储的是全局的数据;局部DB只能是某个FB块来使用,存储的是某个FB块的数据,执行完后一直保留。
在建立全局数据块后,优化的访问块在使用后是只有符号没有绝对地址的,如下图所示
在TIA博途中,默认DB块中建立的变量为优化的访问块,只能使用符号寻址,且数据块中存储变量的属性是非保持性的;若使用时需要用到绝对地址,则可以在块的属性中去掉 “优化的块访问”前面的勾选去掉后再重新编译即可生成绝对地址 见下图
三、背景数据块的创建
在建立背景DB之前,我们可以先添加FB块
FB块接口参数建立完成之后,我们建立背景DB块
此时生成的背景DB块的数据也是和FB块接口区的参数一致;如要把背景DB块参数显示绝对地址时,可在FB块的属性中把优化的块访问勾选去掉,再编译,这时背景DB块就有地址了。如下图
回复:西门子全套,领西门子全系列电子资料包
西门子PLC之DB块中的初始值和实际值的使用
首先说下数据块DB初始值和实际值的含义:
在数据块的变量声明表中可以定义变量的名称、数据类型那个、注释和变量的初始值。初始值为纯粹的组态值,当UDT生成数据块或在全局数据块中生成变量时,组态的初始值被作为实际值,可以通过菜单【视图】-【数据视图】来查看实际值。如下图所示:
初始值对于数据块或新声明的变量数据块来说,组态的有效次数仅为1次,如果变量已经存在,实际值将不会随着初始值的变化而发生改变,对于CPU来说,操作的数值为实际值,初始值虽然也可以下载到CPU中并可在线监控,但不会被CPU采用。
说的直白点就是我们操作的是实际值,在编程过程中在初次下载程序时,将初始值赋给实际值并下载到CPU中去,通过调试根据现场实际情况修改实际值,也就是说初始值只在初次下载程序时有用,在调试完后需要将修改后的实际值上产到离线值中。不然就会出现再次下载备份程序时造成实际值与运行数据不符的情况,下面做个仿真来看看。
上图是在线模式中的DBW6中实际值已经修改,与初始值不一致,必须要注意。下面我们看离线模式下的实际值DBW6。
因为我们没有上传更新的DB块,所以离线的数据与在线的不一致,若是再次下载程序,那么实际值将被重新更新为原来的初始值,这样对于运行的生产线是很危险的,因此,在调试完之后,一定要将修改后的DB块上传到PG上来。如下图所示操作。
希望大家在编程或PLC维护过程中一定要注意这个问题,其实,这也是小编前几天遇到的问题,手里的备份程序不是更新后的程序,在重新下载后,设备运行过程中出现了各种各样的问题,用了几天时间才慢慢处理好。若对设备工况很熟悉还好,要是不熟悉,估计就处理不了了。同时提醒调试人员及时准确备份程序。
觉得本文对你有帮助的可以收藏,也许某一天能对你有帮助。
喜欢本文的希望大家点赞、评论、转发。你们的支持是小编持续努力的动力。
相关问答
西门子PLCdb数据块用法?
西门子PLCdb数据块是用来存储程序中的数据的,它可以方便地管理和共享数据。以下是一些PLCdb数据块的常见用法:1.输入输出数据块(I/O):用于读取和写入外部硬...
西门子PLCdb数据块用法?
西门子PLCdb是用于存储和检索S7-300/400PLC程序数据的数据库。以下是一些常见的用法:1.创建数据块:使用Step7MicroWin编程软件,在“工具”菜单下选择...
西门子S7300中的DB是什么?
在西门子PLC编程中,DB块和变量都是用于存储数据的结构。DB块(DataBlock)是一种用于存储数据的结构块,可以在编程中定义和使用。DB块中可以存储各种数据类型...
plc的db块地址怎么看?
PLC的DB块地址可以通过连接到PLC的编程软件来查看。在编程软件中,可以打开PLC的工程文件,并查看DB块的详细信息,包括名称、数据类型和地址。在PLC编程中,DB...
西门子PLC数组编程方式array,在DB块定义好NAMEDTYPEARRCY[1。11],在程序里面具体怎么调用D[1],例子?
SM0.0PLC运行时一直为1,是常ON继电器。SM0.1PLC首次扫描为1,一个扫描周期。一般用于初始化程序。SM0.2若保持数据丢失,改为为1,一个扫描周期。SM0.3...SM0...
PLC中如何需改一个被FC块调用了的DB块?
一个功能块多次调用时,不能通过在线监视去监视,除非停掉其他的调用程序。如果想监视,在最下面的工具栏里查看一个功能块多次调用时,不能通过在线监视去监视,...
plc中db11什么意思?
PLC中DB是数据块。数据块是一组按顺序连续排列在一起的几组记录,是主存储器与输入、输出设备或外存储器之间进行传输的一个数据单位。是数据的物理记录,与数...
西门子PLCdb数据块用法?
西门子PLC中的DB(DataBlock)是一种数据块,用于存储和处理程序中的数据。DB可以包含一组相关的变量,并且可以在多个程序块之间共享和访问。下面是关于西门子PL...
西门子PLCdb数据块的用法是什么?
你说的这个应该是SIMENS840D集成的S7-300的PLC里面的DB块感觉分两种一种1、属于背景数据块作为FB块的背景数据块新建一个FB块必须有相应的DB块2、...
plc怎么把db28改成db27?
1.可以通过特定操作将PLC中的DB28改为DB27。2.PLC(可编程逻辑控制器)是一种用于自动化控制的设备,其中的DB(数据块)是用来存储和处理数据的。通过修改DB的...