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

CP1H系列PLC的子程序调用SBS (091)、子程序开始SBN

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

简介SBS 是子程序调用指令, SBN 和 RET 是子程序开始和子程序返回指令。所编写的子程序应该在指令 SBN 和 RET 之间。主程序中,在需要调用子程序的地方安排 SBS 指令。若使用非微分指令

    SBS是子程序调用指令,SBNRET是子程序开始和子程序返回指令。所编写的子程序应该在指令SBNRET之间。主程序中,在需要调用子程序的地方安排SBS指令。若使用非微分指令SBS时,在它的执行条件满足时,每个扫描周期都调用一次子程序。若使用@ SBS时,只有在执行条件由OFFON时调用一次子程序。    所有子程序都必须放在主程序之后、END之前。若在子程序后安排了主程序,则该段主程序不被执行。因为CPU扫描用户程序时,只要见到SBN则认为主程序结束,在编写程序时一定要注意这一点。    2-92所示为调用子程序的结构及两次调用的执行过程。
调用子程序的结构及两次调用的执行过程
    2-92    调用子程序的结构及两次调用的执行过程    这段程序的执行过程是:    1)在执行主程序段1时,若SBS (091) 000的执行条件为ON时,则立即停止执行主程序,而转去执行SBN (092) 000RET (093)之间的000号子程序。该子程序执行完毕,返回到调用子程序指令SBS(091) 000的下一条指令,继续执行主程序段2    2)在执行主程序段2时,若SBS (091) 001的执行条件为ON时,则立即停止执行主程序,而转去执行SBN (092) 001RET (093)之间的001号子程序。该子程序执行完毕,返回到调用于程序指令SBS(091) 001的下一条指令,继续执行主程序段3    【例2-55】图2-93是调用子程序的示例。
调用子程序示例
    2-93    调用子程序示例    a)梯形图b)语句表    2-93中,1.00是调用子程序指令的执行条件。主程序的内容包括传送数据、用KEEP指令产生秒脉冲、调用子程序005    1. 00OFF时,执行MOV指令将#0001传送到W20通道,使W20. 00ON,其余各位均为OFF。继续执行KEEP指令,由101. 00输出秒脉冲。若1.00ON时,立即转去执行005号子程序。    005号子程序有两个内容:其一,移位寄存器指令的数据输入端是P_Off,因此W20. 00ON状态每隔1s向高位移1位。若1.00一直为ON,每个扫描周期都调用子程序,移位将持续进行。当W20. 07变为ON,且下一个移位脉冲到来时,W20. 00又成为ON并重复上述的移位过程;其二,执行MOV指令把W20通道的内容传送到100通道。    在子程序执行过程中,若1. 00OFF时,立即停止子程序的执行。譬如,当W20. 05ON时,令1.00OFF时,100. 05仍保持ON状态,但不移位(子程序不再执行)。这时主程序中的MOV指令又将#0001传送到W20通道。当1.00再次为ON、又调用子程序005时,100. 05立即OFF。再执行SFT指令时,仍是将W20. 00ON状态依次向高位移位。    【例2-56】图2-94是子程序嵌套调用的例子。
子程序调用示例
    2-94    子程序调用示例    2-94中,D0中已写入0100。每当计数完成标志C0000 ON时调用子程序010。执行子程序010,将D0的内容减1并与#0000比较,当D0的内容是0000时,再调用子程序011。执行子程序011,使W210. 01 0N,返回主程序使100. 01 0N,并使CNT0000复位。读者可自行分析该程序的功能。