殷業(yè)財(cái),馬麗梅,單希林,張劍鋒,隋金玲
(北京石油化工學(xué)院工程師學(xué)院,北京 102617)
車(chē)削中心是在傳統(tǒng)數(shù)控車(chē)床的基礎(chǔ)之上增加了部分簡(jiǎn)單的銑削功能,即加工時(shí),卡盤(pán)帶動(dòng)工件旋轉(zhuǎn),刀塔轉(zhuǎn)到相應(yīng)的車(chē)刀位置時(shí)進(jìn)行車(chē)削加工。而當(dāng)卡盤(pán)帶動(dòng)工件分度旋轉(zhuǎn),C軸旋轉(zhuǎn),刀塔轉(zhuǎn)到銑刀位置,動(dòng)力頭帶動(dòng)銑刀旋轉(zhuǎn)時(shí)進(jìn)行銑削加工,從而實(shí)現(xiàn)對(duì)工件的車(chē)銑復(fù)合加工。車(chē)銑復(fù)合加工提高了數(shù)控加工的效率,車(chē)銑復(fù)合加工設(shè)備的主要優(yōu)勢(shì)在于加工工藝更加靈活、工序更加集中,從而可以縮短產(chǎn)品制造工藝鏈,提高工藝的有效性,減少零件在整個(gè)加工過(guò)程中的裝夾次數(shù),提高位置加工精度[1]。LGMazak-NEXUS 250-ⅡML型機(jī)床即是帶動(dòng)力銑削頭的車(chē)削中心,也被稱(chēng)為簡(jiǎn)單的XZC型車(chē)銑復(fù)合機(jī)床。
由于現(xiàn)在手工編制數(shù)控程序已經(jīng)逐漸被各類(lèi)成熟的自動(dòng)編程軟件取代,而自動(dòng)編程過(guò)程需要將刀具源文件轉(zhuǎn)換成符合機(jī)床本身的數(shù)控指令代碼后才能被機(jī)床識(shí)別加工,因此需要進(jìn)行后置處理。但目前尚沒(méi)有一款CAM軟件能夠通過(guò)其自身攜帶的后處理直接生成能滿足機(jī)床要求的數(shù)控加工程序,通常的做法是在CAM軟件上生成加工程序后,再經(jīng)編程人員對(duì)程序的各個(gè)部分進(jìn)行人工整合來(lái)滿足加工要求,這種做法對(duì)編程人員來(lái)說(shuō)要求較高,同時(shí)還費(fèi)時(shí)費(fèi)力且容易出錯(cuò)。因此針對(duì)此類(lèi)機(jī)床必須開(kāi)發(fā)1套符合其本身的后置處理程序[2-5]。為了解決這個(gè)問(wèn)題,利用NX/Post Builder后處理器構(gòu)造技術(shù)為L(zhǎng)GMazak-NEXUS 250-ⅡML型車(chē)削中心開(kāi)發(fā)一個(gè)能滿足其要求的實(shí)用后處理。
將刀位文件轉(zhuǎn)換成指定數(shù)控機(jī)床能夠執(zhí)行的數(shù)控程序的過(guò)程稱(chēng)為后置處理,后置處理是數(shù)控加工自動(dòng)編程中的一個(gè)重要組成部分[6]。其主要任務(wù)是對(duì)前置處理過(guò)程中生成的刀位源文件進(jìn)行處理,生成特定數(shù)控系統(tǒng)能夠識(shí)別的控制指令[7]。NX/Post Builder后處理器的開(kāi)發(fā)必須在掌握數(shù)控機(jī)床的結(jié)構(gòu)信息、控制系統(tǒng)、編程規(guī)則等基礎(chǔ)上才能進(jìn)行。先是創(chuàng)建機(jī)床與數(shù)控系統(tǒng)相匹配的通用后置處理器的大體框架,然后由用戶自主添加自定義后置處理命令,開(kāi)發(fā)出符合設(shè)備要求的專(zhuān)用后置處理器[8]。開(kāi)發(fā)流程如圖1所示。
由圖1可以看出, LGMazak-NEXUS 250-ⅡML的后處理開(kāi)發(fā)主要包括以下幾項(xiàng)內(nèi)容:
(1)查詢機(jī)床手冊(cè),獲取機(jī)床的主要技術(shù)參數(shù),用于Post Builder中機(jī)床參數(shù)的設(shè)置。LGMazak-NEXUS 250-ⅡML車(chē)削中心主要技術(shù)參數(shù)如表1所示。
表1 NEXUS 250-ⅡML主要參數(shù)Table 1 NEXUS 250-ⅡML main parameter
(2)通過(guò)對(duì)Post Builder中程序和刀軌、NC數(shù)據(jù)定義、輸出設(shè)置等模塊的設(shè)置,實(shí)現(xiàn)LGMazak-NEXUS 250-ⅡML車(chē)削中心車(chē)銑加工指令輸出,主要車(chē)銑指令如表2所示。
表2 NEXUS 250-ⅡML主要車(chē)銑指令Table 2 NEXUS 250-ⅡML Main turn milling instructions
(3)對(duì)輸出的車(chē)銑加工指令進(jìn)行測(cè)試,測(cè)試通過(guò)后,選擇LGMazak-NEXUS 250-ⅡML機(jī)床執(zhí)行后處理程序。
由于車(chē)削中心車(chē)加工和銑加工是獨(dú)立完成的,為了能同時(shí)滿足這2項(xiàng)要求,所開(kāi)發(fā)的后處理要既能滿足車(chē)削加工,又能滿足銑削加工,因此,需要開(kāi)發(fā)2個(gè)后處理程序:一個(gè)是車(chē)削后處理;一個(gè)是銑削后處理,然后用鏈接技術(shù)將車(chē)后處理和銑后處理進(jìn)行集成。將2個(gè)后處理鏈接是關(guān)鍵,解決方法是將銑削模式后處理作為主后處理,再利用MOM_head命令進(jìn)行判斷要調(diào)用哪個(gè)后處理器[9]。
打開(kāi)NX/Post Builder后處理構(gòu)造器,點(diǎn)擊新建,后處理名稱(chēng)命名為XZC-CHE,輸出單位選擇mm,機(jī)床選擇車(chē)床,控制器選擇一般,點(diǎn)擊確定。此時(shí)彈出來(lái)的頁(yè)面中有5個(gè)主要參數(shù),分別是機(jī)床、程序和刀軌、N/C數(shù)據(jù)定義、輸出設(shè)置、虛擬N/C控制器[10],如圖2所示。
在機(jī)床選項(xiàng)中, “參數(shù)線性軸行程限制”參數(shù)中X/Z軸的行程分別為230/575 mm,Y軸為零,如圖3所示。由于在車(chē)床編程中采用的是直徑編程,所以在“軸乘數(shù)直徑編程”中勾選2X,其余參數(shù)為默認(rèn)。
程序和刀軌選項(xiàng)可以定義、修改和用戶化所有機(jī)床動(dòng)作事件的處理方式。在程序選項(xiàng)中,其包括程序起始序列、工序起始序列、刀徑、工序結(jié)束序列、程序結(jié)束序列,分別用來(lái)定義、修改和用戶化程序頭、操作頭、刀軌事件、操作尾和程序尾。不同的數(shù)控系統(tǒng)對(duì)程序的程序頭、程序尾、指令等要求各不相同,同時(shí)又由于編程者的編程習(xí)慣不同,所以產(chǎn)生的程序結(jié)構(gòu)也各不相同。按默認(rèn)選項(xiàng)生成程序結(jié)果如下:
%
N0010 G94 G90 G71
N0020 G92 X0.0 Z0.0
N0030 T01 H01 M06
N0040 G94 G00 X156.347 Z1.05
N0050 G97 S1800 M03
N0060 G95 G01 X153.947 F.25
……
N0130 X-2.4
N0140 X-4.8
N0150 G94 G00 Z.5
N0160 X168.595 Z58.619
N0170 M02
%
生成程序中第1行N0010對(duì)應(yīng)的是程序起始序列,N0020和N0030對(duì)應(yīng)的是工序起始序列,N0170對(duì)應(yīng)的是程序結(jié)束序列,中間部分對(duì)應(yīng)的是刀軌事件。由于主后處理為銑削后處理,程序起始序列執(zhí)行的是銑削程序頭,故此程序第1行將不被執(zhí)行,去除掉。N0020語(yǔ)句是定義機(jī)床在運(yùn)動(dòng)前先使刀具回到機(jī)床的機(jī)械零點(diǎn),此種寫(xiě)法不是NEXUS 250-ⅡML車(chē)削中心的回零格式,要將其改成G28 U0.W0.,U0.是回到X軸零點(diǎn),W0.是返回到Z軸零點(diǎn)。需要注意的是,在返回到X、Z軸零點(diǎn)途中,一定要保證路徑上無(wú)其他干涉物品存在,尤其要考慮機(jī)床尾座的位置,因?yàn)樵谶M(jìn)行每一次換刀動(dòng)作時(shí),卡盤(pán)都是沿著X、Z軸同時(shí)移動(dòng)回到零點(diǎn),因此為了安全起見(jiàn),把W0.去掉,寫(xiě)成G28 U0.,只讓卡盤(pán)運(yùn)動(dòng)到X軸極限位置。在刀具回零點(diǎn)完成后添加M01選擇停指令,這是為了觀察刀具在X軸的零點(diǎn)位置換刀時(shí)能不能與工件產(chǎn)生干涉,一般情況下標(biāo)準(zhǔn)刀具不會(huì)存在這個(gè)問(wèn)題,但是非標(biāo)刀具就可能會(huì)有類(lèi)似情況發(fā)生,所以在換刀前需要停下機(jī)床確定一下刀具的換刀位置是否安全。N0030是換刀語(yǔ)句,此語(yǔ)句是普通數(shù)控銑床換刀格式,不符合車(chē)床的要求,要改成車(chē)床T0101換刀格式,前一個(gè)01代表刀具號(hào),后一個(gè)01代表刀具長(zhǎng)度偏置號(hào)。再添加M08切削液開(kāi)指令,如圖4所示。
這樣程序的開(kāi)頭就設(shè)定好了,程序頭如下:
%
N0010 T0101
N0020 G28 U0.
N0030 M01
N0040 M08
……
在N0040和N0060程序段出現(xiàn)了G94、G95指令,G94表示的是每分鐘進(jìn)給量,G95表示的是每轉(zhuǎn)進(jìn)給量,這2個(gè)指令適用于數(shù)控銑床或加工中心,在車(chē)削中不適用,所以要將其去掉。選擇程序和刀軌選項(xiàng)中的刀徑運(yùn)動(dòng)選項(xiàng),找到線性移動(dòng)、圓周移動(dòng)中的G94指令,將其刪除,其結(jié)果如圖5所示。
程序結(jié)尾處刀具軌跡結(jié)束后,添加G28 U0.,使刀具回到X軸極限位置。這樣做的目的是:一是為下一把刀具的更換提前做好準(zhǔn)備;二是便于對(duì)工件的已加工部分進(jìn)行測(cè)量檢驗(yàn);三是避免刀具停留位置與工件、機(jī)床尾座距離過(guò)近而在下一步操作中發(fā)生干涉現(xiàn)象。添加M09切削液關(guān)指令。N0170程序末尾將M02換成M30,M02是停止指令,完成工件加工程序段的所有指令后,使主軸、進(jìn)給和冷卻液停止;M30也是停止指令,完成停止動(dòng)作后,重新復(fù)位,除完成M02指令功能外,還使儲(chǔ)存器中的加工程序返回到初始狀態(tài),即用M02指令結(jié)束程序。若要重新執(zhí)行就要重新調(diào)用該程序,再按“循環(huán)啟動(dòng)”。用M30指令結(jié)束程序,執(zhí)行后不退出該程序,而是回到程序開(kāi)頭,若要重新執(zhí)行,只需按“循環(huán)啟動(dòng)”。程序結(jié)束設(shè)置如圖6所示。
點(diǎn)擊新建,后處理名稱(chēng)命名為XZC-XI,后處理輸出單位選擇mm,機(jī)床選擇銑,點(diǎn)開(kāi)3軸選中3軸車(chē)銑(XZC),點(diǎn)擊確定,如圖7所示。在彈出的機(jī)床選項(xiàng)中, “參數(shù)線性軸行程限制”同車(chē)床設(shè)置相同,同時(shí)在“軸乘數(shù)直徑編程”中勾選2X和2I,其余參數(shù)為默認(rèn)。設(shè)定動(dòng)力銑削主軸平行于Z軸,在初始主軸選項(xiàng)中選擇Z軸。在機(jī)床模式中,鏈接前面已開(kāi)發(fā)好的車(chē)削后處理,先選擇“簡(jiǎn)單車(chē)銑”,打開(kāi)保存好的XZC-CHE后處理,完成后再返回選擇“XZC銑”選項(xiàng),如圖8所示。在旋轉(zhuǎn)軸定義中,將旋轉(zhuǎn)軸定義為C軸,軸旋轉(zhuǎn)由于卡盤(pán)分度旋轉(zhuǎn)順時(shí)針為正,所以旋轉(zhuǎn)法向軸限制設(shè)定為最小值-360,最大值360,其余參數(shù)默認(rèn)。
程序頭、程序尾設(shè)置同車(chē)削一樣。之前提到此后處理為主后處理,程序起始序列的程序開(kāi)始部分將被執(zhí)行,為了減小程序所占內(nèi)存,在該部分去掉程序段號(hào)。
NEXUS 250-ⅡML車(chē)削中心的車(chē)削和銑削編程指令大部分相同,但因主軸旋轉(zhuǎn)對(duì)象不同,對(duì)于同一動(dòng)作的描述要加以區(qū)分,車(chē)削用M03表示主軸正轉(zhuǎn),銑削則用M203表示主軸正轉(zhuǎn);車(chē)削反轉(zhuǎn)用M04,銑削反轉(zhuǎn)用M204表示;車(chē)削停轉(zhuǎn)用M05,銑削停轉(zhuǎn)用M205,因此在此處理中要將M03改成M203,M04改成M204,M05改成M205。生成程序結(jié)果如下:
%
G28 U0.
M1
T0808
M8
G12.1
G0 G90 X152.458 Y0.0 C4.635 S1100 M203
……
X152.458 C295.365
Z-8.
Z5.
G28 U0. M205
M9
M30
%
在車(chē)削后處理和銑削后處理都調(diào)試好后,將他們鏈接起來(lái)組成一個(gè)完整的車(chē)銑后處理。打開(kāi)XZC-XI后處理,點(diǎn)擊程序和刀軌選項(xiàng),在鏈接其他后處理到此后處理選項(xiàng)前打鉤,機(jī)頭取名MILL,然后點(diǎn)擊右邊的新建,機(jī)頭取名TURN。選擇保存好的XZC-CHE,然后點(diǎn)擊確定,如圖9所示,這樣2個(gè)后處理就鏈接在一起了。但此時(shí)這個(gè)鏈接好的后處理還不能用,因?yàn)樵谔幚淼毒哕壽E時(shí),其還分不清哪個(gè)軌跡是車(chē)削軌跡,哪個(gè)軌跡是銑削軌跡,需在軟件編程界面對(duì)兩者加以歸類(lèi):首先,在NX軟件工序?qū)Ш狡骷庸し椒ㄒ晥D中創(chuàng)建車(chē)削、銑削2個(gè)加工方法,將生成的車(chē)削軌跡全部移動(dòng)到車(chē)削方法中,銑削軌跡全部移動(dòng)到銑削方法中;其次,為每一個(gè)加工方法添加一個(gè)開(kāi)始事件,右鍵點(diǎn)擊創(chuàng)建的加工方法圖標(biāo),在對(duì)象里面點(diǎn)擊開(kāi)始事件,在彈出的用戶定義事件窗口中雙擊Head,車(chē)削方法在名稱(chēng)中寫(xiě)入TURN,銑削方法在名稱(chēng)中寫(xiě)入MILL,如圖10所示。這樣,后處理在處理刀具軌跡時(shí)就會(huì)根據(jù)所寫(xiě)入的程序頭判斷哪個(gè)用車(chē)削后處理來(lái)處理,哪個(gè)用銑削后處理來(lái)處理。
開(kāi)發(fā)后的后處理,無(wú)論之前經(jīng)過(guò)怎樣反復(fù)的修正,最后都必須要經(jīng)過(guò)實(shí)際上機(jī)加工檢驗(yàn)方可使用。通過(guò)實(shí)際上機(jī)發(fā)現(xiàn):機(jī)床實(shí)際加工過(guò)程與工件仿真加工過(guò)程一致,沒(méi)有出現(xiàn)機(jī)床報(bào)警及異常動(dòng)作,加工完成的工件符合圖紙要求,經(jīng)檢測(cè)沒(méi)有出現(xiàn)過(guò)切、加工不到位等現(xiàn)象,加工零件如圖11所示。
這類(lèi)XZC加動(dòng)力銑削頭的車(chē)削中心后處理開(kāi)發(fā)重點(diǎn)需要注意以下幾點(diǎn):
(1)在編程界面加工方法視圖中,要對(duì)加工方法進(jìn)行歸類(lèi),銑削的軌跡放在銑削方法中,車(chē)削的放在車(chē)削方法中;
(2)銑削后處理機(jī)床選項(xiàng)機(jī)床模式中,在簡(jiǎn)單車(chē)銑下選擇好車(chē)床后處理名稱(chēng)后,再選回XZC模式,同時(shí)在初始主軸選擇中,動(dòng)力頭平行于Z軸,則初始主軸選擇Z軸,若垂直于Z軸,則初始主軸選擇X軸;
(3)鏈接的后處理銑和車(chē)的機(jī)頭名字要便于區(qū)分,以使加工方法視圖中銑、車(chē)節(jié)點(diǎn)方便選擇。依據(jù)上述方法進(jìn)行車(chē)削中心的后處理開(kāi)發(fā),簡(jiǎn)單高效,解決了利用某些通用后置處理處理源代碼后還需人工進(jìn)行干預(yù)的過(guò)程,省去了利用高級(jí)語(yǔ)言開(kāi)發(fā)的繁瑣以及初學(xué)者難以掌握的問(wèn)題,也為更高級(jí)的車(chē)銑復(fù)合機(jī)床后處理開(kāi)發(fā)提供了參考。