1、G92 X0.0 Y0.0 Z50.0S1000 M03 M08G90 G98 G81 X-50 Y0 R-15 Z-52 F70.0(钻(钻1)X-50.0 Y-30.0(钻(钻2)X0.0 Y30.0 R5(钻(钻3)。数控加工中,某些加工动作循环已经典型化。例如,钻孔、镗孔的动作是孔位平面定位、快速引进、工作进给、快速退回等。将这样一系列典型加工动作预先编好程序存储在系统中,再用包含G代码的一个程序段调用,可简化编程工作。这种包含了典型动作循环的G代码称为循环指令。常用的固定循环指令能完成的工作有:钻孔、攻螺纹和镗孔等。这些循环通常包括下列六个基本操作动作:X、Y轴快速定位到孔中心位置Z
2、轴快速运行到靠近孔上方的安全高度平面R点(参考点)孔加工(工作进给)在孔底做需要的动作退回到安全平面高度或初始平面高度快速返回到初始点位置。1 1、固定循环的基本动作、固定循环的基本动作固定循环的动作示意图初始高度初始高度安全高度安全高度孔底动作孔底动作G99快速快速定位定位快速移至快速移至 R面安全面安全高度高度12345工进退回工进退回工进加工孔工进加工孔快速退回快速退回孔底平面孔底平面X、Y轴快速定位到孔中心位置(起始点)Z轴快速运行到靠近孔上方的安全高度平面R点(参考点)孔加工(工作进给)孔底动作退回到安全平面高度快速返回到初始平面。6不同的固定循环动作可能不同,有的没有孔底动作,有的
3、直径回退到初始平面。G90(G91)G98(G99)G_X_Y_Z_R_Q_P_F_L_ 固定循环指令格式总体说明R 点点 Z 点点 Z=0 G90 编编 程程 R 点点 Z 点点 G91 编编 程程 ZZG90:X、Y、Z、R的数值为相对于工件坐标系的数值。G91:X、Y、Z、R的数值为相对于前一点的距离。固定循环指令格式说明G90(G91)G98G98(G99)G99)G_X_Y_Z_R_Q_P_F_L_ G_X_Y_Z_R_Q_P_F_L_G98G98返回初始平面。返回初始平面。初始点是为安全下刀而规定的点。初始点是为安全下刀而规定的点。该点到零件表面的距离可以任意设定在一个安全高度上。
4、该点到零件表面的距离可以任意设定在一个安全高度上。执行循环指令前刀具所在的高度位置既视为初始点。执行循环指令前刀具所在的高度位置既视为初始点。G99G99返回安全(返回安全(R R点)平面点)平面vR R点平面是刀具下刀时由快进转为工进的转换起点。点平面是刀具下刀时由快进转为工进的转换起点。v距工件表面的距离主要考虑工件表面尺寸的变化,一般可距工件表面的距离主要考虑工件表面尺寸的变化,一般可取取2 25 mm5 mm。G指令指令用用 途途Z向加工动作向加工动作孔底动作孔底动作Z向回退动作向回退动作G73高速深孔钻高速深孔钻间歇进给间歇进给主轴保持转向及转速主轴保持转向及转速快速回退快速回退(不
5、完全不完全)G74攻左螺纹攻左螺纹M04切削进给切削进给主轴主轴M03保持转速保持转速M03切削进给回切削进给回退退G76精镗循环精镗循环切削进给切削进给主轴停止、定向、偏移主轴停止、定向、偏移快速回退快速回退(完全完全)G80取消固定循环取消固定循环G81钻孔循环钻孔循环切削进给切削进给主轴保持转向及转速主轴保持转向及转速快速回退快速回退(完全完全)G82中心钻循环中心钻循环切削进给切削进给主轴保持转向及转速、暂主轴保持转向及转速、暂停停快速回退快速回退(完全完全)G83深孔钻深孔钻间歇进给间歇进给主轴保持转向及转速主轴保持转向及转速快速回退快速回退(完全完全)G84攻右螺纹攻右螺纹M03切
6、削进给切削进给主轴主轴M04保持转速保持转速M04切削进给回切削进给回退退G85铰孔循环铰孔循环切削进给切削进给主轴保持转向及转速主轴保持转向及转速工进回退工进回退(完全完全)G86粗镗循环粗镗循环切削进给切削进给主轴停止主轴停止快速回退快速回退(完全完全)G87反镗循环反镗循环主轴停止、定向、偏移、主轴停止、定向、偏移、快进快进反向偏移、工进反向偏移、工进切削进给切削进给G88手动镗循环手动镗循环切削进给切削进给主轴停止、手动操作主轴停止、手动操作快速回退快速回退(完全完全)G89镗循环镗循环切削进给切削进给主轴保持转向及转速、暂主轴保持转向及转速、暂停停工进回退工进回退(完全完全)G98(
7、G99)G _X_Y_Z_R_Q_P_F_L_第二个第二个G代码为代码为孔加工方式孔加工方式,即固定循环代码即固定循环代码G73,G74,G76和和G81 G89中的任一个。中的任一个。G98(G99)G _ X_Y_ Z_R_Q_P_F_L_X、Y为孔位数据,指被加工孔的圆心位置。G90时:XY为孔圆心坐标 G91时:XY为孔圆心相对与前一点的移动量。动动 作作 1 1 动动 作作 2 2 初初 始始 点点 R 点点 动动 作作 3 动动 作作 5 动动 作作 4 4 动动 作作 6 6 固定循环指令参数说明固定循环指令参数说明Z为孔底数据G90时:Z为孔底坐标G91时:Z为R点到孔底的距离
8、(多为负)G98(G99)G_X_Y_Z_R_Q_P_F_L_R 点点 Z 点点 Z=0 G90 编编程程 R 点点 Z 点点 G91 编编程程 ZZG98(G99)G _X_Y_Z_ R_ Q_P_F_L_R 点点 Z 点点 Z=0 G90 编编程程 R 点点 Z Z 点点 G91编编程程 RRR为安全平面位置G90时:时:RR面的坐标面的坐标值值G91时:时:R初始点到初始点到R面的距离(常为面的距离(常为负负)G98(G99)G _X_Y_Z_R_ Q_P_F_L_Q 在G73(高速深孔钻)或G83(深孔钻)时指定每次进给深度,在G76(精镗循环)或G87(反镗循环)时指定刀具的让刀量,
9、是增量值。P指定刀具在孔底的暂停时间,单位为ms(毫秒)。F为切削进给速度L指定固定循环的次数说明:1、G73 G89、Z、R、P、Q都是模态代码。2、在固定循环中刀具半径补偿无效,刀具长度补偿有效 3、G80、G01G03等代码可以取消固定循环。G80取消后的默认值为G00。固定循环指令分类固定循环指令分类钻孔类钻孔类一般钻孔一般钻孔钻深孔(钻深孔(L/D3)高速深孔钻高速深孔钻G73G73深孔钻深孔钻G83G83钻孔循环钻孔循环G81中心钻循环中心钻循环G82G82铰孔类铰孔类铰镗孔循环铰镗孔循环1铰镗孔循环铰镗孔循环2G85G89攻螺纹类攻螺纹类右旋攻螺纹右旋攻螺纹左旋攻螺纹左旋攻螺纹G
10、84G74镗孔类镗孔类粗镗孔粗镗孔精镗孔精镗孔反镗孔反镗孔G86G76G87G88手动手动镗镗钻孔循环指令1、一般钻孔循环指令G81格式:G98(G99)G81X_Y_Z_R_F_L_ 动作分解:刀具以进给速度向下运动钻孔,到达孔底位置后,快速退回(无孔底动作),适用:用于一般钻孔,孔不深。初始高度初始高度安全高度安全高度孔底孔底G99G98G81动作指令动作指令图图钻孔循环指令2、带停顿的钻孔循环指令G82格式:G98(G99)G82X_Y_Z_R_P_ F_L_ 动作分解:与G81指令唯一的区别是有孔底暂停动作,暂停时间由P指定。作用:执行该指令使孔的表面更光滑,孔底平整。常用于做沉头台阶
11、孔和中心孔。初始高度初始高度安全高度安全高度Z轴孔底暂轴孔底暂停停G99G98G82动作指令图动作指令图深孔加工循环指令qqq初始高度初始高度安全高度安全高度孔底位置孔底位置kkG73动作分解动作分解1、高速深孔加工循环指令G73 格式:G98(G99)G73X_Y_Z_R_Q_F_L_ 动作分解:该固定循环用于Z轴的间歇进给,有利于断屑。适用:深孔加工。参数:Q值为每次的进给深度.参数:K为系统设定值。例:G98 G73 X10 Y20 Z-60 R5Q10F50深孔加工循环指令2、深孔加工循环指令G83与G73不同之处在每次进刀后都返回安全平面高度处,更有利于钻深孔时的排屑。d:每次退刀后
12、,再次进给时,由快速进给转换为切削进给时距上次加工面的距离(d由系统参数设定)qqq初始高度初始高度安全高度安全高度孔底位置孔底位置ddG83动作分解动作分解钻孔循环指令编程举例一%0009G92 X0.0 Y0.0 Z50.0S800 M03 M08G90 F70.0G99 G81 X-50.0 Y0.0 Z-52.0 R-15.0钻钻1G98 Y-30.0(钻钻2)G99 G73 X0.0 Y30.0 Z-52.0 R5.0 Q10 (高速深孔钻(高速深孔钻3)G98 Y-30.0(高速深孔钻高速深孔钻4)G99 G82 X50.0 Y30.0 Z-30.0 R-15.0 P2 (中心钻中
13、心钻5)G98 Y0.0(钻钻6)M05 M09M30钻钻6-10的孔的孔例二编制右所示的孔加工程序(设Z轴开始点距工作表面50mm处,切削深度为10mm)。R面面50初始面初始面3%0009G92 X50.Y50.Z50.G90 G00 X0.Y0.S800 M03 G91 G99 G81 X40.Y40.Z-13.R-47.F100X40.Y0.L3X0.Y50.X-40.Y0.L3G90 G80 X-100.Y-50.Z50.M05 M30螺纹加工循环指令(G74)左旋攻螺纹循环G74 格式:G98(G99)G74 X_Y_Z_R_F_L_动作分解动作分解:左旋攻螺纹(攻反螺纹)左旋攻螺
14、纹(攻反螺纹)时时主轴反转主轴反转,到孔底时,到孔底时主轴正转主轴正转,然后然后工进速度工进速度退回。退回。初始高度初始高度安全高度安全高度孔底平面孔底平面主轴正转主轴正转主轴反转主轴反转G74动作指令图动作指令图注意:1、攻螺纹过程要求主轴转速与进给速度成严格的比例关系,进给速度F=转速(r/min)螺矩(mm).2、R应选在距工件表面7mm以上的地方。格式:G98(G99)G84 X_Y_Z_R_F_L_动作分解动作分解:从从R点到点到Z点攻丝时刀具点攻丝时刀具正向正向进给进给,主轴正转。到孔底部时,主轴正转。到孔底部时,主轴反转主轴反转,刀具以反向进给,刀具以反向进给速度退出速度退出.初
15、始高度初始高度安全高度安全高度孔底平面孔底平面主轴反转主轴反转主轴正转主轴正转G84动作指令图动作指令图右旋攻螺纹循环螺纹加工编程举例螺纹加工编程举例编制右图所示的螺孔加工程序(设Z轴开始点距工作表面50mm处,切削深度为10mm牙距2mm)。R面面50初始面初始面3(1)先用G81钻孔%0009G92 X50.Y50.Z50.G90 G00 X0.Y0.M03 S800G91 G99 G81 X40.Y40.Z-13.R-47.F100X40.Y0.L3X0.Y50.X-40.Y0.L3G90 G80 X50.Y50.Z50.()再用G84攻丝 S140 X0Y40 G91G99G84 X4
16、0 Z-17 R-43 L4 F280 Y50 G99 G84 X-40.Z-17.R-43.L3 G80 Z43.G90X50 Y50 M05 M30编制右图所示的螺孔加工程序(设Z轴开始点距工作表面50mm处,切削深度为10mm牙距2mm)镗孔循环指令G86 1)G86:粗镗循环 初始高度初始高度安全高度安全高度孔底平面孔底平面G85指令动作图指令动作图G98 G86X_Y_Z_R_F_L_此指令与G81钻孔指令相同,但在孔底时主轴停止,然后快速退回。注意:该指令退刀前没有让刀动作,退回时可能划伤已加工表面,因此只用于粗镗孔。镗孔循环指令(镗孔循环指令(G76)2 2)精镗循环)精镗循环
17、G98G98(G99G99)G76 X_Y_Z_R_Q_F_L_G76 X_Y_Z_R_Q_F_L_G76 动作指令图动作指令图初始高度初始高度安全高度安全高度孔底平面孔底平面主轴准停主轴准停q精镗时,主轴在孔底定向停止后,向刀尖反方向移动,然后快速退刀,退刀位置由G98或G99决定。带有让刀的退刀不会划伤已加工平面,保证了镗孔精度。刀尖反向位移量用地址Q指定。镗孔循环指令(G87)3)G87:反镗循环G98 G87 X_Y_Z_R_Q _F_L_q 主轴正转 主轴定向停 R 点 Z 点 主轴起动(G98 的情况)G87 指令动作图指令动作图动作过程:在X、Y轴定位后,主轴定向停止,然后向刀尖
18、的反方向移动q值,再快速进给到孔底(R点)定位。在此位置,刀具向刀尖方向移动q值。主轴正转,在Z轴正方向上加工至Z点。这时主轴又定向停止,向刀尖反方向位移,然后从孔中退出刀具,后退回一个位移量,主轴正转,进行下一个程序段的动作。只能用G98返回到初始点)镗孔循环指令(G88)点 初始点 G98 G99 主轴正转 暂停后 主轴停止 R 点 Z 点 主轴正转 暂停 G88 指令动作图指令动作图4)G88:镗孔循环(手镗)G98(G99)G88 X_Y_Z_R_P_F_L_在孔底暂停,主轴停止后,转换为手动状态,可用手动将刀具从孔中退出。到返回点平面后,主轴正转,再转入下一个程序段进行自动加工。镗孔
19、手动回刀,不需主轴准停 铰镗孔循环指令2)G85:铰镗孔循环1 G99 G85X_Y_Z_R_F_L_该指令动作过程与G81指令相同,只是G85进刀和退刀都为工进速度,且回退时主轴不停转。初始高度初始高度安全高度安全高度孔底平面孔底平面G85指令动作图指令动作图1)铰镗孔循环)铰镗孔循环1(G85)铰镗孔循环指令G89:铰镗孔循环2 G98(G99)G89 X_Y_Z_R_P_F_L_此指令与G86指令相同,但在孔底有暂停。初始高度初始高度安全高度安全高度孔底平面孔底平面G89指令动作图指令动作图主轴延时停主轴延时停2)铰镗孔循环)铰镗孔循环2(G89)作业:3-7 子程序3-8 刀具半径补偿
20、3-9 子程序+钻孔循环(G81G82)第一节 概述宏指令编程:是指可以使用变量进行算术运算、逻辑运算和函数混合运算的程序编写形式。可编制各种复杂的零件加工程序,增强机床的加工能力,同时可精简程序量。用户宏程序主体是一系列指令,相当于子程序体,宏程序的编写格式与子程序相同。宏指令是代表一系列指令的总指令,相当于子程序调用指令。O0001.G65 P9010 R50.0 L2.M30O9010#1=#18/2;G01 X#1 Z#1 F0.3;G02 X#1 Z-#1 R#1;M99;加工程序用户宏程序 第二节 变量1、变量的表示变量用变量符号(#)和后面的变量号指定;例如:#1表达式可以用于指
21、定变量号。此时,表达式必须封闭在括号中。例如:#1+#2-12在宏程序中使用的变量称为宏变量。宏变量值可在程序中修改或利用MDI面板操作进行修改#1=#2+100;G01 X#1 F300;2、变量的类型变量号变量类型功能#0空变量该变量总是空,没有值能赋给该变量。#1#33局部变量局部变量在同一程序级中调用时含义相同,若在另一级程序(如子程序)中使用,则意义不同。当断电时,局部变量被初始化为空。调用宏程序时,自变量对局部变量赋值。#100#199#500#999公共变量公共变量在不同的宏程序中的意义相同。当断电时,变量#100#199 初始化为空。变量#500#999 的数据保存,即使断电也
22、不丢失。#1000系统变量系统变量用于读和写CNC 的各种数据,例如,刀具的当前位置和补偿值空变量与变量值为0的变量当变量值是空白时变量是空。#0该变量总是空,它不能写只能读。变量值为0的变量不是空变量(a)(a)引用:当引用一个未定义的变量时地址本身也被忽略。G90X100Y#1G90X100Y0G90X100Y#1G90X100当#1=0当#1=jLTk表示 jGEk表示 jLEk表示格式2:IF 条件表达式 THEN;如果条件表达式满足,执行预先决定的宏程序语句(只执行一个宏程序语句)。如果表达式中条件未满足,则顺序执行下一段程序。例:求110的和。O9500;G54G00X0Y0Z0#
23、1=0;变量#1:用于存储和变量的初值#2=1;变量#2:被加数变量的初值N1 IF#2 GT 10 GOTO2;如果变量#2大于10(11)求和结束#1=#1+#2;相加#2=#2+1;下一个加数 GOTO1;返回1N2 G00X#1Y#1Z#1;(G00X55Y55Z55)M30;结束2、循环WHILE语句格式:WHILE 条件表达式 DO m(m1,2,3);END m;条件表达式满足时,程序段DO m至 END m即重复执行;条件表达式不满足时,程序转到END m后处执行;DOm和ENDm必须成对使用;DO语句允许有3层嵌套:DO语句范围不允许交叉例:求110的和。O9500;G54G
24、00X0Y0Z0#1=0;变量#1:用于存储和变量的初值#2=1;变量#2:被加数变量的初值WHILE#2 LE 10DO 1;如果变量#2小于等于10执行DO 1和END 1之间的程序段#1=#1+#2;相加#2=#2+1;下一个加数END 1;返回WHILE再次进行判断G00X#1Y#1Z#1;(G00X55Y55Z55)M30;结束 第四节 宏程序调用1、非模态调用(G65)当指定G65 时以地址P 指定的用户宏程序被调用数据自变量能传递到用户宏程序体中O0001.G65 P9010 A1.0B2.0.M30O9010#3=#1+#2;IF#3GT360GOTO9;G00 G91X#3;
25、N9 M99;G65 Pp L Lp:要调用的程序 L:重复次数自变量:传递到宏程序的数据用户宏程序自变量指定可用两种形式的自变量指定自变量指定形式1使用除了G L O N 和P以外的字母每个字母指定一次。自变量指定形式2使用A B C 和Ii Ji和Ki(i为110)自变量指定1地址G L N O 和P 不能在自变量中使用不需要指定的地址可以省略对应于省略地址的局部变量设为空地址不需要按字母顺序指定但应符合字地址的格式但是I J 和K需要按字母顺序指定例:B_A_D_ J_K_ 正确 B_A_D_ J_I_ 不正确自变量指定2自变量指定使用A B 和C 各1 次I J K10 次例:G65
26、P1000 A1.0 B2.0I3.0 则上述程序段为宏程序的简单调用格式,其含义为:调用宏程序号为1000的宏程序运行一次,并为宏程序中的变量赋值,其中:1为1.0,2为2.0,4为3.0。I J K的下标用于确定自变量指定的顺序在实际编程中不写例:G65 P1000 A1.0 B2.0 I10 J10 K10 I20 J20 K20其含义为:调用宏程序号为1000的宏程序运行一次,并为宏程序中的变量赋值,其中:1为1.02为2.0;4 5 6为10;7 8 9为202、模态调用(G66)G66 模态调用即指定沿移动轴移动的程序段后调用宏程序G67取消模态调用局部变量(自变量)只能在G66
27、程序段中指定。每次执行模态调用时,不再设定局部变量3、用G代码调用宏程序设置参数号6050=81则G81=G65P9010G65L2P9010=G81 L2 第四节 应用示例一、锥形车削循环开发G90 X(U)Z(W)R F 绝对编程:X、Z值为切削终点的坐标值相对编程:U、W为切削终点相对于循环起点的坐标差值R值为切削起点半径减去切削终点半径。1、纵向单一固定循环G90循环起点循环起点切削起点切削起点切削终点切削终点2、用G90代码调用宏程序实现和系统G90类似的功能设定设置参数号6051=90则G90 =G65P9011 设定设定自变量U#21;W#23;R#18;F#9.则G90UWRF
28、调用宏程序P9011并传递参数UWRF给变量#21;#23;#18;#9循环起点循环起点切削起点切削起点切削终点切削终点编制P9011宏程序P9011G00 U#21+2*#18;G01 U-2*#18W#23F#9;U-#21;G00W-#23;M99;程序调用G90U-20W-40R-10F0.1(G65P9011U-20W-40R-10F0.1)U(终点x相对坐标:直径值)#21;W(终点z相对坐标)#23;R(半径差:半径值)#18;F(进给率)#92、圆周分布孔加工关键指令G81X Y Z R F孔中心计算:第一个孔X=X0+r*COS(A);Y=Y0+SIN(A).第二到第H个孔X
29、=X0+r*COS(A+(i-1)*B);Y=Y0+SIN(A+(i-1)*B).设定宏程序调用格式G65P0900ABXYZRIHFA:第一个孔的角度#1B:第二到第H个孔的夹角#2X:基准孔(圆心)x坐标#24Y:基准孔(圆心)y坐标#25Z:孔的深度z坐标#26R:安全平面z坐标#18I:圆的半径#4H:孔的数目#11F:进给率#9O0900#3=1 孔计数#5=#24+#4*COS#1 当前孔x坐标#6=#25+#4*SIN#1 当前孔y坐标G90G81X#5Y#6Z#26R#18F#9#3=#3+1 下一个孔WHILE#3 LE#11 DO 1#5=#24+#4*COS#1+#3-1
30、*#2#6=#25+#4*SIN#1+#3-1*#2X#5Y#6 G81钻孔循环#3=#3+1 孔计数加1END 1G80M99A:第一个孔的角度#1B:第二到第H个孔的夹角#2X:基准孔(圆心)x坐标#24Y:基准孔(圆心)y坐标#25Z:孔的深度z坐标#26R:安全平面z坐标#18I:圆的半径#4H:孔的数目#11F:进给率#9O1123G92X0Y0Z0;S200M03;G65P0900A30B30X0Y0Z-20R2I100H12F100G00X0Y0Z0M30演示2、平面非圆曲线轮廓加工曲线1:角度A=0200半径R=15+15*A/200曲线2:R30圆弧起点X=30*COS(20
31、0);Y=30*SIN(200)终点X=30*COS(230);Y=30*SIN(230)曲线3:角度A=230330半径R=30-15*(A-230)/100曲线4:R15圆弧起点X=15*COS(330);Y=15*SIN(330)终点X=15;Y=0曲线1:角度A=0200半径R=15+15*A/200曲线2:R30圆弧起点X=30*COS(200);Y=30*SIN(200)终点X=30*COS(230);Y=30*SIN(230)曲线3:角度A=230330半径R=30-15*(A-230)/100曲线4:R15圆弧起点X=15*COS(330);Y=15*SIN(330)终点X=1
32、5;Y=0处理方法:对于圆弧用G03指令R30圆弧G01X30*COS(200)Y30*SIN(200)G03X30*COS(230)Y30*SIN(230)R30R15圆弧G01X15*COS(330)Y15*SIN(330)G03X15Y0R15对于曲线用G01分段逼近曲线1:设定步长#3=0.2o起点角度:#1=0起点位置:G01X15Y0Z-6下一点角度:#1=#1+#3下一点位置:半径#4=15+15*#1/200G01X#4*COS#1Y#4*SIN#1终点直到#1达到200度使用while循环:G01X15Y0Z-6#3=0.2#1=0#1=#1+#3WHILE#1 LT 200
33、DO1#4=15+15*#1/200G01X#4*COS#1Y#4*SIN#1#1=#1+#3;END1曲线3:设定步长#3=0.2起点角度:#1=230起点位置:R30圆弧终点下一点角度:#1=#1+#3下一点位置:半径#4=30-15*#1-230/100G01X#4*COS#1Y#4*SIN#1终点直到#1达到330度使用while循环:曲线3:角度A=230330半径R=30-15*(A-230)/100(圆弧终点不需要再指定)#3=0.2#1=230#1=#1+#3WHILE#1 LT 330DO1#4=30-15*#1-230/100G01X#4*COS#1Y#4*SIN#1#1=#1+#3END1曲线1:角度A=0200半径R=15+15*A/200曲线2:R30圆弧起点X=30*COS(200);Y=30*SIN(200)终点X=30*COS(230);Y=30*SIN(230)曲线3:角度A=230330半径R=30-15*(A-230)/100曲线4:R15圆弧起点X=15*COS(330);Y=15*SIN(330)终点X=15;Y=0编程