回收西門子模塊6ES75901AF300AA0 回收西門子模塊6ES75901AF300AA0
表中聲明變量的順序和變量在內(nèi)存中的存儲(chǔ)順序。在邏輯塊中不需使用的局部數(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)變量存儲(chǔ)在背景數(shù)據(jù)塊中,塊調(diào)用結(jié)束后,其內(nèi)容被保留
臨時(shí)變量 Temp 臨時(shí)變量存儲(chǔ)在L堆棧中,塊執(zhí)行結(jié)束變量的值因被其它內(nèi)容覆蓋而丟掉
對(duì)于功能塊FB,操作系統(tǒng)為參數(shù)及靜態(tài)變量分配的存儲(chǔ)空間是背景數(shù)據(jù)塊。這樣參數(shù)變量在背景數(shù)據(jù)塊中留有運(yùn)行結(jié)果備份。在調(diào)用FB時(shí),若沒有提供實(shí)參,則功能塊使用背景數(shù)據(jù)塊中的數(shù)值。操作系統(tǒng)在L堆棧中給FB的臨時(shí)變量分配存儲(chǔ)空間。
對(duì)于功能塊FC,操作系統(tǒng)在L堆棧中給FC的臨時(shí)變量分配存儲(chǔ)空間。由于沒有背景數(shù)據(jù)塊,因而FC不能使用靜態(tài)變量。輸入、輸出、IO參數(shù)以指向?qū)崊⒌闹羔樞问酱鎯?chǔ)在操作系統(tǒng)為參數(shù)傳遞而保留的額外空間中。
對(duì)于組織塊OB來(lái)說,其調(diào)用是由操作系統(tǒng)管理的,用戶不能參與。因此,OB只有定義在L堆棧中的臨時(shí)變量。
1) 形參
為保證功能塊對(duì)同一類設(shè)備控制的通用性,用戶在編程時(shí)就不能使用具體設(shè)備對(duì)應(yīng)的存儲(chǔ)區(qū)地址參數(shù)(如不能使用I1.0等),而是使用這類設(shè)備的抽象地址參數(shù)。這些抽象參數(shù)稱為形式參數(shù),簡(jiǎn)稱形參。將該設(shè)備的相應(yīng)實(shí)際存儲(chǔ)區(qū)地址參數(shù)(簡(jiǎn)稱實(shí)參)傳遞給功能塊,功能塊在運(yùn)行時(shí)以實(shí)參替代形參,從而可通過調(diào)用功能塊實(shí)現(xiàn)對(duì)具體設(shè)備的控制。當(dāng)對(duì)另一設(shè)備控制時(shí),同樣也可通過調(diào)用實(shí)參將其傳遞給功能塊。
形參需在功能塊的變量聲明表中定義,實(shí)參在調(diào)用功能塊時(shí)給出。在功能塊的不同調(diào)用處,可為形參提供不同的實(shí)參,但實(shí)參的數(shù)據(jù)類型必須與形參*。用戶程序可定義功能塊的輸入值參數(shù)或輸出值參數(shù),也可定義一參數(shù)作為輸入輸出值。參數(shù)傳遞可將調(diào)用塊的信息傳遞給被調(diào)用塊,也能把被調(diào)用塊的運(yùn)行結(jié)果返回給調(diào)用塊。
2) 靜態(tài)變量
靜態(tài)變量在PLC運(yùn)行期間始終被存儲(chǔ)。S7將靜態(tài)變量定義在背景數(shù)據(jù)塊中,當(dāng)被調(diào)用塊運(yùn)行時(shí),能讀出或修改靜態(tài)變量;被調(diào)用塊運(yùn)行結(jié)束后,靜態(tài)變量保留在數(shù)據(jù)塊中。由于只有功能塊FB有關(guān)聯(lián)的背景數(shù)據(jù)塊,因此只能為FB定義靜態(tài)變量。功能塊FC不能有靜態(tài)變量。
3) 臨時(shí)變量
臨時(shí)變量?jī)H在邏輯塊運(yùn)行時(shí)有效,邏輯塊結(jié)束時(shí)存儲(chǔ)臨時(shí)變量的內(nèi)存被操作系統(tǒng)另行 分配。S7將臨時(shí)變量定義在L堆棧中,L堆棧是為存儲(chǔ)邏輯塊的臨時(shí)變量而專設(shè)的。當(dāng)塊程序運(yùn)行時(shí),在L堆棧中建立該塊的臨時(shí)變量,一旦塊執(zhí)行結(jié)束,堆棧重新分配,因而信息丟失。