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