中斷的概念:中斷是計(jì)算機(jī)獨(dú)有的一種工作方式;在主程序執(zhí)行的過程中,中斷主程序的執(zhí)行;在執(zhí)行子程序的過程中,中斷子程序的執(zhí)行。中斷程序主要是為某些特定控制功能而設(shè)定。與子程序不同,中斷是隨機(jī)發(fā)生且必須立即響應(yīng)的。需要執(zhí)行中斷程序必須要有中斷源(引發(fā)中斷的信號(hào))每個(gè)中斷信號(hào)都有一個(gè)編號(hào)加以識(shí)別,也就是我們說的中斷事件號(hào) 在200SMART系列PLC中共有三大類中斷事件,分別是: I/O中斷:I/O 中斷包括上升/下降沿中斷、高速計(jì)數(shù)器中斷和脈沖串輸出中斷。CPU 可以為輸入通道 I0.0、I0.1、I0.2 和 I0.3(以及帶有可選數(shù)字量輸入信號(hào)板的標(biāo)準(zhǔn) CPU 的輸入通道 I7.0 和 I7.1)生成輸入上升和/或下降沿中斷。可對(duì)這些輸入點(diǎn)中的每一個(gè)捕捉上升沿和下降沿事件。這些上升沿/下降沿事件可用于指示在事件發(fā)生時(shí)必須立即處理的狀況。 高速計(jì)數(shù)器中斷可以對(duì)下列情況做出響應(yīng):當(dāng)前值達(dá)到預(yù)設(shè)值,與軸旋轉(zhuǎn)方向反向相對(duì)應(yīng)的計(jì)數(shù)方向發(fā)生改變或計(jì)數(shù)器外部復(fù)位。這些高速計(jì)數(shù)器事件均可觸發(fā)實(shí)時(shí)執(zhí)行的操作,以響應(yīng)在可編程邏輯控制器掃描速度下無法控制的高速事件。 脈沖串輸出中斷在指定的脈沖數(shù)完成輸出時(shí)立即進(jìn)行響應(yīng)。脈沖串輸出的典型應(yīng)用為步進(jìn)電機(jī)控制。 通信中斷:CPU 的串行通信端口可通過程序進(jìn)行控制。通信端口的這種操作模式稱為自由端口模式。在自由端口模式下,程序定義波特率、每個(gè)字符的位數(shù)、奇偶校驗(yàn)和協(xié)議。接收和發(fā)送中斷可簡(jiǎn)化程序控制的通信
時(shí)基中斷:基于時(shí)間的中斷包括定時(shí)中斷和定時(shí)器 T32/T96 中斷。可使用定時(shí)中斷指定循環(huán)執(zhí)行的操作。循環(huán)時(shí)間位于 1 ms 到 255 ms 之間,按增量為 1 ms 進(jìn)行設(shè)置。必須在定時(shí)中斷 0 的 SMB34 和定時(shí)中斷 1 的 SMB35 中寫入循環(huán)時(shí)間。
每次定時(shí)器到時(shí)時(shí),定時(shí)中斷事件都會(huì)將控制權(quán)傳遞給相應(yīng)的中斷程序。通常,可以使用定時(shí)中斷來控制模擬量輸入的采樣或定期執(zhí)行 PID 回路。 將中斷程序連接到定時(shí)中斷事件時(shí),啟用定時(shí)中斷并且開始定時(shí)。連接期間,系統(tǒng)捕捉周期時(shí)間值,因此 SMB34 和 SMB35 的后續(xù)變化不會(huì)影響周期時(shí)間。要更改周期時(shí)間,必須修改周期時(shí)間值,然后將中斷例程序重新連接到定時(shí)中斷事件。重新連接時(shí),定時(shí)中斷功能會(huì)清除先前連接的所有累計(jì)時(shí)間,并開始用新值計(jì)時(shí)。 定時(shí)中斷啟用后,將連續(xù)運(yùn)行,每個(gè)連續(xù)時(shí)間間隔后,會(huì)執(zhí)行連接的中斷程序。如果退出 RUN 模式或分離定時(shí)中斷,定時(shí)中斷將禁用。如果執(zhí)行了全局 DISI(中斷禁止)指令,定時(shí)中斷會(huì)繼續(xù)出現(xiàn),但是尚未處理所連接的中斷程序。每次定時(shí)中斷出現(xiàn)均排隊(duì)等候,直至中斷啟用或隊(duì)列已滿。 使用定時(shí)器 T32/T96 中斷可及時(shí)響應(yīng)指定時(shí)間間隔的結(jié)束。僅 1 ms 分辨率的接通延時(shí) (TON) 和斷開延時(shí) (TOF) 定時(shí)器 T32 和 T96 支持此類中斷。否則 T32 和 T96 正常工作。啟用中斷后,如果在 CPU 中執(zhí)行正常的 1 ms 定時(shí)器更新期間,激活定時(shí)器的當(dāng)前值等于預(yù)設(shè)時(shí)間值,將執(zhí)行連接的中斷程序。可通過將中斷程序連接到 T32(事件 21)和 T96(事件 22)中斷事件來啟用這些中斷。 當(dāng)多個(gè)中斷同時(shí)發(fā)生請(qǐng)求時(shí),CPU對(duì)中斷響應(yīng)有優(yōu)先順序,從高到低的中斷順序分別是通信中斷、I/O中斷及最低的時(shí)基中斷。 需要注意的是,當(dāng)比如在執(zhí)行I/O中斷時(shí),通信中斷又產(chǎn)生了,此時(shí)不會(huì)馬上去執(zhí)行通信中斷,而是執(zhí)行完正在執(zhí)行的I/O中斷后再執(zhí)行通信中斷。而如果同時(shí)產(chǎn)生的話就是按優(yōu)先順序執(zhí)行了 下表為不同的中斷事件號(hào)對(duì)應(yīng)的中斷事件:
事件 | 說明 |
CR20s CR30s CR40s CR60s |
SR20/ST20 SR30/ST30 SR40/ST40 SR60/ST60 |
---|---|---|---|
0 | I0.0 上升沿 | Y | Y |
1 | I0.0 下降沿 | Y | Y |
2 | I0.1 上升沿 | Y | Y |
3 | I0.1 下降沿 | Y | Y |
4 | I0.2 上升沿 | Y | Y |
5 | I0.2 下降沿 | Y | Y |
6 | I0.3 上升沿 | Y | Y |
7 | I0.3 下降沿 | Y | Y |
8 | 端口 0 接收字符 | Y | Y |
9 | 端口 0 發(fā)送完成 | Y | Y |
10 | 定時(shí)中斷 0(SMB34 控制時(shí)間間隔) | Y | Y |
11 | 定時(shí)中斷 1(SMB35 控制時(shí)間間隔) | Y | Y |
12 | HSC0 CV=PV(當(dāng)前值 = 預(yù)設(shè)值) | Y | Y |
13 | HSC1 CV=PV(當(dāng)前值 = 預(yù)設(shè)值) | Y | Y |
14-15 | 保留 | N | N |
16 | HSC2 CV=PV(當(dāng)前值 = 預(yù)設(shè)值) | Y | Y |
17 | HSC2 方向改變 | Y | Y |
18 | HSC2 外部復(fù)位 | Y | Y |
19 | PTO0 脈沖計(jì)數(shù)完成 | N | Y |
20 | PTO1 脈沖計(jì)數(shù)完成 | N | Y |
21 | 定時(shí)器 T32 CT=PT(當(dāng)前時(shí)間 = 預(yù)設(shè)時(shí)間) | Y | Y |
22 | 定時(shí)器 T96 CT=PT(當(dāng)前時(shí)間 = 預(yù)設(shè)時(shí)間) | Y | Y |
23 | 端口 0 接收消息完成 | Y | Y |
24 | 端口 1 接收消息完成 | N | Y |
25 | 端口 1 接收字符 | N | Y |
26 | 端口 1 發(fā)送完成 | N | Y |
27 | HSC0 方向改變 | Y | Y |
28 | HSC0 外部復(fù)位 | Y | Y |
29 | HSC4 CV=PV | N | Y |
30 | HSC4 方向改變 | N | Y |
31 | HSC4 外部復(fù)位 | N | Y |
32 | HSC3 CV=PV(當(dāng)前值 = 預(yù)設(shè)值) | Y | Y |
33 | HSC5 CV=PV | N | Y |
34 | PTO2 脈沖計(jì)數(shù)完成 | N | Y |
35 | I7.0 上升沿(信號(hào)板) | N | Y |
36 | I7.0 下降沿(信號(hào)板) | N | Y |
37 | I7.1 上升沿(信號(hào)板) | N | Y |
38 | I7.1 下降沿(信號(hào)板) | N | Y |
43 | HSC5 方向改變 | N | Y |
44 | HSC5 外部復(fù)位 | N | Y |
N表示無 Y表示有 紅色部分表示常用中斷事件號(hào) 中斷指令 ATCH:中斷連接,連接某中斷事件所要調(diào)用的程序段。 ENI:全局允許中斷,開放中斷處理功能。 DISI:全局禁止中斷,禁止處理中斷服務(wù)程序,但中斷事件仍然會(huì)排隊(duì)等候。 DTCH:中斷分離,將中斷事件號(hào)與中斷服務(wù)程序之間的關(guān)聯(lián)切斷,并禁止該中斷事件。 RETI:條件中斷返回,根據(jù)邏輯操作的條件,從中斷服務(wù)程序中返回。 CLR_EVNT:清空中斷隊(duì)列。
ATCH表示中斷連接指令,用于中斷事件號(hào)和中斷程序進(jìn)行連接 INT管腳表示連接具體的中斷程序 EVNT表示中斷事件號(hào) ENI為允許中斷指令。CPU在RUN模式下時(shí)是禁止中斷功能的,在使用中斷程序前必須使用允許開中斷指令 中斷分離指令DTCH
中斷分離指令解除中斷事件 EVNT 與所有中斷例程的關(guān)聯(lián),并禁用中斷事件,需要再次激活中斷程序時(shí),則需再次激活允許中斷連接 中斷返回 RETI
中斷有條件返回指令可用于根據(jù)前面的程序邏輯的條件從中斷返回,不再執(zhí)行后面的程序段,在中斷程序中使用 中斷禁止指令 DISI
當(dāng)指令執(zhí)行后禁止所有中斷,即便發(fā)生中斷事件也不會(huì)執(zhí)行中斷程序;需重新開啟允許中斷后才可再次使用中斷功能。中斷禁止和中斷分離有一定的區(qū)別,中斷分離是斷開某個(gè)中斷事件而中斷禁止是斷開整個(gè)中斷程序
清除中斷事件指令 CLR_EVNT 從中斷隊(duì)列中移除所有類型為 EVNT 的中斷事件。使用該指令可將不需要的中斷事件從中斷隊(duì)列中清除。如果該指令用于清除假中斷事件,則應(yīng)在從隊(duì)列中清除事件之前分離事件。否則,在執(zhí)行清除事件指令后,將向隊(duì)列中添加新事件。 中斷程序使用的過程中應(yīng)需要注意以下幾點(diǎn): 1、中斷程序應(yīng)短小而簡(jiǎn)單,執(zhí)行時(shí)對(duì)其他處理越短越好 2、200SMART 最多使用128個(gè)中斷程序,中斷程序不能嵌套 3、中斷程序執(zhí)行后會(huì)自動(dòng)返回,也可在中途由邏輯控制使用中斷返回指令返回 4、中斷程序只需要和中斷事件連接一次(使用沿脈沖或SM0.1 );多個(gè)中斷事件可以連接一個(gè)中斷服務(wù)程序;一個(gè)中斷事件只能連接一個(gè)中斷程序
5、中斷程序不能通過條件調(diào)用,只有由用戶程序把中斷程序名稱和中斷事件聯(lián)系起來,并且需要允許中斷后才能進(jìn)入等待中斷并隨時(shí)執(zhí)行的狀態(tài)
責(zé)任編輯:彭菁
-
plc
+關(guān)注
關(guān)注
5011文章
13297瀏覽量
463340 -
cpu
+關(guān)注
關(guān)注
68文章
10863瀏覽量
211763 -
計(jì)數(shù)器
+關(guān)注
關(guān)注
32文章
2256瀏覽量
94568
原文標(biāo)題:中斷是什么,PLC中斷,單片機(jī)中斷,那中斷能干什么?
文章出處:【微信號(hào):PLC與自控設(shè)備,微信公眾號(hào):PLC與自控設(shè)備】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論