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