又如上图所示条件跳转指令说明该指令的代码、助记符、操作数和程序步如表8-3所示。跳转指令在梯形图中的使用如图所示。图中跳转指针P8、P9分别对应CJP8及CJP9二条跳转指令。指令名称指令代码位数助记符操作数程序步D(·)条件跳转FNC00(16)CJCJ(P)P0~P127P63为END,不作跳转标记CJ和CJ(P)~3步标号P~1步指令名称指令代码位数助记符操作数程序步D(·)条件跳转FNC00(16)CJCJ(P)P0~P127P63为END,不作跳转标记CJ和CJ(P)~3步标号P~1步指令名称指令名称指令代码位数指令代码位数助记符助记符操作数操作数程序步程序步D(·)D(·)条件跳转条件跳转FNC00(16)FNC00(16)CJCJ(P)CJCJ(P)P0~P127P63为END,不作跳转标记P0~P127P63为END,不作跳转标记CJ和CJ(P)~3步标号P~1步CJ和CJ(P)~3步标号P~1步图8-4条件跳转指令使用说明跳转指令执行的意义是:在满足跳转条件(X000=ON)时,PLC在每个扫描周期里都不执行跳转指令与跳转指针Pn之间的程序,而是跳到以指针Pn为入口的程序段中执行,直至跳转条件不满足,跳转停止进行。FNC00CJP8X00004X001Y001X002M16X003S1811RSTT246X00515X004T0K10X006T246K100018RSTC022X007X010C0K2025FNC12MOVK329D0X011FNC00CJP936P8X000X012Y00140P943RSTT246RSTC0X013X000=ON,跳到P8;X000=OFF,顺序执行X000=ON,顺序执行;X000=OFF,跳到P92、条件跳转程序段中元器件在跳转执行中的工作状态表8-4给出了图中跳转发生前后输入或前序器件状态发生变化对程序执行结果的影响。(1)被跳过的程序段中的输出继电器Y、辅助继电器M、状态S由于该段程序不再执行,即使梯形图中涉及的工作条件发生变化,它们的工作状态仍保持跳转发生前的状态不变。表8-4跳转对元器件状态的影响元件跳转前的触点状态跳转后的触点状态跳转过程中线圈的动作Y、M、SX001、X002、X003X001、X002、X003X001、X002、X003X001、X002、X00310ms100ms定时器X004断开X004接通X004接通X004断开定时中断,X000断开后继续计时1ms定时器X005断开X006断开X006接通X005断开X006断开定时器停止,X000断开后继续计时计数器X007断开X010接通X007断开X010断开计数器停止,X000断开后继续计数X011断开X011接通除FNC52~FNC59之外的其他应用指令不执行X011接通X011断开元件跳转前的触点状态跳转后的触点状态Y、M、SX001、X002、X003X001、X002、X003X001、X002、X003X001、X002、X00310ms100ms定时器X004X004X004X004定时中断,X000断开后继续计时1ms定时器X005X006X006X005X006定时器停止,断开后继续计时计数器X007X010X007X010断开计数器停止,X000断开后继续计数X011X011除FNC52~FNC59之外的其他应用指令不执行X011X011元件元件跳转前的触点状态跳转前的触点状态跳转后的触点状态跳转后的触点状态Y、M、SY、M、SX001、X002、X003X001、X002、X003均断开X001、X002、X003X001、X002、X003X001、X002、X003X001、X002、均接通X001、X002、X003X001、X002、X00310ms100ms定时器10ms100ms定时器X004X004X004X004T0定时器不计时X004X004X004X004定时中断,X000断开后继续计时定时中断,X000断开后继续计时1ms定时器1ms定时器X005X006X005X006X006X006T246定时器不动作X005X005X006X006定时器停止,断开后继续计时定时器停止,断开后继续计时计数器计数器X007X007X010X010C0计数器不动作X007X010X007X010断开X010断开计数器停止,X000断开后继续计数计数器停止,X000断开后继续计数X011X011X011X011除FNC52~FNC59之外的其他应用指令不执行除FNC52~FNC59之外的其他应用指令不执行X011X011X011X011Y001、M1、S1断开不变Y001、M1、S1Y001、M1、S1Y001、M1、S1Y001、M1、S1接通不变Y001、M1、S1Y001、M1、S1Y001、M1、S1应用指令X006接通X010通接断开均接通均断开(2)跳过的程序段中的时间继电器T及计数器C,无论其是否具有掉电保持功能,由于跳过的程序停止执行,它们的当前值寄存器被锁定保持不变。在不发生跳转程序顺序执行时,计时、计数器才开始继续进行。另外,计时、计数器的复位指令具有优先权,即使复位指令位于被跳过的程序段中,只要复位条件满足,复位指令就将执行。3、使用跳转指令的几点注意(1)由于跳转指令具有选择执行程序段的功能。在同一程序且位于因跳转而不会被同时执行的程序段中的同一线圈,不被视为双线圈,如图8-4中Y001。(2)可以有多条跳转指令使用同一标号。在图8-5中,如X020接通,第一条跳转指令有效,从这一步跳到标号P9。如果X020断开,而X021接通,则第二条跳转指令有效,程序从第二条跳转指令处跳到P9处。但不允许一个跳转指令对应二个标号的情况存在,即在同一程序中不允许存在二个相同的标号。在编写跳转程序的指令表时,标号需占一行。X020FNC00CJP9FNC00CJP9X022P9X021Y005图8-5两条跳转指令使用同一指针标号*跳转程序LDX020CJP9LDX021CJP9P9LDX022OUTY005(3)标号一般设在相关的跳转指令之后,也可以设在跳转指令之前,如图8-6所示。应注意的是,从程序执行顺序来看,如果X024接通约200ms以上,造成该程序的执行时间超过了D8000中警戒时钟设定值,会发生监视定时器M8000出错。Y001X024X010P10图8-6指针标号可以设在跳转指令之前构成循环FNC00CJP10(4)使用CJ(P)指令时,跳转条件满足时,只在第一个扫描周期执行一次跳转。但是如果采用M8000作为跳转条件,则跳转就成为无条件跳转了。(5)跳转可用来执行程序初始化工作,如图所示。在PLC运行的第一个扫描周期中,跳转CJ指令不执行,而执行跳转指令与P7之间的初始化程序,下一个扫描周期,才执行跳转指令,跳过初始化程序。FNC00CJPLSP7M100M8000M100P7Y002Y006X023执化行程初序始.…图8-7跳转指令用于程序初始化X020FNC00CJP9FNC00CJP9X022P9X021Y005图8-5两条跳转指令使用同一指针标号*FNC00CJPLSP7M100M8000M100P7Y002Y006X023跳转程序LDX020CJP9LDX021CJP9P9LDX022OUTY005Y001X024X010P10图8-6指针标号可以设在跳转指令之前构成循环*FNC00CJP10执化行程初序始.…图8-7跳转指令用于程序初始化*(6)图8-8说明了主控区与跳转指令的关系。①对跳过整个主控区(MC~MCR)的跳转不受限制。②从主控区外跳到主控区内时,跳转独立于主控操作,CJP1执行时,不论M0状态如何,均作ON处理。③在主控区内跳转时,若M0为OFF,跳转不能执行;若M0为ON,跳转可以执行。④从主控区内跳到主控区外时,M0为OFF时,跳转不能执行;M0为ON时,跳转条件满足,可以跳转,这时MCRN0无效,但不会出错。⑤从一个主控区内跳到另一个主控区内时,当M1为ON时,可以跳转。执行跳转时不论M2的实际状态如何,均看做ON。MCRN0被忽略。CJP0CJP1MCN0M0P1CJP2P2MCRN0CJP3P3P0主控主控MCN0M1CJP4MCRN0MCN0M2P4MCRN0主控①②③④⑤图8-8主控区与跳转指令关系举例1:图8-9即为一段手动、自动程序选择的梯形图和指令表。图中输入X025接的是手动/自动转换开关。当X025置1时,执行自动工作方式,置0时执行手动工作方式。图8-9手动/自动转换程序FNC00CJX025P5手动程序FNC00CJX025自动程序ENDP5P6P64.跳转指令的应用及实例跳转指令可用来选择执行一定的程序段,在工业控制中经常使用。比如,同一套设备在不同的条件下,有两种工作方式,需运行二套不同的程序时可使用跳转指令。•跳转指令课堂练习2:应用跳转指令实现手动/自动控制,要求:1、手动程序—X001输入5个脉冲,Y000有输出;2、自动程序—Y001为观察秒脉冲的输出,C1对秒脉冲(M8013)计数,计满10个则Y002输出。3、计数器的复位;4、X010为手/自动切换开关——跳转指令。(1)手动程序—X001输入5个脉冲,Y000有输出;(2)自动程序—Y001为观察秒脉冲的输出,C1对秒脉冲(M8013)计数,计满10个则Y002输出。(3)对计数器清零处理M8013C0K5Y000C0X001Y001Y002C1K10C1RSTC0C0RSTC1M8002C1•LDM8002•ORC0•ORC1•RSTC0•RSTC1•LDX010•CJP5•LDX001•OUTC0K5•LDC0•OUTY000•LDIX010•CJP6•P5•LDIM8013•OUTY001•OUTC1K10•LDC1•OUTY002•P6•END手动程序X010FNC00CJP5C0K5Y000X010FNC00CJP6Y001P5Y002ENDC1K10M8013C1C0X001P6转自动程序自动程序RSTC0C0RSTC1M8002C1