您现在的位置是:首页 > PLC技术 > PLC技术

CPM2A系列PLC的子程序控制指令格式与功能

来源:艾特贸易2017-06-05

简介在编写应用程序时,在不同的地方需要多次重复使用相同的程序段。这样的程序段可以编写成子程序,在满足一定条件时,中断主程序的运行而转去执行子程序,子程序执行完毕后,再

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