G90 G00 X?75. Y50. Z53. M98 P40035;
该程序段指令X、Y、Z三轴以快速定位进给速度运动到指令位臵,然后调用执行4次35号子程序。
包含子程序调用的主程序 ,程序执行顺序如下例: 主程序 1 2 3 子程序 N10 ……………; O1010 ; N20 ……………; N1020 …………; N30 M98P21010; N1030 ……… N40 ……………; N1040 …………; N50 M98P1010; N1050 …………; N60 ……………; N1060 ……M99;
和其它M代码不同,M98和M99执行时,不向机床侧发送信号。 当NC找不到地址P指定的程序号时,发出PS078报警。
子程序调用指令M98不能在MDI方式下执行,如果需要单独执行一个子程序,可以在程序编辑方式下编辑如下程序,并在自动运行方式下执行。
× ×××;
M98 P××××; M02(或M30);
在M99返回主程序指令中,我们可以用地址P来指定一个顺序号,当这样的一个M99指令在子程序中被执行时,返回主程序后并不是执行紧接着调用子程序的程序段后的那个程序段,而是转向执行具有地址P指定的顺序号的那个程序段。如下例:
子程序 主程序
N10 …………; O1010; N20 …………; N1020 …………; N30 M98P1010; N1030 …………; N40 …………; N1040 …………; N50 …………; N1050 …………; N60 …………; N1060 …………; N70 …………; N1070 M99 P60;
这种主-子程序的执行方式只有在程序存储器中的程序能够使用。
如果M99指令出现在主程序中,执行到M99指令时,将返回程序头,重复执行该程序。这种情况下,如果M99指令中出现地址P,则执行该指令时, 跳转到顺序号为地址P指定的顺序号的程序段。大部分情况下,我们将该功能与可选跳段功能联合使用。如下例:
N10…………;
N20…………;
可选可选 N30…………; 跳开关臵跳开关臵 /N40 M99 P20; 于下位时 于上位时 N50…………;
N60…………;
- 21 -
N70 M02;
当可选跳段开关臵于下位时,跳段标识符不起作用,M99P20被执行,跳转到N20程序段,重复执行N20及N30(如果M99指令中没有P20,则跳转到程序头,即N10程序段),当可选跳段开关臵于上位时,跳段标识符起作用,该程序段被跳过,N30程序段执行完毕后执行N50程序段,直到N70M02;结束程序的执行。值得注意的一点是如果包含M02、M30或M99的程序段前面有跳段 标识符“/ ”,则该程序段不被认为是程序的结束。
8. 简化编程功能
8.1 孔加工固定循环(G73,G74,G76,G80~G89)
应 用孔加工固定循环功能,使得其它方法需要几个程序段完成的功能 在一个程序段内完成。表8.1列出了所有的孔加工固定循环。一般地,一个孔加工固定循环完成以下6步操作(见图8.1):
1、X、Y 轴快速定位。 2、Z轴快速定位到R点。 3、孔加工 4、孔底动作。 5、Z轴返回R点。
6、Z轴快速返回初始点。 表8.1 孔加工固定循环 G代码 加工运动 孔底动作 返回运动 应用 (Z轴负向) (Z轴正向) G73 分次,切削进给 - 快速定位进给 高速深孔钻削 G74 切削进给 暂停-主轴正转 切削进给 左螺纹攻丝 G76 切削进给 主轴定向,让刀 快速定位进给 精镗循环 G80 - - - 取消固定循环 G81 切削进给 - 快速定位进给 普通钻削循环 G82 切削进给 暂停 快速定位进给 钻削或粗镗削 G83 分次,切削进给 - 快速定位进给 深孔钻削循环 G84 切削进给 暂停-主轴反转 切削进给 右螺纹攻丝 G85 切削进给 - 切削进给 镗削循环 G86 切削进给 主轴停 快速定位进给 镗削循环 G87 切削进给 主轴正转 快速定位进给 反镗削循环 G88 切削进给 暂停-主轴停 手动 镗削循环 G89 切削进给 暂停 切削进给 镗削循环 - 22 -
对孔加工固定循环指令的执行有影响的指令主要有G90/G91及G98/G99指令。图8.2(a)及图8.2(b)示意了G90/G91对孔加工固定循环指令的影响。
G98/G99决定固定循环在孔加工完成后返回R点还是起始点,G98模态下,孔加工完成后Z轴返回起始点;在G99模态下则返回R点。
一般地,如果被加工的孔在一个平整的平面上,我们可以使用G99指令,因为G99模态下返回R点进行下一个孔的定位,而一般编程中R点非常靠近工件表面,这样可以缩短零件加工时间,但如果工件表面有高于被加工孔的凸台或筋时,使用G99时非常有可能使刀具和工件发生碰撞,这时,就应该 使用G98,使Z轴返回初始点后再进行下一个孔的定位,这样就比较安全。参见图8.3(a)、图8.3(b)。
G99(返回R点) G98(返回初始点) 图8.3(b) 下个孔定位 图8.3(a) 初始点 初始点 下个孔定位 R点 R点 - 23 -
在G73/G74/G76/G81~G89后面,给出孔加工参数,格式 如下: G××X___ Y___ Z___ R___ Q___ P___ F___ K___; 重复次数 孔的加工参数 被加工孔的位臵参数 孔加工方法 下面的表8.2则说明了各地址指定的加工参数的含义。 孔加工方式 G 见表8.1 被加工孔位臵参数X、Y 以增量值方式或绝对值方式指定被加工孔的位臵,刀具向被加 工 孔运动的轨迹和速度与G00 的相同。 孔加工参数Z 在绝对值方式下指定沿Z轴方向孔底的位臵,增量值方式下指 定从R点到孔底的距离。 孔加工参数R 在绝对值方式下指定沿Z轴方向R点的位臵,增量值方式下指定从初始点到R点的距离。 孔加工参数Q 用于指定深孔钻循环G73和G83中的每次进刀量,精镗循环G76和反镗循环G87中的偏移量(无论G90或G91模态,总是增量值指令) 孔加工参数 P 用于孔底动作有暂停的固定循环中指定暂停时间,单位为秒。 孔加工参数F 用于指定固定循环中的切削进给速率,在固定循环中,从初始点到R点及从R点到初始点的运动以快速进给的速度进行,从R点到Z点的运动以F指定的切削进给速度进行,而从Z点返回R点的运动则根据固定循环的不同可能以F指定的速率或快速进给 速率进行。 重复次数K 指定固定循环在当前定位点的重复次数,如果不指令K,NC认为K=1,如果指令K0,则固定循环在当前点不执行。 由G××指定的孔加工方式是模态的,如果不改变当前的孔加工方式模 态或取消固定循环的话,孔加工模态会一直保持下去。使用G80或01组的G指令(参见表1.1)可以取消固定循环。孔加工参数也是模态的,在被改变或固定循环被取消之前也会一直保持,即使孔加工模态被改变。我们可以在指令一个固定循环时或执行固定循环中的任何时候指定或改变任何一个孔加工参数。
重复次数K不是一个模态的值,它只在需要重复的时候给出。进给速率F则是一个模态的值,即使固定循环取消后它仍然会保持。
如果正在执行固定循环的过程中NC系统被复位,则孔加工模态、孔加工参数及重复次数K均被取消。
下面的例子可以让大家更好地理解以上所讲的内容:
- 24 -
序号 程序内容 注 释 1 S____ M03; 给出转速,并指令主轴正向旋转。 2 G81X__Y__Z__R__F__K__; 快速定位到X、Y指定点,以Z、R、F给定的孔加工参数,使用G81给定的孔加工方式进行加工,并重复K次,在固定循环执行的开始,Z、R、F是必要的孔加工参数。 3 Y__; X轴不动,Y轴快速定位到指令点进行孔的加工,孔加工参数及孔加工方式保持2中的模态值。2中的K值在此不起作用。 4 G82X__P__K__; 孔加工方式被改变,孔加工参数Z、R、F保持模 态值,给定孔加工参数P的值,并指定重复K次。 5 G80X__Y__; 固定循环被取消,除F以外的所有孔加工参数被取消。6 G85X__Y__Z__R__P__; 由于执行5时固定循环已被取消,所以必要的孔加工参数除F之外必须重新给定,即使这些参数和原值相比没有变化。 7 X__Z__; X轴定位到指令点进行孔的加工,孔加工参数Z在此程序段中被改变。 8 G89X__Y__; 定位到XY指令点进行孔加工,孔加工方式被改变为G98。R、P由6指定,Z由7指定。 9 G01X__Y__; 固定循环模态被取消,除F外所有的孔加工参数都被取消。 当加工在同一条 直线上的等分孔时,可以在G91 模态下使用K参 数,K 的最大取值为9999。
G91 G81 X__ Y__ Z__ R__ F__ K5;
以上程序段中,X、Y给定了第一个被加工孔和当前刀具所在点的距离,各被加工孔的位臵如下图所示:
当前刀具 所在位臵 最后一个被加工孔的位臵 第一个被加工孔的位臵 下面我们将依次图示并讲解每个固定循环的执行过程。
8.1.1 G73(高速深孔钻削循环)
- 25 -