s7-300數(shù)據(jù)塊與變量表問題
林慧玲
發(fā)布于2014-04-09 09:50
1
0
標(biāo)簽:
變量表有輸入輸出的地址,像200中一樣有i0.0之類的,但300中的db中地址卻是一直增加的,那么300中的數(shù)據(jù)塊與變量表直接有什么聯(lián)系?。壳笤敿?xì)解答
問題補(bǔ)充:
那么他們跟符號(hào)表之間的關(guān)系呢?
佳答案
1.數(shù)據(jù)塊db
db用來(lái)存儲(chǔ)用戶數(shù)據(jù)及程序的中間變量,為全局變量。db的大容量,s7-300為32kb,s7-400為64kb。
db可分為共享數(shù)據(jù)塊(sharedb)、背景數(shù)據(jù)塊(instancedb)和用戶自定義數(shù)據(jù)(udt)類型的數(shù)據(jù)塊。
共享數(shù)據(jù)塊可作為所有程序使用的全局變量,在cpu允許的條件下,一個(gè)程序可創(chuàng)建任意多個(gè)db,每個(gè)db的大容量為64kb。默認(rèn)條件下,共享數(shù)據(jù)塊為掉電保持,在其屬性菜單中選中“nonretain”可以更改為掉電數(shù)據(jù)丟失。
背景數(shù)據(jù)塊與fb和sfb關(guān)聯(lián),也是全局變量。背景數(shù)據(jù)塊和共享數(shù)據(jù)塊相比,只保存與fb或sfb接口數(shù)據(jù)區(qū)(temp)相關(guān)的數(shù)據(jù)。背景數(shù)據(jù)塊中有一種比較特殊的數(shù)據(jù)塊,稱為多重背景數(shù)據(jù)塊。有關(guān)多重背景數(shù)據(jù)塊的用法和使用注意事項(xiàng)請(qǐng)參看《怎樣使用多重背景數(shù)據(jù)塊》。
基于udt的數(shù)據(jù)塊為全局變量,提供一個(gè)固定格式的數(shù)據(jù)結(jié)構(gòu),便于用戶使用。
2.變量表
變量表由參數(shù)(in、in_out、out)和局部變量?jī)纱箢惤M成,局部變量又包括靜態(tài)變量(stat)和臨時(shí)變量(temp)兩種。參數(shù)是調(diào)用快(fb)和被調(diào)用快(背景數(shù)據(jù)塊)間傳遞數(shù)據(jù),是邏輯塊的接口。靜態(tài)變量和臨時(shí)變量是僅供邏輯塊(這里指fb)本身使用,不能用作不同程序塊之間的數(shù)據(jù)接口,也就是說(shuō)靜態(tài)變量?jī)H用于本功能塊fb,并且只能在fb的背景數(shù)據(jù)塊中使用,它在plc運(yùn)行期間始終被存儲(chǔ)。s7將靜態(tài)變量定義在對(duì)應(yīng)的背景數(shù)據(jù)塊中,當(dāng)被調(diào)用快(fb快)運(yùn)行時(shí),能讀出或修改靜態(tài)變量(從對(duì)應(yīng)的di塊);被調(diào)用快運(yùn)行結(jié)束,靜態(tài)變量的數(shù)據(jù)保留在數(shù)據(jù)塊中。由于fb有自己的背景數(shù)據(jù)塊,所有的參數(shù)在其背景數(shù)據(jù)塊中都有對(duì)應(yīng)的存儲(chǔ)位置,靜態(tài)變量隨著fb打開起作用,隨著fb塊調(diào)用結(jié)束而關(guān)閉,而且stat(靜態(tài)變量)的數(shù)據(jù)必須在調(diào)用fb快時(shí)同時(shí)打開對(duì)應(yīng)的背景數(shù)據(jù)時(shí)才能修改或讀出,所以是無(wú)法在線修改stat中的數(shù)據(jù),也沒有什么快捷方法。
參考資料:
1.《step7數(shù)據(jù)塊的作用》
https://www.ad.siemens.com.cn/service/answer/solution.aspx?q_id=62640&cid=1029
2.《s7-300中變量表的作用》
https://www.ad.siemens.com.cn/service/answer/solution.aspx?q_id=39423&cid=1029