歡迎來(lái)到海藍智能科技有限公司!
三菱PLC編程中,跳轉指令CJ、子程序調用CALL和中斷指令有什么區別?
子程序幫助您對程序進(jìn)行分塊。主程序中使用的指令決定具體子程序的執行狀況。當主程序調用子程序并執行時(shí),子程序執行全部指令直至結束。然后,系統將控制返回至調用子程序網(wǎng)絡(luò )中的主程序。
子程序用于為程序分段和分塊,使其成為較小的、更易管理的塊。在程序中調試和維護時(shí),您可以利用這項優(yōu)勢。通過(guò)使用較小的程序塊,對這些區域和整個(gè)程序簡(jiǎn)單地進(jìn)行調試和排除故障。只在需要時(shí)才調用程序塊,可以更有效地使用PLC,因為所有的程序塊可能無(wú)須執行每次掃描。
最后,如果子程序僅引用參數和局部?jì)却妫瑒t可移動(dòng)子程序。為了移動(dòng)子程序,應避免使用任何全局變量/符號(I、Q、M、SM、AI、AQ、V、T、C、S、AC內存中的絕對地址)。如果子程序無(wú)調用參數(IN、OUT或IN_OUT)或僅在L內存中使用局部變量,您就可以導出子程序并將其導入另一個(gè)項目。
欲在程序中使用子程序,必須執行下列三項任務(wù):
建立子程序
在子程序局部變量表中定義參數(如果有)
從適當的POU(從主程序或另一個(gè)子程序)調用子程序
當子程序被調用時(shí),整個(gè)邏輯堆棧被保存,堆棧頂端被設為一,所有其他堆棧位置被設為零,控制被傳送至調用子程序。當該子程序完成時(shí),堆棧恢復為在調用點(diǎn)時(shí)保留的數值,控制返回調用例行程序。
子程序和調用例行程序共用累加器。由于子程序的使用,對累加器不執行保存或恢復操作。
用參數調用子程序
子程序可能包含交接的參數。參數在子程序的局部變量表中定義。參數必須有一個(gè)符號名(最多為23個(gè)字符)、一個(gè)變量類(lèi)型和一個(gè)數據類(lèi)型。可向子程序交接16個(gè)參數或從子程序交接16個(gè)參數。
局部變量表中的變量類(lèi)型域定義參數是否交接至子程序(IN)、交接至或交接出子程序(IN_OUT)或交接出子程序(OUT)。下表說(shuō)明子程序的參數類(lèi)型。欲增加參數條目,將光標放在您希望增加的類(lèi)型的變量類(lèi)型域上(IN、
IN_OUT或OUT)。單極鼠標右鍵,獲得選項菜單。選擇"插入"選項,然后選擇"下一行"選項。在當前條目的下方會(huì )顯示所選類(lèi)型的另一個(gè)參數條目。
跳轉至標簽(JMP)指令對程序中的指定標簽(n)執行分支操作。跳轉接受時(shí),堆棧頂值始終為邏輯1。標簽(LBL)指令標記跳轉目的地(n)的位置。您可以在主程序、子程序或中斷例行程序中使用"跳轉"指令。"跳轉"及其對應的"標簽"指令必須始終位于相同的代碼段中(主程序、子程序或中斷例行程序)。您不能從主程序跳轉至子程序或中斷例行程序中的標簽,與此相似,您也不能從子程序或中斷例行程序跳轉至該子程序或中斷例行程序之外的標簽。您可以在SCR段中使用"跳轉"指令,但對應的"標簽"指令必須位于相同的SCR段內。
中斷允許(ENI)指令全局性啟用所有附加中斷事件進(jìn)程。中斷禁止(DISI)指令全局性禁止所有中斷事件進(jìn)程。轉換至RUN(運行)模式時(shí),中斷開(kāi)始時(shí)被禁止。一旦進(jìn)入RUN(運行)模式,您可以通過(guò)執行全局中斷允許指令,啟用所有中斷進(jìn)程。執行中斷禁止指令會(huì )禁止處理中斷;但是現用中斷事件將繼續入隊等候