一、指定主程序中的顺序号作为返回的目标

当子程序结束时,如果用P指定一个顺序号,则控制不返回到调用程序段之后的程序段,而返回到由P指定的顺序号的程序段。但是,注意如果主程序运行于存储器以外的方式时,P被忽略。这个方法返回到主程序的时间,比正常返回要长(如图所示)。

子程序M99指令的一些特殊用法_子程序

二、在主程序中使用M99

如果在主程序中执行M99,控制返回到主程序开头。例如把/M99放置在主程序的适当位置,并且在执行主程序时,设定跳过任选程序段开关为断开,则执行M99。当M99执行时,控制返回到主程序开头,然后,从主程序的开头重复执行。

当跳过任选程序段开关断开时,执行被重复。如果跳过任选程序段开关接通时,M99程序段被跳过,控制进到下个程序段,继续执行,如果/M99Pn被指令,控制不返回到主程序开始,而到顺序号N。在这种情况,返回到顺序N需要较长的时间(如图所示)。

子程序M99指令的一些特殊用法_子程序_02

三、用MDI寻找子程序的开头,执行子程序

此时如果执行包含M99的程序段,控制返回到子程序的开头重复执行,如果执行包含M99Pn的程序段,控制返回到在子程序中顺序号为N的程序段重复执行。要结束这个程序,包含/M02或/M30的程序段,必须放置在适当位置,并且任选程序段开关必须设到断开,这个开关的初始设定为接通(如图所示)。

子程序M99指令的一些特殊用法_子程序_03