■ 中國航發(fā)西安航空發(fā)動機(jī)有限公司 (陜西西安 710021) 馮永星
后置處理是將CAM軟件生成的刀位文件轉(zhuǎn)換成機(jī)床可識別的NC代碼的一個重要環(huán)節(jié),大部分CAM軟件在安裝時自身都配置有后置處理,然而這些文件大都是一些通用的、籠統(tǒng)性的文件,甚至一些CAM軟件自身所帶的后置處理存在缺陷或者功能并不是很完善,通過其生成的NC代碼并不能直接傳輸?shù)綌?shù)控機(jī)床進(jìn)行使用,需要手動更改方可確保加工的安全性以及零件質(zhì)量。而且CAM軟件并不會針對所有的控制系統(tǒng)配置后置處理,因此需要使用者根據(jù)所使用的數(shù)控機(jī)床的特點(diǎn)及習(xí)慣進(jìn)行二次開發(fā)。本文是在開發(fā)基于Master CAM的Fidia NC15系統(tǒng)五軸后置處理過程中的一些方法及心得。
(1)NC代碼特點(diǎn) 文中涉及的設(shè)備為意大利菲迪亞股份有限公司生產(chǎn)的HS664RT五軸加工中心,其控制系統(tǒng)為Fidia NC15。與ISO代碼相比,該設(shè)備的NC代碼有如下幾處比較典型的特點(diǎn)。
1)圓弧指令中的I、J、K。在ISO代碼中,圓弧指令中I、J、K后面的數(shù)值指的是從圓弧起點(diǎn)到圓弧中心方向的矢量分量,而在Fidia控制系統(tǒng)中,I、J、K后面的數(shù)值指的是該圓弧圓心的坐標(biāo)值。
2)進(jìn)給指令。與ISO代碼一樣,F(xiàn)idia控制系統(tǒng)進(jìn)給指令代碼為F,不同的是在Fidia系統(tǒng)中F后面的數(shù)值是不帶小數(shù)點(diǎn)的整數(shù),單位只能為mm/min。
3)加工循環(huán)。這里所說的加工循環(huán)包括鉆中心孔、鉆(深)孔、锪孔、攻螺紋、鏜孔及鉸孔等,其指令代碼有很多地方相似,但是具體到每個指令的格式及運(yùn)動方式都有著顯著的差異。
(2)指令差異 本文以深孔排屑啄鉆指令(均為G83)為例,來說明兩個系統(tǒng)在指令格式及運(yùn)動方式上的差異,其他幾個指令基本類似,這里不再一一細(xì)述。
表1列舉了在兩種系統(tǒng)下排屑啄式鉆孔功能的指令格式,結(jié)合圖1所示的運(yùn)動分解圖,可以得出如下幾個結(jié)論。
1)兩種系統(tǒng)下G83、X_、Y_、R_及F_代碼完全相同。
2)兩種系統(tǒng)下雖然都存在Z_位址,但是其意義不同,在ISO代碼中Z_代表了鉆孔的最終深度,而在Fidia NC15代碼中Z_則是快速定位時的點(diǎn)位坐標(biāo)值。
3)Q_、K_及D_、E_、H_分別是各自系統(tǒng)下特有的代碼,Q_與D_代碼意義大致相似。
4)I S O代碼中Δ值由系統(tǒng)No.5115參數(shù)決定,F(xiàn)idia NC15控制系統(tǒng)中Δ值由G83K MAINT參數(shù)定義。
表1 深孔排屑啄鉆指令
表2列舉了兩種控制系統(tǒng)的換刀指令、刀具指令、長度補(bǔ)償及坐標(biāo)系等代碼的差異,這些差異在后置處理文件中做簡單更改即可。
表2 兩種控制系統(tǒng)的其他差異
圖1 運(yùn)動分解示意
分析出了Fidia NC15系統(tǒng)的特點(diǎn)后,我們可以對CAM軟件后置處理文件的源代碼做出相應(yīng)的調(diào)整或更改,使后置處理出的程序可直接用于當(dāng)前的設(shè)備。通過對Master CAM 2018系統(tǒng)自帶后置處理文件的分析與對比,選擇Generic Fanuc 5X Mill.pst作為此次二次開發(fā)的原始文件,該文件與加密文件Generic Fanuc 5X Mill.psb共同構(gòu)成了Fanuc系統(tǒng)的五軸后置處理。
(1)軸定義 不同的五軸設(shè)備其各軸間的相對運(yùn)動關(guān)系不盡相同,機(jī)床坐標(biāo)軸的配置也各有差異,因此在進(jìn)行后置處理開發(fā)時第一步就是要對當(dāng)前設(shè)備進(jìn)行分析,明確各軸的配置以及各運(yùn)動軸間的相對關(guān)系。
1)H S664RT機(jī)床分析。HS664RT是典型的Table/Table類型的五軸設(shè)備,配置了三個線性軸和兩個旋轉(zhuǎn)軸,其傾斜軸(A軸)擺角為±110°,旋轉(zhuǎn)軸(C軸)轉(zhuǎn)角為±3 60°(N×360°),如圖2所示。在相對運(yùn)動上,線性軸X、Y、Z運(yùn)動與刀具一致,旋轉(zhuǎn)軸A、C運(yùn)動與刀具軸相反(即零件運(yùn)動)。
2)五軸定義及更改。在后置處理文件中,坐標(biāo)軸的定義包含了分配軸地址、旋轉(zhuǎn)軸設(shè)置、工作平面及軸定義等模塊,針對HS664RT機(jī)床,這部分的代碼應(yīng)按照表3進(jìn)行更改設(shè)置。表3僅列舉出了需要更改的部分,與源文件一致的部分不再一一列出。
其次,在變量格式定義中也需要進(jìn)行更改。
fmt “C” 20 p_out
fmt “A” 20 s_out
fmt “B” 20 d_out
3)軸行程設(shè)定。通常情況下,在更改后置處理文件時要根據(jù)設(shè)備具體的結(jié)構(gòu)特點(diǎn)并結(jié)合使用上的要求來設(shè)置各軸的最大行程。根據(jù)使用習(xí)慣,這部分代碼進(jìn)行了如下更改。
圖2 機(jī)床示意
表3 軸定義及更改
auto_set_lim : 0
pri_limtyp$ : 1
sec_limtyp$ : 0
pri_limlo$ : 0
pri_limhi$ : 360
sec_limlo$ : -110
sec_limhi$ : 110
可以看出,本文僅對旋轉(zhuǎn)軸行程進(jìn)行了設(shè)定,在具體使用時可根據(jù)各自的軟件及設(shè)備等的使用要求及習(xí)慣進(jìn)行線性軸行程的設(shè)定,這部分包含了use_stck_typ、up_x_lin_lim 、up_y_lin_lim、up_z_lin_lim、lw_x_lin_lim 、lw_y_lin_lim及l(fā)w_z_lin_lim等。
(2)程序頭、尾更改 程序頭pheader$及程序尾peof$主要定義程序號、數(shù)控程序起始及結(jié)束程序段的一些注釋性的內(nèi)容(如名稱、日期及刀具表等),這部分可以根據(jù)具體的要求進(jìn)行更改。結(jié)合本文實(shí)際情況,這一段更改后的代碼如下。
pheader$ #Call before start of file
##### Custom changes allowed below #####
!spaces$, spaces$ = 0
if progno$ = zero, progno$ = one
“( ----------------------------------------------------------- )”,e$
“( MACHINE : Fidia HS664RT- CONTROLLER: Fidia NC15 )”,E$
“( PROG NO:CXXFY-PWC-”,*progno$, “)”,e$
“( “, *progno$, “)”,e$
“( “, sprogname$, “ REV- )”,e$
“( ---------------------------------------------------------- )”,e$
pbld, n$, “G17 Q1”,e$
pbld, n$, *sgabsinc,e$
pbld, n$, *smetric, e$
pbld, n$, “M242”,E$
p b l d, n$, “G01 A0. C0.F3000”,e$
spathnc$ = ucase(spathnc$)
smcname$ = ucase(smcname$)
stck_matl$ = ucase(stck_matl$)
snamenc$ = ucase(snamenc$)
spaces$ = prv_spaces$
至于peof$程序段,需要將“M30”更改為“M02”并刪除“%”, e$一行,其余內(nèi)容保持不變。
(3)換刀、初始運(yùn)動及進(jìn)退刀 不同的設(shè)備及使用環(huán)境在換刀格式、設(shè)備初始運(yùn)動和進(jìn)退刀方式上都存在著差異。Master CAM軟件可以在軟件內(nèi)部通過對控制器、刀路參數(shù)定義的方式滿足部分要求,其次還需要對后置處理文件進(jìn)行代碼更改。
針對文中的HS664RT機(jī)床,在后置處理更改時首先將nobrk$值由no$更改為yes$,其次需要對p_goto_strt_tl、p_goto_strt_ntl、pretract、prefreturn、protretinc及ppos_cax_lin等幾個程序塊進(jìn)行改寫,后文中“……”均代表了與源文件格式、內(nèi)容一致的部分。
1)p_goto_strt_tl程序塊。
p_goto_strt_tl #Make the tool start up at toolchange
……
if stagetool <= one, pbld, n$,“M306”,PTOOLS, e$
n$, “G55 O1”,E$
pbld, n$, “G01”,*p_out, *s_out,”F3000”,e$
pbld, n$, “G154”,e$
pbld, n$, *speed, *spindle,e$
……
pg68_map
pbld, n$, *zabs_s, e$
pbld, n$, *sg00, “X0.”,“Y0.”, *zabs_s, e$
pcan1, pbld, n$, *sgcode,*xabs_s, *yabs_s, strcantext, e$
]
else, #5 axis and regular mode (n_tpln_mch = -2)
……
else,
[
pcan1, pbld, n$,*sgcode, *xout, *yout, PFYFEED, pgear,strcantext, e$
]
……
pg68
pbld, n$, *xout,*yout, *zout, pscool, e$
]
else, pbld, n$, *zout, pscool, e$
……
2)p_goto_strt_ntl程序塊。
p_goto_strt_ntl #Make the tool start up at null toolchange
……
pg68_map
pbld, n$, *xabs_s, *yabs_s,*zabs_s, *p_out, *s_out, e$
pg68
pbld, n$, xout, yout, zout, e$
]
#else, pbld, n$, pwcs, sgabsinc,*xout, *yout, *zout, *p_out, *s_out, e$
else,
[
pbld, n$, sgabsinc, *xout,*yout, *zout, e$
pbld, n$, “G01”,*p_out, *s_out,”F3000”,e$
pbld, n$, “G154”,e$
]
……
3)pretract程序塊。
pretract #End of tool path,toolchange
……
##### Custom changes allowed below #####
pbld, n$, *spindle, e$
pbld, n$, *scoolant, e$
pg69
……
#pbld, n, *sg28, protretinc, e
pbld, n$,”G154”,e$
4)prefreturn程序塊。
prefreturn #Refernce return
pbld, n$, “M242”, e$
5)protretinc程序塊。在該程序塊中只需要將pbld, n$, *sg28,p_out, s_out, e$這一行代碼改寫成pbld, n$, *sg01, *p_out, *s_out,“F3000”, e$即可,其余程序段不需要進(jìn)行更改。
6)ppos_cax_lin程序塊。該程序塊需要將pbld, n$, sgcode,p_o u t, s_o u t, e$這一行改成pbld, n$, sgcode, *p_out, *s_out,“F3000”, e$,其余不變。
(4)圓弧模式 如前文所述,HS664RT在圓弧加工時I、J、K后面的數(shù)值指的是該圓弧圓心的坐標(biāo)值,但對arctype$變量值按照后置處理文件的說明進(jìn)行幾次嘗試后均未達(dá)到滿意的效果,因此對源代碼進(jìn)行了如下編寫。
1)增加自定義變量。通過增加FYI、FYJ、FYK三個變量來對輸出的I、J、K值進(jìn)行重新計算,從而獲得需要的結(jié)果數(shù)值。
#FIDIA IJK OUTPUT
fmt “I” 3 FYI #FIDIA IOUT
fmt “J” 3 FYJ #FIDIA JOUT
fmt “K” 3 FYK #FIDIA KOUT
2)parcijk程序塊。通過后置處理文件中的parcijk程序塊對圓弧加工時輸出的格式進(jìn)行控制,這個程序塊需進(jìn)行如下更改。
parcijk #Select the arc output
FYI=prv_X$+I$
FYJ=prv_y$+J$
FYK=prv_Z$+K$
if arcoutput$ = zero | full_arc_flg$,
[
#Arc output for IJK
*FYI, *FYJ, !FYK
]
else,
……
(5)孔加工循環(huán) 孔加工是加工中心最常用的功能之一,HS664RT在孔加工循環(huán)上與ISO代碼有著很大的差異,因此在后置處理文件中需要改寫大量代碼,限于篇幅,在本文中僅列出最復(fù)雜的G83指令的實(shí)現(xiàn)方法,其余指令(如G82、G84、G85等)與G83類似。
1)字地址的定義。通過前文對G83指令后各地址的分析與對比,在后置處理文件中drlx、drly、drlz、peck1$及dwell$的地址需要做如下更改。
fmt “E” 2 drlx #X position output
fmt “E” 2 drly #Y position output
fmt “E” 2 drlz #Z position output
fmt “D” 2 peck1$ #First peck increment (positive)
fmt “H” 11 dwell$ #Dwell
2)鉆孔輸出格式。G83包括啄式排屑鉆孔與斷屑鉆孔,在指令的輸出格式上兩個是一致的,在后置處理文件中包括ppeck$、pchpbrk$兩個程序塊。
ppeck$ #Canned Peck Drill Cycle
pdrlcommonb
pcan1, pbld, n$, *sgdrill,sgabsinc, prdrlout, *peck1$, dwell$,PFYfeed, strcantext, e$
pcom_movea
pchpbrk$ #Canned Chip Break Cycle
pdrlcommonb
pcan1, pbld, n$, *sgdrill,sgabsinc, prdrlout, *peck1$, dwell$,PFYfeed, strcantext, e$
pcom_movea
(6)進(jìn)給的修改 前文提到,在Fidia系統(tǒng)中F后面的數(shù)值是不帶小數(shù)點(diǎn)的整數(shù),單位只能為mm/min。同時,我公司使用該設(shè)備時出于安全及保護(hù)設(shè)備的考慮,在加工時快速定位功能(G00)均被以F3000運(yùn)動的直線插補(bǔ)代替,因此也需要修改后置處理來實(shí)現(xiàn)這個功能。
fmt “F” 4 FYFEED
#FEED FOR FIDIA
PFYFEED
IF GCODE$=0,
[FYFEED=3000],*FYFEED
ELSE,
[FYFEED=FEED],FYFEED
上面的7行代碼通過定義新變量FYFEED以及對GCODE$變量值的判斷,重新對FYFEED進(jìn)行賦值,解決了Fidia系統(tǒng)對F格式的要求,也滿足了公司對設(shè)備使用的要求。當(dāng)然,在后置處理文件中,需要將所有的“*feed”或“`feed”更改為“PFYFEED”。同時也需要將s g00 : “G0”#Rapid這一行內(nèi)容更改為sg00 :“G1” #Rapid。
(7)其他更改 后置處理文件中其余更改內(nèi)容見表4,主要包括換刀指令、刀具指令、公制/英制代碼以及其他一些功能性的更改或優(yōu)化。
表4 后置處理文件的其他更改
圖3 燃燒室排氣管安裝邊
圖3所示為某航空發(fā)動機(jī)燃燒室排氣管安裝邊簡圖,現(xiàn)需要在HS664RT上加工圖示的42個φ1.397mm徑向孔,加工方案采用φ1.0mm球頭銑刀鉆中心孔、φ1.45mm鉆頭鉆孔的方式。
(1)模型及刀路 Master CAM 2018環(huán)境下的刀具路線圖如圖4所示,在加工該零件時傾斜軸A旋轉(zhuǎn)-90°,旋轉(zhuǎn)軸C按圖樣要求分度,從而達(dá)到加工該零件的目的。
(2)加工程序 在完成刀路規(guī)劃及參數(shù)設(shè)定后即可進(jìn)行后置處理操作,在進(jìn)行后置處理時要選擇提前更改好的后置處理文件。圖4所示的刀路圖經(jīng)后置處理后得到程序文件,限于篇幅文中僅列出前三孔與最后一孔的程序??梢钥闯?,使用經(jīng)過二次開發(fā)的后置處理文件,得到的數(shù)控程序已經(jīng)達(dá)到了不需要做任何修改即可傳輸?shù)綑C(jī)床進(jìn)行使用的目的。通過與DNC系統(tǒng)的結(jié)合,完美實(shí)現(xiàn)了CAM軟件與數(shù)控機(jī)床的無縫連接。
( -------------------------------------------------------------- )
( MACHINE : Fidia HS664RT -CONTROLLER: Fidia NC15 )
( PROG NO:CXXFY-PWC-:0001)
( :0001)
( 3100588-02 REV- )
( -------------------------------------------------------------- )
N100G17 Q1
N110G90
N120G71
N130M242
N140G01 A0. C0. F3000
(T.1|DRILL-1.45 |TOOL DIA.-1.45)
(DRILL-1.45 |TOOL-1|DIA. OFF.-1|LEN.-1|TOOL DIA.-1.45)
N150 M306 T.1
N160 G55 O1
N170 G01 C9. A-90. F3000
圖4 刀具路線圖
N180 G154
N190 S3300 M3
N200 G1 X0. Y-8.128 F3000
N210 Z172.415
N220 G83 X0. Y-8.128 Z139.915 E119.915 R124.915 D1. F70
N230 G80
N240 X0. Y-8.128 Z172.415
N250 G01 C13.5 A-90. F3000
N260 G154
N270 G83 X0. Y-8.128 Z139.915 E119.915 R124.915 D1.
N280 G80
N290 X0. Y-8.128 Z172.415
N300 G01 C18. A-90. F3000
N310 G154
N320 G83 X0. Y-8.128 Z139.915 E119.915 R124.915 D1.
N330 G80
……
N2240 X0. Y-8.128 Z172.415
N2250 G01 C352.286 A-90. F3000
N2260 G154
N2270 G83 X0. Y-8.128 Z139.915 E119.915 R124.915 D1.
N2280 G80
N2290 M5
N2300 M9
N2310 M242
N2320 G1 C0. A0. F3000
N2330 G154
N2340 M02
Master CAM后置處理開發(fā)所使用的是其公司專用的MP語言,針對該語言及系統(tǒng)函數(shù)、變量的詳細(xì)講解的資料非常少。本文是根據(jù)我公司意大利五軸加工中心HS664RT的使用要求,在Master CAM 2018自帶Fanuc五軸后置處理的基礎(chǔ)上進(jìn)行二次開發(fā)的過程中得到的一些方法及心得。通過不斷摸索以及嘗試,此次二次開發(fā)達(dá)到了預(yù)期的目標(biāo),滿足了使用上的要求,實(shí)現(xiàn)了CAM軟件與數(shù)控設(shè)備的無縫連接。