【S7-300使用指南】24.中斷的使用
唐琳
發(fā)布于2015-12-30 11:28
8
0
標簽:程序編寫, 軟件,
雖然掃描是PLC的主要工作方式,但是在日常使用過程中,中斷作為一種輔助工作方式,也對我們整個的控制過程起到了不可或缺的作用。那么要掌握中斷的使用首先我們必須了解中斷到底是什么,以及掃描與中斷的關(guān)系。
1 徹底理解中斷與掃描 說到中斷可能很多人都對中斷的本質(zhì)含義都似懂非懂,這里如果我還是把定義和概念拉出來,肯定有人就要罵娘了,所以我還是拿講課和大家打個比方,用這個例子把掃描和中斷和大家講清楚。
首先我們來看什么是中斷工作方式,比方說有1個老師和10個學(xué)生,那么老師講課的過程就相當于執(zhí)行主程序,這時有學(xué)生突然有問題,舉手向老師提問,那么這個學(xué)生就打斷了老師的講課,就相當于中斷了主程序。老師停止講課去回答這個學(xué)生的問題就相當于在執(zhí)行中斷程序。當老師回答完這個學(xué)生的問題,繼續(xù)開始講課。這對于PLC來說就相當于執(zhí)行完中斷程序,返回繼續(xù)執(zhí)行主程序。
那什么又是掃描的工作方式呢?還是以上課為例,老師講課的時候不允許學(xué)生提問,當課程講完后老師先問第1個學(xué)生是否有問題,如果第1個學(xué)生沒有問題,老師問第2個學(xué)生是否有問題,以此類推,但是當老師問到第8個學(xué)生的時候,突然第1個學(xué)生說我有問題,這時如果按照掃描的工作方式,老師是不去理會第1個學(xué)生的,只有當老師問完第10個學(xué)生后才會來處理第1個學(xué)生的問題。
其實稍微熟悉一點計算機工作原理的朋友都應(yīng)該清楚通常我們的筆記本或者臺式機主要都是采用中斷的工作方式,我們點一下鼠標或者按一下鍵盤,都相當于那個舉手提問打斷老師講課的學(xué)生,而PLC則采用以循環(huán)掃描為主,中斷為輔的工作模式。既然PLC也是計算機的一種,為什么PLC不采用普通電腦以中斷為主的工作方式呢?而且很明顯以中斷為主的工作模式的運行效率要比以循環(huán)掃描為主的工作模式效率要高得多。下面我們回到這樣一個場景,如果一個學(xué)生問題非常多老師剛回答完他的問題,他就又舉手提問,如此往復(fù)不停循環(huán),那么這節(jié)課就上不下去了,這對于我們電腦來說就叫做死機,也就是一個進程占據(jù)了系統(tǒng)所有的資源。這就是中斷工作模式的缺點,雖然工作效率高但有可能會死機,而我們的PLC是絕對不能出現(xiàn)死機這種情況的,因此PLC為了保證運行的穩(wěn)定,犧牲了部分工作效率而采用了循環(huán)掃描為主的工作模式。
2 S7-300中斷的使用 雖然循環(huán)掃描是PLC的主要工作模式,但是作為一種輔助的工作方式,中斷的使用在PLC的應(yīng)用過程中也是必不可少的,下面我們就來看看在S7-300中都有哪些中斷是我們常用的。這里我們需要注意所有的中斷只要建立就可以使用,不需在OB1中進行調(diào)用。
2.1 時間日期中斷 對于時間日期中斷就是這個中斷事件是由時間和日期觸發(fā)的到我們設(shè)定好的具體的時間這個中斷就會產(chǎn)生,在Step 7中時間日期中斷程序是組織塊OB10~OB17,但是在S7-300CPU中我們只能使用OB10
圖2-1
下面我們來演示如何使用OB10來進行編程
1) 建立OB10組織塊并寫下如下圖程序
圖2-2
2) 對CPU硬件組態(tài)進行設(shè)置
圖2-3
3) 建立變量表監(jiān)控MW100
圖2-4
4) MW100在21:46時由變?yōu)?99說明OB10在21:46時執(zhí)行了一回
2.2 循環(huán)中斷 所謂循環(huán)中斷就是說中斷的產(chǎn)生是周期性的,每隔固定時間就會執(zhí)行該中斷程序,在Step7中可以使用的循環(huán)中斷有OB30~OB38,S7-300中我們只能使用OB35,下面我們來看看如何使用循環(huán)中斷完成周期為1S的脈沖程序的編寫。
1) 建立OB35組織塊并編寫如下程序,注意這里的目的是讓M4.0以1S為周期發(fā)出脈沖。
圖2-5
2) 對CPU硬件組態(tài)進行設(shè)置
圖2-6
3) 建立變量表監(jiān)控M4.0
圖2-7
4) 通過監(jiān)控發(fā)現(xiàn)M4.0以一秒鐘為周期閃爍,這是因為我們將OB35的循環(huán)周期設(shè)為500ms所以O(shè)B35中程序每500ms執(zhí)行一次,通過對程序分析我們可以得出M4.0 500ms為1,500ms為0,周期為1S。
2.3 啟動中斷 所謂啟動中斷指的是PLC由Stop狀態(tài)到Run狀態(tài)中產(chǎn)生的中斷,在Step7中我們使用的啟動中斷程序是OB100,下面我們一起來看看啟動中斷OB100是如何運行的。
1) 建立OB100并在OB100中編寫如下圖所示程序
圖 2-8
2) 監(jiān)控MW100,可以看到MW100在PLC由stop編程Run的瞬間數(shù)值由0變成222
圖 2-9
2.4 診斷中斷
對于診斷中斷主要是處理PLC的各種故障時使用的,用的時候只需建立并將這些中斷塊下載到CPU中即可,不用編程。當PLC發(fā)生相應(yīng)故障時這些中斷塊就能有效的防止PLC停機。對應(yīng)我們通常會使用到的診斷中斷有OB80~OB87、OB121、OB122具體這些中斷是處理哪些故障的大家有需要的話可以查看Step 7的幫助,這里我就不做搬運工了。