在200SMART係列PLC中共有三大類中斷事件,分別是:I/O中斷:I/O 中斷包括上升/下降沿中斷、高速計數器中斷和脈衝串輸出中斷。CPU 可以為輸入通道 I0.0、I0.1、I0.2 和 I0.3(以及帶有可選數字量輸入信號板的標準 CPU 的輸入通道 I7.0 和 I7.1)生成輸入上升和/或下降沿中斷。可對這些輸入點中的每一個捕捉上升沿和下降沿事件。這些上升沿/下降沿事件可用於指示在事件發生時必須立即處理的狀況。
高速計數器中斷可以對下列情況做出響應:當前值達到預設值,與軸旋轉方向反向相對應的計數方向發生改變或計數器外部複位。這些高速計數器事件均可觸發實時執行的操作,以響應在可編程邏輯控製器掃描速度下無法控製的高速事件。 脈衝串輸出中斷在指定的脈衝數完成輸出時立即進行響應。脈衝串輸出的典型應用為步進電機控製。
通信中斷:CPU 的串行通信端口可通過程序進行控製。通信端口的這種操作模式稱為自由端口模式。在自由端口模式下,程序定義波特率、每個字符的位數、奇偶校驗和協議。接收和發送中斷可簡化程序控製的通信
時基中斷:基於(yu) 時間的中斷包括定時中斷和定時器 T32/T96 中斷。可使用定時中斷指定循環執行的操作。循環時間位於(yu) 1 ms 到 255 ms 之間,按增量為(wei) 1 ms 進行設置。必須在定時中斷 0 的 SMB34 和定時中斷 1 的 SMB35 中寫(xie) 入循環時間。
每次定時器到時時,定時中斷事件都會將控製權傳遞給相應的中斷程序。通常,可以使用定時中斷來控製模擬量輸入的采樣或定期執行 PID 回路。將中斷程序連接到定時中斷事件時,啟用定時中斷並且開始定時。連接期間,係統捕捉周期時間值,因此 SMB34 和 SMB35 的後續變化不會影響周期時間。要更改周期時間,必須修改周期時間值,然後將中斷例程序重新連接到定時中斷事件。重新連接時,定時中斷功能會清除先前連接的所有累計時間,並開始用新值計時。
定時中斷啟用後,將連續運行,每個連續時間間隔後,會執行連接的中斷程序。如果退出 RUN 模式或分離定時中斷,定時中斷將禁用。如果執行了全局 DISI(中斷禁止)指令,定時中斷會繼續出現,但是尚未處理所連接的中斷程序。每次定時中斷出現均排隊等候,直至中斷啟用或隊列已滿。 使用定時器 T32/T96 中斷可及時響應指定時間間隔的結束。僅 1 ms 分辨率的接通延時 (TON) 和斷開延時 (TOF) 定時器 T32 和 T96 支持此類中斷。否則 T32 和 T96 正常工作。啟用中斷後,如果在 CPU 中執行正常的 1 ms 定時器更新期間,激活定時器的當前值等於預設時間值,將執行連接的中斷程序。可通過將中斷程序連接到 T32(事件 21)和 T96(事件 22)中斷事件來啟用這些中斷。
當多個中斷同時發生請求時,CPU對中斷響應有優先順序,從高到低的中斷順序分別是通信中斷、I/O中斷及最低的時基中斷。 需要注意的是,當比如在執行I/O中斷時,通信中斷又產生了,此時不會馬上去執行通信中斷,而是執行完正在執行的I/O中斷後再執行通信中斷。而如果同時產生的話就是按優先順序執行了
下表為不同的中斷事件號對應的中斷事件:
事件 |
說明 |
CR20s |
SR20/ST20 |
---|---|---|---|
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 發送完成 |
Y |
Y |
10 |
定時中斷 0(SMB34 控製時間間隔) |
Y |
Y |
11 |
定時中斷 1(SMB35 控製時間間隔) |
Y |
Y |
12 |
HSC0 CV=PV(當前值 = 預設值) |
Y |
Y |
13 |
HSC1 CV=PV(當前值 = 預設值) |
Y |
Y |
14-15 |
保留 |
N |
N |
16 |
HSC2 CV=PV(當前值 = 預設值) |
Y |
Y |
17 |
HSC2 方向改變 |
Y |
Y |
18 |
HSC2 外部複位 |
Y |
Y |
19 |
PTO0 脈衝(chong) 計數完成 |
N |
Y |
20 |
PTO1 脈衝(chong) 計數完成 |
N |
Y |
21 |
定時器 T32 CT=PT(當前時間 = 預設時間) |
Y |
Y |
22 |
定時器 T96 CT=PT(當前時間 = 預設時間) |
Y |
Y |
23 |
端口 0 接收消息完成 |
Y |
Y |
24 |
端口 1 接收消息完成 |
N |
Y |
25 |
端口 1 接收字符 |
N |
Y |
26 |
端口 1 發送完成 |
N |
Y |
27 |
HSC0 方向改變 |
Y |
Y |
28 |
HSC0 外部複位 |
Y |
Y |
29 |
HSC4 CV=PV |
N |
Y |
30 |
HSC4 方向改變 |
N |
Y |
31 |
HSC4 外部複位 |
N |
Y |
32 |
HSC3 CV=PV(當前值 = 預設值) |
Y |
Y |
33 |
HSC5 CV=PV |
N |
Y |
34 |
PTO2 脈衝(chong) 計數完成 |
N |
Y |
35 |
I7.0 上升沿(信號板) |
N |
Y |
36 |
I7.0 下降沿(信號板) |
N |
Y |
37 |
I7.1 上升沿(信號板) |
N |
Y |
38 |
I7.1 下降沿(信號板) |
N |
Y |
43 |
HSC5 方向改變 |
N |
Y |
44 |
HSC5 外部複位 |
N |
Y |
S7-200SMART plc,西門子plc的中斷指令
ATCH:中斷連接,連接某中斷事件所要調用的程序段。ENI:全局允許中斷,開放中斷處理功能。DISI:全局禁止中斷,禁止處理中斷服務程序,但中斷事件仍然會排隊等候。DTCH:中斷分離,將中斷事件號與中斷服務程序之間的關聯切斷,並禁止該中斷事件。RETI:條件中斷返回,根據邏輯操作的條件,從中斷服務程序中返回。CLR_EVNT:清空中斷隊列。 ATCH表示中斷連接指令,用於中斷事件號和中斷程序進行連接
INT管腳表示連接具體的中斷程序EVNT表示中斷事件號ENI為允許中斷指令。CPU在RUN模式下時是禁止中斷功能的,在使用中斷程序前必須使用允許開中斷指令
中斷分離指令DTCH 中斷分離指令解除中斷事件 EVNT 與所有中斷例程的關聯,並禁用中斷事件,需要再次激活中斷程序時,則需再次激活允許中斷連接
中斷返回 RETI 中斷有條件返回指令可用於根據前麵的程序邏輯的條件從中斷返回,不再執行後麵的程序段,在中斷程序中使用
中斷禁止指令 DISI
當指令執行後禁止所有中斷,即便發生中斷事件也不會(hui) 執行中斷程序;需重新開啟允許中斷後才可再次使用中斷功能。中斷禁止和中斷分離有一定的區別,中斷分離是斷開某個(ge) 中斷事件而中斷禁止是斷開整個(ge) 中斷程序
1、中斷程序應短小而簡單,執行時對其他處理越短越好2、200SMART 最多使用128個中斷程序,中斷程序不能嵌套3、中斷程序執行後會自動返回,也可在中途由邏輯控製使用中斷返回指令返回4、中斷程序隻需要和中斷事件連接一次(使用沿脈衝或SM0.1 );多個中斷事件可以連接一個中斷服務程序;一個中斷事件隻能連接一個中斷程序 5、中斷程序不能通過條件調用,隻有由用戶程序把中斷程序名稱和中斷事件聯係起來,並且需要允許中斷後才能進入等待中斷並隨時執行的狀態.
神級匯總,西門子PLC中斷指令及例程 ATCH和ENI
www.fpxing.com/Article/tixingtu/10187.html
PLS指令,子程序和中斷程序用法
www.fpxing.com/Article/tixingtu/10134.html
西門子S7-200smart通過瞬時流量來計算累計流量的一種方法 中斷IN_T0
www.fpxing.com/Article/tixingtu/10154.html