博途软件中多重背景块的建立_STEP7使用入门——多重背景数据块的意义及应用简介...

在一个项目中,现场许多设备通常具有类似的启停和控制方式。不同的仅仅是启、停的条件、控制参数等。因此,同类的设备,控制模型大致是一样的。我们通常会在一个FB中,编写一段代码来实现对同一类设备的控制。如图1所示,为一段简单的电机启、停控制程序。

图1 电机的启停控制模型

简单分析一下这段程序:

· #motor_on是电机的运行使能,通过SR触发器来决定其状态。#switch_on、#switch_off分别为启动和停止命令;#Failure为故障检测信号,当电机故障时,#Failure端反馈为'1'。

· 启停控制均很简单,当#switch_on端输入上升沿信号时,#motor_on=1,电机运行;当#switch_off端输入上升沿信号或电机故障时,#motor_on=0,电机停止;

· 程序段2为速度监控,比较实际速度与给定速度的偏差。

FB1块需要在OB1中调用,才能参与马达的控制。如果现场中有多个马达都适用FB1的控制模型时,需要为每个马达都调用一次FB1,同时每调用一次FB1都要为其分配一个背景数据块,每个数据块对应一个实际的马达的参数。如图2为控制两台马达的程序,每台马达都要分别一个背景数据块,如图3,DB1和DB2

图2 控制两台马达

图3 背景数据块

试想一下,一个工业现场,不可能只有几台马达,而是几十台甚至上百台也不止。如果通过调用FB1来控制每台马达,则需要为每台马达都分配一个独立的背景数据块。显然,当现场要控制的马达较多时,背景数据块的增加是非常大的。通过使用多重背景,可以很好的解决这一问题。

所谓的多重背景即创建一个更高级别的功能块(这里为FB10),并在其中调用未做任何修改的FB1作为'局部背景'。对每一个调用,子程序FB1会将其数据存储于与FB10关联的背景数据块(这里为DB10)中。这样一来,所有的相关数据都存储在DB10中,不用为FB1的多次调用分配额外的数据块。

FB10的具体编程方法如图4所示。在FB10的接口中,定义并关联若干个FB1类型的静态变量,本例中关联了4个,分别为M1、M2、M3和M4等4个马达控制实例,如图4蓝框所示。然后,分别为每个马达编写启停条件及运行参数。

FB10编写完成后,在OB1中调用并关联背景数据块DB10,如图5所示。这样,每个马达实例(M1~M4)的相关参数都集中存储在DB10中,如图6所示。对比图3和图6可以发现,DB2、DB3中的数据和DB10中的数据在结构上没差别,但DB10一个DB块就可囊括DB2和DB3中的数据。这必然节省了DB块的定义、分配和管理,简化了项目结构。

图4 多重背景FB10

图5 调用FB10,并关联DB10

图6 DB10

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值