段瑞永 閆吉玲
摘 ? 要:為簡化銑孔加工的程序編制,文章采用基于華中數(shù)控(HNC-22M)系統(tǒng)的宏程序功能,編寫自定義G代碼來實現(xiàn)銑孔加工的工藝路線,實現(xiàn)了數(shù)控編程指令功能擴(kuò)展的二次開發(fā),擴(kuò)展機(jī)床功能,簡化了程序編寫。
關(guān)鍵詞:宏程序;G代碼;二次開發(fā)
1 ? ?銑孔加工方式
數(shù)控銑床加工孔的方式有多種,對于孔徑較大孔的加工,表面有要求,不能在車床裝夾上加工時用銑孔。沉孔和階梯孔可以锪孔,而沉孔、階梯孔的加工也可使用銑孔加工代替。
在這些孔加工方式中,多為定尺寸刀具加工。銑孔加工、加工孔徑尺寸與銑刀直徑無關(guān),具有很強的通用性,可大量節(jié)省刀具成本,提高機(jī)床刀具的利用率和生產(chǎn)效益[1]。
2 ? ?銑孔工藝路線設(shè)計
華中數(shù)控(HNC-22M)系統(tǒng)為用戶提供了豐富的宏程序編程指令,允許用戶自定義G代碼功能,從而要以使用宏程序開發(fā)出銑孔的固定循環(huán)指令,具有很好的靈活性、通用性,占用機(jī)床內(nèi)存小,可以大大簡化程序的編寫,降低編程人員的勞動強度,提高工作效率。
根據(jù)加工工藝路線要求,參照固定循環(huán)格式:(1)定位孔中心坐標(biāo)。(2)定位到加工起點。(3)下降到加工高度。(4)分層銑削平面圓周直到孔底。(5)孔底動作,通孔直接讓刀、階梯孔、孔底锪平后讓刀。(6)抬刀。根據(jù)加工要求,對第(4)步分層加工,進(jìn)行優(yōu)化設(shè)計,采用螺旋線下刀分層加工,使切削工更為平穩(wěn),提高了加工質(zhì)量。對銑削加工方式增加可編程指令,可根據(jù)加工要求實現(xiàn)順銑和逆銑,對孔加工增加外圓加工功能,使G代碼可實現(xiàn)內(nèi)/外輪廓的加工。讓刀距離設(shè)為默認(rèn)的固定值#55,可用參數(shù)修改[2]。G100代碼走刀路線示意如圖1所示。
3 ? ?G代碼設(shè)計
格式:G100 X_Y_I_D_K_W_Z_A_B_C_F_
參數(shù)說明:
X/Y—孔(圓柱)中心坐標(biāo)(絕對坐標(biāo))。
I—孔(圓柱)半徑。
D—刀具半徑。
K—螺旋線導(dǎo)程,﹢K向下,﹣K向上。
W/Z—螺旋線起始/終止坐標(biāo)(絕對坐標(biāo)),W與Z之差應(yīng)為導(dǎo)程整數(shù)倍。
A—A=2,3,螺旋線用G02/G03走刀,銑削方式順銑/逆銑。
B—B=1時,孔底锪平,B=0時,孔底不锪平。
C—﹣1外輪廓/1內(nèi)輪廓。
F—走刀速度。
4 ? ?源程序編輯
要實現(xiàn)G100功能還在編輯華中世紀(jì)星數(shù)控系統(tǒng)用戶自定義G代碼文件O9999,實現(xiàn)G100功能的源程序為:
%0100
;螺旋線銑削程序 參數(shù)出錯處理
IF [AR[#23] EQ 0] ;孔位中心X坐標(biāo) 如果沒有定義X
if ar[#1143] eq 0
#23=0 ? ? ? ? ? ? ? ?;如果X省略,且未定義X,X=0
else
#23=#1143 ? ? ? ? ? ? ? ?; 否則調(diào)用之前的X
endif
ENDIF
IF [AR[#24] EQ 0] ;孔位中心Y坐標(biāo) 如果沒有定義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] ? ? ? ;定義內(nèi)/外加工輪廓 如果沒有定義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] ;螺旋線導(dǎo)程,如果沒有定義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 ?;默認(rèn)值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,導(dǎo)程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。在銑床加工時,可以看出孔底锪平時,在孔底深底機(jī)床會再加工一個整圓。
5 ? ?結(jié)語
使用宏程序設(shè)計固定循環(huán)指令,可以對數(shù)控系統(tǒng)功能實現(xiàn)二次開發(fā),使編程更加簡單、便利,大大提高了編程的準(zhǔn)確性和程序的可讀性,提高了加工質(zhì)量和生產(chǎn)效率。
[參考文獻(xiàn)]
[1]段瑞永.巧設(shè)銑床/加工中心工件坐標(biāo)系技術(shù)分析[J].無線互聯(lián)科技,2016(19):137-138.