西門子300模塊6ES7332-5HD01-0AB0

西門子300模塊6ES7332-5HD01-0AB0
在用戶程序中,我們可以把完成某個功能的代碼,保存成一個“塊”,稱為“功能塊(Function Block,F(xiàn)B)”或“功能(Function,F(xiàn)C)”。“功能塊(FB)”和“功能(FC)”都是能完成某種特定功能的代碼的集合,是一個子程序。它們的不同之處在于:“功能塊(FB)”需要有特定的數(shù)據(jù)塊(Data Block,DB)來保存靜態(tài)變量;而“功能(FC)”沒有靜態(tài)變量,因此不需要特定的數(shù)據(jù)塊。
“功能塊(FB)”所需要的特定的數(shù)據(jù)塊(DB),被稱為背景數(shù)據(jù)塊(Instance Data Block)。背景數(shù)據(jù)塊的屬性是私有的,它只能被它所屬的功能塊(FB)訪問。
與背景數(shù)據(jù)塊相對應(yīng)的另一種數(shù)據(jù)塊,是全局數(shù)據(jù)塊(Global Data Block)。全局數(shù)據(jù)塊是公有的,可以被所有的“功能塊(FB)”或者“功能(FC)”訪問。
在西門子S7-300/400系列PLC中,程序的運行起始于組織塊OB1。OB1就相當于C語言的Main函數(shù);在S7-200 smart中,更是直接把OB1稱為Main塊。
如果程序比較復(fù)雜,還可以把一些常用的功能設(shè)計成模塊,以便重復(fù)利用。這些小的模塊稱為子程序。
子程序存在于主程序中,操作系統(tǒng)通過調(diào)用主程序,就能讓子程序也得到運行。在S7-300/400中,子程序包括FB和FC。
除了主程序接口,PLC還提供中斷程序的接口。比如S7-300/400系列PLC的組織塊OB35(循環(huán)中斷)、OB40(硬件中斷)、OB82(診斷中斷)、OB122(IO訪問故障中斷)等等。中斷程序接口中的程序,稱為“中斷處理程序”,中斷處理程序由用戶自己編寫。
PLC在運行的過程中如果檢測到中斷請求,操作系統(tǒng)會暫停當前用戶程序的執(zhí)行,轉(zhuǎn)而去尋找中斷程序的接口,以執(zhí)行相應(yīng)的中斷處理程序。以S7-300/400為例:當PLC檢測到外圍IO訪問出現(xiàn)故障時,會調(diào)用OB122來進行處理。如果此時程序中沒有添加OB122,CPU將會停機;如果添加了OB122但是沒有寫任何代碼(沒有中斷處理程序),CPU將會繼續(xù)運行,但是SF燈會亮起,以提示系統(tǒng)存在故障。
中斷的執(zhí)行是有優(yōu)先級的,優(yōu)先級高的中斷會被優(yōu)先響應(yīng);中斷也可以嵌套,這也意味著高優(yōu)先級的中斷會打斷低優(yōu)先級的中斷;
從上面描述的主程序接口及中斷程序接口,我們可以看出:操作系統(tǒng)是PLC的大管家,是它控制著用戶程序的執(zhí)行及中斷的響應(yīng)。