西門子s7-200中斷指令入門
1、什麽(me) 是中斷
中斷是指CPU在正常運行程序時,由於(yu) 內(nei) 部/外部事件或由程序預先安排的事件,引起CPU中斷正在運行的程序,而轉到為(wei) 內(nei) 部/外部事件或為(wei) 預先安排的時間服務的程序中去,服務完畢,再返回去執行被中斷暫停的程序。
2、中斷的作用
中斷跟掃描周期無關(guan) ,響應快,隻要中斷事件發生才會(hui) 去執行程序,可以節省時間,避免等待和浪費時間。中斷可以做出來一些比較特殊的,比較緊急的事情,例如急停。
3、中斷的分類
中斷主要分為(wei) 3類:
(1)輸入輸出中斷簡稱I/O中斷,又包括輸入中斷(8個(ge) );輸出中斷:高速計數器中斷14個(ge) ,高速脈衝(chong) 輸出中斷2個(ge) 。
(2)時基中斷,又包括:定時循環中斷2個(ge) (SMB34/SMB35),定時器中斷2個(ge) (T32/T96)
(3)通訊中斷6個(ge) 。
4、CPU響應中斷的原則
(1)當不同優(you) 先級別的中斷事件同時發出申請中斷時,CPU先響應優(you) 先級別高的中斷事件。
(2)在相同優(you) 先級別的中斷事件中,CPU按“先來後到”的原則處理中斷事件。
(3)CPU在任何時刻隻執行一個(ge) 中斷程序,當CPU正在處理某中斷時,不會(hui) 被別的中斷程序甚至是優(you) 先級別更高的中斷程序所打斷,一直執行到結束,新出現的中斷時間需要排隊,等待處理。
(4)中斷事件被觸發,立刻執行中斷程序,中斷程序不存在嵌套。
這裏我們(men) 先在程序當中,來梳理一下中斷指令。
按下F1之後,在幫助文件中尋找“中斷事件優(you) 先級別表”。
重點了解事件號碼中的0-7這幾項:
說明:中斷事件的號碼,是從(cong) 0-33,共計34類中斷事件。這裏的中斷說明介紹了事件號碼對應的啟動條件。舉(ju) 例,如實踐號碼為(wei) 5,則這個(ge) 中斷指令在收到外部信號觸發影響時,一定是I0.2的下降沿,作為(wei) 啟動條件的。而事件優(you) 先級是指當兩(liang) 個(ge) 中斷指令被同時觸發時,按照優(you) 先級高的先執行,優(you) 先級低的後執行的規則來處理。
下麵在軟件中編輯一條中斷指令:
注意,觸發中斷指令的外部條件,需要與(yu) 事件號(EVNT)條件相一致;INT數與(yu) 中斷程序名稱相一致。比如“I0.0+下降沿”,好比一把鑰匙,而EVNT中的1好比是1號房間,那隻有當1號房間的鑰匙,插入1號房間的鎖裏,才能打開1號房間。打開之後做什麽(me) ?通過指令連接INT_0中斷程序裏麵的內(nei) 容。
說明,由於(yu) 中斷程序的執行,不受掃描周期的影響,而是立即響應的。所以激活它的條件一定是用到(上升/下降)沿指令,而且隻需觸發一次即可。
在新建(插入)中斷程序時,方法與(yu) 新建子程序的方式是一致的。
那麽(me) ,指令激活已完成,中斷程序連接也接上了,那是不是就可以監控到輸出的結果了?
答案是否定的,因為(wei) 還需要開放中斷(ENI),就是中斷程序執行後的結果,需要通過ENI指令,讓全局都可以調用和監控。
歸納起來,中斷程序的執行共分為(wei) 三步:
1、激活中斷(1次即可);
2、中斷事件連接中斷程序;
3、開放中斷程序(結果)。