PLC子程序和中断控制类应用指令
发布时间:2016-11-08 10:38 来源:欧姆龙 阅读:
子程序和中断控制类应用指令
1.SBS、SBN和RET指令
格式:SBS(91) N @SBS(91) NSBN(92) NRET(93)其中,操作数N为子程序号,取值范围为十进制数000~049。功能: SBS为子程序调用指令。当执行子程序调用操作时,调用由N指定的子程序段。在子程序执行结束后,程序返回到调用处,从SBS的下一条指令开始继续执行。所有被调用的子程序需经过定义。SBN为子程序定义指令,用在每段子程序定义的开始,并为该段子程序赋予编号N。RET为子程序返回指令,用在每段子程序定义的结束。SBN和RET指令应该两两对应使用。SBN和RET指令不需要任何执行条件,即在梯形图上它们可以和左端母线直接相连。说明: 在程序中子程序可以嵌套使用,但嵌套的级数不能超过六个。子程序定义的位置应该在主程序之后,END指令之前。
例5-10:一个子程序应用的例子,A、B、C段程序为主程序,D、E段程序为子程序。程序段中调用子程序的条件是00000、00001为ON。子程序内容执行结束后,系统会自动返回到主程序。试分析程序流程。
例5-11:一个子程序应用的例子,00100是调用子程序指令的执行条件。主程序的内容包括传送数据、用KEEp指令产生秒脉冲、调用子程序005。试分析程序流程。例5-12:一个子程序嵌套的例子,DM0000已写入0010。每当CNT000 ON时调用子程序010。执行子程序010,将DM0000的内容减1并与#0000比较,当DM0000的内容是0000时,再调用子程序011。执行子程序011,使21001 ON,返回主程序使01001 ON,并使CNT000复位。试分析程序流程。
2.MCRO指令
格式:MCRO(99) @MCRO(99)N NI1 I1O1 O1其中,操作数N为子程序号,取值范围为十进制数000~049;操作数I1为第一个输入字,操作数O1为第一个输出字,它们分别可以是IR、SR、hR、AR、LR、DM、*DM。功能: 宏指令。用来定义那些结构相同但操作数不同的子程序。系统将8个通道分配给宏使用,其中SR232~SR235用于输入字,SR236~SR239用于输出字。用户可以用上述通道定义子程序。当宏条件满足时,系统就会用对应的输入/输出代替定义中的输入/输出,从而简化了编程的过程。在大量使用同一结构但不同数据的程序段中,使用宏显得十分有效。
例5-13:宏指令使用的例子。其中,使用宏的程序段的梯形,不使用宏的程序段的梯形。两程序段的功能完全相同。