請教:FB中的DIX涵義
劉玉蓉
發(fā)布于2014-10-28 17:42
1
0
標(biāo)簽:
請教:FB中的DIX涵義
手頭有個通用的電機控制塊FB,編程語言使用的是梯形圖,在程序中出現(xiàn)了幾個常開點,標(biāo)注為DIX4.0 ,DIX4.1 等,我在FB的in,out,in_out,state中沒有發(fā)現(xiàn)相關(guān)標(biāo)注,我使用交叉索引,查詢DB塊使用情況,發(fā)現(xiàn)DB塊顯示DB?.DB 4.0和DB?.DB 4.1等,我沒這么用過,不知道這是什么用法?請高手指點一下這是什么用法呢?
部分梯形圖轉(zhuǎn)換的STL代碼如下:
程序段1:
O #CHECK
O #RESET
= #M10
= DIX 4.1
程序段2:
A #M10
= #M11
= DIX 4.0
= #RESETOUT
佳答案
如果你在FB的in,out,in_out,state中沒有發(fā)現(xiàn)相關(guān)標(biāo)注,我使用交叉索引,查詢DB塊使用情況,發(fā)現(xiàn)DB塊顯示DB?.DB 4.0和DB?.DB 4.1等,可以肯定你的通用電機塊FB使用了多重背景數(shù)據(jù)塊,DI為背景數(shù)據(jù)塊,DIX為背景數(shù)據(jù)塊中某個字節(jié)的位號,如DIX4.0為某個背景數(shù)據(jù)塊的第4個字節(jié)的0位;完整的數(shù)據(jù)塊調(diào)用時使用絕對地址方式為如DI4.DIX4.0就是打開背景數(shù)據(jù)塊為4的字節(jié)4中的0位;它實際上相當(dāng)于兩個指令OPN DI4 和L DIX4.0
在建立多重背景數(shù)據(jù)塊時,首先要建立底層功能塊FB,再建立上層FB快;如底層功能塊FB為FB1(局部背景調(diào)用,控制功能塊),F(xiàn)B10 為上層功能塊,DB3為共享數(shù)據(jù)塊,DB10 為多重背景數(shù)據(jù)塊。在執(zhí)行菜單命令I(lǐng)nset-S7 Block->Function Block, 創(chuàng)建一個上層功能塊時必須在FB10的屬性對話框內(nèi)激活”Multi-Instance capable”(默認(rèn)),然后在FB10的變量聲明表中為FB1的調(diào)用聲明不同名稱的靜態(tài)變量Stat,數(shù)據(jù)類型為FB1。如果你不首先建立底層功能塊FB,可能就會在定義上層功能塊中靜態(tài)變量Stat的數(shù)據(jù)類型時出錯;
在使用多重背景數(shù)據(jù)塊時應(yīng)注意以下問題:
首先應(yīng)生成需要多次調(diào)用的功能塊;
管理多重背景的功能塊必須設(shè)置為多重背景功能;
在管理多重背景的功能塊的變量聲明表中,為被調(diào)用的功能塊的每一次調(diào)用定義一個靜態(tài)(STAT)變量,以被調(diào)用的功能塊的名稱作為靜態(tài)變量的數(shù)據(jù)類型;
必須一個背景數(shù)據(jù)塊分配給管理多重背景的功能塊。背景數(shù)據(jù)塊中的數(shù)據(jù)是自動生成的;
多重背景只能聲明為靜態(tài)變量(聲明類型為Stat)
關(guān)于多重背景數(shù)據(jù)塊的使用,隨便買一本關(guān)于S7-300編程的書就有具體的例子,都有關(guān)于發(fā)電機組控制系統(tǒng)設(shè)計(使用多重背景),里邊有詳細(xì)的如何建立多重背景。