S7-200SMART中斷指令
發(fā)布于2022-12-14 16:03
46
2
標(biāo)簽:S7-200
中斷是 CPU 停止當(dāng)前的任務(wù)轉(zhuǎn)而去執(zhí)行其他任務(wù)的過程。中斷執(zhí)行前CPU 會對當(dāng)前的執(zhí)行環(huán)境進行保留(保存現(xiàn)場),當(dāng)中斷處理完成后,會恢復(fù)現(xiàn)場以繼續(xù)執(zhí)行之前的任務(wù)。中斷機制是一種非常高效的機制,它既能保證一些重要事件發(fā)生后 CPU的及時處理,又保證事件未發(fā)生時 CPU 不浪費寶貴的運行資源去反復(fù)監(jiān)測事件。
S7-200 SMART 系列 PLC 的 CPU 具有中斷功能,用于實時控制、高速處理、網(wǎng)絡(luò)通信及一些特殊控制任務(wù)的處理。引起中斷的事件有很多種類,S7-200 SMART CPU 最多支41 個中斷事件(其中2個為預(yù)留),分為三大類:通信中斷、輸入/輸出(I/O)中斷和時間中斷。
中斷事件具有不同的優(yōu)先級。S7-200 SMART規(guī)定中斷優(yōu)先由高到低依次是:通信中斷、I/O 中斷和時間中斷。當(dāng) CPU 剛進人運行模式時,默認(rèn)情況下所有中斷都是被禁止的。
中斷使能指令 ENI 可以在全局范圍內(nèi)使能所有中斷。中斷禁用指令 DISI 可以在全局范圍內(nèi)禁用所有中斷(已經(jīng)激活的中斷仍然在隊列中)。中斷返回指令 RETI 可以有條件地從中斷子程序中返回。
中斷子程序是處理中斷事件的程序代碼。當(dāng)中斷事件發(fā)生后,CPU的操作系統(tǒng)會調(diào)用相應(yīng)的中斷子程序?qū)χ袛噙M行處理。但是,中斷事件是怎樣跟中斷子程序聯(lián)系起來的呢?這就需要用到中斷連接指令(ATCH)。ATCH 指令將中斷事件和中斷子程序相關(guān)聯(lián)并使能中斷事件。ATCH 指令有兩個參數(shù):INT 和 EVNT。INT 是中斷子程序的名稱;EVNT 是中事件的編號。如圖 3-148 所示代碼是在 CPU的第一個掃描周期,將中斷事件9(端口0發(fā)完成)與中斷子程序(INT_ 0)相聯(lián)系。
圖 3-148 中斷連接指令示例
除了中斷連接指令,還有中斷分離指令(DTCH)和中斷事件移除指令(CLR EVNT)。DTCH 指令將中斷事件和中斷子程序分離,并使該中斷事件失效。DTCH 指令只有一個參數(shù),即 EVNT,表示中斷事件的編號。
中斷分離指令示例如圖 3-149 所示。當(dāng)檢測到 I/O 錯誤時,禁用 I0.3 的上升沿中斷。
圖 3-149 中斷分離指令示例
CLR EVNT 指令可以從中斷隊列中移除特定類型的中斷事件。CLR EVNT 指令只有個參數(shù),即 EVNT,表示中斷事件的編號。中斷事件移除指令示例如圖 3-150 所示,將中斷事件 17(HSC2方向改變)移除。
圖3-150 中斷事件移除指令實例