s7-300數(shù)據(jù)塊與變量表問題
林慧玲
發(fā)布于2014-04-09 09:50
1
0
標簽:
變量表有輸入輸出的地址,像200中一樣有i0.0之類的,但300中的db中地址卻是一直增加的,那么300中的數(shù)據(jù)塊與變量表直接有什么聯(lián)系啊?求詳細解答
問題補充:
那么他們跟符號表之間的關系呢?
佳答案
1.數(shù)據(jù)塊db
db用來存儲用戶數(shù)據(jù)及程序的中間變量,為全局變量。db的大容量,s7-300為32kb,s7-400為64kb。
db可分為共享數(shù)據(jù)塊(sharedb)、背景數(shù)據(jù)塊(instancedb)和用戶自定義數(shù)據(jù)(udt)類型的數(shù)據(jù)塊。
共享數(shù)據(jù)塊可作為所有程序使用的全局變量,在cpu允許的條件下,一個程序可創(chuàng)建任意多個db,每個db的大容量為64kb。默認條件下,共享數(shù)據(jù)塊為掉電保持,在其屬性菜單中選中“nonretain”可以更改為掉電數(shù)據(jù)丟失。
背景數(shù)據(jù)塊與fb和sfb關聯(lián),也是全局變量。背景數(shù)據(jù)塊和共享數(shù)據(jù)塊相比,只保存與fb或sfb接口數(shù)據(jù)區(qū)(temp)相關的數(shù)據(jù)。背景數(shù)據(jù)塊中有一種比較特殊的數(shù)據(jù)塊,稱為多重背景數(shù)據(jù)塊。有關多重背景數(shù)據(jù)塊的用法和使用注意事項請參看《怎樣使用多重背景數(shù)據(jù)塊》。
基于udt的數(shù)據(jù)塊為全局變量,提供一個固定格式的數(shù)據(jù)結構,便于用戶使用。
2.變量表
變量表由參數(shù)(in、in_out、out)和局部變量兩大類組成,局部變量又包括靜態(tài)變量(stat)和臨時變量(temp)兩種。參數(shù)是調用快(fb)和被調用快(背景數(shù)據(jù)塊)間傳遞數(shù)據(jù),是邏輯塊的接口。靜態(tài)變量和臨時變量是僅供邏輯塊(這里指fb)本身使用,不能用作不同程序塊之間的數(shù)據(jù)接口,也就是說靜態(tài)變量僅用于本功能塊fb,并且只能在fb的背景數(shù)據(jù)塊中使用,它在plc運行期間始終被存儲。s7將靜態(tài)變量定義在對應的背景數(shù)據(jù)塊中,當被調用快(fb快)運行時,能讀出或修改靜態(tài)變量(從對應的di塊);被調用快運行結束,靜態(tài)變量的數(shù)據(jù)保留在數(shù)據(jù)塊中。由于fb有自己的背景數(shù)據(jù)塊,所有的參數(shù)在其背景數(shù)據(jù)塊中都有對應的存儲位置,靜態(tài)變量隨著fb打開起作用,隨著fb塊調用結束而關閉,而且stat(靜態(tài)變量)的數(shù)據(jù)必須在調用fb快時同時打開對應的背景數(shù)據(jù)時才能修改或讀出,所以是無法在線修改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