STEP7 程序塊的類型及區(qū)別(總結(jié))
在SIEMENS S7-300/400系列PLC中有多種程序塊,如下圖(在管理器右邊的空白區(qū)域點(diǎn)擊右鍵),主要有
:組織塊(OB),功能塊(FB),功能(FC),數(shù)據(jù)塊(DB)及系統(tǒng)功能(SFC)和系統(tǒng)功能塊(SFB)
等。
注:快捷菜單中的其它兩項(xiàng):數(shù)據(jù)類型和變量表。數(shù)據(jù)類型(UDT)用于指定程序中數(shù)據(jù)元素的大小與格
式;變量表(VAT)用來(lái)在程序調(diào)試和運(yùn)行時(shí)修改和監(jiān)視變量的內(nèi)容(在地址欄中輸入地址后,符號(hào)欄中
會(huì)自動(dòng)顯示在符號(hào)表中定義的符號(hào))。
這幾種程序塊的功能簡(jiǎn)要說(shuō)明如下:
說(shuō)明:
調(diào)用程序塊:OB,FB,F(xiàn)C(可以調(diào)用除OB塊外的其它程序塊);
被調(diào)用程序塊:FB,F(xiàn)C,SFB,SFC。
1、組織塊OB
OB由系統(tǒng)自動(dòng)調(diào)用,并執(zhí)行用戶在OB塊中編寫(xiě)的程序,所以OB的基本作用是調(diào)用用戶程序。
在OB塊中編寫(xiě)程序的最大容量,S7-300是16KB,S7-400是64KB。
除主程序循環(huán)OB1外,其它OB均是由事件觸發(fā)的中斷。
2、函數(shù)FC
函數(shù)FC有兩個(gè)作用:(1)作為子程序用;(2)作為函數(shù)用,函數(shù)中通常帶形參。
函數(shù)中程序的最大容量,S7-300是16KB,S7-400是64KB。
FC的形參通常也稱為接口區(qū),參數(shù)類型分為輸入?yún)?shù),輸出參數(shù),輸入/輸出參數(shù)和臨時(shí)數(shù)據(jù)區(qū)。
在編寫(xiě)函數(shù)FC的輸出參數(shù)時(shí),應(yīng)避免沒(méi)有直接輸出(否則,可能輸出一個(gè)隨機(jī)值,影響程序的判斷
)。可以在函數(shù)的開(kāi)始,將字輸出參數(shù)清0,位輸出參數(shù)復(fù)位。
3、函數(shù)塊FB
FB與FC相比,FB每次調(diào)用都必須分配一個(gè)背景數(shù)據(jù)塊,用來(lái)存儲(chǔ)接口數(shù)據(jù)區(qū)(TEMP類型除外)和運(yùn)
算的中間數(shù)據(jù)。其它程序可以直接使用背景數(shù)據(jù)區(qū)中的數(shù)據(jù)。
FB中程序的最大容量,S7-300是16KB,S7-400是64KB。
FB的接口區(qū)比FC多了一個(gè)靜態(tài)數(shù)據(jù)區(qū)(STAT),用來(lái)存儲(chǔ)中間變量。
程序調(diào)用FB時(shí),形參不像FC那樣必須賦值,可以通過(guò)背景數(shù)據(jù)塊直接賦值。
由于FB帶有背景數(shù)據(jù)塊,輸出參數(shù)不會(huì)輸出隨機(jī)值,可以不在FB中編寫(xiě)初始化程序。
4、數(shù)據(jù)塊DB
DB用來(lái)存儲(chǔ)用戶數(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允許的條件下,一個(gè)程序可創(chuàng)建任意多個(gè)DB
,每個(gè)DB的最大容量為64KB。
默認(rèn)條件下,共享數(shù)據(jù)塊為掉電保持,在其屬性菜單中選中“Non Retain”可以更改為掉電數(shù)據(jù)丟
失。
如CPU中無(wú)足夠的內(nèi)部存儲(chǔ)空間保存數(shù)據(jù),可將指定的數(shù)據(jù)保存到共享數(shù)據(jù)塊。存儲(chǔ)在共享數(shù)據(jù)塊中
的數(shù)據(jù)可被其它任意一個(gè)塊調(diào)用(全局變量)。這一點(diǎn)和背景數(shù)據(jù)塊不同,背景數(shù)據(jù)塊只能被指定的功
能塊(FB)使用,保存在背景數(shù)據(jù)塊中的數(shù)據(jù)只能在這個(gè)功能塊中有效。
★ 背景數(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),便于用戶使用。
5、系統(tǒng)函數(shù)(SFC)和系統(tǒng)函數(shù)塊(SFB)
SFC和SFB集成在CPU中,相當(dāng)于系統(tǒng)提供的可供用戶程序調(diào)用的FC或FB,實(shí)現(xiàn)與CPU系統(tǒng)相關(guān)的一些功能
,如讀寫(xiě)CPU時(shí)鐘等功能。調(diào)用SFB需要背景數(shù)據(jù)塊。
聯(lián)系客服