三菱plc程序流向控制功能指令一、实训任务1、应用主控指令对分支程序A和B进行控制编程(1)控制要求:A程序段为每秒一次闪光输出,而B程序段为每2秒一次闪光输出。要求按钮X0导通时执行A程序段,A灯每秒一次闪光,按钮X0断开时,执行B程序段,B灯每2秒一次闪光.(2)输入/输出信号定义:输入:X0—按钮输出:Y0—A灯Y1—B灯(3)参考程序(梯形图)见图:(4)程序分析:当X0接通时,定时器T0、T1正常工作,构成振荡器,T0触点波形(通过Y0输出)为周期2秒、占空比50%的方波;此时T2、T3均被复位,Y1输出保持断开。当X0断开时,定时器T2、T3正常工作,构成振荡器,T2触点波形(通过Y1输出)为周期4秒、占空比50%的方波;此时T0、T1均被复位,Y0输出保持断开。(5)思考:上机运行以上程序,观察:当X0的状态发生变化时,程序中的输出点的状态是否会保存?2、应用跳转指令对分支程序A和B进行控制编程(在主控指令的基础上修改)(1)控制要求:A程序段为每秒一次闪光输出,而B程序段为每2秒一次闪光输出。要求按钮X0导通时执行A程序段,A灯每秒一次闪光,按钮X0断开时,执行B程序段,B灯每2秒一次闪光.(2)输入/输出信号定义:输入:X0—按钮输出:Y0—A灯Y1—B灯(3)参考程序(梯形图)如图:(4)程序分析:当X0接通时,程序直接跳到END处,再从头开始执行,定时器T0、T1被扫描,Y0的波形为周期2秒、占空比50%的方波;此时定时器T2、T3未被扫描,保持以前的状态。当X0断开时,程序直接跳到语句标号P0处,定时器T2、T3被扫描,Y1的波形为周期4秒、占空比50%的方波;此时定时器T0、T1未被扫描,保持以前的状态。(5)思考:①上机运行以上程序,观察:当X0的状态发生变化时,程序中的输出点的状态是否会保存?比较跳转指令与主控指令的区别。②请说明标号P1的作用,将标号P1放在程序开始处,上机运行,观察会出现什么现象,并说明原因。3、用CJ指令实现电动机的点动和自锁控制(1)当把选择开关拨在点动位置,按下启动按钮,则电机马上运行;松开启动按钮,则电机立即停止。(2)当把选择开关拨在自动位置,按下启动按钮,则电机马上运行;松开启动按钮,电机自锁运行;按下停止按钮,则电机立即停止。4、应用子程序调用编程,注意子程序调用后各类线圈状态的变化规律(1)程序运行过程:①不调用子程序:X0=OFF,X1=OFF,X2=OFF,则Y0按一秒闪光,Y1=OFF,Y2=OFF,Y5=OFF,Y6=OFF。②仅调用子程序P1:先使X1=ON,X2=OFF,并点动X0=ON(第一次调用子程序P1),则Y0仍按一秒闪光,Y1=ON;再使X1=OFF,再观察Y1的状态,Y1仍为ON;再点动X0=ON(第二次调用子程序P1),则Y0仍按一秒闪光,而Y1=OFF。(说明:子程序被调用后线圈的状态将被锁存,一直到下一次调用时才能改变)。③连续调用子程序P1→又在子程序P1中调用子程序P2(子程序欠套):先使X2=ON,X1=OFF,然后使X0=ON(连续调用子程序P1及子程序P2),则输出Y0仍按一秒闪光,Y5、Y6和Y2按2秒闪光。的限制和使用规律,用T0、T1代替T192、T193再运行程序,观察运行结果。5、应用中断、循环、刷新警戒定时器指令编程,并注意中断服务子程序中定时器对输出线圈的控制作用(比较Y1和Y3的亮灭情况)(1)程序运行过程:①仅执行循环程序:X10=OFF,监控M0、M1、M2及D0,并注意(D0)=+32767+1→(D0)=-32768;观察Y0亮灭与(D0)值的关系。②第一次中断:先使X11=ON,并点动X3,则Y2先亮,而Y1后亮,Y3不亮。Y3的状态必须等到再一次中断时才能发生变化。③第二次中断:在X11=ON时,再次点动X3,则Y2、Y1亮,然后Y3亮。④X11由ON变OFF,再次中断时,Y2=OFF,Y1=OFF、Y3=OFF。注意:即使T192的设定值K=0,Y3在X11=ON的第一次中断中也不会接通。(2)参考程序(梯形图)如下:④三菱FX系列中,将“CALLP1”指令改为“CALL(P)P1”指令,然后使X2=ON,反复点动X0=ON,观察Y6和Y2状态的变化,并注意定时器T192(或T193)的定时与X0=ON的关系。T192一旦定时启动,即使X0=OFF仍然继续定时,直到设定值为止,但其触头接通对子程序外的梯形图立即起控制作用,对本子程序内的梯形图只有再次被调用时才起控制作用。(子程序调用指令CALL的编号为FNC01。操作数为P0~P127,此指令占用3个程序步。子程序返回指令SRET的编号为FNC02。无操作数,占用1个程序步。如图1所示,如果X0接通,则转到标号P10处去执行子程序。当执行SRET指令时,返回到CALL指令的下一步执行。用梯形图在END指令前,建个指针P0-P63的其中一个,结束是SRET子程序返回指令,主程序调用P0-P63的一个就好了。CJ是条件跳转指令,(功能号是FNC00Pxx,Pxx是程序指针标志,在要跳转到的地方前面加程序标号,标号任选P0~p127),软件直接输入cj空格Pxx,当CJ的执行条件满足时,会直接跳转到你的Pxx处,从这里执行向下的扫描,缩短程序的执行周期。)