高價回收西門子伺服電機 高價回收西門子伺服電機
OB1是主程序循環(huán)塊,在任何情況下,它都是需要的。根據(jù)過程控制的復(fù)雜程度,可將所有程序放入OB1進行線性編程,或?qū)⒊绦蛴貌煌倪壿媺K加以結(jié)構(gòu)化,通過OB1調(diào)用這些邏輯塊,并允許塊間的相互調(diào)用。塊的調(diào)用指令中止當前塊(調(diào)用塊)的運行調(diào)用,然后執(zhí)行被調(diào)用塊的所有指令。一旦被調(diào)用的塊被完成,執(zhí)行調(diào)用指令的塊繼續(xù)執(zhí)行調(diào)用指令后的指令。調(diào)用塊可以是任何邏輯塊,被調(diào)用塊只能是功能塊(除OB外的邏輯塊)。圖5.1所示是一個STEP 7調(diào)用實例。除了OB1,操作系統(tǒng)可以調(diào)用其它的OB塊以響應(yīng)確定事件。其它可用的OB塊隨所用的CPU性能和控制過程的要求而定。
功能塊(FB、FC)實際上是用戶子程序,分為帶“記憶”的功能塊FB和不帶“記憶”的功能塊FC。前者有一個數(shù)據(jù)結(jié)構(gòu)與該功能塊的參數(shù)表*相同的數(shù)據(jù)塊(DB)附屬于該功能塊,并隨功能塊的調(diào)用而打開,隨功能塊的結(jié)束而關(guān)閉。該附屬數(shù)據(jù)塊叫做背景數(shù)據(jù)塊(Instance Data Block),存放在背景數(shù)據(jù)塊的數(shù)據(jù)在FB塊結(jié)束時繼續(xù)保持,即被“記憶”。功能塊FC沒有背景數(shù)據(jù)塊,當FC完成操作后數(shù)據(jù)不能保持。
數(shù)據(jù)塊(DB)是用戶定義的用于存取數(shù)據(jù)的存儲區(qū),可以被打開或關(guān)閉。DB可以是屬于某個FB的情景數(shù)據(jù)塊,也可以是通用的全局數(shù)據(jù)塊,用于FB或FC。S7 CPU還提供標準系統(tǒng)功能塊(SFB、SFC),它們是預(yù)先編好的,經(jīng)過測試后集成在S7 CPU的功能程序庫。用戶可以直接調(diào)用它們,高效地編制自己的程序。由于它們是操作系統(tǒng)的一部分,因此不需將其作為用戶程序下載到PLC。與FB塊相似,SFB需要一個背景數(shù)據(jù)塊,并需將此DB塊作為程序的一部分安裝到CPU。不同的CPU提供不同的SFB、SFC功能。
系統(tǒng)數(shù)據(jù)塊(SDB)是為存放PLC參數(shù)所建立的系統(tǒng)數(shù)據(jù)存儲區(qū)。用STEP 7的S7組態(tài)軟件可以將PLC組態(tài)數(shù)據(jù)和其它操作參數(shù)存放于SDB。
功能塊編程及調(diào)用
功能塊由兩個主要部分組成:一部分是每個功能塊的變量聲明表,變量聲明表聲明此塊的局部數(shù)據(jù);另一部分是邏輯指令組成的程序,程序要用到變量聲明表給出的局部數(shù)據(jù)。
當調(diào)用功能塊時,需提供塊執(zhí)行時要用到的數(shù)據(jù)或變量,也就是將外部數(shù)據(jù)傳遞給功能塊,這被稱為參數(shù)傳遞。參數(shù)傳遞的方式使得功能塊具有通用性,它可被其它的塊調(diào)用,以完成多個類似的控制任務(wù)。
1. 變量聲明表(局部數(shù)據(jù))
每個邏輯塊前部都有一個變量聲明表,在變量聲明表定義邏輯塊用到的局部數(shù)據(jù)。局部數(shù)據(jù)分為參數(shù)和局部變量兩大類,局部變量又包括靜態(tài)變量和臨時變量(暫態(tài)變量)兩種。參數(shù)是在調(diào)用塊和被調(diào)用塊間傳遞的數(shù)據(jù)。靜態(tài)變量和臨時變量是僅供邏輯塊本身使用的數(shù)據(jù)。表5.1給出了局部數(shù)據(jù)聲明類型,表中內(nèi)容的排列順序也是在變量聲明
表聲明變量的順序和變量在內(nèi)存的存儲順序。在邏輯塊中不需使用的局部數(shù)據(jù)類型,可以不必在變量聲明表中聲明。
表5.1 局部數(shù)據(jù)類型
變 量 名 類 型 說 明
輸入?yún)?shù) In 由調(diào)用邏輯塊的塊提供數(shù)據(jù),輸入給邏輯塊的指令
輸出參數(shù) Out 向調(diào)用邏輯塊的塊返回參數(shù),即從邏輯塊輸出結(jié)果數(shù)據(jù)
IO參數(shù) In_Out 參數(shù)的值由調(diào)用塊的塊提供,由邏輯塊處理修改,然后返回
靜態(tài)變量 Stat 靜態(tài)變量存儲在背景數(shù)據(jù)塊,塊調(diào)用結(jié)束后,其內(nèi)容被保留
臨時變量 Temp 臨時變量存儲在L堆棧,塊執(zhí)行結(jié)束變量的值因被其它內(nèi)容覆蓋而丟掉
對于功能塊FB,操作系統(tǒng)為參數(shù)及靜態(tài)變量分配的存儲空間是背景數(shù)據(jù)塊。這樣參數(shù)變量在背景數(shù)據(jù)塊留有運行結(jié)果備份。在調(diào)用FB時,若沒有提供實參,則功能塊使用背景數(shù)據(jù)塊中的數(shù)值。操作系統(tǒng)在L堆棧中給FB的臨時變量分配存儲空間。