首先聲明此文轉(zhuǎn)載于數(shù)控機(jī)床網(wǎng),
一、引言
目前,我國(guó)現(xiàn)代制造技術(shù)飛速發(fā)展,與世界制造業(yè)先進(jìn)水平的差距不斷縮小, 數(shù)控加工技術(shù)在我國(guó)得到廣泛應(yīng)用,越來(lái)越受到人們的重視。數(shù)控加工中很重要的一部分就是編程,它既是數(shù)控技術(shù)的重要組成部分,也是數(shù)控加工的關(guān)鍵技術(shù)之一,數(shù)控程序編制的效率和質(zhì)量在很大程度上決定了產(chǎn)品的加工精度和生產(chǎn)效率。
在我國(guó),有相當(dāng)多數(shù)控銑床(包括加工中心)都是應(yīng)用在模具行業(yè),大部分模具廠都應(yīng)用CAD/CAM軟件。CAD/CAM軟件出現(xiàn)以后,自動(dòng)編程得到廣泛應(yīng)用,手工編程、宏程序應(yīng)用的空間日趨縮小,究其原因就是大家對(duì)手工編程不重視,對(duì)宏程序不熟悉。其實(shí)手工編程是自動(dòng)編程的基礎(chǔ),宏程序是手工編程的高級(jí)形式,是手工編程的精髓,也是手工編程的最大亮點(diǎn)和最后堡壘。 現(xiàn)在有一種說(shuō)法比較流行:“宏程序沒(méi)有啥用!”, 筆者并不贊成。在實(shí)際工作中,宏程序有廣泛的應(yīng)用空間,并且能夠方便手工編程,鍛煉操作者的編程能力,又能解決自動(dòng)編程在生產(chǎn)實(shí)際工作中存在的不足。
二、宏程序簡(jiǎn)介
宏程序是以變量的組合,通過(guò)各種算術(shù)和邏輯運(yùn)算,轉(zhuǎn)移和循環(huán)等命令,而編制的一種可以靈活運(yùn)用的程序,只要改變變量的值,即可以完成不同的加工和操作。
用戶宏程序與普通程序的區(qū)別在于:在用戶宏程序本體中,能使用變量,可以給變量賦值,變量間可以運(yùn)算,程序可以跳轉(zhuǎn);而普通程序中,只能指定常量,常量之間不能運(yùn)算,程序只能順序執(zhí)行,不能跳轉(zhuǎn),因此功能是固定的,不能變化。用戶宏功能是用戶提高數(shù)控機(jī)床性能的一種特殊功能。宏程序可以簡(jiǎn)化程序的編制,提高工作效率。宏程序可以像子程序一樣用一個(gè)簡(jiǎn)單的指令調(diào)用。
三、宏程序的技術(shù)特點(diǎn)
1、宏程序具有靈活性、通用性和智能性等特點(diǎn)
宏程序注重把機(jī)床功能參數(shù)和編程語(yǔ)言相結(jié)合,溶入了編程人員的智慧。編程人員根據(jù)零件的幾何信息建立相應(yīng)的數(shù)學(xué)模型,完成模塊化的加工程序,除了便于調(diào)用外,還使編程人員從繁瑣的、大量的重復(fù)性工作中解脫出來(lái),這是任何自動(dòng)編程軟件都不能達(dá)到的效果。
而在CAD/CAM軟件中,當(dāng)零件的幾何參數(shù)改變時(shí),都要重新建模,重新設(shè)置加工參數(shù),重新計(jì)算刀具軌跡,重新生成數(shù)控程序。
2、宏程序結(jié)構(gòu)簡(jiǎn)單、閱讀直觀、存儲(chǔ)方便
CAD/CAM軟件生成的程序少則上千行,多則上10萬(wàn)行,可讀性差,存儲(chǔ)容量大,一般的機(jī)床上的內(nèi)存都存不下,因此一般來(lái)說(shuō)除了相對(duì)簡(jiǎn)單的孔系加工、二維輪廓加工以外, 其余絕大部分程序都不得不以DNC方式進(jìn)行在線加工,顯然機(jī)床與電腦之間的傳輸速度成為了影響加工速度的第一個(gè)“瓶頸”因素。除了那些機(jī)床系統(tǒng)內(nèi)置硬盤、或機(jī)床與電腦之間以FDDI、以太網(wǎng)等形式進(jìn)行組網(wǎng)的新型數(shù)控機(jī)床(主要是高速加工機(jī)床)之外,目前占總數(shù)8 0%以下的數(shù)控銑/加工中心都是通過(guò)RS2 32口的串口通訊求實(shí)現(xiàn)DNC在線加工的。在實(shí)際應(yīng)用中,考慮到傳輸效果,DNC在線加工方式下的加工效率要大打折扣。
但宏程序可以彌補(bǔ)這種不足,它結(jié)構(gòu)嚴(yán)緊、分析方便、可讀性好、短小精悍,任何合理的、優(yōu)化的宏程序一般都少于6O行,換算成字節(jié)數(shù),至多不過(guò)2KB的容量。即使是最廉價(jià)的機(jī)床數(shù)控系統(tǒng),也完全容納得下任何復(fù)雜的宏程序。
3、宏程序加工精度高、加工效率高
CAD/CAM軟件生成的數(shù)控程序,是用“直線去逼近曲線曲面”,必然存在計(jì)算誤差、后置處理誤差,就必然使加工精度受到影響,還存在大量的刀具路徑重復(fù)現(xiàn)象,使加工效率下降。
宏程序能直接調(diào)用數(shù)控系統(tǒng)的圓弧插補(bǔ),螺旋插補(bǔ)等指令,能有效地控制刀具路徑,具有運(yùn)算速度快、加工效率高、加工精度高等特點(diǎn)。
四、HNC-21/22M系統(tǒng)中宏程序的應(yīng)用
例1 在銑床或加工中心上鉆削如圖1所示一70x90x15mm方形零件上的矩形網(wǎng)式群孔。鉆孔直徑¢7mm,孔數(shù)H=24。試編寫其宏程序。
解:
工藝設(shè)計(jì)
⑴建立工件坐標(biāo)系,工件左下角為工件坐標(biāo)系X、Y軸的零點(diǎn),工件上表面為
工件坐標(biāo)系Z軸的零點(diǎn),機(jī)床坐標(biāo)系偏置值設(shè)置在G54寄存器中。
⑵刀具與切削參數(shù)
選擇¢7mm的麻花鉆,取主軸轉(zhuǎn)速為800r/min,鉆削進(jìn)給速度為150mm/min;主軸起始位置在零件上方50.0mm,刀具起始切削安全高度為4.0mm,最終加工深度為Z-20.0mm。
⑶加工路線(見圖2)
2、加工程序
OZW01; 文件名
%0001; 主程序號(hào)
N10 T1 M06; 調(diào)用1號(hào)刀
N20 G17 G90 G21 G54 G94 G40 G49 G80; 工藝加工狀態(tài)設(shè)置
N30 G43 G00 Z50.0 H01 S800 M03; 刀具長(zhǎng)度補(bǔ)償,主軸正轉(zhuǎn)
N40 X0.0 Y0.0 M07; 刀具快速移動(dòng)到工件坐標(biāo)零點(diǎn),打開切削液
N50 #2=20.0; 將20.0賦值給#2
#3=10.0; 將10.0賦值給#3
#4=1; 矩形網(wǎng)式孔群行計(jì)數(shù)器置1
#5=1; 矩形網(wǎng)式孔群列計(jì)數(shù)器置1
#30=4.0; 將行數(shù)4.0賦值給#30
#31=6.0; 將列數(shù)6.0賦值給#31
#32=15.0; 將角度15.0賦值給#32
#33=10.0; 將列孔距10.0賦值給#33
#34=10.0; 將行孔距10.0賦值給#34
#10=-20.0; 最終加工深度
#11=4.0; 安全距離
#12=150.0; 切削進(jìn)給速度
N60 M98 P1000; 調(diào)用宏程序
N70 G00 Z100.0 M09; 刀具退到工件上表面100mm處,切削液關(guān)閉
N80 G49; 取消刀具長(zhǎng)度補(bǔ)償
N90 X0 Y0 M05; 刀具退到工件坐標(biāo)零點(diǎn),主軸停止
N100 M30; 程序結(jié)束并返回程序起始段
%1000; 宏程序
N10 WHILE #5LE#31; 如果#5(孔列計(jì)數(shù)值)大于#31(孔列數(shù)),則跳轉(zhuǎn)到N210程序段
N20 WHILE #4LE#30; 如果#4(孔行計(jì)數(shù)值)大于#30(孔行數(shù)),則跳轉(zhuǎn)到N80程序段
N30 #101=[#4-1]*#33; 計(jì)算當(dāng)前孔與第一個(gè)孔的孔中心行間距值
N40 #102=[#5-1]*#34; 計(jì)算當(dāng)前孔與第一個(gè)孔的孔中心列間距值
N50 G01 X[#101*COS[#32*PI/180]+#102*SIN[#32*PI/180]+#2]
Y[#102*COS[#32*PI/180]+#101*SIN[#32*PI/180]+#3] F1000; 機(jī)床移動(dòng)到當(dāng)前加工孔中心的X、Y坐標(biāo)
N60 G81 Z[-#10] R[#11] F[#12] K0; 調(diào)用固定循環(huán)程序鉆定位孔
N70 #4=#4+1; 孔行數(shù)加1
N80 ENDW; 返回循環(huán)體
N90 #4=#30; 將孔行數(shù)賦值給變量#4
N100 WHILE #4GE1; 如果#4小于1,則跳轉(zhuǎn)到N180程序段
N110 #101=[#4-1]*#33; 計(jì)算當(dāng)前孔與第一個(gè)孔的孔中心行間距值
N120 #102=#5*#34; 計(jì)算當(dāng)前孔與第一個(gè)孔的孔中心列間距值
N130 #103=[#31-1]*#34; 孔中心列間距值計(jì)算
N140 IF ABS[#102] GT ABS[#103]; 如果ABS[#102]大于ABS[#103],則跳轉(zhuǎn)到N220程序段
N150 G01 X[#101*COS[#32*PI/180]+#102*SIN[#32*PI/180]+#2]
Y[#102*COS[#32*PI/180]+#101*SIN[#32*PI/180]+#3] F1000;
機(jī)床移動(dòng)到當(dāng)前加工孔中心的X、Y坐標(biāo)
N160 G81 Z[-#10] R[#11] F[#12] K0; 調(diào)用固定循環(huán)程序鉆定位孔
N170 #4=#4-1; 孔行數(shù)減1
N180 ENDW; 返回循環(huán)體
N190 #5=#5+2; 孔列數(shù)加2
N200 #4=1; 行計(jì)數(shù)器置1
N210 ENDW; 返回循環(huán)體
N220 ENDIF;
N230 M99; 子程序結(jié)束,并返回主程序
例2 在銑床或加工中心上鉆削如圖3所示一90x90x15mm方形零件上的圓弧點(diǎn)陣孔群。圓弧點(diǎn)陣孔群零件的圓弧中心絕對(duì)坐標(biāo)為X0=40.0mm,鉆孔直徑¢7mm,弧形半徑I=30.0mm,孔間隔角度D=30°,第一孔的起始角A=15°,孔數(shù)H=4。試編寫其宏程序。
解:
1、 工藝設(shè)計(jì)
⑴建立工件坐標(biāo)系,工件左下角為工件坐標(biāo)系X、Y軸的零點(diǎn),工件上表面為
工件坐標(biāo)系Z軸的零點(diǎn),機(jī)床坐標(biāo)系偏置值設(shè)置在G54寄存器中。
⑵刀具與切削參數(shù)
選擇¢7mm的麻花鉆,取主軸轉(zhuǎn)速為800r/min,鉆削進(jìn)給速度為150mm/min;主軸起始位置在零件上方50.0mm,刀具起始切削安全高度為4.0mm,最終加工深度為Z-20.0mm。
⑶加工路線
采用逆時(shí)針位移鉆削方式鉆削圓弧點(diǎn)陣孔群。
2、加工程序
OZW02; 文件名
%0002; 主程序號(hào)
N10 T1 M06; 調(diào)用1號(hào)刀
N20 G17 G90 G21 G54 G94 G40 G49 G80; 工藝加工狀態(tài)設(shè)置
N30 G43 G00 Z50.0 H01 S800 M03; 刀具長(zhǎng)度補(bǔ)償,主軸正轉(zhuǎn)
N40 X0.0 Y0.0 M07; 刀具快速移動(dòng)到工件坐標(biāo)零點(diǎn),打開切削液
N50 #1=40.0; 圓弧中心的X坐標(biāo)
#2=30.0; 圓弧中心的Y坐標(biāo)
#3=30.0; 圓弧半徑
#4=15.0; 第一孔的起始角
#5=4.0; 圓周上孔數(shù)
#6=30.0; 均布孔間隔度數(shù)
#7=-20.0; 最終加工深度
#8=4.0; 安全距離
#9=150.0; 切削進(jìn)給速度
N60 M98 P2000; 調(diào)用宏程序
N70 G00 Z100.0 M09; 刀具退到工件上表面100mm處,切削液關(guān)閉
N80 G49; 取消刀具長(zhǎng)度補(bǔ)償
N90 X0 Y0 M05; 刀具退到工件坐標(biāo)零點(diǎn),主軸停止
N100 M30; 程序結(jié)束并返回程序起始段
%2000; 宏程序
N10 #100=1; 賦孔計(jì)數(shù)器初始值
N20 WHILE #100LE#5; 如果#100(孔計(jì)數(shù)值)大于#5(孔數(shù)),則跳轉(zhuǎn)到N110程序段
N30 #30=#3*COS[#4*PI/180]; 圓弧中心到圓弧上任意孔中心的橫坐標(biāo)值
N40 #31=#1+#30; 圓弧上任意孔中心的工件絕對(duì)橫坐標(biāo)值
N50 #32=#3*SIN[#4*PI/180]; 圓弧中心到圓弧上任意孔中心的縱坐標(biāo)值
N60 #33=#2+#32; 圓弧上任意孔中心的工件絕對(duì)縱坐標(biāo)值
N70 G90 G00 X[#31] Y[#33] F[#9]; 刀具直線插補(bǔ)到圓弧上任意孔中心上方
N80 G99 G81 Z[#7] R[#8] F[#9] K0; 調(diào)用固定循環(huán)程序鉆孔
N90 #100=#100+1; 孔計(jì)數(shù)器加1
N100 #4=#4+#6; 孔位置角度疊加一個(gè)角度均值
N110 ENDW; 返回循環(huán)體
N120 G80; 取消固定循環(huán)
N130 M99 子程序結(jié)束,并返回主程序
五、結(jié)語(yǔ)
宏程序在現(xiàn)在的加工中都能用到,而且在加工有規(guī)律的工件時(shí)無(wú)論是加工速度還是加工精度都比自動(dòng)編程來(lái)得好,手工編程是基本功,任何時(shí)候都是必須掌握的。不能落在一邊,要利用起來(lái),不能單純的依賴自動(dòng)編程,現(xiàn)在的全國(guó)數(shù)控大賽只允許手工編程,而且國(guó)外的一些數(shù)控相關(guān)的考試都是采用手工編程,不允許使用CAD/CAM 軟件進(jìn)行編程,可見宏程序是很重要的。能用手工編程的工件盡量用手工編程,我們?cè)谄綍r(shí)就應(yīng)該在能用宏程序加工時(shí)把宏程序用上,以鍛煉操作者的編程能力,經(jīng)過(guò)一定的努力宏程序一定能應(yīng)用得很熟練。