下麵通過一例簡單介紹一下多重背景數據塊使用的一些注意事項和方法。
例如,plc控製兩(liang) 台電機,且控製兩(liang) 台電機的接口參數均相同。一般的作法,我們(men) 可以編寫(xie) 功能塊FB1控製兩(liang) 台電機,當控製不同的電機時,分別使用不同的背景數據塊就可以控製不同的電機了(如第一台電機的控製參數保存在DB1中,第二台電機的控製參數保存在DB2中,我們(men) 可以在控製第一台電機調用FB1時以DB1為(wei) 背景數據就可以了,第二台同樣以DB2為(wei) 背景數據塊)。這樣就需要使用兩(liang) 個(ge) 背景數據,如果控製的電機台數更多,則會(hui) 使用更多的數據塊。使用多重背景數據塊就是為(wei) 了減少數據塊的數量。
像這種情況,我們(men) 就可以利用多重背景數據塊來減少數據塊的使用量。拿本例來說,我們(men) 就可以在OB1中調用FB10,再在FB10中分別調用(每台電機各調用一次)FB1來控製兩(liang) 台電機的運轉。對於(yu) 每次調用,FB1都將它的數據存儲(chu) 在FB1的背景數據塊DB1中。這樣就無需再為(wei) FB1分配數據塊,所有的功能塊都指向FB10的數據塊DB10。原理圖如下:
首先,我們(men) 需要先後插入一個(ge) 功能塊FB10和數據塊DB10,DB10就為(wei) FB10的多重背景多重數據塊。如下圖:
其次,需要在FB10中指定其所包含的背景數據塊。方法如下:在FB10局部變量定義(yi) 窗口中,在“STAT”變量區中(必須在此變量區中)為(wei) 每台電機的控製取好名稱後,數據類型選擇FB <nr>,確認後,再把<nr>改為(wei) 1,即功能塊FB1。如果你在變量表中已經定義(yi) 了FB1的符號,則會(hui) 自動出現其符號名。地址一般由CPU根據FB1的接口參數數量自動計算得到,采用默認值就可以了。
因為(wei) 控製兩(liang) 台電機,所以需要在STAT中定義(yi) 兩(liang) 個(ge) 這樣的變量。結果如下:
經過以上步驟,FB的背景數據塊DB10中就完全包含了1#和2#電機所需的數據,如下圖,其中地址2.0~8.0是第一台電機的接口區控製參數,10.0~16.0是第二台電機接口區控製參數。
這時,在FB10的指令列表中“多重實例”中就會(hui) 出現已經添加的兩(liang) 個(ge) 局部背景,如下圖。
在程序中就可以分別調用這兩(liang) 個(ge) 局部背景控製1號和2號電機了。程序如下:
這樣,就可以在OB1中通過調用OB10就可以分別控製1#和2#電機了。如下圖: