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