電氣控制與S7-300-PLC編程技術(shù)第7和8章-結(jié)構(gòu)化編程和組織塊課件_第1頁
電氣控制與S7-300-PLC編程技術(shù)第7和8章-結(jié)構(gòu)化編程和組織塊課件_第2頁
電氣控制與S7-300-PLC編程技術(shù)第7和8章-結(jié)構(gòu)化編程和組織塊課件_第3頁
電氣控制與S7-300-PLC編程技術(shù)第7和8章-結(jié)構(gòu)化編程和組織塊課件_第4頁
電氣控制與S7-300-PLC編程技術(shù)第7和8章-結(jié)構(gòu)化編程和組織塊課件_第5頁
已閱讀5頁,還剩22頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、結(jié)構(gòu)化編程和組織塊(7.1-8.4)第七、八章本章內(nèi)容7.1 編程方式和程序結(jié)構(gòu) 7.2 結(jié)構(gòu)化編程的實現(xiàn) 7.3 功能與功能塊7.4 結(jié)構(gòu)化程序設(shè)計實例 8.1 數(shù)據(jù)塊 8.2 S7-300的組織塊與中斷8.3 定期執(zhí)行組織塊第7、8章 結(jié)構(gòu)化編程和組織塊 8.1 編程方式和程序結(jié)構(gòu)7.1.1 編程方式用戶的編程方式主要三種:(1)有線性化編程 線性化編程是將整個用戶程序放在組織塊OB1中,在CPU循環(huán)掃描時執(zhí)行OB1中的全部指令。 (2)分部式編程 分部編程是將整個程序按任務(wù)分成若干個部分,并分別放置在不同的功能(FC)、功能塊(FB)及組織塊中,在一個塊中可以進一步分解成段。 (3)結(jié)構(gòu)

2、化編程三種類型。 結(jié)構(gòu)化編程是將過程要求類似或相關(guān)的任務(wù)歸類,在功能或功能塊中編程,形成通用解決方案。通過不同的參數(shù)調(diào)用相同的功能或通過不同的背景數(shù)據(jù)塊調(diào)用相同的功能塊。 7.1 編程方式和程序結(jié)構(gòu)7.1.2 程序結(jié)構(gòu) 西門子公司S7-300/400系列PLC采用的是“塊式程序結(jié)構(gòu)”,用“塊”的形式來管理用戶編寫的程序及程序運行所需要的數(shù)據(jù),組成完整的PLC應(yīng)用程序系統(tǒng)。 (1)用戶程序使用的塊(2)塊的調(diào)用(3)用戶程序使用的堆棧 局部數(shù)據(jù)堆棧(L堆棧) 塊堆棧(B堆棧) 中斷堆棧(I堆棧) 塊的調(diào)用關(guān)系 塊堆棧7.2 結(jié)構(gòu)化程序的實現(xiàn)結(jié)構(gòu)化編程就是把一些過程要求類似或相關(guān)的功能進行分類、歸

3、納、抽象化,然后編寫一個與之相關(guān)的通用程序,這個程序就是一個結(jié)構(gòu)。這種結(jié)構(gòu)可以多處、多次使用。利用各種結(jié)構(gòu)組合成程序的方法,就是結(jié)構(gòu)化編程的方法。7.2.1 結(jié)構(gòu)化編程結(jié)構(gòu)化編程是對應(yīng)于一些典型的控制要求編寫通用的程序塊,這些程序塊可以反復被調(diào)用以控制不同的目標。這些通用的程序塊就稱為結(jié)構(gòu),利用各種結(jié)構(gòu)來組成程序就成為結(jié)構(gòu)化編程。要實現(xiàn)結(jié)構(gòu)化編程有兩個必要條件:一是程序能夠分割。二是能夠?qū)崿F(xiàn)參數(shù)賦值。 結(jié)構(gòu)化編程 7.2 結(jié)構(gòu)化程序的實現(xiàn)7.2.2 實現(xiàn)形式 凡是通用的、典型的程序,都可以參數(shù)化、結(jié)構(gòu)化。在STEP7中工作的順序是:在FC、FB的變量聲明表中規(guī)范變量,也就是聲明變量的名稱、變量

4、的類型和變量的數(shù)據(jù)類型。在編寫程序的時候,不使用實際地址,而使用變量的名稱(形式參數(shù)),得到一個普通的程序。在調(diào)用這些通用程序(結(jié)構(gòu))的時候,利用參數(shù)賦值的方法指定實際的控制條件和控制目標。以電機單向啟動/停止的程序為例,其中I0.0為啟動按鈕,I0.1為停止按鈕,Q4.0控制電機的接觸器。該程序只能完成針對某個電機特定的控制。電機單向啟動/停止程序 7.3 功能與功能塊 功能(FC)、功能塊(FB)和組織塊(OB)統(tǒng)稱為邏輯塊(或程序塊)。功能塊(FB)有一個數(shù)據(jù)結(jié)構(gòu)與該功能塊的參數(shù)完全相同的數(shù)據(jù)塊,稱為背景數(shù)據(jù)塊。 7.3.1 功能塊(1)生成功能塊(2)局部變量(3)生成梯形圖程序(4)

5、背景數(shù)據(jù)塊 功能塊FB1 背景數(shù)據(jù)塊7.3 功能與功能塊7.3.2 功能(1)生成功能(2)功能的局部變量(3)功能與功能塊的區(qū)別 FC的返回值RET_VAL實際上是輸出參數(shù),因此,有無靜態(tài)變量是兩者的局部變量的本質(zhì)區(qū)別 。 功能塊的輸出參數(shù)不僅與來自外部的輸入?yún)?shù)有關(guān),還與用靜態(tài)變量保存的內(nèi)部狀態(tài)數(shù)據(jù)有關(guān)。功能因為沒有靜態(tài)變量 。 功能塊有背景數(shù)據(jù)塊,功能沒有背景數(shù)據(jù)塊。 不能給功能的局部變量設(shè)置初始值,可以給功能塊的局部變量設(shè)置初始值。 功能FC17.3 功能與功能塊7.3.3 功能的調(diào)用功能和功能塊的調(diào)用必須用實參代替形參,因為形參是在功能或功能塊的變量聲明表中定義的。為保證功能或功能塊

6、對同一類設(shè)備的通用性,在編程中不能使用實際對應(yīng)的存儲區(qū)地址參數(shù),而是使用抽象參數(shù),這就是形參。而塊在調(diào)用時,必須將實際參數(shù)(實參)替代形參,從而可以通過功能或功能塊實現(xiàn)對具體設(shè)備的控制。OB1通過兩次調(diào)用FB1和FC1,實現(xiàn)對汽油機和柴油機的控制。 塊調(diào)用分為條件調(diào)用和無條件調(diào)用。用梯形圖調(diào)用塊時,塊的EN(Enable,使能)輸入端有能流流入時執(zhí)行塊中的程序,反之則不執(zhí)行。條件調(diào)用時使能輸入端EN受到觸點電路的控制。塊被正確執(zhí)行時ENO(Enable Output,使能輸出端)為1,反之為0。汽油機風扇控制 7.3 功能與功能塊7.3.4 功能塊的調(diào)用將OB1左邊窗口中的“FB塊”文件夾中的

7、FB1圖標拖放到程序2的水平導線上,如圖所示。FB1的符號名為“發(fā)動機控制”。方框內(nèi)的Start等是FB1的變量聲明表中定義的輸入、輸出參數(shù)(形參)。方框外的符號地址“啟動汽油機”等是方框內(nèi)的形參對應(yīng)的實參。實參“共享”.PE_Speed”是符號名為“共享”的數(shù)據(jù)塊DB3中的變量PE_Speed(汽油機的實際轉(zhuǎn)速)。在調(diào)用塊時,CPU將實參分配給形參的值存儲在背景數(shù)據(jù)塊中。如果調(diào)用時沒有給形參指定實參,功能塊使用背景數(shù)據(jù)塊中形參的數(shù)值。該數(shù)值可能是在功能塊的變量聲明表中設(shè)置的形參(例如靜態(tài)變量Preset_Speed)的初始值,也可能是上一次調(diào)用時存數(shù)在背景數(shù)據(jù)塊中的數(shù)值。 汽油機數(shù)據(jù) 7.3

8、 功能與功能塊功能以及功能塊的調(diào)用總結(jié)如圖 :塊調(diào)用指令的各種表達方式7.4 結(jié)構(gòu)化程序設(shè)計實例7.4.1 編輯并調(diào)用有參功能(FC)有參功能(FC)是指編輯功能(FC)時,在局部變量聲明表內(nèi)定義了形式參數(shù),在功能(FC)中使用了虛擬的符號地址完成控制程序的編程,以便在其他塊中能重復調(diào)用有參功能(FC)。這種方式一般應(yīng)用于結(jié)構(gòu)化程序編寫?!纠慷嗉壏诸l器控制程序設(shè)計。 本例擬在功能FC1中編寫二分頻器控制程序,然后在OB1中通過調(diào)用FC1實現(xiàn)多級分頻器的功能。多級分頻器的時序關(guān)系如圖8-21所示。其中I0.0為多級分頻器的脈沖輸入端;Q4.0Q4.3分別為2、4、8、16分頻的脈沖輸出端;Q4

9、.4Q4.7分別為2、4、8、16分頻指示燈驅(qū)動輸出端。多級分頻器控制時序圖 7.4 結(jié)構(gòu)化程序設(shè)計實例7.4.2 多重背景使用舉例使用多重背景可以有效地減少數(shù)據(jù)塊的數(shù)量,其編程思想是創(chuàng)建一個比FB1級別更高的功能塊,如FB10,將未作任何修改的FB1作為一個“局部背景”,在FB10中調(diào)用。對于FB1的每一個調(diào)用,都將數(shù)據(jù)存儲在FB10的背景數(shù)據(jù)塊DB10中?!纠堪l(fā)動機組控制系統(tǒng)設(shè)計使用多重背景。(1)創(chuàng)建多重背景的S7項目(2)編輯功能(FC) (3)編輯共享數(shù)據(jù)塊 (4)編輯功能塊(FB) (5)生成多重背景數(shù)據(jù)塊DB10 (6)在OB1中調(diào)用功能(FC)及上層功能塊(FB) 8.1 數(shù)

10、據(jù)塊在西門子的可編程控制器中,數(shù)據(jù)是以變量的形式來存儲的。有一些數(shù)據(jù),如I、Q、M、T、C等等,存在系統(tǒng)存數(shù)區(qū)內(nèi),而大量的數(shù)據(jù)存放在數(shù)據(jù)塊。STEP7按照數(shù)據(jù)塊的使用方法把數(shù)據(jù)分為三類: (1)共享數(shù)據(jù)塊 (2)背景數(shù)據(jù)塊 (3)用戶定義的數(shù)據(jù)塊8.1.1 數(shù)據(jù)塊中的數(shù)據(jù)類型在STEP 7中數(shù)據(jù)塊的數(shù)據(jù)類型可以 分為三種:(1)基本數(shù)據(jù)類型 (2)復雜數(shù)據(jù)類型 (3)用戶定義數(shù)據(jù)類型 8.1 數(shù)據(jù)塊8.1.2 建立數(shù)據(jù)塊建立數(shù)據(jù)塊的方法和建立程序塊的方法一樣。在SIMATIC Manager窗口下,用鼠標右鍵點擊Blocks,然后選中Insert New Object-Data Block,就

11、會彈出Properties-Data Block對話框,在對話框中的Name and Type欄中做出正確選擇后,點擊OK按鈕,就建立了一個新的數(shù)據(jù)塊。和打開程序塊進行編輯一樣,雙擊數(shù)據(jù)塊圖標,就把這數(shù)據(jù)塊打開了,如圖 。剛打開的數(shù)據(jù)塊是空的,用戶必須自己編輯這個數(shù)據(jù)塊。在Name欄目中填上變量名稱,在Type欄目中填上數(shù)據(jù)類型。在Type欄目中可以用鼠標右鍵列出數(shù)據(jù)類型清單,然后選擇合適的數(shù)據(jù)類型。Name和Type是必須填寫的。 數(shù)據(jù)塊編輯好后,一定要存盤、下載,方法同前。 8.1 數(shù)據(jù)塊8.1.3 訪問數(shù)據(jù)塊在用戶程序中可能存在多個數(shù)據(jù)塊,而每個數(shù)據(jù)塊的數(shù)據(jù)結(jié)構(gòu)并不完全相同,因此在訪問數(shù)

12、據(jù)塊時,必須指明數(shù)據(jù)塊的編號、數(shù)據(jù)類型與位置。 訪問數(shù)據(jù)塊 數(shù)據(jù)塊的打開和關(guān)閉 8.2 S7-300的組織塊與中斷8.2.1 組織塊介紹組織塊(OB)是操作系統(tǒng)與用戶程序之間的接口,組織塊由操作系統(tǒng)調(diào)用。組織塊中的程序是由用戶編寫的。SIMATIC S7 CPU提供了大量的OB(組織塊),組織塊采用中斷的方式在特定的時間或特定的情況下執(zhí)行相應(yīng)的程序和響應(yīng)特定事件的程序。組織塊可以分為以下幾類:(1)循環(huán)執(zhí)行的組織塊(2)啟動組織塊(3)定期執(zhí)行的組織塊 (4)事件驅(qū)動的組織塊 (5)背景組織塊 OB的變量聲明表 8.6 S7-300的組織塊與中斷8.2.2 中斷過程 啟動事件觸發(fā)OB調(diào)用稱為中

13、斷,中斷處理用來實現(xiàn)對特殊內(nèi)部事件或外部事件的快速響應(yīng)。在SIMATIC S7中,對這些特殊事件的處理,安排了大量的組織塊,可在這些組織塊中編寫相應(yīng)的中斷處理程序。沒有中斷時,CPU循環(huán)執(zhí)行組織塊OB1,因為除背景組織塊OB90以外,OB1的中斷優(yōu)先級最低。當CPU檢測到中斷源的中斷請求時,操作系統(tǒng)在執(zhí)行完當前程序的當前指令(即斷點處)以后,就會根據(jù)中斷優(yōu)先級的高低立即響應(yīng)中斷。CPU暫停正在執(zhí)行的程序,調(diào)用中斷源對應(yīng)的用于中斷的組織塊來處理。執(zhí)行完中斷組織塊以后,則返回中斷程序的斷點處繼續(xù)執(zhí)行原來的程序。有中斷發(fā)生時,如果沒有下載對應(yīng)的組織塊,CPU將會進入STOP模式。 一個組織塊的執(zhí)行被

14、另一個組織塊中斷時,操作系統(tǒng)會對現(xiàn)場進行保護。 中斷發(fā)生時,中斷程序是由操作系統(tǒng)自動調(diào)用的,而不是由程序塊調(diào)用的。 8.2 S7-300的組織塊與中斷8.2.2 中斷的優(yōu)先級組織塊的默認優(yōu)先級 8.6 S7-300的組織塊與中斷8.2.3 啟動組織塊發(fā)生下列事件時,CPU執(zhí)行啟動功能:1PLC電源上電后;2CPU的模式選擇開關(guān)從STOP位置撥到RUN或RUN-P位置時;3接收到通過通信功能發(fā)送來的啟動請求;4多CPU方式同步之后和H系統(tǒng)連接好后(只適用于備用CPU)。啟動用戶程序之前,先執(zhí)行啟動組織塊OB。在暖啟動、熱啟動和冷啟動時,操作系統(tǒng)分別調(diào)用OB100、OB101、OB102組織塊。用

15、戶可以通過在啟動組織塊OB100OB102中編寫程序來設(shè)置CPU的初始化操作。例如設(shè)置開始運行時某些變量的初始值,以及輸出模塊的初始值等。 OB100聲明表中變量的含義8.2 S7-300的組織塊與中斷8.2.4 時間延時中斷組織塊(1)概述在延時中斷組織塊中,用戶可以編寫將要延時的程序。PLC中定時器的定時時間與掃描方式有關(guān),其精度受不斷變化的循環(huán)周期的影響,而使用延時中斷組織塊則可以提高延時的精度。延時中斷組織塊的延時時間為160000ms,其延時精度為1ms,優(yōu)于定時器的精度。 (2)應(yīng)用方法首先可以在STEP7中查看可以支持的延時中斷OB。具體方法如下:在STEP7的硬件組態(tài)窗口中,雙

16、擊項目機架上的CPU所在的行,打開CPU屬性對話框,點擊“中斷”選項頁,設(shè)置框中顯示出當前CPU支持的延時中斷組織塊 。SFC32SFC34的參數(shù)說明 (3)應(yīng)用實例8.2 S7-300的組織塊與中斷8.2.5 硬件中斷組織塊(1)概述 硬件中斷組織塊(OB40OB47)用于快速響應(yīng)信號模塊SM、通信處理模塊CP和功能模塊FM的信號變化。例如:當一個數(shù)字量輸入模塊的一個通道有上升沿信號來時,若這個模塊有中斷能力,則觸發(fā)一個硬件中斷,中斷服務(wù)程序就置于硬件中斷組織塊中。(2)應(yīng)用方法 首先可以在STEP7中查看支持的硬件中斷組織塊。具體方法是:在STEP7的硬件組態(tài)窗口中,雙擊項目中機架上的CP

17、U所在的行,打開CPU屬性對話框,點擊“中斷”選項頁,可以看到CPU支持的硬件中斷模塊,如圖8-41所示。在此也可以為硬件中斷OB選擇優(yōu)先級。 (3)應(yīng)用實例CPU支持的硬件中斷塊 8.3 定期執(zhí)行組織塊8.3.1 日期時間中斷組織塊 日期時間中斷可以在某一特定的日期和時間執(zhí)行一次,也可以從設(shè)定的日期時間開始,周期性地重復執(zhí)行,例如,每分鐘、每小時、每天甚至每年執(zhí)行一次??梢杂肧FC28SFC30設(shè)置、取消或激活日期時間中斷。 為了啟動時間中斷,用戶首先必須設(shè)置時間中斷的參數(shù),然后再激活它。用戶可以用組態(tài)或編程的方法來啟動時間中斷。(1)設(shè)置和啟動日期時間中斷 基于硬件組態(tài)的自動啟動時間中斷,

18、在硬件組態(tài)工具中設(shè)置和激活。 用上述方法設(shè)置日期時間中斷的參數(shù),但不選擇“激活”而是在用戶程序中用SFC30“ACT_TINT”激活日期時間中斷。 可以在程序中通過調(diào)用SFC28 “SET_TINT”來設(shè)置時間中斷,然后通過調(diào)用SFC30“ACT_TINT”來激活它。(2)查詢?nèi)掌跁r間中斷(3)禁止和激活日期時間中斷(4)應(yīng)用實例8.3 定期執(zhí)行組織塊8.3.2 循環(huán)中斷組織塊 (1)概述 STEP7提供了9個循環(huán)中斷組織塊(OB30OB38),它們經(jīng)過一段固定的時間間隔中斷用戶的程序。循環(huán)中斷用于按精確的時間間隔循環(huán)執(zhí)行中斷程序,例如周期性的執(zhí)行閉環(huán)控制系統(tǒng)的PID控制程序,間隔時間從STOP切換到RUN模式時開始計算。 循環(huán)中斷組織塊默認的時間間隔和優(yōu)先級 8.3 定期執(zhí)行組織塊8.3.2 循環(huán)中斷組織塊(2)應(yīng)用方法 首先可以在STEP7中查看可支持的循環(huán)中斷OB。具體方法:在STEP7的硬件的組態(tài)窗口中,雙擊項目機架上的CPU所在的行,打開CPU屬性對話框,點擊“循環(huán)中斷”選項頁,設(shè)置框就顯示當前CPU可以使用的循環(huán)中斷塊,可以設(shè)置循環(huán)中斷 。(3)應(yīng)用實例 【例】每三分鐘中斷一次,每次中斷使MW0自動加1。要求用I0.1的

溫馨提示

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

評論

0/150

提交評論