子程序將大量的控製任務分離成許多小塊的控製任務,並可以重複執行一組指令,當主程序調用一個(ge) 子程序時,控製就轉到子程序,執行子程序中的指令。當子程序執行完後,再返回主程序繼續執行。有些子程序可以通過中斷或MCR0(99)指令啟動。
中斷同子程序調用類似,在主程序運行的流程中,中斷引起主程序運行停頓,執行中斷子程序,子程序執行完畢後,再返回中斷點繼續執行主程序,中斷可以由外部中斷源(如中斷輸入單元的輸入信號)引起,也可以由內(nei) 部的中斷源(定時中斷)引起。
INT(89)用於(yu) 控製從(cong) 中斷輸入單元接收到的中斷信號和控製中斷的安排,INT(89)提供中斷屏蔽(記憶中斷但不響應)和中斷清除功能。
宏指令是一個(ge) 獨立的子程序,該子程序可以改變操作數,從(cong) 而相當於(yu) 多個(ge) 結構相同但數據不同的子程序。
子程序調用指令梯形圖符號如下所示。
操作數數據區域N:子程序編號
00~255
子程序編號00~15與(yu) 中斷一起使用,子程序編號99用於(yu) 定時中斷。
說明:在主程序中將SBS(91)指令放在要執行的子程序處,當主程序執行到此處,子程序就被執行。SBS( 91)中的子程序編號是要調用的子程序編號。當SBS(91)指令的執行條件為(wei) “ON”時,plc執行和SBS(91)指令中編號N相同的SBN(92)指令和RET(93)之間的子程序;當執行到RET(93)指令時,程序從(cong) 子程序返回主程序。
SBS(91)在程序中可被多次調用,而且SBS( 91)也可以用作子程序中形成子程序嵌套,嵌套的級數沒有限製。
使用中注意子程序的執行時間不能超過10ms,否則會(hui) 出現錯誤。