三菱FX PLC學(xué)習(xí)之中斷服務(wù)
吳翠萍
發(fā)布于2020-09-30 16:18
158
2
標(biāo)簽:PLC基礎(chǔ)入門,三菱 FX PLC
【點(diǎn)擊領(lǐng)取】三菱案例 | 西門子案例 | 電工手冊 | 工具箱 軟件
【點(diǎn)擊獲取】三菱PLC例程117個(gè)|西門子PLC例程777個(gè)
【點(diǎn)擊下載】2020新電工仿真軟件
前面我先是分享了PLC程序流程轉(zhuǎn)移中的條件跳轉(zhuǎn)CJ,然后緊接著進(jìn)攻了子程序調(diào)用CALL和循環(huán)FOR,這次,我要向“終極BOSS”中斷服務(wù)發(fā)出挑戰(zhàn)了!
要學(xué)習(xí)中斷服務(wù),我們就得知道什么是中斷。那就讓我們看看什么是中斷吧!
一、中斷是什么
所謂中斷,是指PLC按順序執(zhí)行程序掃描的過程中,當(dāng)有需要立即反應(yīng)的請求發(fā)出時(shí),立即中斷當(dāng)前執(zhí)行的掃描工作,優(yōu)先地去執(zhí)行請求所指定的服務(wù)工作。服務(wù)工作完成后,再回到剛才被中斷的地方繼續(xù)往下執(zhí)行程序掃描工作。
換句話說,中斷服務(wù)就像是個(gè)磨人的小妖精,時(shí)不時(shí)地打斷PLC當(dāng)前的工作,PLC又不能不理它。這小妖精一過來,PLC就得馬上招待它,服務(wù)到它滿意走了后,PLC才能繼續(xù)剛才被打斷的工作。
1、中斷源
顯然,中斷也是一種程序流程轉(zhuǎn)移,但這種轉(zhuǎn)移大都是隨機(jī)發(fā)生的,例如故障報(bào)警、外部設(shè)備動作等。那么,PLC怎么去發(fā)現(xiàn)這些小妖精,啊呸,發(fā)現(xiàn)這些中斷請求的呢?中斷請求又是誰發(fā)出的呢?其實(shí),發(fā)出中斷請求的設(shè)備稱為中斷源,中斷源可以是外部各種開關(guān)信號,也可以是PLC內(nèi)部定時(shí)器、計(jì)數(shù)器等。

PLC執(zhí)行哪個(gè)中斷源的中斷服務(wù),是靠不同標(biāo)號的中斷指針區(qū)分的,在下文講中斷指令的時(shí)候我們再繼續(xù)探討這個(gè)內(nèi)容。
2、斷點(diǎn)與返回
而PLC在接收到中斷請求后,就會在程序中產(chǎn)生一個(gè)斷點(diǎn),當(dāng)中斷服務(wù)執(zhí)行完畢后,PLC會回到斷點(diǎn)處,也就是所謂的中斷返回,繼續(xù)在斷點(diǎn)處往下執(zhí)行被打斷的程序。
中斷服務(wù)程序的斷點(diǎn)與中斷返回,顯然類似于子程序服務(wù)程序的斷點(diǎn)與子程序返回,而且中斷服務(wù)程序和子程序都是處在副程序區(qū),都是用指針作為入口地址標(biāo)號。
但子程序所用的指針是分支指針P,而中斷服務(wù)程序所用指針為中斷指針I(yè)。
3、中斷執(zhí)行與優(yōu)先
PLC只能在中斷允許的情況下才能進(jìn)行中斷處理,而且一旦接到中斷請求必須立即處理中斷服務(wù)程序,不管PLC當(dāng)前在執(zhí)行主程序還是執(zhí)行子程序。
另外,PLC在任何時(shí)刻都只能執(zhí)行一個(gè)中斷服務(wù)程序,這時(shí)候就會有兩種情況。
(1)PLC尚未在執(zhí)行中斷服務(wù)程序,當(dāng)有多個(gè)中斷請求同時(shí)發(fā)生:PLC按中斷指針編號大小排列優(yōu)先級,編號越小的優(yōu)先級越高,就會先處理,例如I000優(yōu)先于I100,I100優(yōu)先于I500。
(2)PLC正在執(zhí)行中斷服務(wù)程序時(shí)有其他新的中斷請求發(fā)生:此時(shí)PLC必須繼續(xù)執(zhí)行完當(dāng)前的中斷服務(wù)程序,才能去執(zhí)行其他中斷服務(wù)程序,也就是按時(shí)間優(yōu)先原則進(jìn)行處理。畢竟PLC霸總精力有限,小妖精1號先來,那PLC就先服務(wù)1號,后面來的就乖乖排好隊(duì),總不會漏掉就是了。
4、中斷服務(wù)程序的編寫
中斷服務(wù)程序和子程序一樣,都是寫在副程序區(qū),但子程序的調(diào)用要用到CALL指令,而且只有當(dāng)驅(qū)動條件成立時(shí),PLC才會去到CALL指令指定的子程序入口去執(zhí)行子程序,執(zhí)行到子程序返回指令SRET后返回主程序。
而中斷服務(wù)程序的執(zhí)行靠的不是軟元件,而是由硬件電路發(fā)出中斷信號給PLC,PLC自動辨別該中斷請求,然后找到相應(yīng)的入口進(jìn)而執(zhí)行對應(yīng)的中斷服務(wù)程序,直到執(zhí)行到中斷返回指令I(lǐng)RET后返回到斷點(diǎn)(主程序或子程序中)處繼續(xù)往下執(zhí)行。
可想而知,在子程序眼前,中斷服務(wù)程序就是個(gè)爸爸。要注意的一點(diǎn)就是,在設(shè)計(jì)中斷服務(wù)程序時(shí)應(yīng)遵循“越短越好”的原則,因?yàn)橹袛喾?wù)程序執(zhí)行的時(shí)間過長,會影響主程序的執(zhí)行控制。
知己知彼,方能百戰(zhàn)百勝,我們知道了什么是中斷后,接下來就要對它發(fā)起進(jìn)攻了!
二、中斷指令
三菱FX PLC的中斷指令有EI、DI、IRET三個(gè)。
1、中斷允許指令EI
執(zhí)行中斷允許指令后,PLC在執(zhí)行接下來的程序的過程中,收到中斷請求都會做出應(yīng)答,去執(zhí)行相應(yīng)的中斷服務(wù)程序。EI指令就像是一扇打開的門,有了這扇打開的門,PLC才能招待中斷這個(gè)小妖精,就像是哆啦A夢的任意門似的,所以EI又稱開中斷指令。
EI指令雖然能開中斷,但它不能關(guān),哆啦.PLC.夢掏出來的EI門本就是開著的,那如果我們不想PLC招待中斷這個(gè)小妖精又該怎么辦呢?我們繼續(xù)往下看。
2、中斷禁止指令DI
執(zhí)行EI指令后,如果不想某些程序段被中斷,就可以在該程序段前編寫中斷禁止指令DI。執(zhí)行DI指令后,PLC在執(zhí)行接下來的程序的過程中,收到任何中斷請求都不會有響應(yīng)。 DI指令就像是一扇鎖閉的門,有了這扇鎖閉的門,PLC才能經(jīng)得住中斷這個(gè)小妖精的誘惑,不去理它,所以,DI指令又稱關(guān)中斷指令。
知道了中斷允許指令和中斷禁止指令后,我們繼續(xù)看中斷返回指令。
3、中斷返回指令I(lǐng)RET
PLC在執(zhí)行中斷服務(wù)程序的過程中,當(dāng)執(zhí)行到中斷返回指令I(lǐng)RET時(shí),會無條件返回到主程序或子程序的斷點(diǎn)處繼續(xù)往下執(zhí)行。它的應(yīng)用與子程序返回指令SRET的應(yīng)用大同小異,只不過一個(gè)用于中斷,一個(gè)用于子程序罷了。
上文說到,PLC執(zhí)行哪個(gè)中斷源的中斷服務(wù),是靠不同標(biāo)號的中斷指針區(qū)分的,現(xiàn)在我們就來探討一下這些不同標(biāo)號的中斷指針。
三、中斷指針I(yè)與其中斷源
由上文可知,按中斷指針的標(biāo)號,我們可以把中斷源分為3類。
1、外部輸入中斷
外部輸入中斷的請求信號其實(shí)就是輸入端口X0~X5的開關(guān)量信號,當(dāng)X0~X5被用于中斷時(shí),一旦接通,就會向PLC發(fā)出中斷請求。外部輸入中斷常用于外部緊急事件的處理,如報(bào)警。
如上圖所示,6個(gè)輸入端口X0~X5對應(yīng)12個(gè)中斷指針,并配有相應(yīng)的禁止中斷繼電器。這些禁止中斷繼電器顯然和我們上文所提的關(guān)中斷指令DI有所不同。DI指令一旦被執(zhí)行,之后的程序執(zhí)行過程中,所有中斷請求都不被響應(yīng),但禁止中斷繼電器僅僅是對某些中斷請求而言。
外部中斷指針的標(biāo)號顯然與其輸入端口編號有對應(yīng)關(guān)系,并有上升沿和下降沿之分,但對于同一個(gè)端口,上升沿中斷指針和下降沿中斷指針不能同時(shí)編寫。
2、內(nèi)部定時(shí)器中斷
內(nèi)部定時(shí)器中斷是按一定時(shí)間自動進(jìn)行的中斷,不受掃描周期的影響。它適用于掃描時(shí)間較長但又需要及時(shí)處理數(shù)據(jù)的場合,例如模擬量的定時(shí)采樣。
定時(shí)中斷指針類似于外部輸入中斷指針,其標(biāo)號也有其對應(yīng)關(guān)系,又由于定時(shí)中斷指針只有3個(gè),且不能重復(fù)使用,顯然,一個(gè)程序中多只能設(shè)置3個(gè)定時(shí)器中斷。
3、高速計(jì)數(shù)器中斷
高速計(jì)數(shù)器中斷理解起來比較難,所以我也沒有理解多少,畢竟我也只是一個(gè)PLC小白。特別是高速計(jì)數(shù)器,我根本就不認(rèn)識它,哇的一聲哭出來。
高速計(jì)數(shù)器中斷必須與高速計(jì)數(shù)器指令DHSCS一起使用,當(dāng)高速計(jì)數(shù)器的當(dāng)前值與設(shè)定值相等時(shí),執(zhí)行中斷指針?biāo)傅闹袛喾?wù)程序。高速計(jì)數(shù)器中斷可以用于高速的定位控制等。
其所用中斷指針如下圖所示,對應(yīng)禁止中斷繼電器只有一個(gè)M8059,當(dāng)M8059接通時(shí),所有高速計(jì)數(shù)器中斷都被禁止。
類似的,由于高速計(jì)數(shù)器中斷指針有6個(gè),且不能重復(fù)使用,顯然,一個(gè)程序中多只能設(shè)置6個(gè)高速計(jì)數(shù)器中斷。
顯然,PLC中斷的知識,我目前也只算是略懂皮毛,不過,作為一名合格的小白,學(xué)到目前為止,我至少是能看懂一些相關(guān)的程序的。哪怕有些指令還沒學(xué)過,但掐指一算,還是能推理出它的大概意思。我相信,隨著不斷地學(xué)習(xí),我會慢慢理解之前尚未理解的知識,當(dāng)然,你也一樣,如果你也在學(xué)習(xí)PLC的話。
那么,這次的學(xué)習(xí)分享就到這里啦,共勉!
注:本文章內(nèi)容都是基于三菱FX PLC所寫
選自《三菱FX系列PLC功能指令詳解》第二章第10課時(shí)
(技成培訓(xùn)原創(chuàng),作者:楊思慧,未經(jīng)授權(quán)不得轉(zhuǎn)載,違者必究?。?/strong>

技成培訓(xùn)
微信公眾號:jcpeixun
|

技成電工課堂
微信公眾號:jcdgkt
|

技成PLC課堂
微信公眾號:jc-plc
|