钻削深孔通用宏子程序的编制

发布日期:2012-10-28    兰生客服中心    浏览:5567

  如前所述,通用固定循环指令在深孔钻削编程中存在着刀具冷却、台阶深孔的加工空运行时间较长、排屑困难等问题。如果采用CAM软件进行自动编程,即使采用G01、G00等简单指令产生程序,也必须进行大量的手工修改才可避免上述问题,编程效率较低,且易出错。经过试验,笔者以FANUC系统为例,编制了一个通用宏子程序,利用G65功能调用该子程序,较好地解决了刀具冷却、排屑等深孔加工问题。

  3.1、G65调用子程序的格式用G65指令调用子程序的格式为:G65P0020X_Y_Z_R_Q_P_K_F_;X、Y为孔的定位坐标(#23、#24)。

  3.2钻深可变式深孔钻加工宏程序

  主程序的结构

  O1125

  S1000M03

  G54G90G00X0Y0Z30程序开始,定位于G54原点上方

  G65P0020Z-65R1Q20F200D0.5调用宏程O1126

  S004T0.2

  M30程序结束

  自变量赋值说明(通用)

  #7=(D)每次进给前的缓冲高度(绝对值)Depth

  #9=(F)切削进给速度Feed

  #17=(Q)第1次钻深(绝对值)

  #18=(R)R点(快速趋近点)坐标(Z坐标值,非绝对值)

  #19=(S)钻深每次递减比例Scale(经验值可取0.3~0.5)

  #20=(T)最小钻深比例,最小钻深为T*Q

  #26=(Z)孔深(Z坐标值,非绝对值)

  以下为类似于G73式的钻深可变式深孔钻加工宏程序。主要是为了在加工条件允许的情况下追求更高效率而采用较为激进的断屑方式,如图3。

  宏程序(G73式)

  O1126

  G00Z#18//快速趋近R点

  #27=#18-#26//总钻深(绝对值)

  #16=#17//第1次钻深(即赋#16初始值为#17)

  #1=#20*#17//最小钻深

  #27=#27-#16//第1次钻后的剩余深度(绝对值)

  WHILE[#27GT0]DO1//如钻深未到底,则钻孔,即循环1继续

  G91G01Z-#16F#9//每次向下钻深进给1个#16(增量值)

  G00Z#7//快速回退1个#7(增量值)

  IF[#16GE#1]GOTO1//如钻深#16≥最小钻深#1,转至N1行

  N1#16=#16*#19//钻深#16按设定比例#19依次递减(绝对值)

  IF[#16GE#1]GOTO3//如#16≥#1,转至N3行(此时已执行完N1行)

  IF[#16LT#1]GOTO2//如钻深#16<最小钻深#1,转至N2行

  N2#16=#1//钻深#16=最小钻深#1

  IF[#16LT#1]GOTO3//如#16<#1,转至N3行(此时已执行完N2行)

  N3#27=#27-#16//剩余深度(绝对值)#27依次递减每次钻深#16

  G01Z-#7//向下钻1个回退量#7(增量值)

  END1//钻深不足1次(此时0<#27<#1)时循环1结束

  #16=#16+#27//恢复剩余深度(绝对值)

  G01Z-#16//完成最后1段钻深加工

  G80G90G00Z30//返回安全平面并取消固定循环

  M99//宏程序结束返回

  以下为类似于G83式的钻深可变式深孔钻加工宏程序。主要用于深径比较大、材料加工性能较差、加工条件较恶劣的深孔钻削加工,因此采用较为保守和彻底的排屑方式,即每次向下进给一个钻深后,都快速返回到R点平面,如图4。

  宏程序(G83式)

  O1126

  G00Z#18//快速趋近R点

  #27=#18-#26//总钻深(绝对值)

  #16=#17//第1次钻深(即赋#16初始值为#17)

  #1=#20*#17//最小钻深

  #27=#27-#16//第1次钻后的剩余深度(绝对值)

  #4=#18-#16//第1次钻深进给的Z坐标目标值(非绝对值)

  WHILE[#27GT0]DO1//如钻深未到底,则钻孔,即循环1继续

  G01Z#4F#9//每次钻深进给至Z#4面

  G00Z#18//快速返回至R点平面

  Z[#4+#7]//快速下降至Z#4面上#7处(#7由D赋值)

  IF[#16GE#1]GOT01//如钻深#16≥最小钻深#1,转至N1行

  N1#16=#16*#19//钻深#16按设定比例#19依次递减(绝对值)

  IF[#16GE#1]GOTO3//如#16≥#1,转至N3行(此时已执行完N1行)

  IF[#16LT#1]GOTO2//如钻深#16<最小钻深#1,转至N2行

  N2#16=#1//钻深#16=最小钻深#1

  IF[#16LT#1]GOTO3//如#16<#1,转至N3行

  #4=#4-#16//#4依次递减#16

  N3#27=#27-#16//剩余深度(绝对值)#27依次递减每次钻深#16

  END1//钻深不足1次(此时0<#27<#1)时循环1结束

  #16=#16+#27//恢复剩余深度(绝对值)

  G01Z[#4-#16]//完成最后1段钻深加工

  G80Z30//返回安全平面并取消固定循环

  M99//宏程序结束返回

更多相关信息