当前位置: 首页 > 资讯

高效操作 | PMC功能指令详解(十五)程序控制指令一

FANUC数控技术       2017-07-21


程序控制指令:


高效操作 | PMC功能指令详解(十五)程序控制指令一


1.COM(公共线控制:SUB 9)


COM指令控制其与公共线结束指令(COME)之间的线圈。COM指令中指定线圈数为0,用公共线结束指令(COME)指定控制范围。


如果程序中指定了COM指令,而未指定COME指令,CNC将显示“COMFUNCTION MISSING”错误信息。


高效操作 | PMC功能指令详解(十五)程序控制指令一


指令格式:


高效操作 | PMC功能指令详解(十五)程序控制指令一


控制条件:


ACT=0:指定范围内的线圈无条件断开(设为0);


ACT=1:与COM指令未使用的动作一致。


参数:


指定为0(仅限范围)。


注意:


1、COM指令操作


假定梯图程序中包括COM指令,如下所示。


高效操作 | PMC功能指令详解(十五)程序控制指令一


对于输出线圈“OUTx”,COM指令使得上述梯图与下述梯图效果类似。


高效操作 | PMC功能指令详解(十五)程序控制指令一


COM指定范围内的功能指令正常执行,而不管ACT信号如何。然而若COM指令中ACT=0,线圈执行结果为0。


2、在COM指令的指定范围内不允许使用另外的COM指令。


3、如第1条所描述的,COM指令中ACT=0时,指定范围内的WRT.NOT功能指令的线圈被无条件设为1。


4、在COM和COME指令间不能使用JMP和JMPE指令,否则跳转将不能正常执行。


高效操作 | PMC功能指令详解(十五)程序控制指令一


指令示例:


高效操作 | PMC功能指令详解(十五)程序控制指令一


X0.0=1,X0.1=1。


当R100.0置0时,此时Y0.0=0,Y0.1=1;若将R100.0置1,则Y0.0=1,Y0.1=0。


2.COME(公共线控制结束:SUB 29)


COME指令指定公共线结束指令(COME)的控制范围。不能单独使用,必须与COM成对使用。指令的使用请见COM指令。


高效操作 | PMC功能指令详解(十五)程序控制指令一


指令格式:


高效操作 | PMC功能指令详解(十五)程序控制指令一


指令示例:


请参考COM功能指令示例。


3.JMP(跳转:SUB 10)


JMP指令使正常的程序执行顺序发生跳转,当指定JMP指令时,程序跳转至程序跳转结束指令(JMPE)处,不执行JMP与JMPE之间的逻辑指令(包括功能指令)。


使用跳转结束指令(JMPE)指定跳转范围。当跳转结束指令(JMPE)未被指定时,将显示信息“JUMP FUNCTION MISSING”。


高效操作 | PMC功能指令详解(十五)程序控制指令一

指令格式:


高效操作 | PMC功能指令详解(十五)程序控制指令一


控制条件:


ACT=0:跳过指定范围内的逻辑指令(包括功能指令),继续执行程序;


ACT=1:不执行跳转,继续执行JMP下一段程序。


参数:


指定为0(仅限范围)。


注意:


1、JMP指令操作


当ACT=1时,程序跳转至跳转结束指令处(JMPE),指定范围内的指令不执行。该指令可以减少梯图执行时间(扫描时间)。


JMPE指令之间不可嵌套使用。


2、使用JMP和JMPE指令所导致的跳转不能跳转至或者跳转自COM和COME指令之间的程序,否则不能正常执行。


高效操作 | PMC功能指令详解(十五)程序控制指令一


指令示例:


高效操作 | PMC功能指令详解(十五)程序控制指令一


若R100.0=0,不发生跳转,X0.0=1则Y0.0=1;


若R100.0=1,此时程序发生跳转,程序段不执行,即不管X0.0状态如何变化,Y0.0保持上一个状态。


4.JMPE(跳转结束:SUB 30)


JMPE指令指定跳转指令(JMP)的范围。不能单独使用,必须与JMPE指令成对使用。指令的使用请见JMP指令。


高效操作 | PMC功能指令详解(十五)程序控制指令一


指令格式:


高效操作 | PMC功能指令详解(十五)程序控制指令一


指令示例:


请参考JMP功能指令示例。


5.CALL(条件调用子程序:SUB 65)


功能指令CALL用于调用子程序。在CALL指令中指定子程序号,当条件满足时跳转至子程序。


指令格式:


高效操作 | PMC功能指令详解(十五)程序控制指令一


控制条件:


ACT=0:不执行CALL指令;


ACT=1:执行CALL指令。


参数:


(a) 子程序号


指定要调用的子程序号。子程序号必须以P地址形式指定。


指令示例:


高效操作 | PMC功能指令详解(十五)程序控制指令一


当R100.0置1时,调用P1子程序,Y0.0状态取决于X0.0;若将R100.0置0,不调用P1子程序,无论X0.0如何变化,Y0.0保持之前的状态不变。


6.CALLU(无条件调用子程序:SUB 66)


功能指令CALLU用于调用子程序。当指定子程序时,程序跳转至子程序。


指令格式:


高效操作 | PMC功能指令详解(十五)程序控制指令一


参数:


(a) 子程序号


指定要调用的子程序号。子程序号必须以P地址形式指定,指定范围L1至L9999。


指令示例:


高效操作 | PMC功能指令详解(十五)程序控制指令一


无条件调用P1子程序,Y0.0状态取决于X0.0。若X0.0=0,则Y0.0=0;若X0.0=1,则Y0.0=1。


7.SP(子程序:SUB 71)


功能指令SP用于生成子程序。子程序号作为子程序名称。SP指令与SPE指令一起指定子程序的范围。


指令格式:


高效操作 | PMC功能指令详解(十五)程序控制指令一


参数:


(a) 子程序号


在此指令上指定子程序号,子程序号必须以P地址形式指定。指定的子程序号在顺序程序中必须唯一。


高效操作 | PMC功能指令详解(十五)程序控制指令一


指令示例:


高效操作 | PMC功能指令详解(十五)程序控制指令一


如上图,X0.0行程序段属于P1子程序,X1.0行程序段属于P2子程序。