新疆西門子S7-200SMARTPLC代理批發(fā)銷售
西門子S7-200 PLC中斷指令
在計算機控制中,對于那些可考慮的不定期產(chǎn)生的急需處理事件,常常通過采用中斷處理技術(shù)來完成,當(dāng)CPU響應(yīng)中斷請求后,會暫時停止當(dāng)前正在執(zhí)行的程序,進行現(xiàn)場保護,在將累加器、邏輯堆棧、寄存器及特殊繼電器的狀態(tài)和數(shù)據(jù)保存起來后,轉(zhuǎn)到相應(yīng)的中斷服務(wù)程序中去處理。一旦處理結(jié)束,立即恢復(fù)現(xiàn)場,將保存起來的現(xiàn)場數(shù)據(jù)和狀態(tài)重新裝入,返回到原程序繼續(xù)執(zhí)行。這種工作方式就叫中斷方式。
在啟動中斷程序之前,必須使中斷事件與發(fā)生此事件時希望執(zhí)行的程序段(中斷程序INT n)建立聯(lián)系,使用中斷連接指令(ATCH)。將中斷事件連接于中斷程序時,該中斷自動被啟動。
使用中斷分離指令( DTCH)可刪除中斷事件與中斷程序之間的聯(lián)系因而關(guān)閉耽擱中斷事件。

在S7-200中,可以引發(fā)的中斷事件總共有5大類34項,每個中斷事件分配不同的編號,編號范圍:0~34。其中輸入信號引發(fā)的中斷事件有8項,通信口引發(fā)的中斷事件有6項,定時器引發(fā)的中斷事件有4項,高速計數(shù)器引發(fā)的中斷事件有14項,脈沖指令引起的中斷事件有2項,見表4-25。
表4-25 中斷事件號表
事件號 | 中斷事件描述 | CPU221 | CPU222 | CPU224 | CPU226 |
0 | I0.0上升沿中斷 | Y | Y | Y | Y |
1 | I0.0下降沿中斷 | Y | Y | Y | Y |
2 | T0.1上升沿中斷 | Y | Y | Y | Y |
3 | I0.1下降沿中斷 | Y | Y | Y | Y |
4 | I0.2上升沿中斷 | Y | Y | Y | Y |
5 | I0.2下降沿中斷 | Y | Y | Y | Y |
6 | I0.3上升沿中斷 | Y | Y | Y | Y |
7 | I0.3下降沿中斷 | Y | Y | Y | Y |
8 | 通信口0:接收字符 | Y | Y | Y | Y |
9 | 通信口0:發(fā)送字符完成 | Y | Y | Y | Y |
10 | 定時中斷0,SMB34存放定時間隔,5~255s | Y | Y | Y | Y |
11 | 定時中斷1,SMB35存放定時間隔,5~255s | Y | Y | Y | Y |
12 | 高速計數(shù)器0:CV= PV(當(dāng)前值=設(shè)定值) | Y | Y | Y | Y |
13 | 高速計數(shù)器1:CV= PV(當(dāng)前值=設(shè)定值) | - | - | Y | Y |
14 | 高速計數(shù)器1:輸入方向改變 | - | - | Y | Y |
15 | 高速計數(shù)器1:外部復(fù)位 | - | - | Y | Y |
16 | 高速計數(shù)器2:CV= PV(當(dāng)前值=設(shè)定值) | - | - | Y | Y |
17 | 高速計數(shù)器2:輸入方向改變 | - | - | Y | Y |
18 | 高速計數(shù)器2:外部復(fù)位 | - | - | Y | Y |
19 | PTO 0脈沖串輸出完成中斷 | Y | Y | Y | Y |
20 | PTO 1脈沖串輸出完成中斷 | Y | Y | Y | Y |
21 | 定時器T32 CT= PT中斷 | Y | Y | Y | Y |
22 | 定時器T96 CT= PT中斷 | Y | Y | Y | Y |
23 | 通信口0:接收信息完成 | Y | Y | Y | Y |
24 | 通信口1:接收信息完成 | - | - | Y | Y |
25 | 通信口1:接收字符 | - | - | Y | Y |
26 | 通信口1:發(fā)送字符完成 | - | - | Y | Y |
27 | 高速計數(shù)器0:輸入方向改變 | Y | Y | Y | Y |
28 | 高速計數(shù)器0:外部復(fù)位 | Y | Y | Y | Y |
29 | 高速計數(shù)器4:CV= PV(當(dāng)前值=設(shè)定值) | Y | Y | Y | Y |
30 | 高速計數(shù)器4:輸入方向改變 | Y | Y | Y | Y |
31 | 高速計數(shù)器4:外部復(fù)位 | Y | Y | Y | Y |
32 | 高速計數(shù)器3:CV= PV(當(dāng)前值=設(shè)定值) | Y | Y | Y | Y |
33 | 高速計數(shù)器5:CV= PV(當(dāng)前值=設(shè)定值) | Y | Y | Y | Y |
高速計數(shù)器共有12種工作模式,大體可分為四類:
①帶內(nèi)部方向控制的單向計數(shù)器,這類計數(shù)器只有一個計數(shù)輸入端,工作模式為模式0、1、2。
②帶外部方向控制的單向計數(shù)器,這類計數(shù)器只有一個計數(shù)輸入端,增加了一個外部輸入點來控制計數(shù)方向(增計數(shù)還是減計數(shù)),工作模式為模式3、4、5。
③雙向計數(shù)器,這類計數(shù)器有兩個計數(shù)輸入端,一個增計數(shù)輸入端,一個減計數(shù)輸入端。這類計數(shù)器的工作模式為模式6、7、8。
④正交計數(shù)器,這種計數(shù)器有兩個時鐘脈沖輸入端,一個輸入端叫A相,一個輸入端叫B相。當(dāng)A相時鐘脈沖超前B相時鐘脈沖時,計數(shù)器進行增計數(shù)。當(dāng)A相時鐘脈沖滯后B相時鐘脈沖時,計數(shù)器進行減計數(shù)。這類計數(shù)器的工作模式為模式9、10、11。在正交模式下,可選擇1倍或4倍計數(shù)速率來計數(shù)。
①中斷優(yōu)先級。在S7-200的中斷系統(tǒng)中,將全部中斷事件按中斷性質(zhì)和輕重緩急分配不同的優(yōu)先級,使得當(dāng)多個中斷事件同時發(fā)出中斷請求時,按照優(yōu)先級的從高到低進行排隊,優(yōu)先級的順序按照中斷性質(zhì)依次是通信中斷、高速脈沖串輸出中斷、外部輸入中斷、高速計數(shù)器中斷、定時中斷、定時器中斷。
②中斷隊列。在PLC中,CPU一般在的優(yōu)先級內(nèi)按照先來先服務(wù)的原則響應(yīng)中斷事件的中斷請求,在任何時刻,CPU只執(zhí)行一個中斷程序。當(dāng)CPU按照中斷優(yōu)先級響應(yīng)并執(zhí)行一個中斷程序時,就不會響應(yīng)其他中斷事件的中斷請求(盡管此時可能會有更高級別的中斷事件發(fā)出中斷請求),直到將當(dāng)前的中斷程序執(zhí)行結(jié)束。在CPU執(zhí)行中斷程序期間,對新出現(xiàn)的中斷事件仍然按照中斷性質(zhì)和優(yōu)先級的順序分別進行排隊,形成中斷隊列。
③在S7-200中,無中斷嵌套功能,但在中斷程序中可以調(diào)用一個嵌套子程序,因為累加器和邏輯堆棧在中斷程序和被調(diào)用的子程序中是公用的。
④多個中斷事件可以調(diào)用同一個中斷服務(wù)程序,但是同一個中斷事件不能同時調(diào)用多個中斷服務(wù)程序,否則,當(dāng)某個中斷事件發(fā)生時,CPU只調(diào)用為該事件的后一個中斷服務(wù)程序。

對于相同的操作模式,全部計數(shù)器的運行方式均相同,并非每種計數(shù)器均支持全部工作模式。
①開中斷指令ENI( Enable Interrupt)和關(guān)中斷指令DISI( Disable Interrupt)
·開中斷指令的功能是全局地啟動全部中斷事件,一旦進入運行模式,就允許CPU接收所有中斷事件的中斷請求,并執(zhí)行各個已經(jīng)激活的中斷事件。
·關(guān)中斷指令的功能是全局地關(guān)閉所有中斷事件,禁止CPU接收各個中斷事件的中斷請求。
開/關(guān)中斷指令格式如圖4-71所示。

圖4-71 開/關(guān)中斷指令
當(dāng)CPU進入RUN狀態(tài)時,禁止中斷,但是可以通過執(zhí)行開中斷指令ENI,全面開放中斷。當(dāng)CPU執(zhí)行關(guān)中斷指令DISI后,中斷隊列仍會產(chǎn)生,但是不執(zhí)行中斷程序。
②中斷連接指令ATCH( Attach)。中斷連接指令的功能是建立一個中斷事件EVNT與一個標(biāo)號為INT的中斷服務(wù)程序的聯(lián)系,并對該中斷事件開放,根據(jù)事件優(yōu)先級組,PLC按照先來先服務(wù)的順序?qū)χ袛嗵峁┓?wù)。

圖4-72 中斷連接指令
中斷連接指令ATCH的格式如圖4-72所示,它有兩個數(shù)據(jù)輸入端:
·INT為中斷服務(wù)程序號,用字節(jié)型常數(shù)輸入(范圍為:0~127)。
·EVNT為中斷事件號,用字節(jié)型常數(shù)輸入(范圍為:0~33)。
當(dāng)允許輸入有效時,連接與中斷事件EVNT相關(guān)聯(lián)的INT中斷程序,并去執(zhí)行對應(yīng)的中斷程序。
影響允許輸出ENO正常輸出的出錯條件為:SM4.3(運行時間),0006(間接尋址)。
③中斷分離指令DTCH( Detach)。中斷分離指令的功能是取消某個中斷事件EVNT與所有中斷程序的關(guān)聯(lián).并對該事件關(guān)中斷。指令格式如圖4-73所示。

圖4-73 中斷分離指令
中斷分離指令只有一個數(shù)據(jù)輸入端“EVNT”,用以指明要被分離的中斷事件。當(dāng)允許輸入有效時,切斷由EVNT的中斷事件與所有中斷程序的聯(lián)系。
④中斷返回指令CRETI(Conditional Return Interrupt)和RETI( Return Interrupt)。CRETI是有條件返回指令,可根據(jù)先前編輯條件從中斷程序返回,可放置在中斷程序的任何位置。在梯形圖中以線圈形式編程,無操作數(shù)。

RETI是無條件返回指令,當(dāng)中斷結(jié)束時,通過中斷返回指令退出中斷服務(wù)程序,返回到主程序。Micro/WIN32自動為各中斷程序的結(jié)尾處添加了無條件返回(RETI),在編寫程序時,用戶不必再書寫無條件返回指令了。
新疆西門子S7-200SMARTPLC代理批發(fā)銷售