- 三菱FX3系列PLC功能指令應用全解
- 李金城編著
- 2207字
- 2024-01-19 15:51:41
2.1.4 中斷
1.中斷的有關概念
中斷是指PLC在平常按照順序執行的掃描循環中,當有需要立即反應的請求發生時,立即中斷其正在執行的掃描工作,優先地去執行要求所指定的服務工作;等該服務工作完成后,再回到剛才被中斷的地方繼續執行未完成的掃描工作。
可以舉一個例子來說明中斷的基本概念。某公司老總正坐在辦公桌前批閱文件(正在執行掃描),突然電話鈴響了(有中斷請求),老總放下手頭的工作(中斷掃描工作)去接電話(執行中斷服務),電話接聽完畢(中斷服務完成),老總又繼續批閱文件(繼續執行掃描)。
這個例子已經通俗地說明了中斷的基本概念。
1)中斷請求與中斷源
中斷也是一種程序流程轉移,但這種轉移大都是隨機發生的,例如,故障報警、計數器當前值等于設定值、外部設備的動作等,事先并不知道這些事件發生的時刻,但這些事件出現后就必須盡快地對他們進行相應的處理,這時可用中斷功能來快速完成上述事件的處理。另一種情況是對于大部分的應用,上述按照順序掃描的控制方式已經足夠,但對某些需要高速反應的應用場合(如模擬量控制、定位控制等),掃描時間的延時即代表誤差的擴大,其反應時間甚至要到微秒,才能達到精度要求。在這種情況下,只有利用中斷功能才能實現。
要求實行中斷功能首先必須向PLC發出中斷請求信號。發出中斷信號的設備稱為中斷源,中斷源可以是外部設備(各種開關信號),也可以是內部定時器、計數器,以及根據需要人為設置的中斷源等。
2)斷點與中斷返回
當中斷源向PLC發出中斷請求信號后,PLC正在執行的掃描程序在當前指令執行完成后被停止執行,這樣就在程序中產生一個斷點,PLC必須記住這個斷點,然后轉移去執行副程序區的中斷服務程序。
中斷服務程序執行完后,PLC會再回到剛才中斷的地方(稱為中斷返回),從斷點處的下一條指令開始繼續執行未完成的掃描工作。這一過程不受PLC掃描工作方式的影響,因此,可使PLC能迅速響應中斷事件。換句話說,中斷程序不是在每次掃描循環中進行處理的,而是在需要時被及時地處理。
2.中斷優先與中斷控制
繼續上面電話的事例,如果該老總面前有三部電話,當老總正在接第一個電話時,又有一部電話鈴響了,這時老總是聽完第一個電話后,去接第二電話,還是中斷第一個電話,馬上去接第二個電話?這就涉及當發生多重中斷時中斷優先的問題。
什么是中斷優先呢?在多重中斷輸入結構時,會將各個中斷輸入按照其重要性給予其不同的中斷優先順序。當CPU接受某一個中斷請求且正執行該中斷的服務程序的同時,如果有另一個中斷請求發生,CPU將比較兩個中斷的中斷優先級。如果其優先級低于正在執行的中斷,CPU將不理會該中斷,必須等執行完現行的中斷服務程序后才會接受該中斷,并按照產生中斷請求的先后次序進行處理。但如果其優先順序高于正在執行的中斷,CPU將立即停止其正在執行的中斷服務程序,跳入更高優先級的中斷服務程序去執行。等執行完成后,再回到剛才被中斷的較低優先級服務程序中去,繼續完成未完成的工作。這種處理方式稱為中斷程序的嵌套應用。
回到上面的事例,如果第二個電話是董事長直線電話,其優先級最高,該老總會立即放下第一個電話去接第二個電話;如果第二個電話是下屬來電,該老總會聽完第一個電話后,再聽第二個電話,聽完第二個電話后,再繼續批閱文件。
不同品牌的PLC關于中斷優先的設定是不同的,三菱FX系列PLC的中斷功能原則是不能嵌套的。也就是說,正在執行某一中斷程序時,不能再接受其他中斷程序的處理。但作為特殊處理,FX2N PLC運行時可以使用一次且僅可使用一次中斷嵌套。
不是所有的應用程序都需要PLC的中斷功能,用戶一般也不需要處理所有的中斷事件,因此,PLC設置了中斷控制指令來控制是否需要中斷和需要哪些中斷。中斷控制指令一般包含允許中斷指令(又稱開中斷)和禁止中斷指令(又稱關中斷)。在程序中設置允許中斷指令后,則后面的掃描程序中,就允許處理事先設置的中斷處理功能;在程序中設置了禁止中斷指令后,則后面的掃描程序中,就禁止處理所有的中斷功能,直到重新執行允許中斷指令。
3.中斷服務程序結構與編寫
中斷和子程序調用雖然同樣用到副程序,但其調用(跳到副程序去執行)的方式卻不同。子程序調用是在主程序中執行子程序調用指令(一般為CALL指令)時,PLC會記下CALL指令所指定的副程序名稱,并到副程序區執行該標記名稱的副程序,一直執行到子程序返回指令后,才會返回主程序。中斷的調用則不是利用軟件指令,而是由硬件電路發出中斷信號給PLC,由PLC自行去辨別該中斷的名稱,自動跳入副程序中以該中斷名稱為標記的“中斷服務程序”中去執行,執行到中斷返回指令后,才返回到主程序。上述中斷服務程序結構如圖2-7所示。由“頭”“尾”及中斷服務程序組成。“頭”即為該中斷的唯一中斷標志名稱,而“尾”就是中斷返回指令,告訴PLC中斷程序的結束,頭尾中間為中斷服務程序本身,用來告知PLC在該中斷發生時必須執行哪些控制操作。中斷服務程序編寫要注意下面兩個問題。

圖2-7 中斷服務程序結構
(1)設計中斷程序時應遵循“越短越好”的原則。中斷服務程序的執行會延遲主程序執行的時間,如果中斷服務程序執行時間過長,則有可能引起主程序所控制的設備操作發生異常。因此,必須對中斷服務程序進行優化,使其盡量短小,以減少其執行時間,從而減少對主程序處理的延遲。
(2)中斷服務程序是隨機調用的,必須謹慎地設計中斷服務程序的各種軟元件,弄清楚中斷服務子程序中軟元件和主程序中軟元件的關系,中斷服務程序中的軟元件最好是獨立的,當然,與主程序相關的除外。