首页 理论教育 实践指导:模拟实验二十七——条件跳转指令

实践指导:模拟实验二十七——条件跳转指令

时间:2023-07-01 理论教育 版权反馈
【摘要】:条件跳转指令CJ用于跳过顺序程序中的某一部分,以控制程序的流程。使用跳转指令可以缩短扫描周期。图4-67中的程序见随书光盘中的例程“跳转指令”。例如图4-57有两条跳转指令都跳到指针P63处。令X0为ON,在跳转期间不执行应用指令,D0的值保持不变。

实践指导:模拟实验二十七——条件跳转指令

1.跳转指令的基本功能

指针P(Pointer)用于跳转指令和子程序调用。在梯形图中,指针放在左侧垂直母线的左边。FX各子系列可以使用的指针点数见表1-1,例如FX1S有64点指针(P0~P63),FX1N、FX2N和FX2NC有128点指针(P0~P127)。

条件跳转指令CJ(FNC 00)用于跳过顺序程序中的某一部分,以控制程序的流程。使用跳转指令可以缩短扫描周期。

图4-67中的程序见随书光盘中的例程“跳转指令”。程序中的X0为ON时,跳转条件满足,执行CJ指令后,跳转到指针P1处,不执行被跳过的那部分指令。如果X0为OFF,跳转条件不满足,则不会跳转。执行完CJ指令后,顺序执行它下面第4步的指令。

如果用特殊辅助继电器M8000的常开触点驱动CJ指令,则相当于无条件跳转,因为运行时M8000总是为ON。

指针可以放置在对应的跳转指令之前(即往回跳),但是如果反复跳转的时间超过监控定时器的设定时间(默认值为200ms),则会引起监控定时器出错。

如果需要跳转到END指令所在的步序号,则应使用指针P63(见图4-57)。在程序中不需要设置指针P63,如果生成了指针P63,则反而会出错。

978-7-111-40437-8-Chapter04-83.jpg

图4-67 跳转指令的应用程序

多条跳转指令可以跳到同一个指针处。例如图4-57有两条跳转指令都跳到指针P63处(END指令所在的地方)。一个指针只能出现一次,如果出现两次或两次以上,则会出错。CALL指令(子程序调用)和CJ指令不能共用同一个指针。程序之间不能相互跳转。

为了生成指针P1,双击步37所在行左侧垂直母线的左边,在出现的“梯形图输入”对话框中输入P1。单击“确定”按钮,可以看到生成的指针P1。

2.跳转对位软元件的影响

打开随书光盘中的例程“跳转指令”后,打开GX Simulator,启动软元件监视视图,生成X窗口、Y窗口、M窗口和D窗口。用梯形图监视程序的运行。

在X0为OFF时,指令“CJ P1”的跳转条件不满足。用X窗口的X1~X3能正常控制Y0、M0和S0的状态。

令X0为ON,Y0、M0和S0的线圈所在的程序区被跳过。Y0、M0和S0保持跳转之前最后一个扫描周期的状态不变。此时不能用X1~X3分别控制Y0、M0和S0,因为在跳转时根本没有执行这几行指令。

3.跳转对定时器的影响

令100ms定时器T0的线圈开路,再令X0为ON,开始跳转。令X4为ON,T0的线圈不会通电,它不能定时。(www.xing528.com)

令X0为OFF,X4为ON,T0开始定时。定时期间令X0为ON,开始跳转,T0停止定时,其当前值保持不变。令X0变为OFF,停止跳转,T0在原当前值的基础上继续定时。

X0为OFF时令X7为ON,累计型定时器T246开始定时。在X0为ON时,令X12为ON,可以用跳转区外的RST指令将线圈被跳过的T246复位,使它的当前值变为0。

4.跳转对计数器的影响

X0为OFF,未跳转时C0可以对X5提供的计数脉冲计数。令X0变为ON,在跳转期间C0不会计数,它的当前值保持不变,也不能用跳转区内的X6将C0复位。令X0为OFF,停止跳转,C0可以在原当前值的基础上继续计数,也可以用X6将它复位。令X12为ON,可以用跳转区外的RST指令将线圈被跳过的C0复位,使它的当前值变为0。

高速计数器的处理独立于主程序,其工作不受跳转的影响。C235~C255如果在线圈驱动后跳转,则将会继续工作,条件满足时它们的输出触点也会动作。

5.跳转对T192~199的影响

普通的定时器只是在执行线圈指令时进行定时,因此,将它们用于条件满足时才执行线圈指令的跳转区、子程序和中断程序内时,不能进行正常的定时。

在跳转区、子程序和中断程序内,应使用子程序和中断子程序专用的100ms定时器T192~T199,它们被启动定时后,在执行它们的线圈指令时或执行END指令时进行定时。T192~T199的功能不能仿真。

假设跳转开始时T192正在定时,跳转后即使图4-67中控制T192线圈的X13变为OFF,T192仍然继续定时。定时时间到时,T192的触点也会动作,当前值保持为预置值不变。在停止跳转时如果X13为OFF,T192的线圈断电,当前值变为0。

6.跳转对应用指令的影响

X0为OFF时未跳转,图4-67中周期为1s的时钟脉冲M8013通过INCP指令使D0每秒加1。令X0为ON,在跳转期间不执行应用指令,D0的值保持不变。但是跳转期间会继续执行高速处理指令FNC 52~58。如果脉冲输出指令PLSY(FNC 57)和脉冲宽度调制指令PWM(FNC 58)在刚开始被CJ指令跳过时正在执行,则跳转期间将继续工作。

7.跳转对主控指令的影响

如果从主令控制区的外部跳入其内部,则不管它的主控触点是否接通,都把它当成接通来执行主令控制区内的程序。如果跳转指令和指针都在同一主令控制区内,则主控触点没有接通时不执行跳转。

8.跳转指令与双线圈

同一个位软元件的线圈一般只允许出现一次,如果出现两次或多次,则称为双线圈。同一个位软元件的线圈可以在跳转条件相反的两个跳转区内分别出现一次。图4-67用X0的常开触点和常闭触点分别控制指针P1和P2对应的跳转。X0为ON时,指令“CJ P2”的跳转条件不满足,可以用X11控制Y0;X0为OFF时,指令“CJ P1”的跳转条件不满足,可以用X1控制Y0。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈