西門子PLC S7-300/400系統(tǒng)塊OB\FB\FC\DB\SFC\SFB等簡介說明
發(fā)布日期:
2023-06-26

西門子PLC?S7-300/400的用戶程序結(jié)構(gòu)與S7-200有明顯的不同,可以使用線性化結(jié)構(gòu)以及功能調(diào)用式結(jié)構(gòu)與結(jié)構(gòu)化編程,。

采用調(diào)用式結(jié)構(gòu)與結(jié)構(gòu)化編程時,,程序以組織塊(OB)、程序塊(FC),、功能塊(FB),、系統(tǒng)程序塊(SFC)、系統(tǒng)功能塊(SFB),、數(shù)據(jù)塊(DB)等形式出現(xiàn),,其中,組織塊(OB)、程序塊(FC),、功能塊(FB)統(tǒng)稱為“邏輯塊(Logic Block)”,;系統(tǒng)程序塊(SFC)、系統(tǒng)功能塊(SFB)統(tǒng)稱為“系統(tǒng)塊”,。

注:快捷菜單中的其它兩項:數(shù)據(jù)類型和變量表,。數(shù)據(jù)類型(UDT)用于指定程序中數(shù)據(jù)元素的大小與格式;變量表(VAT)用來在程序調(diào)試和運行時修改和監(jiān)視變量的內(nèi)容(在地址欄中輸入地址后,,符號欄中會自動顯示在符號表中定義的符號),。

這幾種程序塊的功能簡要說明如下:

調(diào)用程序塊:OB,F(xiàn)B,,F(xiàn)C(可以調(diào)用除OB塊外的其它程序塊),;

被調(diào)用程序塊:FB,F(xiàn)C,,SFB,,SFC。

1,、組織塊OB

OB由系統(tǒng)自動調(diào)用,,并執(zhí)行用戶在OB塊中編寫的程序,所以O(shè)B的基本作用是調(diào)用用戶程序,。在OB塊中編寫程序的最大容量,,S7-300是16KB,S7-400是64KB,。除主程序循環(huán)OB1外,,其它OB均是由事件觸發(fā)的中斷。

2,、函數(shù)FC

函數(shù)FC有兩個作用:

(1)作為子程序用,;

(2)作為函數(shù)用,函數(shù)中通常帶形參,。

函數(shù)中程序的最大容量,,S7-300是16KB,S7-400是64KB,。

FC的形參通常也稱為接口區(qū),,參數(shù)類型分為輸入?yún)?shù),輸出參數(shù),,輸入/輸出參數(shù)和臨時數(shù)據(jù)區(qū),。

在編寫函數(shù)FC的輸出參數(shù)時,應(yīng)避免沒有直接輸出(否則,,可能輸出一個隨機值,,影響程序的判斷),。可以在函數(shù)的開始,,將字輸出參數(shù)清0,,位輸出參數(shù)復(fù)位。

3,、函數(shù)塊FB

FB與FC相比,,F(xiàn)B每次調(diào)用都必須分配一個背景數(shù)據(jù)塊,用來存儲接口數(shù)據(jù)區(qū)(TEMP類型除外)和運算的中間數(shù)據(jù),。其它程序可以直接使用背景數(shù)據(jù)區(qū)中的數(shù)據(jù),。

FB中程序的最大容量,S7-300是16KB,,S7-400是64KB,。

FB的接口區(qū)比FC多了一個靜態(tài)數(shù)據(jù)區(qū)(STAT),用來存儲中間變量,。

程序調(diào)用FB時,,形參不像FC那樣必須賦值,可以通過背景數(shù)據(jù)塊直接賦值,。

由于FB帶有背景數(shù)據(jù)塊,,輸出參數(shù)不會輸出隨機值,可以不在FB中編寫初始化程序,。

4,、數(shù)據(jù)塊DB

DB用來存儲用戶數(shù)據(jù)及程序的中間變量,為全局變量,。DB的最大容量,,S7-300為32KB,S7-400為64KB,。

DB可分為共享數(shù)據(jù)塊(Share DB),、背景數(shù)據(jù)塊(Instance DB)和用戶自定義數(shù)據(jù)(UDT)類型的數(shù)據(jù)塊。

共享數(shù)據(jù)塊可作為所有程序使用的全局變量,,在CPU允許的條件下,,一個程序可創(chuàng)建任意多個DB,每個DB的最大容量為64KB,。默認(rèn)條件下,,共享數(shù)據(jù)塊為掉電保持,,在其屬性菜單中選中“Non Retain”可以更改為掉電數(shù)據(jù)丟失,。如CPU中無足夠的內(nèi)部存儲空間保存數(shù)據(jù),可將指定的數(shù)據(jù)保存到共享數(shù)據(jù)塊,。存儲在共享數(shù)據(jù)塊中的數(shù)據(jù)可被其它任意一個塊調(diào)用(全局變量),。這一點和背景數(shù)據(jù)塊不同,,背景數(shù)據(jù)塊只能被指定的功能塊(FB)使用,保存在背景數(shù)據(jù)塊中的數(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ù)塊的用法和使用注意事項請參看《怎樣使用多重背景數(shù)據(jù)塊》,。

基于UDT的數(shù)據(jù)塊為全局變量,提供一個固定格式的數(shù)據(jù)結(jié)構(gòu),,便于用戶使用,。

5、系統(tǒng)函數(shù)(SFC)和系統(tǒng)函數(shù)塊(SFB)

SFC和SFB集成在CPU中,,相當(dāng)于系統(tǒng)提供的可供用戶程序調(diào)用的FC或FB,,實現(xiàn)與CPU系統(tǒng)相關(guān)的一些功能,如讀寫CPU時鐘等功能,。調(diào)用SFB需要背景數(shù)據(jù)塊,。

聲明:部分內(nèi)容來源于網(wǎng)絡(luò),如侵權(quán)請后臺留言聯(lián)系刪除,。