下面通過一例簡(jiǎn)單介紹一下多重背景數(shù)據(jù)塊使用的一些注意事項(xiàng)和方法。
例如,plc控制兩臺(tái)電機(jī),且控制兩臺(tái)電機(jī)的接口參數(shù)均相同。一般的作法,我們可以編寫功能塊FB1控制兩臺(tái)電機(jī),當(dāng)控制不同的電機(jī)時(shí),分別使用不同的背景數(shù)據(jù)塊就可以控制不同的電機(jī)了(如第一臺(tái)電機(jī)的控制參數(shù)保存在DB1中,第二臺(tái)電機(jī)的控制參數(shù)保存在DB2中,我們可以在控制第一臺(tái)電機(jī)調(diào)用FB1時(shí)以DB1為背景數(shù)據(jù)就可以了,第二臺(tái)同樣以DB2為背景數(shù)據(jù)塊)。這樣就需要使用兩個(gè)背景數(shù)據(jù),如果控制的電機(jī)臺(tái)數(shù)更多,則會(huì)使用更多的數(shù)據(jù)塊。使用多重背景數(shù)據(jù)塊就是為了減少數(shù)據(jù)塊的數(shù)量。
像這種情況,我們就可以利用多重背景數(shù)據(jù)塊來減少數(shù)據(jù)塊的使用量。拿本例來說,我們就可以在OB1中調(diào)用FB10,再在FB10中分別調(diào)用(每臺(tái)電機(jī)各調(diào)用一次)FB1來控制兩臺(tái)電機(jī)的運(yùn)轉(zhuǎn)。對(duì)于每次調(diào)用,F(xiàn)B1都將它的數(shù)據(jù)存儲(chǔ)在FB1的背景數(shù)據(jù)塊DB1中。這樣就無需再為FB1分配數(shù)據(jù)塊,所有的功能塊都指向FB10的數(shù)據(jù)塊DB10。原理圖如下:
首先,我們需要先后插入一個(gè)功能塊FB10和數(shù)據(jù)塊DB10,DB10就為FB10的多重背景多重?cái)?shù)據(jù)塊。如下圖:
其次,需要在FB10中指定其所包含的背景數(shù)據(jù)塊。方法如下:在FB10局部變量定義窗口中,在“STAT”變量區(qū)中(必須在此變量區(qū)中)為每臺(tái)電機(jī)的控制取好名稱后,數(shù)據(jù)類型選擇FB <nr>,確認(rèn)后,再把<nr>改為1,即功能塊FB1。如果你在變量表中已經(jīng)定義了FB1的符號(hào),則會(huì)自動(dòng)出現(xiàn)其符號(hào)名。地址一般由CPU根據(jù)FB1的接口參數(shù)數(shù)量自動(dòng)計(jì)算得到,采用默認(rèn)值就可以了。
因?yàn)榭刂苾膳_(tái)電機(jī),所以需要在STAT中定義兩個(gè)這樣的變量。結(jié)果如下:
經(jīng)過以上步驟,F(xiàn)B的背景數(shù)據(jù)塊DB10中就完全包含了1#和2#電機(jī)所需的數(shù)據(jù),如下圖,其中地址2.0~8.0是第一臺(tái)電機(jī)的接口區(qū)控制參數(shù),10.0~16.0是第二臺(tái)電機(jī)接口區(qū)控制參數(shù)。
這時(shí),在FB10的指令列表中“多重實(shí)例”中就會(huì)出現(xiàn)已經(jīng)添加的兩個(gè)局部背景,如下圖。
在程序中就可以分別調(diào)用這兩個(gè)局部背景控制1號(hào)和2號(hào)電機(jī)了。程序如下:
這樣,就可以在OB1中通過調(diào)用OB10就可以分別控制1#和2#電機(jī)了。如下圖: