胡翔云
(湖北職業(yè)技術(shù)學院機電工程學院,湖北孝感432000)
隨著CAD/CAM功能越來越強大,宏程序在數(shù)控編程中的作用被嚴重低估,有人甚至認為宏程序編程最終將被計算機自動編程技術(shù)所取代。實際上,宏程序在數(shù)控編程中的用途十分廣泛,特別是在高效批量編程和企業(yè)特定加工特征的編程方面有不可替代的優(yōu)勢[1]。作者就宏程序在數(shù)控編程中的用途進行說明。
一般數(shù)控系統(tǒng)只有直線插補和圓弧插補功能,而沒有橢圓、雙曲線、拋物線等方程曲線插補功能。若要加工這些方程曲線輪廓或它們所形成的曲面,可以建立用一系列短的直線段或圓弧段逼近方程曲線的數(shù)學模型,然后利用數(shù)控系統(tǒng)中的循環(huán)指令,讓數(shù)控系統(tǒng)自動計算短直線段或短圓弧段與方程曲線的節(jié)點坐標,從而將方程曲線的編程轉(zhuǎn)化為對一系列短直線或短圓弧段的數(shù)控編程,實現(xiàn)對方程曲線的近似加工[2]。宏程序在這方面的應(yīng)用文獻最多,這里不再作進一步的說明。
對于形狀相似而尺寸不同的零件,其加工過程是相似的,編程方法也相似。這類加工特征如果采用計算機自動編程,需要對每個不同尺寸的加工特征分別編寫程序,且均要依賴經(jīng)驗豐富的CAD/CAM工程師才行。如果采用宏程序編程,可以用宏變量代表編程尺寸,然后編制參數(shù)化的宏程序 (通常編制成子程序),存入數(shù)控系統(tǒng)。當需要加工該類零件時,只需通過主程序調(diào)用這個宏程序 (通常用G65或G66代碼調(diào)用),同時對宏程序中的變量賦值就可以了。由于該宏程序?qū)嶋H上是對一類零件編制的,因而通常也稱為批量編程[3]。編制這種宏程序 (子程序)時雖然要花比較多的時間和精力,但一旦編制成功,數(shù)控機床操作人員就不必理解宏程序中每個程序段的含義,只需了解宏變量或其字符所代表的編程尺寸就行了。當有類似加工特征出現(xiàn)時,只需用主程序調(diào)用這個宏程序就行了,提高了加工程序的編制速度,方便操作人員使用。如在FUNAC 0i數(shù)控系統(tǒng)中,主程序中的程序段 G65P8011A23.0X100.0Y30.0 表示主程序調(diào)用宏程序O8011,并給宏程序中的宏變量#1、#24、#25分別賦值 (具體數(shù)值分別為23、100、30)。其中,A、X、Y分別為某類零件的編程尺寸,這是操作人員應(yīng)該了解的。至于宏程序O8011是如何編制的,每個程序段是什么含義,則不必了解。
目前,市場主流數(shù)控系統(tǒng)為了簡化編程,均帶有一些固定循環(huán),如數(shù)控銑床中的孔加工固定循環(huán),數(shù)控車床中的內(nèi) (外)徑粗、精車固定循環(huán)功能等。但是相對于生產(chǎn)企業(yè)數(shù)量眾多的相似加工特征而言,數(shù)控系統(tǒng)自帶的固定循環(huán)數(shù)量往往是不夠的。這時,用戶可以將重復(fù)出現(xiàn)的一類加工特征編制成參數(shù)化的宏程序,然后通過設(shè)置合適的參數(shù)即可將該宏程序定制成固定循環(huán)功能[4],定制成功的固定循環(huán)與數(shù)控系統(tǒng)自帶的固定循環(huán)用法完全一樣。定制固定循環(huán)的方法是:
(1)從控制系統(tǒng)限定范圍內(nèi)指定宏程序號。對于FUNAC 0系列數(shù)控系統(tǒng)的宏程序,必須在O9010~O9019范圍內(nèi)指定宏程序名。
(2)把選擇的G代碼或M代碼作為宏程序名對應(yīng)的系統(tǒng)參數(shù),對系統(tǒng)參數(shù)進行設(shè)置。
如FUNAC 0系列數(shù)控系統(tǒng)中的系統(tǒng)變量#220~#229分別對應(yīng)宏程序名O9010~O9019,如果要將宏程序O9010設(shè)置成固定循環(huán)G251,只需將系統(tǒng)參數(shù)#220中的數(shù)值寫成251就行了。
宏程序可以用來檢查許多錯誤條件 (如宏變量賦值錯誤、在線測量得到的數(shù)據(jù)超差等),并以報警或出錯條件的形式給數(shù)控機床操作人員以提示。在FUNAC 0i數(shù)控系統(tǒng)中,報警信息是通過系統(tǒng)變量#3000實現(xiàn)的。如在某程序中,要檢查半徑R是否在0~50范圍內(nèi)取值,如果超出該范圍,給出“半徑太大的提示”,程序如下:
O1234(加工主程序)
G65 P 9000 R2.5;主程序調(diào)用宏程序O9000,并給變量#18(對應(yīng)賦值字母為R)賦值2.5。
…
M30;
O9000(子程序)
…
N50 IF [#18GT50.0] GOTO1005;如果條件R≥50成立,跳轉(zhuǎn)到N1005程序段,否則開始執(zhí)行下面的程序段 (N60)。
N60…
N1005#3000=115(Radius is too large);115號報警,提示信息:半徑太大了
M99;
將測量元件 (通常為探針)安裝在刀庫中,給探針一個專門的編號 (刀具號)。要進行測量時,通過自動換刀指令選定探針,并安裝到主軸上進行測量。具有自動檢測功能的數(shù)控機床必須具有“接觸跳出”功能。在FUNUC 0i數(shù)控系統(tǒng)中用G31指令實現(xiàn)這種功能。其作用是:G31指令控制探針定位到目標點,如果在到達目標點之前探針接觸到工件,程序跳出余下的運動并存儲當前位置信息,以保護探針不會被損壞,如圖1所示。對位置信息進行處理,可以測量高度、寬度等長度尺寸。運用宏程序,還可以將實測值與設(shè)計值進行比較,并判別尺寸是否超差。從程序中提取位置信息進行數(shù)學處理要用到系統(tǒng)變量。下面是用于測量孔直徑并與設(shè)計值進行比較的程序,從中可以看出宏程序用于測量時的基本方法。
圖1 G31接觸跳出示意圖
……
G91G01X [#7-#24] F [4*#9];//從目標右側(cè)移開Δx(X+方向)
G31X[#7+#24]F#9;//在探針接觸到孔壁時跳出其余的X軸運動 (X+方向)
#103=#5061;//有跳出信號時存儲X的位置信息 (X+方向)
G90G01X#101F[4*#9];//在X方向上返回到起始點
G91X- [#7-#24];//從目標左側(cè)移開 Δx(X-方向)
G31X-[#7+#24]F#9;//在探針接觸到孔壁時跳出其余的X軸運動 (X-方向)
#104=#5061;//有跳出信號時存儲X的位置信息 (X-方向)
G90G01X#101F[4*#9];//在X方向上返回到起始點
#105=ABS[#103-#104];//計算 X 軸方向的兩極限位置探針的球心距
G91G01Y[#7-#25];//從目標一側(cè)移開Δy(9 mm)(Y+方向)
G31Y[#7+#25]F#9;//在探針接觸到孔壁時跳出其余的Y軸運動 (Y+方向)
#106=#5062;//有跳出信號時存儲Y的位置信息 (Y+方向)
G90G01Y#102F[4*#9];//在Y方向上返回到起始點
G91Y-[#7-#25];//從目標另一側(cè)移開 Δy(Y-方向)
G31Y-[#7+#25]F#9;//在探針接觸到孔壁時跳出其余的Y軸運動 (Y-方向)
#107=#5062;//有跳出信號時存儲Y的位置信息 (Y-方向)
G90G01Y#102F[4*#9];//在Y方向上返回到起始點
#108=ABS[#106-#107];//計算 Y軸方向的兩極限位置探針的球心距
#109= [#105+#108] /2+2*#18;//計算孔的實測直徑 (取X、Y兩個方向的平均值)
IF[[#109-#7] LE0] GOTO970;//比較實測值與預(yù)期值,如小于預(yù)期值,跳轉(zhuǎn)到N970進行報警提示
……
數(shù)控機床加工時采用的偏置有3種類型:工件偏置 (編程原點選擇、鏡像、旋轉(zhuǎn)等)、刀具長度偏置、刀具半徑偏置。使用宏程序,偏置量可以通過程序輸入、清除、檢查、更新,而不需要在停機狀態(tài)下通過手動輸入。如FUNUC控制器中通過系統(tǒng)變量#2501、#2601可對工件坐標系G54進行更新。如:
#2501=#2501+#106;//將#106中的數(shù)值加到G54坐標系中X坐標中
#2601=#2601+#110;//將#110中的數(shù)值加到G54坐標系中Y坐標中
程序運行后,工件坐標系自動進行了更新,而不需要手動更新,這種方法在工件原點定位 (如將工件原點定位于孔的中央)中應(yīng)用較多。一般要用探針測量后才能得到準確的偏置值。
宏程序還可用于加工計時、刀具壽命管理、刀具磨損和折斷的檢測、工作臺或托盤分度、已加工零件的計數(shù)、控制程序的外部輸出等眾多方面。這里僅以宏程序用于計時的應(yīng)用作說明。
在FUNUC控制器中,#3001、#3002、#3011、#3012是控制時間的系統(tǒng)變量,其作用如表1所示。利用它們可以對程序運行時間進行記時。如:
#3001=0;//復(fù)位清零,從0開始計數(shù)
M98P8201;//調(diào)用子程序O8201
N109;//空程序段用來保證計數(shù)值的精確性
#101=#3001;//提取計時值,得到執(zhí)行子程序所需要的時間
M00;//程序暫停,以檢查變量的顯示值
……
表1 控制時間的系統(tǒng)變量
宏程序在數(shù)控編程及數(shù)控機床某些動作的控制方面有十分廣泛的用途,在很多方面的作用是CAD/CAM技術(shù)所不能替代的。數(shù)控系統(tǒng)配備的用戶宏程序功能為用戶開發(fā)個性化的功能提供了方便。
【1】SMID Peter.FANUC數(shù)控系統(tǒng)用戶宏程序與編程技巧[M].羅學科,趙玉俠,劉瑛,等,譯.北京:化學工業(yè)出版社,2011:239-251.
【2】姜海,王明旭,田春艷.宏指令編程在函數(shù)方程曲線加工中的應(yīng)用[J].機床與液壓,2002(5):158-161.
【3】郭勝輝.參數(shù)編程在數(shù)控車削加工中的應(yīng)用[J].組合機床與自動化加工技術(shù),2010(2):69-72.
【4】胡翔云.橢圓臺類零件加工數(shù)學模型及宏程序[J].煤礦機械,2012(7):146-148.