下面通过一例简单介绍一下多重背景数据块使用的一些注意事项和方法。
例如,plc控制两台电机,且控制两台电机的接口参数均相同。一般的作法,我们可以编写功能块FB1控制两台电机,当控制不同的电机时,分别使用不同的背景数据块就可以控制不同的电机了(如第一台电机的控制参数保存在DB1中,第二台电机的控制参数保存在DB2中,我们可以在控制第一台电机调用FB1时以DB1为背景数据就可以了,第二台同样以DB2为背景数据块)。这样就需要使用两个背景数据,如果控制的电机台数更多,则会使用更多的数据块。使用多重背景数据块就是为了减少数据块的数量。
像这种情况,我们就可以利用多重背景数据块来减少数据块的使用量。拿本例来说,我们就可以在OB1中调用FB10,再在FB10中分别调用(每台电机各调用一次)FB1来控制两台电机的运转。对于每次调用,FB1都将它的数据存储在FB1的背景数据块DB1中。这样就无需再为FB1分配数据块,所有的功能块都指向FB10的数据块DB10。原理图如下:
首先,我们需要先后插入一个功能块FB10和数据块DB10,DB10就为FB10的多重背景多重数据块。如下图:
其次,需要在FB10中指定其所包含的背景数据块。方法如下:在FB10局部变量定义窗口中,在“STAT”变量区中(必须在此变量区中)为每台电机的控制取好名称后,数据类型选择FB <nr>,确认后,再把<nr>改为1,即功能块FB1。如果你在变量表中已经定义了FB1的符号,则会自动出现其符号名。地址一般由CPU根据FB1的接口参数数量自动计算得到,采用默认值就可以了。
因为控制两台电机,所以需要在STAT中定义两个这样的变量。结果如下:
经过以上步骤,FB的背景数据块DB10中就完全包含了1#和2#电机所需的数据,如下图,其中地址2.0~8.0是第一台电机的接口区控制参数,10.0~16.0是第二台电机接口区控制参数。
这时,在FB10的指令列表中“多重实例”中就会出现已经添加的两个局部背景,如下图。
在程序中就可以分别调用这两个局部背景控制1号和2号电机了。程序如下:
这样,就可以在OB1中通过调用OB10就可以分别控制1#和2#电机了。如下图: