這就能使程序簡潔明了,節(jié)省內(nèi)存空間。但應(yīng)用子程序至少要占用兩個程序名(即主程序和子程序各占1個)。
有的數(shù)控系統(tǒng)程序總數(shù)只有64個,當(dāng)加工的產(chǎn)品種類較多時,只能刪除原有的其他程序。另外,在執(zhí)行子程序過程中出現(xiàn)問題(比如崩刀),再重新調(diào)試執(zhí)行是件很麻煩的事。
而宏程序是通過數(shù)學(xué)計算或邏輯運算,以變量的不斷變化進行編程,程序非常簡潔且邏輯性強。特別是加工一些非圓曲線時(如橢圓、拋物線等),更顯示出宏程序的優(yōu)越性。
當(dāng)我們在加工形狀相同而尺寸不同的產(chǎn)品時,只需要改變其中的的變量就解決問題了。一般情況下,宏程序的編寫都較為復(fù)雜,對編程人員和操作人員的要求較高,且其應(yīng)用受機床數(shù)控系統(tǒng)宏程序功能的限制——有的機床只能運行宏程序功能A,不支持宏程序功能B,有的舊系統(tǒng)甚至不帶宏程序功能。
如果將子程序和宏程序結(jié)合起來使用,就可以相互取長補短,使編程和加工調(diào)試都方便快捷,為生產(chǎn)節(jié)省輔助時間,提高生產(chǎn)效率。編程人員和操作人員只需要懂得一些簡單的宏程序知識就能應(yīng)付自如。下面就以兩個例子說明子程序與宏程序在數(shù)控車削中的綜合運用。
一、一次裝夾車多件
在車削加工中,當(dāng)需加工多個相同的精度要求較高的小零件時,為避免機床的重復(fù)起動,應(yīng)用子程序?qū)崿F(xiàn)一次裝夾車多件較為理想。是一件較薄的螺紋栓,直徑為30mm,兩邊倒角1mm×45º。
這里的要求為:毛坯Ф32mm,右端面中心為工件坐標(biāo)原點,一次裝夾加工10件。工件伸出約100mm。切斷刀刀寬2.5mm,左刀點對刀。采用廣州數(shù)控系統(tǒng)980TDA,前刀架,具體編程如下。
O1234;
G50 X100. Z100.;定義工件坐標(biāo)系
T0101;外圓車刀
M03 S500; 主軸正轉(zhuǎn),500r/min
G00 X32. Z2.;
G90 X30. Z-90. F100; 粗加工外圓
S1000;
G00 X28.;
G01 Z0. F100;精加工外圓
G01 X29.8 Z-1. F50;
G01 Z-85.;長度要保證可加工10個工件
G00 X100. Z100.;退回換刀點
S800;
T0202;60º螺紋車刀
G00 X32. Z2.;
G92 X29. Z-85. F1;加工螺紋,螺距為1mm
G92 X28.85 Z-85. F1;
G92 X28.8 Z-85. F1;
G00 X100. Z100.;退回換刀點
M00;程序暫停,檢驗螺紋
M03 S600;
T0303;切斷刀,刀寬2.5mm
G00 X31. Z0.;定位
#1=2.5;宏變量輸入刀寬值
#2=#1+5.3; 宏變量輸入每次移動值
M98 P104321; 調(diào)用子程序(O4321)10次
G00 X100. Z100.; 退回換刀點
T0101;
M30; 主程序結(jié)束
子程序:
O4321;
G94 X-0.5 W-0.1 F60;精車右端面
GOO W-#2;移動一個切斷距離
G94 X10 F60;先開槽
G94 X27.6 W0 R1.7;工件左邊倒角,留0.2mm余量給下道工序車左端面
G94 X27.8 W0 R-1.6;下一個工件的右邊倒角,并留0.1mm余量精車端面
G94 X-0.5 W0.1 R0;切斷
M99;子程序結(jié)束返回
這樣編程的好處在于,如果在加工過程中,切斷刀磨損或折斷,在刃磨好或更換切斷刀后,重新對刀,只需更改宏變量(#1)和子程序的調(diào)用次數(shù),然后定位到“G00 X31.Z0.”,按“循環(huán)起動”就可以繼續(xù)加工了。
二、大凹圓弧的加工
車削大凹圓弧,由于直徑方向尺寸相差太大,無法一二次走刀來完成加工。若采用G73固定循環(huán)指令編程,則空走刀過多,影響生產(chǎn)率效。
若用切槽刀進行開粗,圓頭刀半精、精加工,雖然加工效率較快,但需手工計算或利用CAD繪圖找出相應(yīng)點的坐標(biāo),所需輔助時間較長。并且,用切槽刀開粗,徑向受力大,不適合工件剛性不夠的情況下使用。
此時,若使用子程序和宏程序的混合編程進行加工,則能較好地解決上述問題。如圖2,在直角三角形ABC中,B為R31的圓心。已知AC=(80-10-10)/2=30,BC=31,。故取開始切削的圓弧半徑為8mm,切削的圓弧半徑每次增加1mm。如圖3,計算出EF≈5.5mm,并計算出每次Z軸移動量約為1.374mm。編程如下(只編寫加工凹圓弧部分,使用的圓頭車刀半徑為2mm,圓心作為對刀點):
O4567;
G50 X100. Z100.;定義工件坐標(biāo)系
M03 S500;主軸正轉(zhuǎn),500r/min
T0303;圓弧車刀,R=2mm
G00 X84. Z-40.;定位到E點
#1=1.374;每次Z軸移動量
#2=5.5-#1;定位初值
#3=7.;半徑初值
#4=1.;半徑增值
G00 W#2;
M98 P107654;調(diào)用子程序
G00 G42 X84 Z-10 D03; 執(zhí)行半徑補償
G01 X80 Z10 F60;
G02 X80 Z-70 R31; G01 X84 ;最后精加工
G00 G40 X100 Z100; T0101;取消半徑補償
M30; 主程序結(jié)束
O7654; 子程序
G00 W#1;Z軸正向進給1.374mm
#2=#2+#1;
#3=#3+#4;半徑值加1mm
#5=#2+#2;
G02 W-#5 R#3 F80; 從右至左加工圓弧
G00 W-#1;Z軸負向進給1.374mm
#2=#2+#1;
#3=#3+#4;半徑值加1mm
#5=#2+#2;
G03 W#5 R#3 F80; 從左至右加工圓弧
M99;子程序結(jié)束返回
上述編程每次在半徑方向進給1mm,調(diào)用1次子程序半徑方向進給2mm,加工過程沒有多余的空走刀,加工效率極高。在子程序中不執(zhí)行刀具半徑補償,所以刀具要偏移輪廓超過一個刀具半徑值。
如果機床不支持刀具半徑補償功能,可以在編程時人工編移一個刀具半徑進行加工。如果機床只能執(zhí)行宏程序功能A而不能執(zhí)行宏程序B的話,可以用宏程序的加法運算指令“G65 H02”來代替上述宏變量的加法運算,不會影響加工效果。