您现在的位置是:首页 > PLC技术 > PLC技术
CPM2A系列PLC的子程序控制指令格式与功能
来源:艾特贸易2017-06-05
简介在编写应用程序时,在不同的地方需要多次重复使用相同的程序段。这样的程序段可以编写成子程序,在满足一定条件时,中断主程序的运行而转去执行子程序,子程序执行完毕后,再
在编写应用程序时,在不同的地方需要多次重复使用相同的程序段。这样的程序段可以编写成子程序,在满足一定条件时,中断主程序的运行而转去执行子程序,子程序执行完毕后,再返回断点处继续执行主程序。 1.子程序调用指令SBS(91)/@SBS(91) (1)格式: 其中,N是子程序号,取值范围为十进制000~049。 (2)功能:当执行条件为ON时,调用编号为N的子程序。在使用非微分指令SBS(91)时,若执行条件一直为ON,则每次扫描都要调用1次子程序N。若采用微分指令@SBS(91),只在执行条件由OFF变为ON时调用1次子程序N。 (3)指令执行后对标志位的影响:当出现下列情况之一时,25503为ON。 ①被调用的子程序不存在。 ②子程序自调用。 ③子程序嵌套调用超过16级。 2.子程序定义指令SBN(92)和子程序返回指令RET(93) (1)格式:
其中,N是子程序号,取值范围为十进制000~049。 (2)功能:SBN(92)和RET(93)指令不需要执行条件,两条指令要成对使用。SBN(92)N用于定义子程序的开始,并为该段子程序赋予编号N;RET(93)是子程序返回指令,用于定义子程序的结束,且不带操作数。 3.注意事项 ①所有子程序必须放在主程序之后和END指令之前。若在子程序之后安排了主程序,则该段主程序不被执行。因为CPU在扫描用户程序时,只要见到SBN则认为主程序结束。 ②主程序调用子程序的次数没有限制。 ③子程序可以嵌套调用,即子程序可以调用其他子程序,但嵌套不能超过16级,且子程序不能调用自己。 【例10-5】 如图10-5所示,当00100为OFF时,执行MOV指令将#0001传送到220通道,使22000为ON,其余各位均为OFF。继续执行KEEP指令,由01100输出秒脉冲。当00100为ON时,立即转去执行005号子程序。在子程序中,22007和25314(常OFF)并联后作为移位寄存器的数据输入端,秒脉冲25502作为移位脉冲,所以220中的ON状态每隔1秒向高位移1位,最低位输入0。若00100一直为ON,则每个扫描周期都调用一次005号子程序。当22007变为ON且下一个移位脉冲到来时,22000又成为ON并重复上述的移位过程(1000000010000000向左移)。然后执行MOV指令,将220通道的内容传送到010通道。 在子程序执行过程中,若00100由ON变为OFF,使SFT复位,返回主程序后,将#0001传送给220并停止子程序的执行。当00100重新为ON后,又恢复前面的左移操作。
图10-5 子程序调用的例子
点击排行
