基于华中数控(HNC-22M)螺旋线铣孔自定义G代码的应用

2019-12-05 02:49段瑞永闫吉玲
无线互联科技 2019年18期
关键词:宏程序二次开发

段瑞永 闫吉玲

摘   要:为简化铣孔加工的程序编制,文章采用基于华中数控(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.

猜你喜欢
宏程序二次开发
浅谈基于Revit平台的二次开发
西门子Operate高级编程的旋转坐标系二次开发
浅谈Mastercam后处理器的二次开发
应用Fanuc宏程序的球面螺旋加工程序编制
基于Vericut的四轴数控加工宏程序仿真研究
椭圆宏程序在数控车床加工的方法
Micaps3.2 版本二次开发入门浅析
G代码B类宏程序在数控切割参数化图形库中的应用
宏程序编程的几种应用
ANSYS Workbench二次开发在汽车稳定杆CAE分析中的应用