下面通過一例簡單介紹一下多重背景數據塊使用的一些注意事項和方法。
例如,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#電機了。如下圖: