段瑞永 闫吉玲
摘 要:为简化铣孔加工的程序编制,文章采用基于华中数控(HNC-22M)系统的宏程序功能,编写自定义G代码来实现铣孔加工的工艺路线,实现了数控编程指令功能扩展的二次开发,扩展机床功能,简化了程序编写。
关键词:宏程序;G代码;二次开发
1 铣孔加工方式
数控铣床加工孔的方式有多种,对于孔径较大孔的加工,表面有要求,不能在车床装夹上加工时用铣孔。沉孔和阶梯孔可以锪孔,而沉孔、阶梯孔的加工也可使用铣孔加工代替。
在这些孔加工方式中,多为定尺寸刀具加工。铣孔加工、加工孔径尺寸与铣刀直径无关,具有很强的通用性,可大量节省刀具成本,提高机床刀具的利用率和生产效益[1]。
2 铣孔工艺路线设计
华中数控(HNC-22M)系统为用户提供了丰富的宏程序编程指令,允许用户自定义G代码功能,从而要以使用宏程序开发出铣孔的固定循环指令,具有很好的灵活性、通用性,占用机床内存小,可以大大简化程序的编写,降低编程人员的劳动强度,提高工作效率。
根据加工工艺路线要求,参照固定循环格式:(1)定位孔中心坐标。(2)定位到加工起点。(3)下降到加工高度。(4)分层铣削平面圆周直到孔底。(5)孔底动作,通孔直接让刀、阶梯孔、孔底锪平后让刀。(6)抬刀。根据加工要求,对第(4)步分层加工,进行优化设计,采用螺旋线下刀分层加工,使切削工更为平稳,提高了加工质量。对铣削加工方式增加可编程指令,可根据加工要求实现顺铣和逆铣,对孔加工增加外圆加工功能,使G代码可实现内/外轮廓的加工。让刀距离设为默认的固定值#55,可用参数修改[2]。G100代码走刀路线示意如图1所示。
3 G代码设计
格式:G100 X_Y_I_D_K_W_Z_A_B_C_F_
参数说明:
X/Y—孔(圆柱)中心坐标(绝对坐标)。
I—孔(圆柱)半径。
D—刀具半径。
K—螺旋线导程,﹢K向下,﹣K向上。
W/Z—螺旋线起始/终止坐标(绝对坐标),W与Z之差应为导程整数倍。
A—A=2,3,螺旋线用G02/G03走刀,铣削方式顺铣/逆铣。
B—B=1时,孔底锪平,B=0时,孔底不锪平。
C—﹣1外轮廓/1内轮廓。
F—走刀速度。
4 源程序编辑
要实现G100功能还在编辑华中世纪星数控系统用户自定义G代码文件O9999,实现G100功能的源程序为:
%0100
;螺旋线铣削程序 參数出错处理
IF [AR[#23] EQ 0] ;孔位中心X坐标 如果没有定义X
if ar[#1143] eq 0
#23=0 ;如果X省略,且未定义X,X=0
else
#23=#1143 ; 否则调用之前的X
endif
ENDIF
IF [AR[#24] EQ 0] ;孔位中心Y坐标 如果没有定义Y
if ar[#1144] eq 0
#24=0 ;如果Y省略,且未定义Y,Y=0
else
#24=#1144
endif
ENDIF
IF [AR[#0] EQ 0] ;G2/G3 如果没有定义A
if ar[#1120] eq 0
#0=2
else
#0=#1120
endif
ENDIF
IF [#0 NE 2] AND [#0 NE 3]
M-99 ;G2/G3 error
ENDIF
IF [AR[#1] EQ 0] ;定义是否孔底锪平 如果没有定义B
if ar[#1121] eq 0
#1=0
else
#1=#1121
endif
ENDIF
IF [AR[#2] EQ 0] ;定义内/外加工轮廓 如果没有定义C
if ar[#1122] eq 0
#2=1
else
#2=#1122
endif
ENDIF
if #2 eq 0
m-99 ;C error opration
else
#2=#2/abs[#2] ;非1处理
endif
IF [AR[#8] EQ 0] ; 如果没有定义I
#8=#1128
ENDIF
IF [AR[#3] EQ 0] ; 定义刀具半径 如果没有定义D
IF [AR [#1123] EQ 0]
#3=0 ;如果没有定义D,取0
ELSE
#3=#1123
ENDIF
ENDIF
IF [AR[#10] EQ 0] ;螺旋线导程,如果没有定义K,则取#1130
#10=#1130
ENDIF
IF [AR[#22] EQ 0] ;加工起点W,如果没有定义W
#22=#1142
ENDIF
IF [AR[#25] EQ 0] ; 加工起点Z 如果没有定义Z
#25=#1145
ENDIF
if ar[#55] eq 0 ;#55 加工完成后退刀量,刀具离开轮廓的距离,正值表示
#55=2
endif
if ar[#5] eq 0 ;加工速度F
if ar[#1125] eq 0
#5=800 ;默认值F取800
else
#5=#1125
endif
endif
IF [AR[#25] EQ 0] or [AR[#22] EQ 0]or [AR[#8] EQ 0] or [AR[#10] EQ 0] ]
; 如果没有定义孔底Z值、孔底W,螺纹半径I,导程K,则返回
M-99 ; 返回报错
ENDIF
#8=#8-#3*#2 ;螺旋线实际半径
if #8 le 0
m-99
endif
g90 g40 ;使用中心轨迹绝对编程
g0 x[#23+#8-#55*#2] y[#24];下刀
z[#22]
g1 x[#23+#8] f[#5]
#22=#22-#10
while [#22*#10] ge [#25*#10]
g[#0] i[-#8] z[#22]
#22=#22-#10
endw
if #1 eq 1 ;孔底锪平
G[#0] i[-#8]
endif
g91g1 x[-#55*#2] ;抬刀
g90 g0 z5
M99
示例:按照图1尺寸,以φ10铣刀加工φ20的孔,孔底不锪平,程序为G100 X0 Y0 I10 D5 K5 W0 Z-10 A3 B1 C1 F500;孔底锪平,程序为G100 X0 Y0 I10 D5 K5 W0 Z-10 A3 B1 C1 F500。在銑床加工时,可以看出孔底锪平时,在孔底深底机床会再加工一个整圆。
5 结语
使用宏程序设计固定循环指令,可以对数控系统功能实现二次开发,使编程更加简单、便利,大大提高了编程的准确性和程序的可读性,提高了加工质量和生产效率。
[参考文献]
[1]段瑞永.巧设铣床/加工中心工件坐标系技术分析[J].无线互联科技,2016(19):137-138.