s7300的db块详细说明_西门子db数据块详解

西门子PLC从300/400系列开始STEP7软件引入了DB块的概念,DB就是数据块,这个DB区有点象西门子200PLC中的V变量数据区,200中编程使用V区的点,300中就可以使用DB区来存储数据,以及触摸屏上位机这些的通讯也都主要使用DB变量,所以DB块是西门子PLC中一个非常重要的项目。

我还是简单来说一些吧。

先说两种数据块创建时的不同

当你新建一个项目没有一个FB块的时候,你在项目中插入一个DB块,就只有共享的DB这个选项。意思是,此时你就只能建立一个共享的数据块。当你插入一个FB块之后,你再次新建一个DB块的时候,就可以选择你共享还是背景,如图:

这个图片上DB2就成为了FB1的专属DB块了。是因为FB块在使用中规定必须有一个背景数据块,所以建立一个FB就必须要有DB块,而FC则不需要!在FB的调用中如果你没有事先建立DB块,那么调用的时候系统会要求你输入一个DB块,这个DB块会自然成为这个FB的背景数据块。

再来说一下使用中的不同点

DB块的使用详细说的话,可以说的太多了,所以这里我就举例来主要说明一下2种数据块的不同吧:

该图片上这个程序就是主程序OB1中调用FB1,DB2就是FB1的背景数据块,这里DB1就是共享数据块。可以看到FB1的实参输入点我是用的DB1块中的,输出是用的DB2中的一个点。

我们就来看一下这个程序中DB2和DB1中有什么不同,先要看一下FB1中的地址规划!

这个图片是我将FB1做成一个可以启动并自锁以及包含2个停止的通用程序块,方便在调用的时候赋予实参。in1,in2,in3还有out1,都是形参,是占用的FB块中的L区。

FB说完了,就该来看看DB1和DB2块中的内容:

从这个图片可以看到,DB1中只有1个地址就0.0这个是默认的声明内容,我只是创建了一个共享的数据块DB1,但是对DB1中的具体内容没有做声明,所以打开DB1显示就是这样。

DB2中可以看到有4个bool变量,这个和FB1中的4个变量是对应的,且这4个bool变量是被自动创建的。

还可以看到的信息是DB2中监控不上上边我程程序中使用的DB2.DBX0.6,原因也是因为我没有在DB2中事先把DB2.DBX0.6做规划!系统只生成了in1,in2,in3,out1这个几个和FB中对照的规划!这里说明了DB2虽然是FB2的背景数据块,但是不代表DB2中的其他变量是不能使用的,只不过一般编程的时候,为了不混乱,就不使用!

还值得说的是DB2中的in1的地址DB2.DBX0.0和DB1.DBX0.0的状态是对用的,换句话说,DB2就可以用来记录FB2外部实参的状态,这也是FB块引入DB块的一个初衷!

最后还强调一点:

如果你事先是先建立了空白的FB1,也建立了DB2去关联到FB1,那么你的FB1中被规划入内容后,FB1再去关联DB2的时候,系统会提示内容不一致了,让你更新关联的DB块,则DB2就会被自动更新,也会自动创建FB1中的变量。看下图:

这个图是我FB2关联到DB10,开始FB2和DB2都的空的,当我在FB2中建立数据后,再次关联DB10时候就弹出如上的对话框,询问是否要再次生成实例数据块,选择是就会自动更新DB10。

  • 5
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值