版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第5章 S7系列程序結(jié)構(gòu)與程序設(shè)計(jì)第5章 S7系列程序結(jié)構(gòu)與程序設(shè)計(jì)5.1 編程方式與程序塊編程方式與程序塊5.2 數(shù)據(jù)塊與數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)塊與數(shù)據(jù)結(jié)構(gòu)5.3 S7系列系列PLC程序設(shè)計(jì)程序設(shè)計(jì)思考與練習(xí)題思考與練習(xí)題第5章 S7系列程序結(jié)構(gòu)與程序設(shè)計(jì)5.1 編程方式與程序塊編程方式與程序塊5.1.1 S7-300編程方式簡(jiǎn)介編程方式簡(jiǎn)介 S7-300系列PLC的編程語(yǔ)言是STEP 7。STEP 7繼承了STEP 5語(yǔ)言結(jié)構(gòu)化程序設(shè)計(jì)的優(yōu)點(diǎn),用文件塊的形式管理用戶(hù)編寫(xiě)的程序及程序運(yùn)行所需的數(shù)據(jù)。如果這些文件塊是子程序,則可以通過(guò)調(diào)用語(yǔ)句,將它們組成結(jié)構(gòu)化的用戶(hù)程序。這樣,PLC的程序組織明確,結(jié)構(gòu)
2、清晰,易于修改。第5章 S7系列程序結(jié)構(gòu)與程序設(shè)計(jì)5-1各塊的簡(jiǎn)要說(shuō)明見(jiàn)表5-1第5章 S7系列程序結(jié)構(gòu)與程序設(shè)計(jì) 為支持結(jié)構(gòu)化程序設(shè)計(jì),STEP 7用戶(hù)程序通常由組織塊(OB)、功能塊(FB)或功能塊(FC)等三種類(lèi)型的邏輯塊和數(shù)據(jù)塊(DB)組成。 組織塊(OB)是系統(tǒng)操作程序與用戶(hù)應(yīng)用程序在各種條件下的接口界面,用于控制程序的運(yùn)行。OB塊根據(jù)操作系統(tǒng)調(diào)用的條件(如時(shí)間中斷、報(bào)警中斷等)可分成幾種類(lèi)型,這些類(lèi)型有不同的優(yōu)先級(jí),高優(yōu)先級(jí)的OB可以中斷低優(yōu)先級(jí)的OB。每個(gè)S7 CPU包含一套可編程的OB塊(隨CPU而不同),不同的OB塊執(zhí)行特定的功能。第5章 S7系列程序結(jié)構(gòu)與程序設(shè)計(jì) OB1是
3、主程序循環(huán)塊,在任何情況下,它都是需要的。根據(jù)過(guò)程控制的復(fù)雜程度,可將所有程序放入OB1中進(jìn)行線性編程,或?qū)⒊绦蛴貌煌倪壿媺K加以結(jié)構(gòu)化,通過(guò)OB1調(diào)用這些邏輯塊,并允許塊間的相互調(diào)用。塊的調(diào)用指令中止當(dāng)前塊(調(diào)用塊)的運(yùn)行調(diào)用,然后執(zhí)行被調(diào)用塊的所有指令。一旦被調(diào)用的塊被完成,執(zhí)行調(diào)用指令的塊繼續(xù)執(zhí)行調(diào)用指令后的指令。調(diào)用塊可以是任何邏輯塊,被調(diào)用塊只能是功能塊(除OB外的邏輯塊)。圖5.1所示是一個(gè)STEP 7調(diào)用實(shí)例。除了OB1,操作系統(tǒng)可以調(diào)用其它的OB塊以響應(yīng)確定事件。其它可用的OB塊隨所用的CPU性能和控制過(guò)程的要求而定。第5章 S7系列程序結(jié)構(gòu)與程序設(shè)計(jì)圖5.1 STEP 7調(diào)用
4、過(guò)程示意圖背景DB共享DBFB/SFB背景DBFB/SFBOB操作系統(tǒng)FC/SFCFC/SFC共享DB第5章 S7系列程序結(jié)構(gòu)與程序設(shè)計(jì) 功能塊(FB、FC)實(shí)際上是用戶(hù)子程序,分為帶“記憶”的功能塊FB和不帶“記憶”的功能塊FC。前者有一個(gè)數(shù)據(jù)結(jié)構(gòu)與該功能塊的參數(shù)表完全相同的數(shù)據(jù)塊(DB)附屬于該功能塊,并隨功能塊的調(diào)用而打開(kāi),隨功能塊的結(jié)束而關(guān)閉。該附屬數(shù)據(jù)塊叫做背景數(shù)據(jù)塊(Instance Data Block),存放在背景數(shù)據(jù)塊中的數(shù)據(jù)在FB塊結(jié)束時(shí)繼續(xù)保持,即被“記憶”。功能塊FC沒(méi)有背景數(shù)據(jù)塊,當(dāng)FC完成操作后數(shù)據(jù)不能保持。 在調(diào)用功能塊時(shí)使用不同的背景數(shù)據(jù)塊,可以控制多個(gè)同類(lèi)的對(duì)
5、象。DB201:電動(dòng)機(jī)1電動(dòng)機(jī)1的背景數(shù)據(jù)塊DB202:電動(dòng)機(jī)2DB203:電動(dòng)機(jī)3電動(dòng)機(jī)2的背景數(shù)據(jù)塊電動(dòng)機(jī)3的背景數(shù)據(jù)塊FB22:電動(dòng)機(jī)圖 不同對(duì)象的背景數(shù)據(jù)塊第5章 S7系列程序結(jié)構(gòu)與程序設(shè)計(jì)數(shù)據(jù)塊(DB)是用戶(hù)定義的用于存取數(shù)據(jù)的存儲(chǔ)區(qū),可以被打開(kāi)或關(guān)閉。DB可以是屬于某個(gè)FB的情景數(shù)據(jù)塊,也可以是通用的全局?jǐn)?shù)據(jù)塊,用于FB或FC。S7 CPU還提供標(biāo)準(zhǔn)系統(tǒng)功能塊(SFB、SFC),它們是預(yù)先編好的,經(jīng)過(guò)測(cè)試后集成在S7 CPU中的功能程序庫(kù)。用戶(hù)可以直接調(diào)用它們,高效地編制自己的程序。由于它們是操作系統(tǒng)的一部分,因此不需將其作為用戶(hù)程序下載到PLC。與FB塊相似,SFB需要一個(gè)背景數(shù)
6、據(jù)塊,并需將此DB塊作為程序的一部分安裝到CPU中。不同的CPU提供不同的SFB、SFC功能。系統(tǒng)數(shù)據(jù)塊(SDB)是為存放PLC參數(shù)所建立的系統(tǒng)數(shù)據(jù)存儲(chǔ)區(qū)。用STEP 7的S7組態(tài)軟件可以將PLC組態(tài)數(shù)據(jù)和其它操作參數(shù)存放于SDB中。第5章 S7系列程序結(jié)構(gòu)與程序設(shè)計(jì) 第5章 S7系列程序結(jié)構(gòu)與程序設(shè)計(jì)5.1.2 功能塊編程及調(diào)用功能塊編程及調(diào)用 功能塊由兩個(gè)主要部分組成:一部分是每個(gè)功能塊的變量聲明表,變量聲明表聲明此塊的局部數(shù)據(jù);另一部分是邏輯指令組成的程序,程序要用到變量聲明表中給出的局部數(shù)據(jù)。 當(dāng)調(diào)用功能塊時(shí),需提供塊執(zhí)行時(shí)要用到的數(shù)據(jù)或變量,也就是將外部數(shù)據(jù)傳遞給功能塊,這被稱(chēng)為參數(shù)
7、傳遞。參數(shù)傳遞的方式使得功能塊具有通用性,它可被其它的塊調(diào)用,以完成多個(gè)類(lèi)似的控制任務(wù)。第5章 S7系列程序結(jié)構(gòu)與程序設(shè)計(jì) 1. 變量聲明表變量聲明表(局部數(shù)據(jù)局部數(shù)據(jù)) 每個(gè)邏輯塊前部都有一個(gè)變量聲明表,在變量聲明表中定義邏輯塊用到的局部數(shù)據(jù)。局部數(shù)據(jù)分為參數(shù)和局部變量?jī)纱箢?lèi),局部變量又包括靜態(tài)變量和臨時(shí)變量(暫態(tài)變量)兩種。參數(shù)是在調(diào)用塊和被調(diào)用塊間傳遞的數(shù)據(jù)。靜態(tài)變量和臨時(shí)變量是僅供邏輯塊本身使用的數(shù)據(jù)。表5.1給出了局部數(shù)據(jù)聲明類(lèi)型,表中內(nèi)容的排列順序也是在變量聲明表中聲明變量的順序和變量在內(nèi)存中的存儲(chǔ)順序。在邏輯塊中不需使用的局部數(shù)據(jù)類(lèi)型,可以不必在變量聲明表中聲明。第5章 S7系列
8、程序結(jié)構(gòu)與程序設(shè)計(jì)表表5.1 局部數(shù)據(jù)類(lèi)型局部數(shù)據(jù)類(lèi)型變 量 名 類(lèi) 型 說(shuō) 明 輸入?yún)?shù) In 由調(diào)用邏輯塊的塊提供數(shù)據(jù),輸入給邏輯塊的指令 輸出參數(shù) Out 向調(diào)用邏輯塊的塊返回參數(shù),即從邏輯塊輸出結(jié)果數(shù)據(jù) I/O 參數(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)容覆蓋而丟掉 第5章 S7系列程序結(jié)構(gòu)與程序設(shè)計(jì) 對(duì)于功能塊FB,操作系統(tǒng)為參數(shù)及靜態(tài)變量分配的存儲(chǔ)空間是背景數(shù)據(jù)塊。這樣參數(shù)變量在背景數(shù)據(jù)塊中留有運(yùn)行結(jié)
9、果備份。在調(diào)用FB時(shí),若沒(méi)有提供實(shí)參,則功能塊使用背景數(shù)據(jù)塊中的數(shù)值。操作系統(tǒng)在L堆棧中給FB的臨時(shí)變量分配存儲(chǔ)空間。 對(duì)于功能塊FC,操作系統(tǒng)在L堆棧中給FC的臨時(shí)變量分配存儲(chǔ)空間。由于沒(méi)有背景數(shù)據(jù)塊,因而FC不能使用靜態(tài)變量。輸入、輸出、I/O參數(shù)以指向?qū)崊⒌闹羔樞问酱鎯?chǔ)在操作系統(tǒng)為參數(shù)傳遞而保留的額外空間中。 對(duì)于組織塊OB來(lái)說(shuō),其調(diào)用是由操作系統(tǒng)管理的,用戶(hù)不能參與。因此,OB只有定義在L堆棧中的臨時(shí)變量。第5章 S7系列程序結(jié)構(gòu)與程序設(shè)計(jì) 1) 形參 為保證功能塊對(duì)同一類(lèi)設(shè)備控制的通用性,用戶(hù)在編程時(shí)就不能使用具體設(shè)備對(duì)應(yīng)的存儲(chǔ)區(qū)地址參數(shù)(如不能使用I1.0等),而是使用這類(lèi)設(shè)備的抽
10、象地址參數(shù)。這些抽象參數(shù)稱(chēng)為形式參數(shù),簡(jiǎn)稱(chēng)形參。將該設(shè)備的相應(yīng)實(shí)際存儲(chǔ)區(qū)地址參數(shù)(簡(jiǎn)稱(chēng)實(shí)參)傳遞給功能塊,功能塊在運(yùn)行時(shí)以實(shí)參替代形參,從而可通過(guò)調(diào)用功能塊實(shí)現(xiàn)對(duì)具體設(shè)備的控制。當(dāng)對(duì)另一設(shè)備控制時(shí),同樣也可通過(guò)調(diào)用實(shí)參將其傳遞給功能塊。第5章 S7系列程序結(jié)構(gòu)與程序設(shè)計(jì) 形參需在功能塊的變量聲明表中定義,實(shí)參在調(diào)用功能塊時(shí)給出。在功能塊的不同調(diào)用處,可為形參提供不同的實(shí)參,但實(shí)參的數(shù)據(jù)類(lèi)型必須與形參一致。用戶(hù)程序可定義功能塊的輸入值參數(shù)或輸出值參數(shù),也可定義一參數(shù)作為輸入/輸出值。參數(shù)傳遞可將調(diào)用塊的信息傳遞給被調(diào)用塊,也能把被調(diào)用塊的運(yùn)行結(jié)果返回給調(diào)用塊。第5章 S7系列程序結(jié)構(gòu)與程序設(shè)計(jì)
11、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)變量。 第5章 S7系列程序結(jié)構(gòu)與程序設(shè)計(jì) 3) 臨時(shí)變量 臨時(shí)變量?jī)H在邏輯塊運(yùn)行時(shí)有效,邏輯塊結(jié)束時(shí)存儲(chǔ)臨時(shí)變量的內(nèi)存被操作系統(tǒng)另行 分配。S7將臨時(shí)變量定義在L堆棧中,L堆棧是為存儲(chǔ)邏輯塊的臨時(shí)變量而專(zhuān)設(shè)的。當(dāng)塊程序運(yùn)行時(shí),在L堆棧中建立該塊的臨時(shí)變量,一旦塊執(zhí)行結(jié)束,堆棧重新分配,因而信息丟失。第5章 S7系列程序結(jié)構(gòu)與程序設(shè)計(jì) 2.
12、邏輯塊局部數(shù)據(jù)的數(shù)據(jù)類(lèi)型邏輯塊局部數(shù)據(jù)的數(shù)據(jù)類(lèi)型 在變量聲明表中,要明確局部數(shù)據(jù)的數(shù)據(jù)類(lèi)型,這樣操作系統(tǒng)才能給變量分配確定的 存儲(chǔ)空間。局部數(shù)據(jù)可以是基本數(shù)據(jù)類(lèi)型或復(fù)式數(shù)據(jù)類(lèi)型,也可以是專(zhuān)門(mén)用于參數(shù)傳遞 的所謂的“參數(shù)類(lèi)型”。參數(shù)類(lèi)型包括定時(shí)器、計(jì)數(shù)器、塊的地址或指針等,見(jiàn)表5.2。第5章 S7系列程序結(jié)構(gòu)與程序設(shè)計(jì)表表5.2 參數(shù)類(lèi)型變量參數(shù)類(lèi)型變量參數(shù)類(lèi)型 大 小 說(shuō) 明 定時(shí)器(Timer) 2 B 在功能塊中定義一個(gè)定時(shí)器形參,調(diào)用時(shí)賦予定時(shí)器實(shí)參 計(jì)數(shù)器(Counter) 2 B 在功能塊中定義一個(gè)計(jì)數(shù)器形參,調(diào)用時(shí)賦予計(jì)數(shù)器實(shí)參 塊: Block_FB Block_FC Block
13、_DB Block_SDB 2 B 在功能塊中定義一個(gè)功能塊或數(shù)據(jù)塊形參變量,調(diào)用時(shí)給功能塊類(lèi)或數(shù)據(jù)塊類(lèi)形參賦予實(shí)際的功能塊或數(shù)據(jù)塊編號(hào),如 FC 101、DB 42 指針(Pointer) 6 B 在功能塊中定義一個(gè)形參, 該形參說(shuō)明的是內(nèi)存的地址指針。例如,調(diào)用時(shí)可給形參賦予實(shí)參 P#M50.0,以訪問(wèn)內(nèi)存 M50.0 ANY 10 B 當(dāng)實(shí)參的數(shù)據(jù)類(lèi)型未知時(shí),可以使用該類(lèi)型 第5章 S7系列程序結(jié)構(gòu)與程序設(shè)計(jì) 1) 定時(shí)器或計(jì)數(shù)器參數(shù)類(lèi)型定時(shí)器或計(jì)數(shù)器參數(shù)類(lèi)型 在功能塊中定義一個(gè)定時(shí)器或計(jì)數(shù)器類(lèi)型的形參,功能塊就能使用一個(gè)定時(shí)器或計(jì)數(shù)器,而不需明確具體的定時(shí)器或計(jì)數(shù)器,等到調(diào)用該功能塊時(shí)
14、再確定定時(shí)器或計(jì)數(shù)器號(hào)。這使用戶(hù)程序能靈活性地分配和使用定時(shí)器或計(jì)數(shù)器。當(dāng)給定時(shí)器或計(jì)數(shù)器參數(shù)類(lèi)型形參分配實(shí)參時(shí),在“T”或“C”后跟一個(gè)有效整數(shù),如T 100。第5章 S7系列程序結(jié)構(gòu)與程序設(shè)計(jì) 2) 塊參數(shù)類(lèi)型 當(dāng)定義一個(gè)作為輸入/輸出的塊時(shí),參數(shù)聲明決定了塊的類(lèi)型(FB、FC、DB等)。當(dāng)為塊參數(shù)類(lèi)型形參分配實(shí)參時(shí),可以使用物理地址,如FC 101,也可使用符號(hào)地址,如“valve”。第5章 S7系列程序結(jié)構(gòu)與程序設(shè)計(jì) 3) 指針參數(shù)類(lèi)型 一個(gè)指針給出的是變量的地址,而不是變量的數(shù)值大小。在有些功能塊中,可能使用指針編程更為方便。用定義指針類(lèi)型的形參,就能在功能塊中先使用一個(gè)虛設(shè)的指針,
15、待調(diào)用功能塊時(shí)再為其賦予確定的地址。當(dāng)為指針參數(shù)類(lèi)型形參分配實(shí)參時(shí),需要指明內(nèi)存地址,例如P#M50.0。第5章 S7系列程序結(jié)構(gòu)與程序設(shè)計(jì) 4) ANY參數(shù)類(lèi)型 當(dāng)實(shí)參的數(shù)據(jù)類(lèi)型不能確定或在功能塊中需要使用變化的數(shù)據(jù)類(lèi)型時(shí),可以把形參定義為ANY參數(shù)類(lèi)型。這樣就可以將任何數(shù)據(jù)類(lèi)型的實(shí)參賦給ANY類(lèi)形參,而不必像其它類(lèi)型那樣保證實(shí)參、形參類(lèi)型一致。STEP 7自動(dòng)為ANY類(lèi)型分配80 bit的內(nèi)存,STEP 7用這80 bit存儲(chǔ)實(shí)參的起始地址、數(shù)據(jù)類(lèi)型和長(zhǎng)度編碼。 例如,功能塊FC 100有三個(gè)參數(shù)(in_par1、in_par2和in_par3),它們都被定義為ANY類(lèi)型。當(dāng)功能塊FB 1
16、0調(diào)用功能塊FC 100時(shí),F(xiàn)Bl0傳遞的可以是一個(gè)整數(shù)(靜態(tài)變量Speed)、一個(gè)字(MW 100)或數(shù)據(jù)塊DB 10中的雙字(DB 10.DBD 40)。而當(dāng)功能塊FB 11調(diào)用功能塊FC 100時(shí),F(xiàn)B 11傳遞的可以是一個(gè)實(shí)數(shù)數(shù)組(臨時(shí)變量Thermo)、一個(gè)布爾值(M 1.3)或一個(gè)定時(shí)器(T2)。FB 10和FB 11分別調(diào)用FC 100時(shí),傳遞的實(shí)參類(lèi)型完全不同。第5章 S7系列程序結(jié)構(gòu)與程序設(shè)計(jì) 3. 塊調(diào)用過(guò)程及內(nèi)存分配塊調(diào)用過(guò)程及內(nèi)存分配 CPU提供塊堆棧(B堆棧)來(lái)存儲(chǔ)與處理被中斷塊的有關(guān)信息。當(dāng)發(fā)生塊調(diào)用或有來(lái)自更高優(yōu)先級(jí)的中斷時(shí),就有相關(guān)的塊信息存儲(chǔ)在B堆棧里,并影響
17、部分內(nèi)存和寄存器。圖5.2顯示了調(diào)用塊時(shí)B堆棧與L堆棧的變化。圖5.3提供了關(guān)于STEP 7的塊調(diào)用情況。第5章 S7系列程序結(jié)構(gòu)與程序設(shè)計(jì)圖5.2 堆棧與L堆棧先前塊的數(shù)據(jù)(仍是激活的)DB寄存器(DB和DI)臨時(shí)數(shù)據(jù)指針塊號(hào)返回地址先前塊的數(shù)據(jù)(仍是激活的)DB寄存器(DB和DI)臨時(shí)數(shù)據(jù)指針塊號(hào)返回地址塊堆棧(B堆棧)可執(zhí)行的用戶(hù)程序邏輯塊數(shù)據(jù)塊工作內(nèi)存仍是激活的先前塊的臨時(shí)數(shù)據(jù)L堆棧數(shù)據(jù)塊寄存器打開(kāi)的數(shù)據(jù)塊號(hào)當(dāng)前塊的臨時(shí)數(shù)據(jù)打開(kāi)的背景數(shù)據(jù)塊號(hào)被中斷塊的數(shù)據(jù)DB寄存器(DB和DI)臨時(shí)數(shù)據(jù)指針塊號(hào)返回地址第5章 S7系列程序結(jié)構(gòu)與程序設(shè)計(jì)圖5.3 調(diào)用指令對(duì)CPU內(nèi)存的影響邏輯塊調(diào)用其它
18、塊被調(diào)用塊的局部數(shù)據(jù)存儲(chǔ)到L堆棧頂部先前塊的局部數(shù)據(jù)壓入L堆棧新的背景數(shù)據(jù)塊號(hào)先前的背景數(shù)據(jù)塊號(hào)DI寄存器DB寄存器先前激活著的調(diào)用塊的信息壓入塊堆棧調(diào)用塊的信息裝入塊堆棧程序第5章 S7系列程序結(jié)構(gòu)與程序設(shè)計(jì)a)第5章 S7系列程序結(jié)構(gòu)與程序設(shè)計(jì)b)c)第5章 S7系列程序結(jié)構(gòu)與程序設(shè)計(jì) 1) B堆棧與L堆棧 B堆棧是CPU系統(tǒng)內(nèi)存中的一部分,它存儲(chǔ)以下被中斷塊的數(shù)據(jù):(1) 塊號(hào)、塊類(lèi)型、優(yōu)先級(jí)、被中斷塊的返回地址;(2) 塊寄存器DB、DI被中斷前的內(nèi)容;(3) 臨時(shí)變量的指針(被中斷塊的L堆棧地址)。第5章 S7系列程序結(jié)構(gòu)與程序設(shè)計(jì) STEP 7中可使用的B堆棧大小是有限制的,對(duì)于S
19、7-300 CPU,則可在B堆棧中存儲(chǔ)8個(gè)塊的信息。因此,塊調(diào)用嵌套深度也是有限制的,最多可同時(shí)激活8個(gè)塊。 L堆棧是CPU內(nèi)存中的一部分,它在塊調(diào)用時(shí)被重新分配。L堆棧用來(lái)存儲(chǔ)邏輯塊中定義的臨時(shí)變量,也分配給臨時(shí)本地?cái)?shù)據(jù)使用。梯形圖的方塊指令與標(biāo)準(zhǔn)功能塊也可能使用L堆棧存儲(chǔ)運(yùn)算的中間結(jié)果。第5章 S7系列程序結(jié)構(gòu)與程序設(shè)計(jì) 2) 調(diào)用功能塊FB 當(dāng)調(diào)用功能塊FB時(shí),會(huì)有以下事件發(fā)生: (1) 調(diào)用塊的地址和返回位置存儲(chǔ)在塊堆棧中,調(diào)用塊的臨時(shí)變量壓入L堆棧; (2) 數(shù)據(jù)塊DB寄存器內(nèi)容與DI寄存器內(nèi)容交換; (3) 新的數(shù)據(jù)塊地址裝入DI寄存器; (4) 被調(diào)用塊的實(shí)參裝入DB和L堆棧上部
20、; (5) 當(dāng)功能塊FB結(jié)束時(shí),先前塊的現(xiàn)場(chǎng)信息從塊堆棧中彈出,臨時(shí)變量彈出L堆棧; (6) DB和DI寄存器內(nèi)容交換。第5章 S7系列程序結(jié)構(gòu)與程序設(shè)計(jì) 當(dāng)調(diào)用功能塊FB時(shí),STEP 7并不一定要求給FB形參賦予實(shí)參,除非參數(shù)是復(fù)式數(shù)據(jù)類(lèi)型的I/O形參或參數(shù)類(lèi)型形參。如果沒(méi)有給FB形參賦予實(shí)參,則功能塊FB就調(diào)用背景數(shù)據(jù)塊內(nèi)的數(shù)值。該數(shù)值是在功能塊的變量聲明表內(nèi)或背景數(shù)據(jù)塊內(nèi)設(shè)置的形參初始數(shù)值。第5章 S7系列程序結(jié)構(gòu)與程序設(shè)計(jì) 3) 調(diào)用功能塊FC 當(dāng)調(diào)用功能塊FC時(shí)會(huì)有以下事件發(fā)生: (1) 功能塊FC實(shí)參的指針存到調(diào)用塊的L堆棧; (2) 調(diào)用塊的地址和返回位置存儲(chǔ)在塊堆棧,調(diào)用塊的局
21、部數(shù)據(jù)壓入L堆棧; (3) 功能塊存儲(chǔ)臨時(shí)變量的L堆棧區(qū)被推入L堆棧上部; (4) 當(dāng)被調(diào)用功能塊FC結(jié)束時(shí),先前塊的信息存儲(chǔ)在塊堆棧中,臨時(shí)變量彈出L堆棧。 因?yàn)楣δ軌KFC不用背景數(shù)據(jù)塊,不能分配初始數(shù)值給功能塊FC的局部數(shù)據(jù),所以必須給功能塊FC提供實(shí)參。第5章 S7系列程序結(jié)構(gòu)與程序設(shè)計(jì) STEP 7為功能塊FC提供了一個(gè)特殊的返回值輸出參數(shù)(關(guān)鍵字:RET_VAL)。當(dāng)在文本文件中創(chuàng)建功能塊FC時(shí),你可以在定義功能塊FC命令后輸入數(shù)據(jù)類(lèi)型(如BOOL或INT)。對(duì)文本文件進(jìn)行編譯時(shí),STEP 7會(huì)自動(dòng)生成RET_VAL輸出參數(shù)。當(dāng)用STEP 7的程序編輯器(Program Editor
22、)以增量模式創(chuàng)建功能塊FC時(shí),可在FC的變量聲明表中聲明一個(gè)輸出參數(shù)RET_VAL,并指明其數(shù)據(jù)類(lèi)型。第5章 S7系列程序結(jié)構(gòu)與程序設(shè)計(jì)5.1.3 功能塊編程與調(diào)用舉例功能塊編程與調(diào)用舉例 對(duì)功能塊編程分兩步進(jìn)行:第一步是定義局部變量(填寫(xiě)局部變量表);第二步是編寫(xiě)要執(zhí)行的程序,可以用梯形圖或語(yǔ)句表兩種形式編程,并在編程過(guò)程中使用定義了的局部變量(數(shù)據(jù))。 定義局部變量的工作內(nèi)容包括: (1) 分別定義形參、靜態(tài)變量和臨時(shí)變量(FC塊中不包括靜態(tài)變量);第5章 S7系列程序結(jié)構(gòu)與程序設(shè)計(jì) (2) 確定各變量的聲明類(lèi)型(Decl.)、變量名(Name)和數(shù)據(jù)類(lèi)型(Data Type),還要為變量
23、設(shè)置初始值(Initial Value)(盡管對(duì)有些變量初始值不一定有意義)。如果需要還可為變量注釋(Comment)。在增量編程模式下,STEP 7將自動(dòng)產(chǎn)生局部變量地址(Address)。第5章 S7系列程序結(jié)構(gòu)與程序設(shè)計(jì) 寫(xiě)功能塊程序時(shí),可以用以下兩種方式使用局部變量: (1) 使用變量名,此時(shí)變量名前加前綴“#”,以區(qū)別于在符號(hào)表中定義的符號(hào)地址(全局符號(hào)則顯示為全局符號(hào)加引號(hào)的形勢(shì))。增量方式下,前綴會(huì)自動(dòng)產(chǎn)生。 (2) 直接使用局部變量的地址,這種方式只對(duì)背景數(shù)據(jù)塊和L堆棧有效。 在調(diào)用FB塊時(shí),要說(shuō)明其背景數(shù)據(jù)塊。背景數(shù)據(jù)塊應(yīng)在調(diào)用前生成,其順序格式與變量聲明表必須保持一致。在增
24、量方式下,調(diào)用FB塊時(shí),STEP 7會(huì)自動(dòng)提醒并生成背景數(shù)據(jù)塊。此時(shí)也為背景數(shù)據(jù)塊設(shè)置了初始值,該初始值與變量聲明表中的相同。當(dāng)然也可以為背景數(shù)據(jù)塊設(shè)置當(dāng)前值(Current Value),即存儲(chǔ)在CPU中的數(shù)值。第5章 S7系列程序結(jié)構(gòu)與程序設(shè)計(jì)1.發(fā)動(dòng)機(jī)控制系統(tǒng)的用戶(hù)程序結(jié)構(gòu)在右圖中組織塊OB1是主程序,用一個(gè)名為:“發(fā)動(dòng)機(jī)控制”的功能塊FB1來(lái)分別控制汽油機(jī)和柴油機(jī),控制的參數(shù)在背景數(shù)據(jù)塊DB1和DB2中。風(fēng)扇控制使用功能FC1。(1)符號(hào)表為了使程序易于理解,可以給變量制定符號(hào)。(2)變量聲明表(3)局域變量的類(lèi)型第5章 S7系列程序結(jié)構(gòu)與程序設(shè)計(jì)第5章 S7系列程序結(jié)構(gòu)與程序設(shè)計(jì)柴油
25、機(jī)達(dá)到設(shè)定轉(zhuǎn)速柴油機(jī)達(dá)到設(shè)定轉(zhuǎn)速Q(mào) 5.5BOOL柴油機(jī)風(fēng)扇運(yùn)行柴油機(jī)風(fēng)扇運(yùn)行Q 5.6BOOL柴油機(jī)風(fēng)扇運(yùn)行延時(shí)柴油機(jī)風(fēng)扇運(yùn)行延時(shí)T 2TIMER柴油機(jī)故障柴油機(jī)故障 I 1.6BOOL柴油機(jī)數(shù)據(jù)柴油機(jī)數(shù)據(jù) DB 2FB 1柴油機(jī)運(yùn)行柴油機(jī)運(yùn)行 Q 5.4BOOL柴油機(jī)轉(zhuǎn)速柴油機(jī)轉(zhuǎn)速 MW 4INT發(fā)動(dòng)機(jī)控制發(fā)動(dòng)機(jī)控制 FB 1FB 1風(fēng)扇控制風(fēng)扇控制 FC 1FC 1共享數(shù)據(jù)共享數(shù)據(jù) DB 3DB 3關(guān)閉柴油機(jī)關(guān)閉柴油機(jī) I 1.5BOOL關(guān)閉汽油機(jī)關(guān)閉汽油機(jī) I 1.1BOOL啟動(dòng)柴油機(jī)啟動(dòng)柴油機(jī) I 1.4BOOL啟動(dòng)汽油機(jī)啟動(dòng)汽油機(jī)I 1.0BOOL汽油機(jī)達(dá)到設(shè)定轉(zhuǎn)速汽油機(jī)達(dá)到設(shè)定轉(zhuǎn)
26、速Q(mào) 5.1BOOL汽油機(jī)風(fēng)扇延時(shí)汽油機(jī)風(fēng)扇延時(shí)T 1TIMER汽油機(jī)風(fēng)扇運(yùn)行汽油機(jī)風(fēng)扇運(yùn)行Q 5.2BOOL汽油機(jī)故障汽油機(jī)故障I 1.2BOOL汽油機(jī)數(shù)據(jù)汽油機(jī)數(shù)據(jù)DB 1FB 1汽油機(jī)運(yùn)行汽油機(jī)運(yùn)行Q 5.0BOOL汽油機(jī)轉(zhuǎn)速汽油機(jī)轉(zhuǎn)速M(fèi)W 2INT手動(dòng)按鈕手動(dòng)按鈕I 0.6BOOL主程序主程序OB 1OB 1自動(dòng)按鈕自動(dòng)按鈕I 0.5BOOL自動(dòng)模式自動(dòng)模式Q 4.2BOOL符號(hào)符號(hào)地址地址類(lèi)型類(lèi)型第5章 S7系列程序結(jié)構(gòu)與程序設(shè)計(jì)第5章 S7系列程序結(jié)構(gòu)與程序設(shè)計(jì)FB1:控制發(fā)動(dòng)機(jī)的功能塊控制發(fā)動(dòng)機(jī)的功能塊第5章 S7系列程序結(jié)構(gòu)與程序設(shè)計(jì)FC1第5章 S7系列程序結(jié)構(gòu)與程序設(shè)計(jì)第5
27、章 S7系列程序結(jié)構(gòu)與程序設(shè)計(jì)第5章 S7系列程序結(jié)構(gòu)與程序設(shè)計(jì)第5章 S7系列程序結(jié)構(gòu)與程序設(shè)計(jì) 2二分頻器二分頻器 假設(shè)功能塊FC1是二分頻器產(chǎn)生程序,功能是對(duì)不同的輸入位進(jìn)行二分頻處理。以下給出了FC1的變量聲明表和程序。 1) FC1的變量聲明表(見(jiàn)表5.3)表表5.3 FC1的變量聲明表的變量聲明表Address Decl. Symbol Data Type Initial Value Comment 0.0 In INP BOOL FALSE 脈沖輸入信號(hào) 1.0 Out OUTP BOOL FALSE 脈沖輸出信號(hào) 2.0 In_Out ETF BOOL FALSE 跳變沿標(biāo)志
28、第5章 S7系列程序結(jié)構(gòu)與程序設(shè)計(jì)FC1 梯形圖程序OB1調(diào)用梯形圖程序第5章 S7系列程序結(jié)構(gòu)與程序設(shè)計(jì) 3讀模擬輸入量程序讀模擬輸入量程序 一些S7-300的應(yīng)用系統(tǒng)中,使用8通道模擬量模塊采集信號(hào),當(dāng)模塊數(shù)量較多時(shí),讀模擬輸入量就很繁瑣。下面給出一個(gè)通用程序FC100,利用它可以方便地把模擬量讀回并順序存入數(shù)據(jù)塊,因?yàn)槟H肽K的起始地址、通道數(shù)、存儲(chǔ)數(shù)據(jù)塊號(hào)及數(shù)據(jù)在數(shù)據(jù)塊中的存儲(chǔ)起始位置均是可變的,所以可在調(diào)用FC100時(shí)靈活確定。 第5章 S7系列程序結(jié)構(gòu)與程序設(shè)計(jì)1) FC100的變量聲明表的變量聲明表(見(jiàn)表見(jiàn)表5.4)表表5.4 FC100的變量聲明表的變量聲明表Address D
29、ecl. Symbol Data Type Initial Value Comment 0.0 In PIW_Addr INT 模入模塊通道起始地址 2.0 In CH_LEN INT 要讀入的通道數(shù) 4.0 In DB_No INT 存儲(chǔ)數(shù)據(jù)塊號(hào) 6.0 In DBW_Addr INT 存儲(chǔ)在數(shù)據(jù)塊中的字地址 第5章 S7系列程序結(jié)構(gòu)與程序設(shè)計(jì) Network 1 L #DB_No T LW0 OPN DBLW 0 /打開(kāi)存儲(chǔ)數(shù)據(jù)塊 L #PIW_Addr SLD 3 /形成模入模塊地址指針 T LD4 /在臨時(shí)本地?cái)?shù)據(jù)雙字LD 4中存儲(chǔ)模入模塊地址指針 L #DBW_Addr SLD 3
30、/形成數(shù)據(jù)塊存儲(chǔ)地址指針 T LD8 /在臨時(shí)本地?cái)?shù)據(jù)雙字LD 8中存入數(shù)據(jù)塊存儲(chǔ)地址指針 L #CH_LEN /以要讀入的通道數(shù)為循環(huán)次數(shù),裝入累加器1 第5章 S7系列程序結(jié)構(gòu)與程序設(shè)計(jì) /將累加器1的值,裝入循環(huán)次數(shù)計(jì)數(shù)器LW0(臨時(shí)本地?cái)?shù)據(jù)字) L LD4 LARl /將模入模塊地址指針裝入地址寄存器1 L PIWARl,P#0.0 /讀模入模塊裝入累加器1 T LW2 /將累加器1的內(nèi)容暫存入緩沖器LW2 L LD8 LARl /將數(shù)據(jù)塊存儲(chǔ)地址指針裝入地址寄存器1 L LW2 /將數(shù)據(jù)緩沖器中的內(nèi)容裝入累加器1 T DBWARl,P#0.0 /將累加器的內(nèi)容存入數(shù)據(jù)塊中L LD4
31、/AR1+P#2.0AR1+ L#16 /ACC1+(_0001_0 000)T LD4 /調(diào)整模入模塊地址指針,指向下一通道Acc1+(bb bbbb bxxx)L LD8+ L#16T LD8 /調(diào)整數(shù)據(jù)塊存儲(chǔ)地址指針,指向下一存儲(chǔ)地址L LW0 /將循環(huán)次數(shù)計(jì)數(shù)器LW0的值裝入累加器1LOOP NEXT /若累加器1的值不為0,將累加器減1繼續(xù)循環(huán);若累加 /器為0,則結(jié)束 NEXT:T LW 0第5章 S7系列程序結(jié)構(gòu)與程序設(shè)計(jì) 在FC100中,寄存器間接尋址指令OP NDBLW0使用了臨時(shí)本地?cái)?shù)據(jù)LW0,變量表中定義的臨時(shí)變量雖然也在L堆棧中,但不能用于存儲(chǔ)器間接尋址,從這里也可看出
32、臨時(shí)本地?cái)?shù)據(jù)與臨時(shí)變量的區(qū)別。程序中LW2、LD4和LD8起的作用也可用臨時(shí)變量替代。 下面舉例說(shuō)明如何使用FC100。在某應(yīng)用中,機(jī)架0的4號(hào)槽位安裝了一個(gè)8模入模塊(地址256開(kāi)始),若要將前6個(gè)模入模塊信號(hào)讀回,存入DB50.DBW10開(kāi)始的6個(gè)字單元中,可按下列形式調(diào)用FC100: CALL FC100 PIW_Add:=256 CH_LEN:=6 DB_No:=50 DBW_Addr:=10 第5章 S7系列程序結(jié)構(gòu)與程序設(shè)計(jì)4. 時(shí)鐘脈沖發(fā)生器時(shí)鐘脈沖發(fā)生器使用定時(shí)器實(shí)現(xiàn)自由設(shè)定時(shí)鐘脈沖發(fā)生器功能使用定時(shí)器實(shí)現(xiàn)自由設(shè)定時(shí)鐘脈沖發(fā)生器功能(脈沖占空系數(shù)脈沖占空系數(shù)1:1)。(1)FC
33、1變量聲明表 (2)FC1梯形圖程序第5章 S7系列程序結(jié)構(gòu)與程序設(shè)計(jì)(3)OB1調(diào)用梯形圖程序第5章 S7系列程序結(jié)構(gòu)與程序設(shè)計(jì)5.2 數(shù)據(jù)塊與數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)塊與數(shù)據(jù)結(jié)構(gòu)5.2.1 數(shù)據(jù)塊數(shù)據(jù)塊 數(shù)據(jù)塊定義在S7 CPU存儲(chǔ)器中,用戶(hù)可在存儲(chǔ)器中建立一個(gè)或多個(gè)數(shù)據(jù)塊。每個(gè)數(shù)據(jù)塊可大可小,但CPU對(duì)數(shù)據(jù)塊數(shù)量及數(shù)據(jù)總量有限制,如對(duì)于CPU314,用作數(shù)據(jù)塊的存儲(chǔ)器最多為8 KB(8192 B),用戶(hù)定義的數(shù)據(jù)總量不能超出這個(gè)限制。對(duì)數(shù)據(jù)塊必須遵循先定義后使用的原則,否則,將造成系統(tǒng)錯(cuò)誤。第5章 S7系列程序結(jié)構(gòu)與程序設(shè)計(jì) 1. 定義數(shù)據(jù)塊定義數(shù)據(jù)塊 在編程階段和運(yùn)行程序中都能定義數(shù)據(jù)塊。大多數(shù)數(shù)
34、據(jù)塊是在編程階段用STEP 7開(kāi)發(fā)軟件包定義的,定義內(nèi)容包括數(shù)據(jù)塊號(hào)及塊中的變量(包括變量符號(hào)名、數(shù)據(jù)類(lèi)型以及初始值等),定義完成后,數(shù)據(jù)塊中變量的順序及類(lèi)型決定了數(shù)據(jù)塊的數(shù)據(jù)結(jié)構(gòu),變量的數(shù)量決定了數(shù)據(jù)塊的大小。數(shù)據(jù)塊在使用前,必須作為用戶(hù)程序的一部分下載到CPU中。 如果確實(shí)需要,還可以在程序運(yùn)行中動(dòng)態(tài)定義一個(gè)數(shù)據(jù)塊。動(dòng)態(tài)定義時(shí),數(shù)據(jù)塊號(hào)是自動(dòng)產(chǎn)生的,數(shù)據(jù)塊在存儲(chǔ)器中的位置是動(dòng)態(tài)分配的。由于要定義的數(shù)據(jù)塊有可能大于CPU存儲(chǔ)器(用于數(shù)據(jù)塊的部分)的剩余空間,因此動(dòng)態(tài)定義過(guò)程有可能失敗。第5章 S7系列程序結(jié)構(gòu)與程序設(shè)計(jì) 2訪問(wèn)數(shù)據(jù)塊訪問(wèn)數(shù)據(jù)塊 在用戶(hù)程序中可能定義了許多數(shù)據(jù)塊,而每個(gè)數(shù)據(jù)塊中
35、又有許多不同類(lèi)型的數(shù)據(jù),因此,訪問(wèn)時(shí)需要明確數(shù)據(jù)塊號(hào)和數(shù)據(jù)塊中的數(shù)據(jù)類(lèi)型與位置。根據(jù)明確數(shù)據(jù)塊號(hào)的不同方法,可以用多種方法訪問(wèn)數(shù)據(jù)塊中的數(shù)據(jù)。 直接在訪問(wèn)指令中寫(xiě)明數(shù)據(jù)塊號(hào),如: L DB5.DBW10 T DB10.DBW20 L Motor_1.Speed /符號(hào)地址第5章 S7系列程序結(jié)構(gòu)與程序設(shè)計(jì) 另一種方法是“先打開(kāi)后訪問(wèn)”。在訪問(wèn)某數(shù)據(jù)塊中的數(shù)據(jù)前,先“打開(kāi)”這個(gè)數(shù)據(jù)塊,也就是將數(shù)據(jù)塊號(hào)(數(shù)據(jù)塊的起始地址)裝入數(shù)據(jù)塊寄存器。這樣,存放在數(shù)據(jù)塊中的數(shù)據(jù)就可利用數(shù)據(jù)塊起始地址加偏移量的方法來(lái)訪問(wèn)。如:OPN DB5L DBW10OPN DB10T DBW20第5章 S7系列程序結(jié)構(gòu)與程
36、序設(shè)計(jì) 在打開(kāi)一個(gè)數(shù)據(jù)塊時(shí),先打開(kāi)的數(shù)據(jù)塊會(huì)自動(dòng)關(guān)閉(沒(méi)有專(zhuān)門(mén)的數(shù)據(jù)塊關(guān)閉指令)。由于有兩個(gè)數(shù)據(jù)塊寄存器(DB和DI寄存器),因此,最多可同時(shí)打開(kāi)兩個(gè)數(shù)據(jù)塊。一個(gè)作為背景數(shù)據(jù)塊,數(shù)據(jù)塊的起始地址存儲(chǔ)在DI寄存器中;另一個(gè)作為共享數(shù)據(jù)塊,數(shù)據(jù)塊的起始地址存儲(chǔ)在DB寄存器中。打開(kāi)背景數(shù)據(jù)塊,在調(diào)用FB時(shí)可以自動(dòng)實(shí)現(xiàn)。由于調(diào)用FB時(shí)使用DI寄存器,因此,一般不在FB程序中用OPN DI n指令打開(kāi)數(shù)據(jù)塊。第5章 S7系列程序結(jié)構(gòu)與程序設(shè)計(jì) 3. 背景數(shù)據(jù)塊和共享數(shù)據(jù)塊背景數(shù)據(jù)塊和共享數(shù)據(jù)塊 背景數(shù)據(jù)塊和共享數(shù)據(jù)塊有不同的用途。任何FB、FC或OB均可讀寫(xiě)存放在共享數(shù)據(jù)塊中的數(shù)據(jù)。背景數(shù)據(jù)塊是FB運(yùn)行
37、時(shí)的工作存儲(chǔ)區(qū),它存放FB的部分運(yùn)行變量。調(diào)用FB時(shí),必須指定一個(gè)相關(guān)的背景數(shù)據(jù)塊。作為規(guī)則,只有FB塊才能訪問(wèn)存放在背景數(shù)據(jù)塊中的數(shù)據(jù)。第5章 S7系列程序結(jié)構(gòu)與程序設(shè)計(jì) 一般情況下,每個(gè)FB都有一個(gè)對(duì)應(yīng)的背景數(shù)據(jù)塊,一個(gè)FB也可以使用不同的背景數(shù)據(jù)塊。如果幾個(gè)FB需要的背景數(shù)據(jù)完全相同,為節(jié)省存儲(chǔ)器,則可以定義成一個(gè)背景數(shù)據(jù)塊,供它們分別使用。通過(guò)多重背景數(shù)據(jù),也可將幾個(gè)FB需要的不同的背景數(shù)據(jù)定義在一個(gè)背景數(shù)據(jù)塊中,以?xún)?yōu)化數(shù)據(jù)管理。各數(shù)據(jù)塊在CPU的存儲(chǔ)器中是沒(méi)有區(qū)別的,只是由于打開(kāi)方式不同,才在打開(kāi)時(shí)有背景數(shù)據(jù)塊和共享數(shù)據(jù)塊之分。原則上,任何一個(gè)數(shù)據(jù)塊都可以當(dāng)作共享數(shù)據(jù)塊或背景數(shù)據(jù)塊使
38、用,實(shí)際上,一個(gè)數(shù)據(jù)塊由FB當(dāng)作背景數(shù)據(jù)塊使用時(shí),必須與FB的要求格式相符。第5章 S7系列程序結(jié)構(gòu)與程序設(shè)計(jì)4. 多重背景數(shù)據(jù)塊在用戶(hù)程序中使用多重背景可以減少背景數(shù)據(jù)塊的數(shù)量。以發(fā)動(dòng)機(jī)控制程序?yàn)槔瓉?lái)FB1控制汽油機(jī)和柴油機(jī)時(shí),分別使用了背景數(shù)據(jù)塊DB1和DB2。使用多重背景時(shí)只需要一個(gè)背景數(shù)據(jù)塊DB10,但是需要增加一個(gè)功能塊F10來(lái)調(diào)用作為“局域背景”的FB1,F(xiàn)B1的數(shù)據(jù)存儲(chǔ)在FB10的背景數(shù)據(jù)塊DB10中,DB10是自動(dòng)生成的。不需要給FB1分配背景數(shù)據(jù)塊。但需要在FB10的變量生命表中聲明靜態(tài)局域數(shù)據(jù)(STAT)FB1。多重背景的程序結(jié)構(gòu)如下:第5章 S7系列程序結(jié)構(gòu)與程序設(shè)計(jì)
39、FB10變量聲明表第5章 S7系列程序結(jié)構(gòu)與程序設(shè)計(jì)第5章 S7系列程序結(jié)構(gòu)與程序設(shè)計(jì)第5章 S7系列程序結(jié)構(gòu)與程序設(shè)計(jì)OB1中調(diào)用多重背景中調(diào)用多重背景第5章 S7系列程序結(jié)構(gòu)與程序設(shè)計(jì)5.2.2 數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu) STEP 7數(shù)據(jù)塊中的數(shù)據(jù)結(jié)構(gòu)形式比較豐富,數(shù)據(jù)塊中的數(shù)據(jù)既可以是基本數(shù)據(jù)類(lèi)型,又可以是復(fù)式數(shù)據(jù)類(lèi)型。所謂復(fù)式數(shù)據(jù)類(lèi)型,是指位數(shù)超過(guò)32位的數(shù)據(jù)或由其它數(shù)據(jù)類(lèi)型構(gòu)成的數(shù)據(jù)組。基本數(shù)據(jù)類(lèi)型在第4章中已有過(guò)介紹,本節(jié)專(zhuān)門(mén)說(shuō)明復(fù)式數(shù)據(jù)類(lèi)型。STEP 7允許4種復(fù)式數(shù)據(jù)類(lèi)型,如表5.5所示。第5章 S7系列程序結(jié)構(gòu)與程序設(shè)計(jì)表表5.5 復(fù)式數(shù)據(jù)類(lèi)型復(fù)式數(shù)據(jù)類(lèi)型名 稱(chēng) 類(lèi) 型 說(shuō) 明 日期
40、-時(shí)間 DATE_AND_TIME 長(zhǎng)度為 8 B(64 位)。 按 BCD 碼格式順序存儲(chǔ)以下信息: 年(字節(jié) 0)、月(字節(jié) 1)、日(字節(jié) 2)、小時(shí)(字節(jié) 3)、分(字節(jié) 4)、秒(字節(jié) 5)、毫秒(字節(jié) 6 和 7 的高半字節(jié))、星期(字節(jié) 7 的低半字節(jié)) 字符串 STRING 字符串是一組 ASCII 碼,一個(gè)串內(nèi)可定義最多 254 個(gè)字符,占用256 B 內(nèi)存。串中每個(gè)字符占用 1 B,內(nèi)存中頭兩個(gè)字節(jié)存儲(chǔ)串的長(zhǎng)度信息。第一個(gè)字節(jié)存放此串的定義長(zhǎng)度(默認(rèn)值為 254 個(gè)字符),第二個(gè)字節(jié)存放字符串實(shí)際長(zhǎng)度。例如,String7定義長(zhǎng)度為 7 的字符串,占用內(nèi)存 9 B(2+7)
41、。若不定義長(zhǎng)度,則默認(rèn)為 254 個(gè)字符 數(shù)組 ARRAY 由一種數(shù)據(jù)類(lèi)型組成的數(shù)據(jù)集合, 數(shù)據(jù)類(lèi)型可以是基本數(shù)據(jù)類(lèi)型或復(fù)式數(shù)據(jù)類(lèi)型。通過(guò)下標(biāo)訪問(wèn)數(shù)組中的數(shù)據(jù)??啥x到 6 維數(shù)組 構(gòu)造 STRUCT 由多種數(shù)據(jù)類(lèi)型組成的數(shù)據(jù)集合 第5章 S7系列程序結(jié)構(gòu)與程序設(shè)計(jì) 另一種復(fù)式數(shù)據(jù)類(lèi)型稱(chēng)為“用戶(hù)數(shù)據(jù)類(lèi)型(UDT)”,它是利用STEP 7“程序編輯器”產(chǎn)生的,可命名構(gòu)造。將大量數(shù)據(jù)組織到UDT中,在生成數(shù)據(jù)塊或在變量聲明表中聲明變量時(shí)將變得更加方便。用戶(hù)還可為UDT聲明符號(hào)名。 日期-時(shí)間數(shù)據(jù)類(lèi)型的名稱(chēng)、位數(shù)及格式是由操作系統(tǒng)定義的,用戶(hù)不可改變,并且該類(lèi)型在S7-300中必須用標(biāo)準(zhǔn)功能塊SFC
42、才能訪問(wèn)。其它復(fù)式數(shù)據(jù)類(lèi)型則由用戶(hù)在邏輯塊變量聲明表或數(shù)據(jù)塊中定義。第5章 S7系列程序結(jié)構(gòu)與程序設(shè)計(jì) 1. 數(shù)組數(shù)組 一個(gè)數(shù)組將同種數(shù)據(jù)類(lèi)型組合成整體,但不能建立數(shù)組的數(shù)組。圖5.4表示一個(gè)二維 整數(shù)數(shù)組。數(shù)組的符號(hào)名是“Op_temps”,用符號(hào)名加下標(biāo)可訪問(wèn)數(shù)組中的數(shù)據(jù)。以圖5.4為例,第一個(gè)整數(shù)是Op_temps1,1,第三個(gè)為Op_tempsl,3,第四個(gè)為Op_temps2,1,第六個(gè)為Op_temps2,3。第5章 S7系列程序結(jié)構(gòu)與程序設(shè)計(jì)圖5.4 多維數(shù)組的存儲(chǔ)結(jié)構(gòu)整數(shù)整數(shù)整數(shù)1,21,21,3整數(shù)整數(shù)整數(shù)2,12,22,312,13Op_temps(整型數(shù)組符號(hào)名)第5章
43、S7系列程序結(jié)構(gòu)與程序設(shè)計(jì) 1) 建立數(shù)組建立數(shù)組 在數(shù)據(jù)塊或變量聲明表中可定義數(shù)組。在聲明數(shù)組時(shí),首先給數(shù)組命名,接著使用關(guān)鍵字(ARRAY),然后在方括號(hào)中給出數(shù)組的大小及維數(shù)??梢远x多達(dá)6維的數(shù)組,并用下標(biāo)來(lái)標(biāo)識(shí)數(shù)組的大小。在方括號(hào)中放下標(biāo),各維之間用逗號(hào)隔開(kāi),每一維的首尾之間用雙點(diǎn)隔開(kāi)。一個(gè)下標(biāo)可以為任何一個(gè)整數(shù)值(范圍:32 76832 767),并包括負(fù)數(shù)。如用ARRAY13, 12, 13, 23, 3032, 14來(lái)定義變量Op_temps為6維數(shù)組。該數(shù)組的第一個(gè)整數(shù)為Op_temps1, 1, 1, 2, 30, 1;最后一個(gè)為Op_temps3, 2, 3, 3, 32
44、, 4。圖5.5顯示了建立名字為Heat_23的二維數(shù)組(與圖5.4中的數(shù)組相似)。第5章 S7系列程序結(jié)構(gòu)與程序設(shè)計(jì)圖5.5 建立數(shù)組Address0.00.02.012.0SymbolHeat_23Data TypeSTRUCTARRAY1 2,1 3INTEND_STRUCTInitial Value Comment第5章 S7系列程序結(jié)構(gòu)與程序設(shè)計(jì) 2) 賦初始值 在建立數(shù)組時(shí),STEP 7允許以?xún)煞N方法給數(shù)組的元素賦初始值。對(duì)圖5.5中的數(shù)組,可以為6個(gè)元素賦初始值:17,23,45,556,3342,0;若初始值中有順序相同的元素,寫(xiě)法可以簡(jiǎn)化,如要數(shù)組的頭兩個(gè)元素設(shè)特定數(shù)值,其余
45、4個(gè)為10,則可簡(jiǎn)寫(xiě)為17,23,4(10),其中4為重復(fù)系數(shù),10為要重復(fù)的數(shù)值。第5章 S7系列程序結(jié)構(gòu)與程序設(shè)計(jì) 3) 訪問(wèn)數(shù)組 利用數(shù)組中指定元素的下標(biāo)可以訪問(wèn)數(shù)組數(shù)據(jù),這時(shí)數(shù)據(jù)塊、數(shù)組符號(hào)名及下標(biāo)一起 使用。如圖5.5中聲明的數(shù)組在DB20(符號(hào)名:MOTOR)的第一個(gè)字節(jié)處開(kāi)始,用以下地址訪問(wèn)數(shù)組中的第二個(gè)元素:MOTOR. Heat_231,2 4) 利用數(shù)組傳遞參數(shù) 將數(shù)組作為參數(shù)傳遞時(shí),要求形式參數(shù)和實(shí)際參數(shù)必須有同樣的數(shù)據(jù)組織結(jié)構(gòu)、相同 的數(shù)據(jù)類(lèi)型,并按相同的順序排列。第5章 S7系列程序結(jié)構(gòu)與程序設(shè)計(jì) 2. 構(gòu)造構(gòu)造 構(gòu)造將不同數(shù)據(jù)類(lèi)型組合成一個(gè)整體,見(jiàn)圖5.6。構(gòu)造的元
46、素可以是任何基本數(shù)據(jù)類(lèi)型或復(fù)式數(shù)據(jù)類(lèi)型,有數(shù)組或構(gòu)造元素的構(gòu)造能嵌套8層。因此,STEP 7允許用戶(hù)將過(guò)程中的各種關(guān)聯(lián)數(shù)據(jù)統(tǒng)一組織在一個(gè)構(gòu)造中,也為統(tǒng)一處理不同類(lèi)型數(shù)據(jù)或參數(shù)提供了可能性。第5章 S7系列程序結(jié)構(gòu)與程序設(shè)計(jì)圖5.6 構(gòu)造的存儲(chǔ)結(jié)構(gòu)INTBYTECHARREALBOOLSTRUCT整數(shù)字節(jié)字符浮點(diǎn)數(shù)布爾數(shù)第5章 S7系列程序結(jié)構(gòu)與程序設(shè)計(jì) 1) 建立構(gòu)造 構(gòu)造(STRUCT)只能在數(shù)據(jù)塊或變量聲明表中定義。圖5.7所示為由整數(shù)(存放數(shù)量)、字節(jié)(存放原始數(shù)據(jù))、字符(存放控制碼)、浮點(diǎn)數(shù)(存放溫度)、布爾數(shù)(完成標(biāo)志信號(hào))組成的構(gòu)造。該構(gòu)造的名稱(chēng)為Stack_1。第5章 S7系列
47、程序結(jié)構(gòu)與程序設(shè)計(jì)圖5.7 建立構(gòu)造Stack_lAddress0.00.010.0SymbolStack_1Data TypeSTRUCTInitial Value Comment0.02.03.04.08.010.0AmountOriginal_dataControl_codeTemperatureEndSTRUCTINTBYTECHARREALBOOLEND_STRUCTEND_STRUCT0B#16#0Z98.6FALSE第5章 S7系列程序結(jié)構(gòu)與程序設(shè)計(jì) 2) 賦初始值 按每個(gè)元素的類(lèi)型和名稱(chēng)給構(gòu)造的每個(gè)元素賦初始值。并將其寫(xiě)入圖5.8中Initial Value(初始值欄)的相應(yīng)行
48、中。例如,可以分配如下初始值: Amount0 Original_dataB#l6#0 Control_code“Z” Temperature98.6 End:FALSE 第5章 S7系列程序結(jié)構(gòu)與程序設(shè)計(jì) 3) 訪問(wèn)構(gòu)造 (1) 用符號(hào)地址訪問(wèn):如MOTO.Stack_1.Temperature,其中,MOTO為構(gòu)造所在數(shù)據(jù)塊DB20的符號(hào)名。 (2) 用物理地址訪問(wèn):如Stack_l從DB20的字節(jié)0開(kāi)始存放,Amount的物理地址是DB20.DBW0,Temperature的地址為DB20.DBD4。 4) 利用構(gòu)造傳遞參數(shù) 構(gòu)造可以作為參數(shù)來(lái)傳遞。將構(gòu)造作為參數(shù)傳遞時(shí),要求形式參數(shù)和實(shí)
49、際參數(shù)必須有同樣的數(shù)據(jù)組織結(jié)構(gòu)、相同的數(shù)據(jù)類(lèi)型,并按相同的順序排列。第5章 S7系列程序結(jié)構(gòu)與程序設(shè)計(jì) 3. 用戶(hù)數(shù)據(jù)類(lèi)型用戶(hù)數(shù)據(jù)類(lèi)型 STEP 7允許將基本數(shù)據(jù)類(lèi)型或復(fù)式數(shù)據(jù)類(lèi)型組合成用戶(hù)自己定義的數(shù)據(jù)類(lèi)型,這種類(lèi)型稱(chēng)為用戶(hù)數(shù)據(jù)類(lèi)型或UDT。用戶(hù)數(shù)據(jù)類(lèi)型必須首先單獨(dú)建立,并存放在稱(chēng)為UDT的特殊數(shù)據(jù)塊中,見(jiàn)圖5.8。 圖5.8是用“程序編輯器”建立的一個(gè)UDT,其數(shù)據(jù)組織結(jié)構(gòu)與圖5.7相同,該用戶(hù)數(shù)據(jù)類(lèi)型被定義為UDT200,并單獨(dú)存儲(chǔ)在被稱(chēng)為UDT200的特殊塊中。也可以為UDT200建立符號(hào)名(如process_data),但是,命名只能在符號(hào)表中進(jìn)行。圖5.9給出了一個(gè)使用UDT定義數(shù)
50、據(jù)塊(如DBl0)的例子,數(shù)據(jù)塊DBl0中定義兩個(gè)變量,一個(gè)為整型,另一個(gè)為用戶(hù)數(shù)據(jù)類(lèi)型(UDT200)。從圖中可以看出,數(shù)據(jù)塊中UDT的用法與基本數(shù)據(jù)類(lèi)型的用法類(lèi)似。第5章 S7系列程序結(jié)構(gòu)與程序設(shè)計(jì)圖5.8 建立用戶(hù)數(shù)據(jù)類(lèi)型(UDT200)Address0.010.0SymbolData TypeSTRUCTInitial Value Comment0.02.03.04.08.0AmountOriginal_dataControl_codeTemperatureEndINTBYTECHARREALBOOLEND_STRUCT0B#16#0Z98.6FALSE第5章 S7系列程序結(jié)構(gòu)與程序設(shè)
51、計(jì)圖5.9 使用UDTAddress0.012.0SymbolData TypeSTRUCTInitial Value Comment0.02.0NumberStack_2INTUDT 200END_STRUCT第5章 S7系列程序結(jié)構(gòu)與程序設(shè)計(jì) 用符號(hào)地址或物理地址兩種方式可以訪問(wèn)UDT中的變量。例如,在DB10中定義了圖5.9格式的數(shù)據(jù),DB10的符號(hào)名為Process,訪問(wèn)Amount變量可分別寫(xiě)為DB10.DBW 2或Process.Stack_2.Amount。 建立用戶(hù)數(shù)據(jù)類(lèi)型的目的是為了將UDT作為一種數(shù)據(jù)類(lèi)型使用,以方便定義多個(gè)結(jié)構(gòu)相同的構(gòu)造變量。圖5.9建立的Stack_2與
52、圖5.7建立的Stack_1相比,不僅大小結(jié)構(gòu)完全相同,而且對(duì)Stack_1和Stack_2中元素的訪問(wèn)方法也完全相同。在建立DB10時(shí),由于使用了UDT而使得數(shù)據(jù)塊建立過(guò)程方便快捷。在多處使用同樣的UDT時(shí),這一優(yōu)點(diǎn)將更加突出。第5章 S7系列程序結(jié)構(gòu)與程序設(shè)計(jì)5.3 S7系列系列PLC程序設(shè)計(jì)程序設(shè)計(jì)5.3.1 程序結(jié)構(gòu)設(shè)計(jì)程序結(jié)構(gòu)設(shè)計(jì) STEP 7不僅從不同層次充分支持合理的程序結(jié)構(gòu)設(shè)計(jì),而且也簡(jiǎn)化了結(jié)構(gòu)設(shè)計(jì)的復(fù)雜程度。 一個(gè)復(fù)雜的自動(dòng)化過(guò)程可以被分解并定義為一個(gè)或多個(gè)項(xiàng)目(PROJECT);而對(duì)于每個(gè)項(xiàng)目,又可以進(jìn)一步分解并定義給一個(gè)或多個(gè)CPU,每個(gè)CPU都有一個(gè)控制程序(CPU_P
53、ROGRAM)。圖5.10顯示了一個(gè)樣本過(guò)程,它分成4個(gè)不同的項(xiàng)目:項(xiàng)目1和項(xiàng)目2只有一個(gè)CPU,而項(xiàng)目3和項(xiàng)目4有多個(gè)CPU。這樣,一個(gè)很復(fù)雜的控制任務(wù)的結(jié)構(gòu)設(shè)計(jì),就被簡(jiǎn)化為各個(gè)CPU程序的結(jié)構(gòu)設(shè)計(jì)。項(xiàng)目間或項(xiàng)目中的各CPU程序之間,能以某種方式聯(lián)網(wǎng),實(shí)現(xiàn)信息共享。如在S7協(xié)議支持下,用MPI網(wǎng)以全局?jǐn)?shù)據(jù)通信的方式可方便地建立起聯(lián)系,實(shí)現(xiàn)一個(gè)項(xiàng)目中各CPU共享信息。 第5章 S7系列程序結(jié)構(gòu)與程序設(shè)計(jì)圖5.10 樣本過(guò)程的項(xiàng)目劃分存儲(chǔ)攪拌準(zhǔn)備包裝一個(gè)工廠的過(guò)程任務(wù)項(xiàng)目1CPU1:存儲(chǔ)項(xiàng)目2CPU2:攪拌項(xiàng)目3CPU3:傳輸CPU4:加工項(xiàng)目4CPU5:打包CPU6:傳輸CPU7:裝箱第5章
54、S7系列程序結(jié)構(gòu)與程序設(shè)計(jì) 典型的情況是一個(gè)過(guò)程控制任務(wù)只有一個(gè)項(xiàng)目,該項(xiàng)目下也僅有一個(gè)CPU程序,每一個(gè)CPU程序又可依據(jù)時(shí)間特性或事件觸發(fā)特性的差異分類(lèi)編入不同的組織塊(OB)中。例如,需要以固定時(shí)間間隔循環(huán)執(zhí)行的那部分程序編入組織塊OB35中,為PLC正常運(yùn)行而需進(jìn)行初始化的程序編入組織塊OBl00中。又如,由硬件觸發(fā)的中斷服務(wù)程序編入組織塊OB40中,對(duì)程序執(zhí)行中產(chǎn)生的同步錯(cuò)誤的響應(yīng)處理程序編入組織塊OB121或OB122中。第5章 S7系列程序結(jié)構(gòu)與程序設(shè)計(jì) 對(duì)于各組織塊中的程序,可以根據(jù)其復(fù)雜程度分別選用線性、分部或結(jié)構(gòu)化等三種形式中的一種程序結(jié)構(gòu)。由于組織塊OB1(主程序循環(huán))中
55、的程序是應(yīng)用程序中主要的也是最復(fù)雜的部分,因此,對(duì)OB1中的程序設(shè)計(jì)合理的結(jié)構(gòu)是十分重要的。下面分別說(shuō)明三種典型結(jié)構(gòu)的特點(diǎn)及選用原則。第5章 S7系列程序結(jié)構(gòu)與程序設(shè)計(jì) 1. 線性程序結(jié)構(gòu)線性程序結(jié)構(gòu) 用“線性”結(jié)構(gòu)設(shè)計(jì)的程序連續(xù)放置在一個(gè)塊內(nèi)(通常為OB1),塊中的程序按順序執(zhí)行。這一結(jié)構(gòu)是最初的PLC模擬的繼電器梯形邏輯的模型。線性程序具有簡(jiǎn)單、直接的特點(diǎn)。編程時(shí),不必考慮功能塊如何編程及如何調(diào)用,也不必考慮如何定義局部變量及如何使用背景數(shù)據(jù)塊。由于所有的指令在一個(gè)塊內(nèi),因此它適用于只需一個(gè)人編寫(xiě)的、相對(duì)簡(jiǎn)單的控制程序。第5章 S7系列程序結(jié)構(gòu)與程序設(shè)計(jì) 2. 分部程序結(jié)構(gòu)分部程序結(jié)構(gòu) 這
56、是一種部分模塊化的程序結(jié)構(gòu),也稱(chēng)為部分結(jié)構(gòu)化。程序被分成各部分放在若干功能塊中,每個(gè)功能塊含有用于一種設(shè)備的一系列控制邏輯。放置在組織塊OB1中的指令決定控制程序的各功能塊的執(zhí)行。比如說(shuō),一個(gè)分部程序可能包含以下內(nèi)容:(1) 用于控制設(shè)備每一部分的FC;(2) 用于控制設(shè)備每一工作狀態(tài)的FC;(3) 用于控制操作員接口的FC;(4) 用于進(jìn)行PLC自診斷的FC。第5章 S7系列程序結(jié)構(gòu)與程序設(shè)計(jì) 在分部程序中,既無(wú)數(shù)據(jù)交換也沒(méi)有重復(fù)利用的程序代碼。各功能塊收集并使用自己的數(shù)據(jù),功能塊不傳遞也不接收參數(shù),功能塊的編程與調(diào)用比較簡(jiǎn)單。由于每個(gè)功能區(qū)分為不同的塊,因而使得多個(gè)程序員能夠同時(shí)編程而不發(fā)
57、生沖突。分部程序結(jié)構(gòu)的編程效率比線性程序有所提高,程序測(cè)試也較方便,對(duì)程序員的要求也不太高。對(duì)不太復(fù)雜的控制程序可考慮采用這種程序結(jié)構(gòu)。第5章 S7系列程序結(jié)構(gòu)與程序設(shè)計(jì) 3. 結(jié)構(gòu)化程序結(jié)構(gòu)結(jié)構(gòu)化程序結(jié)構(gòu) 完全結(jié)構(gòu)化(模塊化)的程序結(jié)構(gòu)是PLC程序設(shè)計(jì)和編程最有效的結(jié)構(gòu)形式,它可用于復(fù)雜程度高、程序規(guī)模大的控制應(yīng)用程序設(shè)計(jì)。結(jié)構(gòu)化程序可以重復(fù)使用某些功能塊,只需要在使用功能塊時(shí)為其提供不同的環(huán)境變量(實(shí)參),就能完成對(duì)不同設(shè)備的控制。例如,在工業(yè)攪拌控制過(guò)程中有三臺(tái)泵,對(duì)它們的控制功能相似,可以編寫(xiě)一個(gè)用于對(duì)泵進(jìn)行控制的功能塊,編程時(shí)先定義泵控制所需的變量(形參),并使用這些變量構(gòu)成一個(gè)稱(chēng)為
58、“泵控制”的一般功能塊。在調(diào)用該功能塊時(shí),通過(guò)改變傳入功能塊中的參數(shù)(實(shí)參),可以分別對(duì)成分A、成分B和攪拌桶中的三臺(tái)泵進(jìn)行控制。第5章 S7系列程序結(jié)構(gòu)與程序設(shè)計(jì) 結(jié)構(gòu)化程序有最高的編程和程序調(diào)試效率,應(yīng)用程序代碼量也最小。結(jié)構(gòu)化程序也支持多個(gè)程序員協(xié)同編程。這種程序結(jié)構(gòu)建立在對(duì)PLC系統(tǒng)功能的合理分析、分解及綜合的基礎(chǔ)之上,程序具體結(jié)構(gòu)形式的確定與程序設(shè)計(jì)人員的水平及經(jīng)驗(yàn)關(guān)系很大,對(duì)程序員的要求也較前兩種高。第5章 S7系列程序結(jié)構(gòu)與程序設(shè)計(jì)5.3.2 程序設(shè)計(jì)實(shí)例程序設(shè)計(jì)實(shí)例圖5.11 工業(yè)攪拌過(guò)程示意圖MMM入口閥進(jìn)料泵進(jìn)料閥流量傳感器區(qū)域:配料A區(qū)域:混合罐攪拌電機(jī)MM入口閥進(jìn)料泵進(jìn)
59、料閥區(qū)域:配料BM排料閥區(qū)域:排料罐液位測(cè)量開(kāi)關(guān)第5章 S7系列程序結(jié)構(gòu)與程序設(shè)計(jì) 1. 將過(guò)程分割為任務(wù)和區(qū)域?qū)⑦^(guò)程分割為任務(wù)和區(qū)域 一個(gè)自動(dòng)化過(guò)程包括許多單個(gè)的任務(wù),通過(guò)識(shí)別一個(gè)過(guò)程內(nèi)的相關(guān)任務(wù)組,然后將這些組再分解為更小的任務(wù),即使最復(fù)雜的過(guò)程也能夠被定義。下面將這個(gè)工業(yè)攪拌過(guò)程構(gòu)造為四個(gè)功能區(qū)域:配料A區(qū)域、配料B區(qū)域、混合罐區(qū)域和排料區(qū)域。第5章 S7系列程序結(jié)構(gòu)與程序設(shè)計(jì) 2. 說(shuō)明各個(gè)功能區(qū)域說(shuō)明各個(gè)功能區(qū)域 1) 配料A和配料B區(qū)域 (1) 每種配料的管道都配備有一個(gè)入口和一個(gè)進(jìn)料閥以及進(jìn)料泵。 (2) 進(jìn)料管還有流量傳感器。 (3) 當(dāng)罐的液面?zhèn)鞲衅髦甘竟逎M(mǎn)時(shí),進(jìn)料泵的接通必
60、須被鎖定。 (4) 當(dāng)排料閥打開(kāi)時(shí),進(jìn)料泵的啟動(dòng)必須被鎖定。 (5) 在啟動(dòng)進(jìn)料泵后1 s內(nèi)必須打開(kāi)入口閥和進(jìn)料閥。 (6) 在進(jìn)料泵停止后(來(lái)自流量傳感器的信號(hào))閥門(mén)必須立即被關(guān)閉以防止配料從泵中泄露。 第5章 S7系列程序結(jié)構(gòu)與程序設(shè)計(jì) (7) 進(jìn)料泵的啟動(dòng)與一個(gè)時(shí)間監(jiān)控功能相結(jié)合,換句話(huà)說(shuō),在泵啟動(dòng)后的7 s之內(nèi),流量傳感器會(huì)報(bào)告溢出。 (8) 當(dāng)進(jìn)料泵運(yùn)行時(shí),如果流量傳感器沒(méi)有流量信號(hào),進(jìn)料泵必須盡可能快地?cái)嚅_(kāi)。 (9) 必須對(duì)進(jìn)料泵啟動(dòng)的次數(shù)進(jìn)行計(jì)數(shù)(維護(hù)間隔)。第5章 S7系列程序結(jié)構(gòu)與程序設(shè)計(jì) 2) 混合罐區(qū)域 (1) 當(dāng)罐的液面?zhèn)鞲衅髦甘尽耙好娴陀谧畹拖蕖被蚺帕祥y打開(kāi)時(shí),攪拌電
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 表內(nèi)乘法題目數(shù)學(xué)試卷
- 2020幼兒園幼兒膳食工作總結(jié)-幼兒園食堂工作總結(jié)范文5篇
- 2025年度教育類(lèi)在線考試系統(tǒng)開(kāi)發(fā)合同
- 2025年度特殊景觀植物引種與應(yīng)用合同
- 2025年度網(wǎng)絡(luò)安全防護(hù)技術(shù)合同范本
- (公開(kāi)課)部編版七年級(jí)歷史(下)第9課宋朝經(jīng)濟(jì)的發(fā)展聽(tīng)課評(píng)課記錄
- 人教版數(shù)學(xué)八年級(jí)上冊(cè)《用坐標(biāo)表示軸對(duì)稱(chēng)》聽(tīng)評(píng)課記錄
- 現(xiàn)代物流業(yè)與科技教育的新機(jī)遇
- 物聯(lián)網(wǎng)時(shí)代下的Java嵌入式系統(tǒng)開(kāi)發(fā)探討
- 2025年度醫(yī)療設(shè)備養(yǎng)護(hù)與故障快速響應(yīng)合同
- 2025民政局離婚協(xié)議書(shū)范本(民政局官方)4篇
- 2024年03月四川農(nóng)村商業(yè)聯(lián)合銀行信息科技部2024年校園招考300名工作人員筆試歷年參考題庫(kù)附帶答案詳解
- 小學(xué)一年級(jí)數(shù)學(xué)上冊(cè)口算練習(xí)題總匯
- 睡眠專(zhuān)業(yè)知識(shí)培訓(xùn)課件
- 潤(rùn)滑油知識(shí)-液壓油
- 《工程勘察設(shè)計(jì)收費(fèi)標(biāo)準(zhǔn)》(2002年修訂本)
- NPI管理流程(精)
- 色卡 對(duì)照表 PANTONE-CMYK
- 海員(船員)體格檢查表
- 深圳水管理體制改革的思考和建議
- 消毒供應(yīng)中心打包區(qū)教學(xué)要點(diǎn) ppt課件
評(píng)論
0/150
提交評(píng)論