資源描述:
《功能指令-程序流程指令》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、三菱FX系列PLC功能指令-程序流程指令三菱FX系列PLC功能指令-程序流程指令程序流程00CJ條件跳轉(zhuǎn)01CALL子程序調(diào)用02SRET子程序返回03IRET中斷返回04EI開中斷05DI關(guān)中斷06FEND主程序結(jié)束07WDT監(jiān)視定時器刷新08FOR循環(huán)的起點與次數(shù)09NEXT循環(huán)的終點條件跳轉(zhuǎn)指令CJ(P)條件跳轉(zhuǎn)指令CJ(P)的編號為FNC00,操作數(shù)為指針標(biāo)號P0~P127,其中P63為END所在步序,不需標(biāo)記。指針標(biāo)號允許用變址寄存器修改。CJ和CJP都占3個程序步,指針標(biāo)號占1步。如圖1所示,當(dāng)X20接通時,則由CJP
2、9指令跳到標(biāo)號為P9的指令處開始執(zhí)行,跳過了程序的一部分,減少了掃描周期。如果X20斷開,跳轉(zhuǎn)不會執(zhí)行,則程序按原順序執(zhí)行。圖1跳轉(zhuǎn)指令的使用使用跳轉(zhuǎn)指令時應(yīng)注意:1)CJP指令表示為脈沖執(zhí)行方式;2)在一個程序中一個標(biāo)號只能出現(xiàn)一次,否則將出錯;3)在跳轉(zhuǎn)執(zhí)行期間,即使被跳過程序的驅(qū)動條件改變,但其線圈(或結(jié)果)仍保持跳轉(zhuǎn)前的狀態(tài),因為跳轉(zhuǎn)期間根本沒有執(zhí)行這段程序。4)如果在跳轉(zhuǎn)開始時定時器和計數(shù)器已在工作,則在跳轉(zhuǎn)執(zhí)行期間它們將停止工作,到跳轉(zhuǎn)條件不滿足后又繼續(xù)工作。但對于正在工作的定時器T192~T199和高速計數(shù)器C235
3、~C255不管有無跳轉(zhuǎn)仍連續(xù)工作。5)若積算定時器和計數(shù)器的復(fù)位(RST)指令在跳轉(zhuǎn)區(qū)外,即使它們的線圈被跳轉(zhuǎn),但對它們的復(fù)位仍然有效。子程序調(diào)用指令CALL子程序調(diào)用指令CAL,子程序調(diào)用指令CAL的編號為FNC01。操作數(shù)為P0~P127,此指令占用3個程序步。子程序返回指令SRET,子程序返回指令SRET的編號為FNC02。無操作數(shù),占用1個程序步。如圖2所示,如果X0接通,則轉(zhuǎn)到標(biāo)號P10處去執(zhí)行子程序。當(dāng)執(zhí)行SRET指令時,返回到CALL指令的下一步執(zhí)行。圖2子程序調(diào)用與返回指令的使用使用子程序調(diào)用與返回指令時應(yīng)注意:1
4、)轉(zhuǎn)移標(biāo)號不能重復(fù),也不可與跳轉(zhuǎn)指令的標(biāo)號重復(fù);2)子程序可以嵌套調(diào)用,最多可5級嵌套。中斷返回指令I(lǐng)RET中斷允許指令EI中斷禁止DI與中斷有關(guān)的三條功能指令是:中斷返回指令I(lǐng)RET,編號為FNCO3;中斷允許指令EI,編號為FNCO4;中斷禁止DI,編號為FNC05。它們均無操作數(shù),占用1個程序步。PLC通常處于禁止中斷狀態(tài),由EI和DI指令組成允許中斷范圍。在執(zhí)行到該區(qū)間,如有中斷源產(chǎn)生中斷,CPU將暫停主程序執(zhí)行轉(zhuǎn)而執(zhí)行中斷服務(wù)程序。當(dāng)遇到IRET時返回斷點繼續(xù)執(zhí)行主程序。如圖3所示,允許中斷范圍中若中斷源X0有一個下降沿
5、,則轉(zhuǎn)入I000為標(biāo)號的中斷服務(wù)程序,但X0可否引起中斷還受M8050控制,當(dāng)X20有效時則M8050控制X0無法中斷。圖3中斷指令的使用使用中斷相關(guān)指令時應(yīng)注意:1)中斷的優(yōu)先級排隊如下,如果多個中斷依次發(fā)生,則以發(fā)生先后為序,即發(fā)生越早級別越高,如果多個中斷源同時發(fā)出信號,則中斷指針號越小優(yōu)先級越高;2)當(dāng)M8050~M8058為ON時,禁止執(zhí)行相應(yīng)I0□□~I(xiàn)8□□的中斷,M8059為ON時則禁止所有計數(shù)器中斷;3)無需中斷禁止時,可只用EI指令,不必用DI指令;4)執(zhí)行一個中斷服務(wù)程序時,如果在中斷服務(wù)程序中有EI和DI,
6、可實現(xiàn)二級中斷嵌套,否則禁止其它中斷。主程序結(jié)束指令FEND主程序結(jié)束指令FEND的編號為FNC06,無操作數(shù),占用1個程序步。FEND表示主程序結(jié)束,當(dāng)執(zhí)行到FEND時,PLC進(jìn)行輸入/輸出處理,監(jiān)視定時器刷新,完成后返回啟始步。使用FEND指令時應(yīng)注意:1)子程序和中斷服務(wù)程序應(yīng)放在FEND之后;2)子程序和中斷服務(wù)程序必須寫在FEND和END之間,否則出錯。監(jiān)視定時器指令WDT(P)監(jiān)視定時器指令WDT(P)編號為FNC07,沒有操作數(shù),占有1個程序步。WDT指令的功能是對PLC的監(jiān)視定時器進(jìn)行刷新。FX系列PLC的監(jiān)視定時
7、器缺省值為200ms(可用D8000來設(shè)定),正常情況下PLC掃描周期小于此定時時間。如果由于有外界干擾或程序本身的原因使掃描周期大于監(jiān)視定時器的設(shè)定值,使PLC的CPU出錯燈亮并停止工作,可通過在適當(dāng)位置加WDT指令復(fù)位監(jiān)視定時器,以使程序能繼續(xù)執(zhí)行到END。如圖4所示,利用一個WDT指令將一個240ms的程序一分為二,使它們都小于200ms,則不再會出現(xiàn)報警停機。圖4監(jiān)控定時器指令的使用使用WDT指令時應(yīng)注意:1)如果在后續(xù)的FOR-NEXT循環(huán)中,執(zhí)行時間可能超過監(jiān)控定時器的定時時間,可將WDT插入循環(huán)程序中。2)當(dāng)與條件跳
8、轉(zhuǎn)指令CJ對應(yīng)的指針標(biāo)號在CJ指令之前時(即程序往回跳)就有可能連續(xù)反復(fù)跳步使它們之間的程序反復(fù)執(zhí)行,使執(zhí)行時間超過監(jiān)控時間,可在CJ指令與對應(yīng)標(biāo)號之間插入WDT指令。循環(huán)區(qū)起點指令FOR循環(huán)結(jié)束指令NEXT循環(huán)指令共有兩條:循環(huán)區(qū)起點指令FOR,