溫柔的郎
級別: 略有小成
精華主題: 0
發(fā)帖數(shù)量: 112 個
工控威望: 293 點(diǎn)
下載積分: 909 分
在線時間: 78(小時)
注冊時間: 2008-05-02
最后登錄: 2024-12-17
查看溫柔的郎的 主題 / 回貼
樓主  發(fā)表于: 2009-08-12 17:51
STEP7怎樣使用多重背景數(shù)據(jù)塊?

多重數(shù)據(jù)塊是數(shù)據(jù)塊的一種特殊形式,如在OB1中調(diào)用FB10,在FB10中又調(diào)用FB1和FB2,則只要FB10的背景數(shù)據(jù)塊選擇為多重背景數(shù)據(jù)塊就可以了,F(xiàn)B1和FB2不需要建立背景數(shù)據(jù)塊,其接口參數(shù)都保存在FB10的多重背景數(shù)據(jù)塊中。建立多重背景數(shù)據(jù)塊的方法是:在建立數(shù)據(jù)塊只要在數(shù)據(jù)類型選項中選擇“實(shí)例的DB”就可以了,見下例。
下面通過一例簡單介紹一下多重背景數(shù)據(jù)塊使用的一些注意事項和方法。
    例如,PLC控制兩臺電機(jī),且控制兩臺電機(jī)的接口參數(shù)均相同。一般的作法,我們可以編寫功能塊FB1控制兩臺電機(jī),當(dāng)控制不同的電機(jī)時,分別使用不同的背景數(shù)據(jù)塊就可以控制不同的電機(jī)了(如第一臺電機(jī)的控制參數(shù)保存在DB1中,第二臺電機(jī)的控制參數(shù)保存在DB2中,我們可以在控制第一臺電機(jī)調(diào)用FB1時以 DB1為背景數(shù)據(jù)就可以了,第二臺同樣以DB2為背景數(shù)據(jù)塊)。這樣就需要使用兩個背景數(shù)據(jù),如果控制的電機(jī)臺數(shù)更多,則會使用更多的數(shù)據(jù)塊。使用多重背景數(shù)據(jù)塊就是為了減少數(shù)據(jù)塊的數(shù)量。
    像這種情況,我們就可以利用多重背景數(shù)據(jù)塊來減少數(shù)據(jù)塊的使用量。拿本例來說,我們就可以在OB1中調(diào)用FB10,再在FB10中分別調(diào)用(每臺電機(jī)各調(diào)用一次)FB1來控制兩臺電機(jī)的運(yùn)轉(zhuǎn)。對于每次調(diào)用,F(xiàn)B1都將它的數(shù)據(jù)存儲在FB1的背景數(shù)據(jù)塊DB1中。這樣就無需再為FB1分配數(shù)據(jù)塊,所有的功能塊都指向FB10的數(shù)據(jù)塊DB10。原理圖如下:

    首先,我們需要先后插入一個功能塊FB10和數(shù)據(jù)塊DB10,DB10就為FB10的多重背景多重數(shù)據(jù)塊。如下圖:

         其次,需要在FB10中指定其所包含的背景數(shù)據(jù)塊。方法如下:在FB10局部變量定義窗口中,在“STAT”變量區(qū)中(必須在此變量區(qū)中)為每臺電機(jī)的控制取好名稱后,數(shù)據(jù)類型選擇FB ,確認(rèn)后,再把改為1,即功能塊FB1。如果你在變量表中已經(jīng)定義了FB1的符號,則會自動出現(xiàn)其符號名。地址一般由CPU根據(jù)FB1的接口參數(shù)數(shù)量自動計算得到,采用默認(rèn)值就可以了。

        因為控制兩臺電機(jī),所以需要在STAT中定義兩個這樣的變量。結(jié)果如下:

 
[ 此帖被sjm213在2009-08-13 08:52重新編輯 ]
溫柔的郎
級別: 略有小成
精華主題: 0
發(fā)帖數(shù)量: 112 個
工控威望: 293 點(diǎn)
下載積分: 909 分
在線時間: 78(小時)
注冊時間: 2008-05-02
最后登錄: 2024-12-17
查看溫柔的郎的 主題 / 回貼
1樓  發(fā)表于: 2009-08-12 18:03
經(jīng)過以上步驟,F(xiàn)B的背景數(shù)據(jù)塊DB10中就完全包含了1#和2#電機(jī)所需的數(shù)據(jù),如下圖,其中地址2.0~8.0是第一臺電機(jī)的接口區(qū)控制參數(shù),10.0~16.0是第二臺電機(jī)接口區(qū)控制參數(shù)。

        這時,在FB10的指令列表中“多重實(shí)例”中就會出現(xiàn)已經(jīng)添加的兩個局部背景,如下圖。


        在程序中就可以分別調(diào)用這兩個局部背景控制1號和2號電機(jī)了。程序如下:



     這樣,就可以在OB1中通過調(diào)用OB10就可以分別控制1#和2#電機(jī)了。如下圖:
[ 此帖被sjm213在2009-08-13 08:52重新編輯 ]
溫柔的郎
級別: 略有小成
精華主題: 0
發(fā)帖數(shù)量: 112 個
工控威望: 293 點(diǎn)
下載積分: 909 分
在線時間: 78(小時)
注冊時間: 2008-05-02
最后登錄: 2024-12-17
查看溫柔的郎的 主題 / 回貼
2樓  發(fā)表于: 2009-08-12 18:10
這是網(wǎng)上一個說調(diào)用多重北京數(shù)據(jù)塊的方法,參見
http://www.51plc.com/thread-13159-1-1.html
但是我又有疑問了,注意圖3處,選數(shù)據(jù)類型時選擇了FB<nr>,可我選中這個類型后系統(tǒng)一直顯示紅色,提示有錯誤,為什么呀???弄了一下午弄不懂。【W(wǎng)上那個實(shí)力錯了吧??大家來分析一下。
[ 此帖被sjm213在2009-08-13 08:51重新編輯 ]
sjm213
有小知識,無大學(xué)問。
級別: 論壇版主

精華主題: 7 篇
發(fā)帖數(shù)量: 5212 個
工控威望: 7436 點(diǎn)
下載積分: 158993 分
在線時間: 3172(小時)
注冊時間: 2007-11-21
最后登錄: 2024-12-22
查看sjm213的 主題 / 回貼
3樓  發(fā)表于: 2009-08-13 08:50
數(shù)據(jù)類型選為FB<nr>后,還要把<nr>改為您需要的號碼。例如直接寫為FB1就沒問題了。