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