第5章S7系列程序結(jié)構(gòu)與程序設(shè)計(jì)_第1頁
第5章S7系列程序結(jié)構(gòu)與程序設(shè)計(jì)_第2頁
第5章S7系列程序結(jié)構(gòu)與程序設(shè)計(jì)_第3頁
第5章S7系列程序結(jié)構(gòu)與程序設(shè)計(jì)_第4頁
第5章S7系列程序結(jié)構(gòu)與程序設(shè)計(jì)_第5頁
已閱讀5頁,還剩58頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、第第5 5章章 S7S7系列程序結(jié)構(gòu)與程序設(shè)計(jì)系列程序結(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 5章章 S7S7系列程序結(jié)構(gòu)與程序設(shè)計(jì)系列程序結(jié)構(gòu)與程序設(shè)計(jì)5.1 編程方式與程序塊編程方式與程序塊5.1.1 S7-300編程方式簡(jiǎn)介編程方式簡(jiǎn)介 S7-300系列系列PLC的編程語言是的編程語言是STEP 7。用文件塊的形式管。用文件塊的形式管理用戶編寫的程序及程序運(yùn)行所需的數(shù)據(jù),組成結(jié)構(gòu)化的用戶理用戶編寫的程序及程序運(yùn)行所需的數(shù)據(jù),

2、組成結(jié)構(gòu)化的用戶程序。這樣,程序。這樣,PLC的程序組織明確,結(jié)構(gòu)清晰,易于修改。的程序組織明確,結(jié)構(gòu)清晰,易于修改。 為支持結(jié)構(gòu)化程序設(shè)計(jì),為支持結(jié)構(gòu)化程序設(shè)計(jì),STEP 7用戶程序通常由組織塊用戶程序通常由組織塊(OB)、功能塊、功能塊(FB)或功能塊或功能塊(FC)等三種類型的邏輯塊和數(shù)據(jù)塊等三種類型的邏輯塊和數(shù)據(jù)塊(DB)組成。組成。 OB1是主程序循環(huán)塊,在任何情況下,它都是需要的。是主程序循環(huán)塊,在任何情況下,它都是需要的。第第5 5章章 S7S7系列程序結(jié)構(gòu)與程序設(shè)計(jì)系列程序結(jié)構(gòu)與程序設(shè)計(jì)圖圖5.1 STEP 7調(diào)用過程示意圖調(diào)用過程示意圖背景DB共享DBFB/SFB背景DBFB

3、/SFBOB操作系統(tǒng)FC/SFCFC/SFC共享DB第第5 5章章 S7S7系列程序結(jié)構(gòu)與程序設(shè)計(jì)系列程序結(jié)構(gòu)與程序設(shè)計(jì) 功能塊功能塊(FB、FC)實(shí)際上是用戶子程序,分為帶實(shí)際上是用戶子程序,分為帶“記憶記憶”的的功能塊功能塊FB和不帶和不帶“記憶記憶”的功能塊的功能塊FC。FB帶有背景數(shù)據(jù)塊帶有背景數(shù)據(jù)塊(Instance Data Block),在,在FB塊結(jié)束時(shí)繼續(xù)保持,即被塊結(jié)束時(shí)繼續(xù)保持,即被“記憶記憶”。功能塊功能塊FC沒有背景數(shù)據(jù)塊。沒有背景數(shù)據(jù)塊。 數(shù)據(jù)塊數(shù)據(jù)塊(DB)是用戶定義的用于存取數(shù)據(jù)的存儲(chǔ)區(qū),可以被是用戶定義的用于存取數(shù)據(jù)的存儲(chǔ)區(qū),可以被打開或關(guān)閉。打開或關(guān)閉。DB

4、可以是屬于某個(gè)可以是屬于某個(gè)FB的情景數(shù)據(jù)塊,也可以是通的情景數(shù)據(jù)塊,也可以是通用的全局?jǐn)?shù)據(jù)塊,用于用的全局?jǐn)?shù)據(jù)塊,用于FB或或FC。 S7 CPU還提供標(biāo)準(zhǔn)系統(tǒng)功能塊還提供標(biāo)準(zhǔn)系統(tǒng)功能塊(SFB、SFC),集成在,集成在S7 CPU中的功能程序庫。用戶可以直接調(diào)用它們,由于它們是操中的功能程序庫。用戶可以直接調(diào)用它們,由于它們是操作系統(tǒng)的一部分,因此不需將其作為用戶程序下載到作系統(tǒng)的一部分,因此不需將其作為用戶程序下載到PLC。第第5 5章章 S7S7系列程序結(jié)構(gòu)與程序設(shè)計(jì)系列程序結(jié)構(gòu)與程序設(shè)計(jì)5.1.2 功能塊編程及調(diào)用功能塊編程及調(diào)用 功能塊由兩個(gè)主要部分組成:功能塊由兩個(gè)主要部分組成:

5、 當(dāng)調(diào)用功能塊時(shí),需要參數(shù)傳遞。參數(shù)傳遞的方式使得功當(dāng)調(diào)用功能塊時(shí),需要參數(shù)傳遞。參數(shù)傳遞的方式使得功能塊具有通用性,它可被其它的塊調(diào)用,以完成多個(gè)類似的控能塊具有通用性,它可被其它的塊調(diào)用,以完成多個(gè)類似的控制任務(wù)。制任務(wù)。第第5 5章章 S7S7系列程序結(jié)構(gòu)與程序設(shè)計(jì)系列程序結(jié)構(gòu)與程序設(shè)計(jì) 1. 變量聲明表變量聲明表(局部數(shù)據(jù)局部數(shù)據(jù)) 每個(gè)邏輯塊前部都有一個(gè)變量聲明表,在變量聲明表中定每個(gè)邏輯塊前部都有一個(gè)變量聲明表,在變量聲明表中定義邏輯塊用到的局部數(shù)據(jù)。表義邏輯塊用到的局部數(shù)據(jù)。表5.1給出了局部數(shù)據(jù)聲明類型。給出了局部數(shù)據(jù)聲明類型。表表5.1 局部數(shù)據(jù)類型局部數(shù)據(jù)類型第第5 5章章

6、 S7S7系列程序結(jié)構(gòu)與程序設(shè)計(jì)系列程序結(jié)構(gòu)與程序設(shè)計(jì) 1) 形參形參 為保證功能塊對(duì)同一類設(shè)備控制的通用性,應(yīng)使用這類設(shè)為保證功能塊對(duì)同一類設(shè)備控制的通用性,應(yīng)使用這類設(shè)備的抽象地址參數(shù),這些抽象參數(shù)稱為形式參數(shù),簡(jiǎn)稱形參。備的抽象地址參數(shù),這些抽象參數(shù)稱為形式參數(shù),簡(jiǎn)稱形參。功能塊在運(yùn)行時(shí)將該設(shè)備的相應(yīng)實(shí)際存儲(chǔ)區(qū)地址參數(shù)功能塊在運(yùn)行時(shí)將該設(shè)備的相應(yīng)實(shí)際存儲(chǔ)區(qū)地址參數(shù)(簡(jiǎn)稱實(shí)參簡(jiǎn)稱實(shí)參)替代形參,從而實(shí)現(xiàn)功能塊的通用性。替代形參,從而實(shí)現(xiàn)功能塊的通用性。 形參需在功能塊的變量聲明表中定義,實(shí)參在調(diào)用功能塊形參需在功能塊的變量聲明表中定義,實(shí)參在調(diào)用功能塊時(shí)給出。在功能塊的不同調(diào)用處,可為形參

7、提供不同的實(shí)參,時(shí)給出。在功能塊的不同調(diào)用處,可為形參提供不同的實(shí)參,但實(shí)參的數(shù)據(jù)類型必須與形參一致。但實(shí)參的數(shù)據(jù)類型必須與形參一致。第第5 5章章 S7S7系列程序結(jié)構(gòu)與程序設(shè)計(jì)系列程序結(jié)構(gòu)與程序設(shè)計(jì) 2) 靜態(tài)變量靜態(tài)變量 靜態(tài)變量在靜態(tài)變量在PLC運(yùn)行期間始終被存儲(chǔ)。運(yùn)行期間始終被存儲(chǔ)。S7將靜態(tài)變量定義將靜態(tài)變量定義在背景數(shù)據(jù)塊中,因此只能為在背景數(shù)據(jù)塊中,因此只能為FB定義靜態(tài)變量。功能塊定義靜態(tài)變量。功能塊FC不不能有靜態(tài)變量。能有靜態(tài)變量。 3) 臨時(shí)變量臨時(shí)變量 臨時(shí)變量?jī)H在邏輯塊運(yùn)行時(shí)有效,邏輯塊結(jié)束時(shí)存儲(chǔ)臨時(shí)臨時(shí)變量?jī)H在邏輯塊運(yùn)行時(shí)有效,邏輯塊結(jié)束時(shí)存儲(chǔ)臨時(shí)變量的內(nèi)存被操作

8、系統(tǒng)另行分配。變量的內(nèi)存被操作系統(tǒng)另行分配。S7將臨時(shí)變量定義在將臨時(shí)變量定義在L堆棧堆棧中。中。第第5 5章章 S7S7系列程序結(jié)構(gòu)與程序設(shè)計(jì)系列程序結(jié)構(gòu)與程序設(shè)計(jì) 2. 邏輯塊局部數(shù)據(jù)的數(shù)據(jù)類型邏輯塊局部數(shù)據(jù)的數(shù)據(jù)類型 在變量聲明表中,要明確局部數(shù)據(jù)的數(shù)據(jù)類型,這樣操作在變量聲明表中,要明確局部數(shù)據(jù)的數(shù)據(jù)類型,這樣操作系統(tǒng)才能給變量分配確定的存儲(chǔ)空間。局部數(shù)據(jù)可以是基本數(shù)系統(tǒng)才能給變量分配確定的存儲(chǔ)空間。局部數(shù)據(jù)可以是基本數(shù)據(jù)類型或復(fù)式數(shù)據(jù)類型,也可以是專門用于參數(shù)傳遞據(jù)類型或復(fù)式數(shù)據(jù)類型,也可以是專門用于參數(shù)傳遞 的所謂的的所謂的“參數(shù)類型參數(shù)類型”。參數(shù)類型包括定時(shí)器、計(jì)數(shù)器、塊的地址

9、或指。參數(shù)類型包括定時(shí)器、計(jì)數(shù)器、塊的地址或指針等,見表針等,見表5.2。第第5 5章章 S7S7系列程序結(jié)構(gòu)與程序設(shè)計(jì)系列程序結(jié)構(gòu)與程序設(shè)計(jì)表表5.2 參數(shù)類型變量參數(shù)類型變量第第5 5章章 S7S7系列程序結(jié)構(gòu)與程序設(shè)計(jì)系列程序結(jié)構(gòu)與程序設(shè)計(jì) 3. 塊調(diào)用過程及內(nèi)存分配塊調(diào)用過程及內(nèi)存分配 CPU提供塊堆棧提供塊堆棧(B堆棧堆棧)來存儲(chǔ)與處理被中斷塊的有關(guān)信來存儲(chǔ)與處理被中斷塊的有關(guān)信息。當(dāng)發(fā)生塊調(diào)用或有來自更高優(yōu)先級(jí)的中斷時(shí),就有相關(guān)的息。當(dāng)發(fā)生塊調(diào)用或有來自更高優(yōu)先級(jí)的中斷時(shí),就有相關(guān)的塊信息存儲(chǔ)在塊信息存儲(chǔ)在B堆棧里,并影響部分內(nèi)存和寄存器。圖堆棧里,并影響部分內(nèi)存和寄存器。圖5.2

10、顯示顯示了調(diào)用塊時(shí)了調(diào)用塊時(shí)B堆棧與堆棧與L堆棧的變化。圖堆棧的變化。圖5.3提供了關(guān)于提供了關(guān)于STEP 7的的塊調(diào)用情況。塊調(diào)用情況。第第5 5章章 S7S7系列程序結(jié)構(gòu)與程序設(shè)計(jì)系列程序結(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í)行的用戶程序邏輯塊數(shù)據(jù)塊工作內(nèi)存仍是激活的先前塊的臨時(shí)數(shù)據(jù)L堆棧數(shù)據(jù)塊寄存器打開的數(shù)據(jù)塊號(hào)當(dāng)前塊的臨時(shí)數(shù)據(jù)打開的背景數(shù)據(jù)塊號(hào)被中斷塊的數(shù)據(jù)DB寄存器(DB和DI)臨時(shí)數(shù)據(jù)指針塊號(hào)返回地址第第5

11、 5章章 S7S7系列程序結(jié)構(gòu)與程序設(shè)計(jì)系列程序結(jié)構(gòu)與程序設(shè)計(jì)圖圖5.3 調(diào)用指令對(duì)調(diào)用指令對(duì)CPU內(nèi)存的影響內(nèi)存的影響邏輯塊調(diào)用其它塊被調(diào)用塊的局部數(shù)據(jù)存儲(chǔ)到L堆棧頂部先前塊的局部數(shù)據(jù)壓入L堆棧新的背景數(shù)據(jù)塊號(hào)先前的背景數(shù)據(jù)塊號(hào)DI寄存器DB寄存器先前激活著的調(diào)用塊的信息壓入塊堆棧調(diào)用塊的信息裝入塊堆棧程序第第5 5章章 S7S7系列程序結(jié)構(gòu)與程序設(shè)計(jì)系列程序結(jié)構(gòu)與程序設(shè)計(jì) 1) B堆棧與堆棧與L堆棧堆棧 B堆棧存儲(chǔ)以下被中斷塊的數(shù)據(jù):堆棧存儲(chǔ)以下被中斷塊的數(shù)據(jù):(1) 塊號(hào)、塊類型、優(yōu)先級(jí)、被中斷塊的返回地址;塊號(hào)、塊類型、優(yōu)先級(jí)、被中斷塊的返回地址;(2) 塊寄存器塊寄存器DB、DI被中

12、斷前的內(nèi)容;被中斷前的內(nèi)容;(3) 臨時(shí)變量的指針臨時(shí)變量的指針(被中斷塊的被中斷塊的L堆棧地址堆棧地址)。 L堆棧在塊調(diào)用時(shí)被重新分配。堆棧在塊調(diào)用時(shí)被重新分配。L堆棧用來存儲(chǔ)邏輯塊中定堆棧用來存儲(chǔ)邏輯塊中定義的臨時(shí)變量,也分配給臨時(shí)本地?cái)?shù)據(jù)使用。梯形圖的方塊指義的臨時(shí)變量,也分配給臨時(shí)本地?cái)?shù)據(jù)使用。梯形圖的方塊指令與標(biāo)準(zhǔn)功能塊也可能使用令與標(biāo)準(zhǔn)功能塊也可能使用L堆棧存儲(chǔ)運(yùn)算的中間結(jié)果。堆棧存儲(chǔ)運(yùn)算的中間結(jié)果。第第5 5章章 S7S7系列程序結(jié)構(gòu)與程序設(shè)計(jì)系列程序結(jié)構(gòu)與程序設(shè)計(jì) 2) 調(diào)用功能塊調(diào)用功能塊FB 當(dāng)調(diào)用功能塊當(dāng)調(diào)用功能塊FB時(shí),會(huì)有以下事件發(fā)生:時(shí),會(huì)有以下事件發(fā)生: (1)

13、調(diào)用塊的地址和返回位置存儲(chǔ)在塊堆棧中,調(diào)用塊的臨調(diào)用塊的地址和返回位置存儲(chǔ)在塊堆棧中,調(diào)用塊的臨時(shí)變量壓入時(shí)變量壓入L堆棧;堆棧; (2) 數(shù)據(jù)塊數(shù)據(jù)塊DB寄存器內(nèi)容與寄存器內(nèi)容與DI寄存器內(nèi)容交換;寄存器內(nèi)容交換; (3) 新的數(shù)據(jù)塊地址裝入新的數(shù)據(jù)塊地址裝入DI寄存器;寄存器; (4) 被調(diào)用塊的實(shí)參裝入被調(diào)用塊的實(shí)參裝入DB和和L堆棧堆棧上部上部; (5) 當(dāng)功能塊當(dāng)功能塊FB結(jié)束時(shí),先前塊的現(xiàn)場(chǎng)信息從塊堆棧中彈出,結(jié)束時(shí),先前塊的現(xiàn)場(chǎng)信息從塊堆棧中彈出,臨時(shí)變量彈出臨時(shí)變量彈出L堆棧;堆棧; (6) DB和和DI寄存器內(nèi)容交換。寄存器內(nèi)容交換。第第5 5章章 S7S7系列程序結(jié)構(gòu)與程序

14、設(shè)計(jì)系列程序結(jié)構(gòu)與程序設(shè)計(jì) 3) 調(diào)用功能塊調(diào)用功能塊FC 當(dāng)調(diào)用功能塊當(dāng)調(diào)用功能塊FC時(shí)會(huì)有以下事件發(fā)生:時(shí)會(huì)有以下事件發(fā)生: (1) 功能塊功能塊FC實(shí)參的指針存到調(diào)用塊的實(shí)參的指針存到調(diào)用塊的L堆棧;堆棧; (2) 調(diào)用塊的地址和返回位置存儲(chǔ)在塊堆棧,調(diào)用塊的局部調(diào)用塊的地址和返回位置存儲(chǔ)在塊堆棧,調(diào)用塊的局部數(shù)據(jù)壓入數(shù)據(jù)壓入L堆棧;堆棧; (3) 功能塊存儲(chǔ)臨時(shí)變量的功能塊存儲(chǔ)臨時(shí)變量的L堆棧區(qū)被推入堆棧區(qū)被推入L堆棧上部;堆棧上部; (4) 當(dāng)被調(diào)用功能塊當(dāng)被調(diào)用功能塊FC結(jié)束時(shí),先前塊的信息存儲(chǔ)在塊堆棧結(jié)束時(shí),先前塊的信息存儲(chǔ)在塊堆棧中,臨時(shí)變量彈出中,臨時(shí)變量彈出L堆棧。堆棧。

15、因?yàn)楣δ軌K因?yàn)楣δ軌KFC不用背景數(shù)據(jù)塊,不能分配初始數(shù)值給功能不用背景數(shù)據(jù)塊,不能分配初始數(shù)值給功能塊塊FC的局部數(shù)據(jù),所以必須給功能塊的局部數(shù)據(jù),所以必須給功能塊FC提供實(shí)參。提供實(shí)參。第第5 5章章 S7S7系列程序結(jié)構(gòu)與程序設(shè)計(jì)系列程序結(jié)構(gòu)與程序設(shè)計(jì)5.1.3 功能塊編程與調(diào)用舉例功能塊編程與調(diào)用舉例 對(duì)功能塊編程分兩步進(jìn)行:對(duì)功能塊編程分兩步進(jìn)行:第第5 5章章 S7S7系列程序結(jié)構(gòu)與程序設(shè)計(jì)系列程序結(jié)構(gòu)與程序設(shè)計(jì)定義局部變量的工作內(nèi)容包括:定義局部變量的工作內(nèi)容包括:分別定義形參、靜態(tài)變量和臨時(shí)變量分別定義形參、靜態(tài)變量和臨時(shí)變量(FC塊中不包括靜態(tài)變量塊中不包括靜態(tài)變量);(2)

16、確定各變量的聲明類型確定各變量的聲明類型(Decl.)、變量名、變量名(Name)和數(shù)據(jù)類型和數(shù)據(jù)類型(Data Type),還要為變量設(shè)置初始值,還要為變量設(shè)置初始值(Initial Value)(盡管對(duì)有些變量初盡管對(duì)有些變量初始值不一定有意義始值不一定有意義)。如果需要還可為變量注釋。如果需要還可為變量注釋(Comment)。在。在增量編程模式下,增量編程模式下,STEP 7將自動(dòng)產(chǎn)生局部變量地址將自動(dòng)產(chǎn)生局部變量地址(Address)。第第5 5章章 S7S7系列程序結(jié)構(gòu)與程序設(shè)計(jì)系列程序結(jié)構(gòu)與程序設(shè)計(jì) 寫功能塊程序時(shí),可以用以下兩種方式使用局部變量:寫功能塊程序時(shí),可以用以下兩種方式

17、使用局部變量:使用變量名,此時(shí)變量名前加前綴使用變量名,此時(shí)變量名前加前綴“#”,以區(qū)別于在符號(hào)表中,以區(qū)別于在符號(hào)表中定義的符號(hào)地址。增量方式下,前綴會(huì)自動(dòng)產(chǎn)生。定義的符號(hào)地址。增量方式下,前綴會(huì)自動(dòng)產(chǎn)生。直接使用局部變量的地址,這種方式只對(duì)背景數(shù)據(jù)塊和直接使用局部變量的地址,這種方式只對(duì)背景數(shù)據(jù)塊和L堆棧有堆棧有效。效。 在調(diào)用在調(diào)用FB塊時(shí),要說明其背景數(shù)據(jù)塊。背景數(shù)據(jù)塊應(yīng)在調(diào)塊時(shí),要說明其背景數(shù)據(jù)塊。背景數(shù)據(jù)塊應(yīng)在調(diào)用前生成,其順序格式與變量聲明表必須保持一致。在增量用前生成,其順序格式與變量聲明表必須保持一致。在增量方式下,調(diào)用方式下,調(diào)用FB塊時(shí),塊時(shí),STEP 7會(huì)自動(dòng)提醒并生成

18、背景數(shù)據(jù)會(huì)自動(dòng)提醒并生成背景數(shù)據(jù)塊。塊。第第5 5章章 S7S7系列程序結(jié)構(gòu)與程序設(shè)計(jì)系列程序結(jié)構(gòu)與程序設(shè)計(jì) 1二分頻器二分頻器 假設(shè)功能塊假設(shè)功能塊FC10是二分頻器產(chǎn)生程序,功能是對(duì)不同的輸是二分頻器產(chǎn)生程序,功能是對(duì)不同的輸入位進(jìn)行二分頻處理。以下給出了入位進(jìn)行二分頻處理。以下給出了FC10的變量聲明表和語句的變量聲明表和語句表程序。在程序中使用了跳變沿檢測(cè)指令。表程序。在程序中使用了跳變沿檢測(cè)指令。 1) FC10的變量聲明表的變量聲明表(見表見表5.3)表表5.3 FC10的變量聲明表的變量聲明表第第5 5章章 S7S7系列程序結(jié)構(gòu)與程序設(shè)計(jì)系列程序結(jié)構(gòu)與程序設(shè)計(jì)2) 語句表程序語句

19、表程序 Network 1 A #INP / 對(duì)脈沖輸入信號(hào)產(chǎn)生對(duì)脈沖輸入信號(hào)產(chǎn)生RLO FP #ETF / 對(duì)前面的對(duì)前面的RLO進(jìn)行跳變沿檢測(cè)進(jìn)行跳變沿檢測(cè) NOT / 取反取反RLO BEC / 若若RLO1(沒有正跳沿沒有正跳沿),結(jié)束塊;,結(jié)束塊; / 若若RLO0(有正跳沿有正跳沿),繼續(xù)執(zhí)行下一條指,繼續(xù)執(zhí)行下一條指令令 AN #OUTP #OUTP /輸出信號(hào)反轉(zhuǎn)輸出信號(hào)反轉(zhuǎn) BEU /無條件結(jié)束塊無條件結(jié)束塊 第第5 5章章 S7S7系列程序結(jié)構(gòu)與程序設(shè)計(jì)系列程序結(jié)構(gòu)與程序設(shè)計(jì) 在功能塊在功能塊FCl0中定義了三個(gè)形參,調(diào)用時(shí)為形參分別賦予中定義了三個(gè)形參,調(diào)用時(shí)為形參分別賦

20、予實(shí)參實(shí)參I0.0、Q4.0和和M10.0,以對(duì)輸入位,以對(duì)輸入位I0.0進(jìn)行二分頻以產(chǎn)生輸進(jìn)行二分頻以產(chǎn)生輸出脈沖出脈沖Q4.0。 調(diào)用方式:調(diào)用方式: CALL FC10 INP: I0.0 OUTP: Q4.0 ETF: M10.0第第5 5章章 S7S7系列程序結(jié)構(gòu)與程序設(shè)計(jì)系列程序結(jié)構(gòu)與程序設(shè)計(jì) 2讀模擬輸入量程序讀模擬輸入量程序 一些一些S7-300的應(yīng)用系統(tǒng)中,使用的應(yīng)用系統(tǒng)中,使用8通道模擬量模塊采集信通道模擬量模塊采集信號(hào),當(dāng)模塊數(shù)量較多時(shí),讀模擬輸入量就很繁瑣。下面給出一號(hào),當(dāng)模塊數(shù)量較多時(shí),讀模擬輸入量就很繁瑣。下面給出一個(gè)通用程序個(gè)通用程序FC100,利用它可以方便地把

21、模擬量讀回并順序存,利用它可以方便地把模擬量讀回并順序存入數(shù)據(jù)塊,因?yàn)槟H肽K的起始地址、通道數(shù)、存儲(chǔ)數(shù)據(jù)塊號(hào)入數(shù)據(jù)塊,因?yàn)槟H肽K的起始地址、通道數(shù)、存儲(chǔ)數(shù)據(jù)塊號(hào)及數(shù)據(jù)在數(shù)據(jù)塊中的存儲(chǔ)起始位置均是可變的,所以可在調(diào)用及數(shù)據(jù)在數(shù)據(jù)塊中的存儲(chǔ)起始位置均是可變的,所以可在調(diào)用FC100時(shí)靈活確定。時(shí)靈活確定。 第第5 5章章 S7S7系列程序結(jié)構(gòu)與程序設(shè)計(jì)系列程序結(jié)構(gòu)與程序設(shè)計(jì)1) FC100的變量聲明表的變量聲明表(見表見表5.4)表表5.4 FC100的變量聲明表的變量聲明表第第5 5章章 S7S7系列程序結(jié)構(gòu)與程序設(shè)計(jì)系列程序結(jié)構(gòu)與程序設(shè)計(jì)Network 1 L #DB_No T LW0 O

22、PN DBLW 0 /打開存儲(chǔ)數(shù)據(jù)塊打開存儲(chǔ)數(shù)據(jù)塊 L #PIW_Addr SLD 3 /形成模入模塊地址指針形成模入模塊地址指針 T LD4 /在臨時(shí)本地?cái)?shù)據(jù)雙字在臨時(shí)本地?cái)?shù)據(jù)雙字LD 4中存儲(chǔ)模入模塊地址指針中存儲(chǔ)模入模塊地址指針 L #DBW_Addr SLD 3 /形成數(shù)據(jù)塊存儲(chǔ)地址指針形成數(shù)據(jù)塊存儲(chǔ)地址指針 T LD8 /在臨時(shí)本地?cái)?shù)據(jù)雙字在臨時(shí)本地?cái)?shù)據(jù)雙字LD 8中存入數(shù)據(jù)塊存儲(chǔ)地址指針中存入數(shù)據(jù)塊存儲(chǔ)地址指針 L #CH_LEN /以要讀入的通道數(shù)為循環(huán)次數(shù),裝入累加器以要讀入的通道數(shù)為循環(huán)次數(shù),裝入累加器1 2) 語句表程序語句表程序第第5 5章章 S7S7系列程序結(jié)構(gòu)與程序設(shè)

23、計(jì)系列程序結(jié)構(gòu)與程序設(shè)計(jì) L LD4 LARl /將模入模塊地址指針裝入地址寄存器將模入模塊地址指針裝入地址寄存器1 L PIWARl,P#0.0 /讀模入模塊裝入累加器讀模入模塊裝入累加器1 T LW2 /將累加器將累加器1的內(nèi)容暫存入緩沖器的內(nèi)容暫存入緩沖器LW2 L LD8 LARl /將數(shù)據(jù)塊存儲(chǔ)地址指針裝入地址寄存器將數(shù)據(jù)塊存儲(chǔ)地址指針裝入地址寄存器1 L LW2 /將數(shù)據(jù)緩沖器中的內(nèi)容裝入累加器將數(shù)據(jù)緩沖器中的內(nèi)容裝入累加器1 T DBWARl,P#0.0 /將累加器的內(nèi)容存入數(shù)據(jù)塊中將累加器的內(nèi)容存入數(shù)據(jù)塊中L LD4 /AR1+P#2.0AR1+ L#16 /ACC1+(_00

24、01_0 000)T LD4 /調(diào)整模入模塊地址指針,指向下一通道調(diào)整模入模塊地址指針,指向下一通道Acc1+(bb bbbb bxxx)L LD8+ L#16T LD8 /調(diào)整數(shù)據(jù)塊存儲(chǔ)地址指針,指向下一存儲(chǔ)地址調(diào)整數(shù)據(jù)塊存儲(chǔ)地址指針,指向下一存儲(chǔ)地址L LW0 /將循環(huán)次數(shù)計(jì)數(shù)器將循環(huán)次數(shù)計(jì)數(shù)器LW0的值裝入累加器的值裝入累加器1LOOP NEXT /若累加器若累加器1的值不為的值不為0,將累加器減,將累加器減1繼續(xù)循環(huán);若累加繼續(xù)循環(huán);若累加 /器為器為0,則結(jié)束,則結(jié)束 NEXT:T LW 0第第5 5章章 S7S7系列程序結(jié)構(gòu)與程序設(shè)計(jì)系列程序結(jié)構(gòu)與程序設(shè)計(jì) 舉例說明如何使用舉例說明

25、如何使用FC100。在某應(yīng)用中,機(jī)架。在某應(yīng)用中,機(jī)架0的的4號(hào)槽位安號(hào)槽位安裝了一個(gè)裝了一個(gè)8模入模塊模入模塊(地址地址256開始開始),若要將前,若要將前6個(gè)模入模塊信號(hào)個(gè)模入模塊信號(hào)讀回,存入讀回,存入DB50.DBW10開始的開始的6個(gè)字單元中,可按下列形式調(diào)個(gè)字單元中,可按下列形式調(diào)用用FC100: CALL FC100 PIW_Add:=256 CH_LEN: =6 DB_No: =50 DBW_Addr:=10 第第5 5章章 S7S7系列程序結(jié)構(gòu)與程序設(shè)計(jì)系列程序結(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ù)塊定義在數(shù)據(jù)塊定義在S7 CPU

26、存儲(chǔ)器中,用戶可在存儲(chǔ)器中建立一存儲(chǔ)器中,用戶可在存儲(chǔ)器中建立一個(gè)或多個(gè)數(shù)據(jù)塊。每個(gè)數(shù)據(jù)塊可大可小,但個(gè)或多個(gè)數(shù)據(jù)塊。每個(gè)數(shù)據(jù)塊可大可小,但CPU對(duì)數(shù)據(jù)塊數(shù)量對(duì)數(shù)據(jù)塊數(shù)量及數(shù)據(jù)總量有限制,如對(duì)于及數(shù)據(jù)總量有限制,如對(duì)于CPU314,用作數(shù)據(jù)塊的存儲(chǔ)器最,用作數(shù)據(jù)塊的存儲(chǔ)器最多為多為8 KB(8192 B),用戶定義的數(shù)據(jù)總量不能超出這個(gè)限制。,用戶定義的數(shù)據(jù)總量不能超出這個(gè)限制。對(duì)數(shù)據(jù)塊必須遵循先定義后使用的原則,否則,將造成系統(tǒng)錯(cuò)對(duì)數(shù)據(jù)塊必須遵循先定義后使用的原則,否則,將造成系統(tǒng)錯(cuò)誤。誤。第第5 5章章 S7S7系列程序結(jié)構(gòu)與程序設(shè)計(jì)系列程序結(jié)構(gòu)與程序設(shè)計(jì) 1. 定義數(shù)據(jù)塊定義數(shù)據(jù)塊 在編

27、程階段和運(yùn)行程序中都能定義數(shù)據(jù)塊。大多數(shù)數(shù)據(jù)塊在編程階段和運(yùn)行程序中都能定義數(shù)據(jù)塊。大多數(shù)數(shù)據(jù)塊是在編程階段用是在編程階段用STEP 7開發(fā)軟件包定義的。開發(fā)軟件包定義的。 定義內(nèi)容包括數(shù)據(jù)塊號(hào)及塊中的變量定義內(nèi)容包括數(shù)據(jù)塊號(hào)及塊中的變量(包括變量符號(hào)名、數(shù)包括變量符號(hào)名、數(shù)據(jù)類型以及初始值等據(jù)類型以及初始值等),定義完成后,數(shù)據(jù)塊中變量的順序及類,定義完成后,數(shù)據(jù)塊中變量的順序及類型決定了數(shù)據(jù)塊的數(shù)據(jù)結(jié)構(gòu),變量的數(shù)量決定了數(shù)據(jù)塊的大小。型決定了數(shù)據(jù)塊的數(shù)據(jù)結(jié)構(gòu),變量的數(shù)量決定了數(shù)據(jù)塊的大小。 數(shù)據(jù)塊在使用前,必須作為用戶程序的一部分下載到數(shù)據(jù)塊在使用前,必須作為用戶程序的一部分下載到CPU中

28、。中。第第5 5章章 S7S7系列程序結(jié)構(gòu)與程序設(shè)計(jì)系列程序結(jié)構(gòu)與程序設(shè)計(jì) 2訪問數(shù)據(jù)塊訪問數(shù)據(jù)塊 訪問時(shí)需要明確數(shù)據(jù)塊號(hào)和數(shù)據(jù)塊中的數(shù)據(jù)類型與位置。訪問時(shí)需要明確數(shù)據(jù)塊號(hào)和數(shù)據(jù)塊中的數(shù)據(jù)類型與位置。根據(jù)明確數(shù)據(jù)塊號(hào)的不同方法,可以用多種方法訪問數(shù)據(jù)塊中根據(jù)明確數(shù)據(jù)塊號(hào)的不同方法,可以用多種方法訪問數(shù)據(jù)塊中的數(shù)據(jù)。的數(shù)據(jù)。 直接在訪問指令中寫明數(shù)據(jù)塊號(hào),如:直接在訪問指令中寫明數(shù)據(jù)塊號(hào),如: L DB5.DBW10 T DB10.DBW20 L Motor_1.Speed /符號(hào)地址符號(hào)地址第第5 5章章 S7S7系列程序結(jié)構(gòu)與程序設(shè)計(jì)系列程序結(jié)構(gòu)與程序設(shè)計(jì) 另一種方法是另一種方法是“先打開后

29、訪問先打開后訪問”。在訪問某數(shù)據(jù)塊中的數(shù)。在訪問某數(shù)據(jù)塊中的數(shù)據(jù)前,先據(jù)前,先“打開打開”這個(gè)數(shù)據(jù)塊,這樣,存放在數(shù)據(jù)塊中的數(shù)據(jù)這個(gè)數(shù)據(jù)塊,這樣,存放在數(shù)據(jù)塊中的數(shù)據(jù)就可利用數(shù)據(jù)塊起始地址加偏移量的方法來訪問。如:就可利用數(shù)據(jù)塊起始地址加偏移量的方法來訪問。如:OPN DB5L DBW10OPN DB10T DBW20第第5 5章章 S7S7系列程序結(jié)構(gòu)與程序設(shè)計(jì)系列程序結(jié)構(gòu)與程序設(shè)計(jì) 3. 背景數(shù)據(jù)塊和共享數(shù)據(jù)塊背景數(shù)據(jù)塊和共享數(shù)據(jù)塊 背景數(shù)據(jù)塊和共享數(shù)據(jù)塊有不同的用途。任何背景數(shù)據(jù)塊和共享數(shù)據(jù)塊有不同的用途。任何FB、FC或或OB均可讀寫存放在共享數(shù)據(jù)塊中的數(shù)據(jù)。背景數(shù)據(jù)塊是均可讀寫存放在

30、共享數(shù)據(jù)塊中的數(shù)據(jù)。背景數(shù)據(jù)塊是FB運(yùn)運(yùn)行時(shí)的工作存儲(chǔ)區(qū),它存放行時(shí)的工作存儲(chǔ)區(qū),它存放FB的部分運(yùn)行變量。調(diào)用的部分運(yùn)行變量。調(diào)用FB時(shí),時(shí),必須指定一個(gè)相關(guān)的背景數(shù)據(jù)塊。作為規(guī)則,只有必須指定一個(gè)相關(guān)的背景數(shù)據(jù)塊。作為規(guī)則,只有FB塊才能訪塊才能訪問存放在背景數(shù)據(jù)塊中的數(shù)據(jù)。問存放在背景數(shù)據(jù)塊中的數(shù)據(jù)。第第5 5章章 S7S7系列程序結(jié)構(gòu)與程序設(shè)計(jì)系列程序結(jié)構(gòu)與程序設(shè)計(jì)5.2.2 數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu) STEP 7數(shù)據(jù)塊中的數(shù)據(jù)既可以是基本數(shù)據(jù)類型,又可以是數(shù)據(jù)塊中的數(shù)據(jù)既可以是基本數(shù)據(jù)類型,又可以是復(fù)式數(shù)據(jù)類型。復(fù)式數(shù)據(jù)類型。STEP 7允許允許4種復(fù)式數(shù)據(jù)類型,如表種復(fù)式數(shù)據(jù)類型,如表5.

31、5所示。所示。表表5.5 復(fù)式數(shù)據(jù)類型復(fù)式數(shù)據(jù)類型第第5 5章章 S7S7系列程序結(jié)構(gòu)與程序設(shè)計(jì)系列程序結(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é)構(gòu)設(shè)計(jì),而且也簡(jiǎn)化了結(jié)構(gòu)設(shè)計(jì)的復(fù)雜程度。且也簡(jiǎn)化了結(jié)構(gòu)設(shè)計(jì)的復(fù)雜程度。 一個(gè)復(fù)雜的自動(dòng)化過程可以被分解并定義為一個(gè)或多個(gè)項(xiàng)一個(gè)復(fù)雜的自動(dòng)化過程可以被分解并定義為一個(gè)或多個(gè)項(xiàng)目目(PROJECT) ,圖,圖5.4顯示了一個(gè)樣本過程,它分成顯示了一個(gè)樣本過程,它分成4個(gè)不同的個(gè)不同的項(xiàng)目。項(xiàng)目間或項(xiàng)目中的各項(xiàng)目。項(xiàng)

32、目間或項(xiàng)目中的各CPU程序之間,能以某種方式聯(lián)網(wǎng),程序之間,能以某種方式聯(lián)網(wǎng),實(shí)現(xiàn)信息共享。如在實(shí)現(xiàn)信息共享。如在S7協(xié)議支持下,用協(xié)議支持下,用MPI網(wǎng)以全局?jǐn)?shù)據(jù)通信的網(wǎng)以全局?jǐn)?shù)據(jù)通信的方式可方便地建立起聯(lián)系,實(shí)現(xiàn)一個(gè)項(xiàng)目中各方式可方便地建立起聯(lián)系,實(shí)現(xiàn)一個(gè)項(xiàng)目中各CPU共享信息。共享信息。 第第5 5章章 S7S7系列程序結(jié)構(gòu)與程序設(shè)計(jì)系列程序結(jié)構(gòu)與程序設(shè)計(jì)圖圖5.4 樣本過程的項(xiàng)目劃分樣本過程的項(xiàng)目劃分存儲(chǔ)攪拌準(zhǔn)備包裝一個(gè)工廠的過程任務(wù)項(xiàng)目1CPU1:存儲(chǔ)項(xiàng)目2CPU2:攪拌項(xiàng)目3CPU3:傳輸CPU4:加工項(xiàng)目4CPU5:打包CPU6:傳輸CPU7:裝箱第第5 5章章 S7S7系列程序

33、結(jié)構(gòu)與程序設(shè)計(jì)系列程序結(jié)構(gòu)與程序設(shè)計(jì) 典型的情況是一個(gè)過程控制任務(wù)只有一個(gè)項(xiàng)目,該項(xiàng)目下典型的情況是一個(gè)過程控制任務(wù)只有一個(gè)項(xiàng)目,該項(xiàng)目下也僅有一個(gè)也僅有一個(gè)CPU程序,每一個(gè)程序,每一個(gè)CPU程序又可依據(jù)時(shí)間特性或事程序又可依據(jù)時(shí)間特性或事件觸發(fā)特性的差異分類編入不同的組織塊件觸發(fā)特性的差異分類編入不同的組織塊(OB)中。例如,對(duì)程中。例如,對(duì)程序執(zhí)行中產(chǎn)生的同步錯(cuò)誤的響應(yīng)處理程序編入組織塊序執(zhí)行中產(chǎn)生的同步錯(cuò)誤的響應(yīng)處理程序編入組織塊OB121或或OB122中。中。 組織塊組織塊OB1(主程序循環(huán)主程序循環(huán))中的程序是應(yīng)用程序中主要的也中的程序是應(yīng)用程序中主要的也是最復(fù)雜的部分,可以根據(jù)其

34、復(fù)雜程度分別選用線性、分部或是最復(fù)雜的部分,可以根據(jù)其復(fù)雜程度分別選用線性、分部或結(jié)構(gòu)化等三種形式中的一種程序結(jié)構(gòu)。結(jié)構(gòu)化等三種形式中的一種程序結(jié)構(gòu)。第第5 5章章 S7S7系列程序結(jié)構(gòu)與程序設(shè)計(jì)系列程序結(jié)構(gòu)與程序設(shè)計(jì) 1. 線性程序結(jié)構(gòu)線性程序結(jié)構(gòu) 用用“線性線性”結(jié)構(gòu)設(shè)計(jì)的程序連續(xù)放置在一個(gè)塊內(nèi)結(jié)構(gòu)設(shè)計(jì)的程序連續(xù)放置在一個(gè)塊內(nèi)(通常為通常為OB1),塊中的程序按順序執(zhí)行。這一結(jié)構(gòu)是最初的,塊中的程序按順序執(zhí)行。這一結(jié)構(gòu)是最初的PLC模擬模擬的繼電器梯形邏輯的模型。線性程序具有簡(jiǎn)單、直接的特點(diǎn)。的繼電器梯形邏輯的模型。線性程序具有簡(jiǎn)單、直接的特點(diǎn)。編程時(shí),不必考慮功能塊如何編程及如何調(diào)用,也

35、不必考慮編程時(shí),不必考慮功能塊如何編程及如何調(diào)用,也不必考慮如何定義局部變量及如何使用背景數(shù)據(jù)塊。由于所有的指令如何定義局部變量及如何使用背景數(shù)據(jù)塊。由于所有的指令在一個(gè)塊內(nèi),因此它適用于只需一個(gè)人編寫的、相對(duì)簡(jiǎn)單的在一個(gè)塊內(nèi),因此它適用于只需一個(gè)人編寫的、相對(duì)簡(jiǎn)單的控制程序??刂瞥绦?。第第5 5章章 S7S7系列程序結(jié)構(gòu)與程序設(shè)計(jì)系列程序結(jié)構(gòu)與程序設(shè)計(jì) 2. 分部程序結(jié)構(gòu)分部程序結(jié)構(gòu) 這是一種部分模塊化的程序結(jié)構(gòu),也稱為部分結(jié)構(gòu)化。程這是一種部分模塊化的程序結(jié)構(gòu),也稱為部分結(jié)構(gòu)化。程序被分成各部分放在若干功能塊中,每個(gè)功能塊含有用于一種序被分成各部分放在若干功能塊中,每個(gè)功能塊含有用于一種設(shè)

36、備的一系列控制邏輯。放置在組織塊設(shè)備的一系列控制邏輯。放置在組織塊OB1中的指令決定控制中的指令決定控制程序的各功能塊的執(zhí)行。程序的各功能塊的執(zhí)行。 在分部程序中,既無數(shù)據(jù)交換也沒有重復(fù)利用的程序代碼。在分部程序中,既無數(shù)據(jù)交換也沒有重復(fù)利用的程序代碼。功能塊不傳遞也不接收參數(shù),分部程序結(jié)構(gòu)的編程效率比線性功能塊不傳遞也不接收參數(shù),分部程序結(jié)構(gòu)的編程效率比線性程序有所提高,程序測(cè)試也較方便,對(duì)程序員的要求也不太高。程序有所提高,程序測(cè)試也較方便,對(duì)程序員的要求也不太高。對(duì)不太復(fù)雜的控制程序可考慮采用這種程序結(jié)構(gòu)。對(duì)不太復(fù)雜的控制程序可考慮采用這種程序結(jié)構(gòu)。第第5 5章章 S7S7系列程序結(jié)構(gòu)與

37、程序設(shè)計(jì)系列程序結(jié)構(gòu)與程序設(shè)計(jì) 3. 結(jié)構(gòu)化程序結(jié)構(gòu)結(jié)構(gòu)化程序結(jié)構(gòu) 完全結(jié)構(gòu)化完全結(jié)構(gòu)化(模塊化模塊化)的程序結(jié)構(gòu)是的程序結(jié)構(gòu)是PLC程序設(shè)計(jì)和編程最程序設(shè)計(jì)和編程最有效的結(jié)構(gòu)形式,它可用于復(fù)雜程度高、程序規(guī)模大的控制應(yīng)有效的結(jié)構(gòu)形式,它可用于復(fù)雜程度高、程序規(guī)模大的控制應(yīng)用程序設(shè)計(jì)。結(jié)構(gòu)化程序可以重復(fù)使用某些功能塊,只需要在用程序設(shè)計(jì)。結(jié)構(gòu)化程序可以重復(fù)使用某些功能塊,只需要在使用功能塊時(shí)為其提供不同的環(huán)境變量使用功能塊時(shí)為其提供不同的環(huán)境變量(實(shí)參實(shí)參),就能完成對(duì)不,就能完成對(duì)不同設(shè)備的控制。同設(shè)備的控制。 結(jié)構(gòu)化程序有最高的編程和程序調(diào)試效率,應(yīng)用程序代碼結(jié)構(gòu)化程序有最高的編程和程序調(diào)

38、試效率,應(yīng)用程序代碼量也最小。結(jié)構(gòu)化程序也支持多個(gè)程序員協(xié)同編程。量也最小。結(jié)構(gòu)化程序也支持多個(gè)程序員協(xié)同編程。第第5 5章章 S7S7系列程序結(jié)構(gòu)與程序設(shè)計(jì)系列程序結(jié)構(gòu)與程序設(shè)計(jì)5.3.2 程序設(shè)計(jì)實(shí)例程序設(shè)計(jì)實(shí)例圖圖5.5 工業(yè)攪拌過程示意圖工業(yè)攪拌過程示意圖MMM入口閥進(jìn)料泵進(jìn)料閥流量傳感器區(qū)域:配料A區(qū)域:混合罐攪拌電機(jī)MM入口閥進(jìn)料泵進(jìn)料閥區(qū)域:配料BM排料閥區(qū)域:排料罐液位測(cè)量開關(guān)第第5 5章章 S7S7系列程序結(jié)構(gòu)與程序設(shè)計(jì)系列程序結(jié)構(gòu)與程序設(shè)計(jì) 1. 將過程分割為任務(wù)和區(qū)域?qū)⑦^程分割為任務(wù)和區(qū)域 一個(gè)自動(dòng)化過程包括許多單個(gè)的任務(wù),將這個(gè)工業(yè)攪拌過程構(gòu)造一個(gè)自動(dòng)化過程包括許多單個(gè)

39、的任務(wù),將這個(gè)工業(yè)攪拌過程構(gòu)造為四個(gè)功能區(qū)域:配料為四個(gè)功能區(qū)域:配料A區(qū)域、配料區(qū)域、配料B區(qū)域、混合罐區(qū)域和排料區(qū)域。區(qū)域、混合罐區(qū)域和排料區(qū)域。2. 說明各個(gè)功能區(qū)域說明各個(gè)功能區(qū)域 1) 配料配料A和配料和配料B區(qū)域區(qū)域 (1) 每種配料的管道都配備有一個(gè)入口和一個(gè)進(jìn)料閥以及進(jìn)料泵。每種配料的管道都配備有一個(gè)入口和一個(gè)進(jìn)料閥以及進(jìn)料泵。 (2) 進(jìn)料管還有流量傳感器。進(jìn)料管還有流量傳感器。 (3) 當(dāng)罐的液面?zhèn)鞲衅髦甘竟逎M時(shí),進(jìn)料泵的接通必須被鎖定。當(dāng)罐的液面?zhèn)鞲衅髦甘竟逎M時(shí),進(jìn)料泵的接通必須被鎖定。第第5 5章章 S7S7系列程序結(jié)構(gòu)與程序設(shè)計(jì)系列程序結(jié)構(gòu)與程序設(shè)計(jì) (4) 當(dāng)排料閥

40、打開時(shí),進(jìn)料泵的啟動(dòng)必須被鎖定。當(dāng)排料閥打開時(shí),進(jìn)料泵的啟動(dòng)必須被鎖定。 (5) 在啟動(dòng)進(jìn)料泵后在啟動(dòng)進(jìn)料泵后1 s內(nèi)必須打開入口閥和進(jìn)料閥。內(nèi)必須打開入口閥和進(jìn)料閥。 (6) 在進(jìn)料泵停止后在進(jìn)料泵停止后(來自流量傳感器的信號(hào)來自流量傳感器的信號(hào))閥門必須立即被關(guān)閉閥門必須立即被關(guān)閉以防止配料從泵中泄露。以防止配料從泵中泄露。 (7) 進(jìn)料泵的啟動(dòng)與一個(gè)時(shí)間監(jiān)控功能相結(jié)合,換句話說,在進(jìn)料泵的啟動(dòng)與一個(gè)時(shí)間監(jiān)控功能相結(jié)合,換句話說,在泵啟動(dòng)后的泵啟動(dòng)后的7 s之內(nèi),流量傳感器會(huì)報(bào)告溢出。之內(nèi),流量傳感器會(huì)報(bào)告溢出。 (8) 當(dāng)進(jìn)料泵運(yùn)行時(shí),如果流量傳感器沒有流量信號(hào),進(jìn)料泵當(dāng)進(jìn)料泵運(yùn)行時(shí),如

41、果流量傳感器沒有流量信號(hào),進(jìn)料泵必須盡可能快地?cái)嚅_。必須盡可能快地?cái)嚅_。 (9) 必須對(duì)進(jìn)料泵啟動(dòng)的次數(shù)進(jìn)行計(jì)數(shù)必須對(duì)進(jìn)料泵啟動(dòng)的次數(shù)進(jìn)行計(jì)數(shù)(維護(hù)間隔維護(hù)間隔)。第第5 5章章 S7S7系列程序結(jié)構(gòu)與程序設(shè)計(jì)系列程序結(jié)構(gòu)與程序設(shè)計(jì) 2) 混合罐區(qū)域混合罐區(qū)域 (1) 當(dāng)罐的液面?zhèn)鞲衅髦甘井?dāng)罐的液面?zhèn)鞲衅髦甘尽耙好娴陀谧畹拖抟好娴陀谧畹拖蕖被蚺帕祥y打或排料閥打開時(shí),攪拌電機(jī)的啟動(dòng)必須被鎖定。開時(shí),攪拌電機(jī)的啟動(dòng)必須被鎖定。 (2) 攪拌電機(jī)在達(dá)到額定速度時(shí)要發(fā)出一個(gè)響應(yīng)信號(hào)。如果攪拌電機(jī)在達(dá)到額定速度時(shí)要發(fā)出一個(gè)響應(yīng)信號(hào)。如果在電機(jī)啟動(dòng)后在電機(jī)啟動(dòng)后10 s內(nèi)還未接收到該信號(hào),則電機(jī)必須被斷開

42、。內(nèi)還未接收到該信號(hào),則電機(jī)必須被斷開。 (3) 必須對(duì)攪拌電機(jī)的啟動(dòng)次數(shù)進(jìn)行計(jì)數(shù)必須對(duì)攪拌電機(jī)的啟動(dòng)次數(shù)進(jìn)行計(jì)數(shù)(維護(hù)間隔維護(hù)間隔)。 (4) 在混合罐中必須安裝三個(gè)傳感器。在混合罐中必須安裝三個(gè)傳感器。 罐裝滿:一個(gè)常閉罐裝滿:一個(gè)常閉觸點(diǎn)。觸點(diǎn)。 罐中液面高于最低限:一個(gè)常開觸點(diǎn)。罐中液面高于最低限:一個(gè)常開觸點(diǎn)。 罐非空:一罐非空:一個(gè)常開觸點(diǎn)。個(gè)常開觸點(diǎn)。第第5 5章章 S7S7系列程序結(jié)構(gòu)與程序設(shè)計(jì)系列程序結(jié)構(gòu)與程序設(shè)計(jì) 3) 排料區(qū)域排料區(qū)域 (1) 罐內(nèi)產(chǎn)品的排出由一個(gè)螺線管閥門控制。罐內(nèi)產(chǎn)品的排出由一個(gè)螺線管閥門控制。 (2) 這個(gè)螺線管閥門由操作員控制,但是最遲在這個(gè)螺線管

43、閥門由操作員控制,但是最遲在“罐空罐空”信信號(hào)產(chǎn)生時(shí),該閥必須被關(guān)閉。號(hào)產(chǎn)生時(shí),該閥必須被關(guān)閉。 (3) 當(dāng)攪拌電機(jī)在工作或罐空時(shí)打開排料閥必須被鎖定。當(dāng)攪拌電機(jī)在工作或罐空時(shí)打開排料閥必須被鎖定。第第5 5章章 S7S7系列程序結(jié)構(gòu)與程序設(shè)計(jì)系列程序結(jié)構(gòu)與程序設(shè)計(jì) 3. 定義邏輯塊定義邏輯塊 通過程序塊可以將用戶程序分布到不同的塊中并建立塊調(diào)通過程序塊可以將用戶程序分布到不同的塊中并建立塊調(diào)用的分層結(jié)構(gòu)來組織程序。本例中用戶程序主要由組織塊用的分層結(jié)構(gòu)來組織程序。本例中用戶程序主要由組織塊OB1、功能塊功能塊FB1、功能、功能FC1及三個(gè)數(shù)據(jù)塊及三個(gè)數(shù)據(jù)塊DB1DB3組成。圖組成。圖5.6所

44、示所示為結(jié)構(gòu)化編程的塊的分層調(diào)用結(jié)構(gòu)。為結(jié)構(gòu)化編程的塊的分層調(diào)用結(jié)構(gòu)。 第第5 5章章 S7S7系列程序結(jié)構(gòu)與程序設(shè)計(jì)系列程序結(jié)構(gòu)與程序設(shè)計(jì)圖圖5.6 工業(yè)攪拌過程的分層調(diào)用結(jié)構(gòu)圖工業(yè)攪拌過程的分層調(diào)用結(jié)構(gòu)圖進(jìn)料泵配料A進(jìn)料泵配料B攪拌電機(jī)入口閥A和B進(jìn)料閥A和B排料閥OB1配料ADB1配料BDB2攪拌電機(jī)DB3電機(jī)FB1閥門FC1第第5 5章章 S7S7系列程序結(jié)構(gòu)與程序設(shè)計(jì)系列程序結(jié)構(gòu)與程序設(shè)計(jì) 4. 指定符號(hào)名指定符號(hào)名 如果在用戶程序中使用了符號(hào),則必須用如果在用戶程序中使用了符號(hào),則必須用STEP 7在符號(hào)表在符號(hào)表中對(duì)這些符號(hào)進(jìn)行定義。表中對(duì)這些符號(hào)進(jìn)行定義。表5.6所示為所用的程

45、序組件的符號(hào)名所示為所用的程序組件的符號(hào)名及絕對(duì)地址。及絕對(duì)地址。表表5.6 程序組件的符號(hào)名及絕對(duì)地址程序組件的符號(hào)名及絕對(duì)地址第第5 5章章 S7S7系列程序結(jié)構(gòu)與程序設(shè)計(jì)系列程序結(jié)構(gòu)與程序設(shè)計(jì)第第5 5章章 S7S7系列程序結(jié)構(gòu)與程序設(shè)計(jì)系列程序結(jié)構(gòu)與程序設(shè)計(jì)續(xù)表續(xù)表 第第5 5章章 S7S7系列程序結(jié)構(gòu)與程序設(shè)計(jì)系列程序結(jié)構(gòu)與程序設(shè)計(jì)第第5 5章章 S7S7系列程序結(jié)構(gòu)與程序設(shè)計(jì)系列程序結(jié)構(gòu)與程序設(shè)計(jì) 5. 生成電機(jī)的生成電機(jī)的FB 電機(jī)的電機(jī)的FB包括以下邏輯功能:包括以下邏輯功能: (1) 啟動(dòng)和停止輸入。啟動(dòng)和停止輸入。 (2) 允許設(shè)備操作的一系列互鎖允許設(shè)備操作的一系列互鎖(

46、泵和攪拌電機(jī)泵和攪拌電機(jī))。 (3) 來自設(shè)備的反饋必須在一個(gè)特定的時(shí)間內(nèi)出現(xiàn)。來自設(shè)備的反饋必須在一個(gè)特定的時(shí)間內(nèi)出現(xiàn)。 (4) 時(shí)間點(diǎn)和響應(yīng)時(shí)間等時(shí)間都必須被指定。時(shí)間點(diǎn)和響應(yīng)時(shí)間等時(shí)間都必須被指定。 (5) 如果按下啟動(dòng),設(shè)備自動(dòng)運(yùn)行直至按下停機(jī)按鈕。如果按下啟動(dòng),設(shè)備自動(dòng)運(yùn)行直至按下停機(jī)按鈕。 (6) 當(dāng)設(shè)備接通時(shí),一個(gè)定時(shí)器啟動(dòng)運(yùn)行,如果在定時(shí)器的當(dāng)設(shè)備接通時(shí),一個(gè)定時(shí)器啟動(dòng)運(yùn)行,如果在定時(shí)器的時(shí)間到達(dá)之前未接到來自設(shè)備的響應(yīng)信號(hào),則停機(jī)。時(shí)間到達(dá)之前未接到來自設(shè)備的響應(yīng)信號(hào),則停機(jī)。第第5 5章章 S7S7系列程序結(jié)構(gòu)與程序設(shè)計(jì)系列程序結(jié)構(gòu)與程序設(shè)計(jì)圖圖5.7 電機(jī)通用電機(jī)通用FB

47、的輸入和輸出示意圖的輸入和輸出示意圖StartStopResponseReset_MaintTimer_NoResponse_TimeMotorMotorFaultStart_DspStop_DspMaint第第5 5章章 S7S7系列程序結(jié)構(gòu)與程序設(shè)計(jì)系列程序結(jié)構(gòu)與程序設(shè)計(jì) 在在STEP 7中,每一個(gè)被不同的塊調(diào)用的塊一定要在調(diào)用它中,每一個(gè)被不同的塊調(diào)用的塊一定要在調(diào)用它的塊之前生成,因此在樣板程序中必須在的塊之前生成,因此在樣板程序中必須在OBl之前先生成電機(jī)之前先生成電機(jī)的的FB。STL編程語言的編程語言的FBl程序部分如下:程序部分如下:Network l 啟動(dòng)啟動(dòng)/停止和鎖存停止和

48、鎖存 A( O #Start O #Motor ) AN #Stop = #Motor 第第5 5章章 S7S7系列程序結(jié)構(gòu)與程序設(shè)計(jì)系列程序結(jié)構(gòu)與程序設(shè)計(jì)Network 2 啟動(dòng)監(jiān)控啟動(dòng)監(jiān)控 A #Motor L #Response_Time SD #Timer No AN #Motor R #Timer No L #Timer No T #Timer binLC #Timer NoT #Timer BCDA #Timer NoAN #ResponseS #FaultR #Motor 第第5 5章章 S7S7系列程序結(jié)構(gòu)與程序設(shè)計(jì)系列程序結(jié)構(gòu)與程序設(shè)計(jì)Network 3 啟動(dòng)指示燈和故障復(fù)位

49、啟動(dòng)指示燈和故障復(fù)位 A #Response = #Start_Dsp R #FaultNetwork 4 斷開指示燈斷開指示燈 AN #Response = #Stop_Dsp 第第5 5章章 S7S7系列程序結(jié)構(gòu)與程序設(shè)計(jì)系列程序結(jié)構(gòu)與程序設(shè)計(jì)Network 5 啟動(dòng)計(jì)數(shù)啟動(dòng)計(jì)數(shù) A #Motor FP #Start_Edge JCN lab1 L #Starts + 1 T #Starts lab1:NOP 0Network 6 維護(hù)指示燈維護(hù)指示燈 L #Starts L 50 =I = #Maint 第第5 5章章 S7S7系列程序結(jié)構(gòu)與程序設(shè)計(jì)系列程序結(jié)構(gòu)與程序設(shè)計(jì)Network 7 復(fù)位累計(jì)啟動(dòng)次數(shù)的計(jì)數(shù)器復(fù)位累計(jì)啟動(dòng)次數(shù)的計(jì)數(shù)器 A #Reset_Maint A #Maint JCN END L 0 T #Starts END:NOP 0 第第5 5章章 S7S7系列程序結(jié)構(gòu)與程序設(shè)計(jì)系列程序結(jié)構(gòu)與程序設(shè)計(jì) 6. 生成閥門生成閥門FC 入口和進(jìn)料閥以及排料閥的功能包含以下邏輯功能:入口和進(jìn)料閥以及排料閥的功能包含以下邏輯功能: (1) 一個(gè)用于打開閥門的輸入,一個(gè)用于關(guān)閉閥門的輸入。一個(gè)用

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論