1.中斷與中斷程序
有很多PLC內(nèi)部或外部的事件是隨機(jī)發(fā)生的,例如外部開關(guān)量輸入信號(hào)的上升沿或下降沿、通信事件、高速計(jì)數(shù)器的當(dāng)前值等于設(shè)定值和定時(shí)中斷等,事先并不知道這些事件何時(shí)發(fā)生,但是它們出現(xiàn)時(shí)需要盡快地處理它們,PLC用中斷來快速處理上述事件。
例如電力系統(tǒng)出現(xiàn)故障時(shí),可能引發(fā)多個(gè)斷路器相繼跳閘。為了分析故障的起因,需要及時(shí)準(zhǔn)確記錄事故發(fā)生的時(shí)間??梢杂?a target="_blank">硬件中斷來完成這一任務(wù)。
由于PLC的掃描工作方式,普通定時(shí)器的定時(shí)誤差很大,定時(shí)時(shí)間到了也不能馬上去處理要作的事情。可以用定時(shí)中斷來實(shí)現(xiàn)高精度定時(shí),在定時(shí)時(shí)間到時(shí)CPU自動(dòng)調(diào)用定時(shí)中斷程序。
在出現(xiàn)一個(gè)中斷事件時(shí),當(dāng)前正在執(zhí)行的程序在當(dāng)前指令執(zhí)行完后被停止執(zhí)行(被中斷),操作系統(tǒng)將會(huì)調(diào)用一個(gè)用戶編寫的分配給該事件的中斷程序(S7-300/400稱為組織塊)。中斷程序被執(zhí)行完后,被暫停執(zhí)行的程序?qū)谋恢袛嗟牡胤介_始繼續(xù)執(zhí)行。這一過程不受PLC掃描工作方式的影響,因此使PLC能迅速響應(yīng)中斷事件。換句話說,中斷程序不是在每次掃描循環(huán)中處理,而是在需要時(shí)才被及時(shí)地處理。
2.編寫中斷程序應(yīng)注意的問題
因?yàn)椴荒茴A(yù)知系統(tǒng)何時(shí)調(diào)用中斷程序,為了避免在中斷程序中改寫其他程序使用的存儲(chǔ)器,在中斷程序中應(yīng)盡量使用局部變量。
應(yīng)優(yōu)化中斷程序,使中斷程序盡量短小,以減少中斷程序的執(zhí)行時(shí)間,減少對(duì)其他處理的延遲,否則可能引起主程序控制的設(shè)備操作異常。設(shè)計(jì)中斷程序時(shí)應(yīng)遵循“越短越好”的格言。為了減少中斷程序的執(zhí)行時(shí)間,可以在中斷程序設(shè)置一個(gè)軟件標(biāo)志,在主程序中根據(jù)標(biāo)志處理對(duì)于快速性要求不是很高、執(zhí)行時(shí)間很長的任務(wù)。
3.中斷程序?yàn)槭裁礇]有輸入、輸出變量?
中斷程序不像子程序那樣,被用戶程序調(diào)用,而是在中斷事件發(fā)生時(shí),由操作系統(tǒng)調(diào)用,因此S7系列PLC的中斷程序不需要輸入參數(shù)和輸出參數(shù),它的局部變量表中只有臨時(shí)變量。S7-300/400的中斷程序稱為組織塊,它有自動(dòng)生成的20字節(jié)的臨時(shí)局部變量,包含了與觸發(fā)組織塊的事件有關(guān)的信息,它們由操作系統(tǒng)提供。
4.中斷的優(yōu)先級(jí)
中斷事件有不同的優(yōu)先級(jí),高優(yōu)先級(jí)的中斷程序可以中斷低優(yōu)先級(jí)的中斷程序。如果在執(zhí)行中斷程序時(shí),又檢測到一個(gè)中斷請(qǐng)求,CPU將比較兩個(gè)中斷源的中斷優(yōu)先級(jí)。如果優(yōu)先級(jí)相同,按照產(chǎn)生中斷請(qǐng)求的先后次序進(jìn)行處理。如果后者的優(yōu)先級(jí)比正在執(zhí)行的中斷源的優(yōu)先級(jí)高,將中止當(dāng)前正在處理的中斷程序,改為調(diào)用較高優(yōu)先級(jí)的中斷源的中斷程序,這種處理方式稱為中斷程序的嵌套調(diào)用。
5.中斷的控制
不是所有的用戶都需要PLC的中斷功能,用戶一般也不需要處理所有的中斷事件,因此允許用戶用指令來控制是否需要中斷和需要哪些中斷。
S7-200的中斷允許指令EI允許處理中斷事件。至于需要處理哪些中斷事件,需要單獨(dú)設(shè)置。禁止中斷指令DI禁止處理所有的中斷事件。
S7-200進(jìn)入RUN模式時(shí)自動(dòng)禁止中斷,在RUN模式執(zhí)行中斷允許指令后,各中斷事件發(fā)生時(shí)是否會(huì)執(zhí)行中斷程序,取決于是否執(zhí)行了該中斷事件的中斷連接指令A(yù)TCH。
中斷分離指令DTCH用來斷開某個(gè)中斷事件與中斷程序之間的聯(lián)系,從而禁止單個(gè)中斷事件。
審核編輯:湯梓紅
-
plc
+關(guān)注
關(guān)注
5011文章
13297瀏覽量
463305 -
西門子
+關(guān)注
關(guān)注
94文章
3039瀏覽量
115866 -
S7-200
+關(guān)注
關(guān)注
13文章
408瀏覽量
50432 -
中斷程序
+關(guān)注
關(guān)注
0文章
34瀏覽量
8695
原文標(biāo)題:西門子S7-200 PLC中斷程序的應(yīng)用講解
文章出處:【微信號(hào):中泰PLC自動(dòng)化教學(xué),微信公眾號(hào):中泰PLC自動(dòng)化教學(xué)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論