羅 威
(上海優(yōu)集工業(yè)軟件有限公司,上海 201203)
為適應(yīng)集成電路裝備精密零部件快速報(bào)價(jià)和加工的模式,某半導(dǎo)體設(shè)備精密零部件生產(chǎn)企業(yè)急需實(shí)施虛擬機(jī)床仿真,通過虛擬機(jī)床仿真定制,實(shí)現(xiàn)在將生產(chǎn)任務(wù)送到車間之前,減少大型復(fù)雜零件的編程和運(yùn)行時(shí)間,降低成本的目的。通過對(duì)五軸數(shù)控機(jī)床的仿真定制,達(dá)成預(yù)期目標(biāo),實(shí)現(xiàn)基于數(shù)據(jù)驅(qū)動(dòng)的G代碼機(jī)床仿真,用于檢查干涉、碰撞和機(jī)床行程,在仿真界面可進(jìn)行NC程序編譯,在圖形界面顯示機(jī)床運(yùn)動(dòng)和實(shí)體切削,切削的過程工件IPW可以和模型進(jìn)行比對(duì)測(cè)量,以圖譜形式顯示過切和欠切余量,仿真結(jié)束后輸出虛擬機(jī)床仿真報(bào)告。
虛擬機(jī)床仿真結(jié)構(gòu)圖如圖1所示,CAM操作部分是在CAM軟件中編制工件加工刀路軌跡,CAM POST部分可以把生成的刀路軌跡轉(zhuǎn)化成機(jī)床加工需要的NC代碼,圖1中所示的NC代碼是西門子840D格式的NC代碼,仿真驅(qū)動(dòng)部分可以把NC中的運(yùn)動(dòng)指令和輔助指令轉(zhuǎn)換成各個(gè)軸的運(yùn)動(dòng),從而驅(qū)動(dòng)機(jī)床運(yùn)動(dòng)模型,仿真和驗(yàn)證NC程序的正確性。
圖1 虛擬機(jī)床仿真結(jié)構(gòu)圖
軟件中編制的工序,通過定制的機(jī)床后處理生產(chǎn)NC文件,在軟件中調(diào)入虛擬機(jī)床,設(shè)定加工坐標(biāo)系,調(diào)入數(shù)據(jù)庫中刀具加工用到的工裝夾具和需要仿真的NC文件,在圖形窗口開始虛擬機(jī)床仿真。這樣的結(jié)構(gòu)保證編程、后處理生成NC文件、機(jī)床仿真的流程和車間進(jìn)行編程、后處理、數(shù)控設(shè)備加工的流程一致。
通過機(jī)床后置處理定制可以把刀位數(shù)據(jù)文件轉(zhuǎn)換成指定數(shù)控機(jī)床能執(zhí)行的數(shù)控程序,使用西門子NX CAM提供的后處理構(gòu)建器Post Builder創(chuàng)建機(jī)床后處理,定義時(shí)選擇后處理輸出單位、機(jī)床類型、控制器型號(hào)、線性軸行程限制值、線性軸運(yùn)動(dòng)精度及回零位置點(diǎn),機(jī)床旋轉(zhuǎn)軸旋轉(zhuǎn)平面、線性插值及最大進(jìn)給率,創(chuàng)建完成后采用TCL語言對(duì)后處理細(xì)節(jié)進(jìn)行調(diào)整和編輯。
對(duì)于機(jī)床廠家定義的特殊指令,比如機(jī)床廠家基于Heidenhain iTNC 530開發(fā)的特殊指令CYCL DEF 398 ADVANCE 3D ROT,需要根據(jù)機(jī)床說明書中的定義進(jìn)行定制。
為了仿真的準(zhǔn)確性,虛擬機(jī)床模型需要按實(shí)際機(jī)床1∶1進(jìn)行建模,建模時(shí)需要對(duì)機(jī)床組件進(jìn)行分解,比如X軸機(jī)床組件、Y軸機(jī)床組件、Z軸機(jī)床組件、B軸機(jī)床組件和旋轉(zhuǎn)工作臺(tái)C軸組件,利用軟件裝配功能對(duì)繪制好的模型組件進(jìn)行裝配。如圖2所示,以DMU125P機(jī)床為例,首先對(duì)實(shí)際機(jī)床進(jìn)行測(cè)量,測(cè)量結(jié)束后繪制X軸、Y軸和C軸機(jī)床組件,繪制擺頭B軸組件和旋轉(zhuǎn)工作臺(tái)C軸組件,繪制機(jī)床床身組件,對(duì)于不參與仿真運(yùn)動(dòng)的模型進(jìn)行處理,對(duì)于影響仿真的組件要進(jìn)行細(xì)節(jié)處理,確保關(guān)鍵部件是1∶1建模,建模結(jié)束后進(jìn)行模型裝配,確保裝配后的模型和實(shí)際數(shù)控設(shè)備完全一致,模型正確了仿真時(shí)的干涉碰撞檢查才有意義。
圖2 虛擬仿真機(jī)床視圖
機(jī)床運(yùn)動(dòng)模型的建立是為了搭建機(jī)床運(yùn)動(dòng)鏈,定義虛擬仿真機(jī)床的各個(gè)線性軸和旋轉(zhuǎn)軸。用機(jī)床生成器(Machine Tool Builder,MTB)建立DMU125P機(jī)床運(yùn)動(dòng)模型,定義機(jī)床的運(yùn)動(dòng)組件、運(yùn)動(dòng)軸、運(yùn)動(dòng)軸方向、運(yùn)動(dòng)組件行程、運(yùn)動(dòng)組件加速度等數(shù)據(jù),定義的數(shù)據(jù)會(huì)在CSE驅(qū)動(dòng)中進(jìn)行映射使用,其中運(yùn)動(dòng)軸上限、運(yùn)動(dòng)軸下限、運(yùn)動(dòng)軸初始值、運(yùn)動(dòng)軸軟上限和運(yùn)動(dòng)軸軟下限用來定義各個(gè)運(yùn)動(dòng)軸的行程,這個(gè)值越準(zhǔn)確,虛擬仿真時(shí)行程檢查的效果越真實(shí),如NC程序中有超程的程序語句,可以在上機(jī)床加工前仿真出來,避免工件在機(jī)床加工時(shí)因?yàn)樾谐虇栴}而進(jìn)行調(diào)整位置或切換加工機(jī)床。定義的最大速度、最大加速度、最大加加速度、最大減速度和跳躍速度等軸動(dòng)態(tài)屬性要根據(jù)實(shí)際機(jī)床設(shè)定的參數(shù)進(jìn)行定義,這些值的定義會(huì)影響虛擬機(jī)床仿真輸出的加工時(shí)間。
對(duì)于虛擬機(jī)床仿真中的機(jī)器代碼模擬,需要解析和執(zhí)行 NC 程序,這些任務(wù)由 NX Manufacturing 的通用仿真引擎(CSE)執(zhí)行,通過 CSE 的機(jī)床配置文件、控制器配置文件和Python腳本文件,來定制機(jī)器模擬行為。CSE 的機(jī)床配置文件、控制器配置文件和Python腳本文件將解析器的代碼語言輸出映射到引擎可以執(zhí)行的命令和方法上。
機(jī)床配置文件和控制器配置文件采用機(jī)床配置器進(jìn)行定制開發(fā),根據(jù)不同數(shù)控設(shè)備控制器進(jìn)行不同的配置,DMU125P機(jī)床使用的是Heidenhain iTNC 530系統(tǒng),要根據(jù)NC代碼中的指令,參照Heidenhain iTNC 530控制器對(duì)該指令的解析進(jìn)行定制,比如NC程序中7 TOOL CALL 6.2 Z S4000 F1350 DL+0.1 DR-0.5DR2+0.03的程序行,7是行號(hào),在刀具軸Z 調(diào)用6 號(hào)刀具,主軸轉(zhuǎn)速為4 000 r/min,進(jìn)給速率為1 350 mm/min。編程刀具長(zhǎng)度和刀具半徑均為2 時(shí)必須為其分別編程0.1 mm和0.03 mm 的正余量,刀具半徑必須編程0.5 mm 的負(fù)余量。在仿真驅(qū)動(dòng)定制時(shí),需要定義TOOL CALL仿真指令,使虛擬仿真時(shí)執(zhí)行TOOL CALL指令可以調(diào)用對(duì)應(yīng)刀號(hào)的刀具到虛擬機(jī)床模型的主軸上,執(zhí)行刀具調(diào)用的同時(shí)需要取出刀具的長(zhǎng)度參數(shù),在執(zhí)行Z向值時(shí)把刀具長(zhǎng)度參數(shù)補(bǔ)償進(jìn)來,保證刀具Z向位置的正確性。虛擬機(jī)床在調(diào)用刀具時(shí)需要回?fù)Q刀安全點(diǎn),在定制換刀指令時(shí)進(jìn)行換刀安全點(diǎn)設(shè)置。定制轉(zhuǎn)速SpindleSpeed,當(dāng)SpindleSpeed為0時(shí),仿真進(jìn)行報(bào)錯(cuò)提示,當(dāng)設(shè)定值大于機(jī)床最高轉(zhuǎn)速時(shí),也需要停止仿真進(jìn)行報(bào)警。定制Feed指令,當(dāng)Feed值為0或Feed值大于設(shè)定的最高值時(shí),進(jìn)行報(bào)警提示。按照Heidenhain iTNC 530機(jī)床說明書種對(duì)指令的定義,在機(jī)床仿真定制時(shí)對(duì)相應(yīng)指令進(jìn)行解析,最終實(shí)現(xiàn)在虛擬仿真時(shí)機(jī)床的運(yùn)動(dòng)軌跡和實(shí)際機(jī)床一致。
對(duì)于虛擬機(jī)床仿真中的特殊專用指令,需要根據(jù)機(jī)床說明書進(jìn)行定制,比如對(duì)于機(jī)床廠家重新定義的Heidenhain iTNC 530中的CYCL DEF 398 ADVANCE 3D ROT~指令,機(jī)床廠家對(duì)斜面加工指令基于Heidenhain iTNC 530進(jìn)行了客戶化定制,指令如下:
CYCL DEF 398 ADVANCE 3D ROT~
Q1496=+0.000;Q1497=+0.000;Q1498=+0.000;Q1499=+2;Q1500=+54.736;Q1501=+0.000;Q1502=-45.000;Q1503=+1;Q1504=+1;Q1505=+1;Q1506=+0;Q1507=+0;Q1508=+1;Q1509=+0;Q1510=+0;Q1511=+0;Q1512=+0;
需要對(duì)斜面加工指令CYCL DEF 398 ADVANCE 3D ROT進(jìn)行特殊專用指令定制,針對(duì)Q1496至Q1512的Q參數(shù),進(jìn)行解析,使機(jī)床虛擬仿真在執(zhí)行CYCL DEF 398 ADVANCE 3D ROT時(shí)可以進(jìn)行加工坐標(biāo)系轉(zhuǎn)換,使刀具垂直于要加工的斜面,做這個(gè)指令定制時(shí)要考慮刀具隨著主軸進(jìn)行擺角度時(shí)對(duì)刀長(zhǎng)的影響。
在定制虛擬仿真時(shí),客戶提出加工工件時(shí)會(huì)使用大量角度頭,由于角度頭作為刀具安裝至機(jī)床時(shí),改變了刀軸方向,角度頭的仿真在虛擬仿真軟件時(shí)需要專門定制。角度頭安裝至機(jī)床主軸時(shí)存在X+、X-,Y+、Y-四個(gè)方向的安裝位置,給虛擬機(jī)床仿真帶來很大的技術(shù)難度。角度頭種類多,安裝方式存在4種情況,需要使用角度頭的設(shè)備存在三軸、四軸、五軸立式機(jī)床、五軸臥式機(jī)床,考慮諸多情況后,沒有參照以前項(xiàng)目上的經(jīng)驗(yàn),而是重新構(gòu)建定制了角度頭仿真指令,重新構(gòu)建后的指令可以適應(yīng)不同安裝方向,不同結(jié)構(gòu)的數(shù)控設(shè)備??紤]到不斷購進(jìn)增加的角度頭,在仿真驅(qū)動(dòng)中沒有采用固定的角度頭在各個(gè)軸方向的偏差值,而是采用函數(shù)進(jìn)行調(diào)用讀取,這樣當(dāng)客戶購進(jìn)新的角度頭時(shí),只需要在外部按照規(guī)則配置,就可在仿真時(shí)調(diào)用新加的角度頭而進(jìn)行正確的角度頭仿真。
角度頭仿真指令的定義解決了編程人員使用角度頭時(shí)無法驗(yàn)證的狀況,使用角度頭加工時(shí),很多情況下角度頭深入零件內(nèi)部,如果沒有虛擬機(jī)床仿真,在實(shí)際機(jī)床上進(jìn)行加工時(shí)無法從零件外部觀察到角度頭在零件內(nèi)部的位置,當(dāng)NC程序存在碰撞風(fēng)險(xiǎn)時(shí)無法通過觀察進(jìn)行檢查和預(yù)防。使用角度頭虛擬機(jī)床仿真后,在NC程序下放車間前,可以對(duì)要加工的NC程序進(jìn)行驗(yàn)證,出現(xiàn)干涉、超程、碰撞風(fēng)險(xiǎn)時(shí)可以通過虛擬機(jī)床仿真檢查出來,把加工風(fēng)險(xiǎn)降到最低。
測(cè)試時(shí)以圖3的工件為例,加工工件采用虎鉗夾持,調(diào)入虛擬機(jī)床,如圖4所示。
圖3 虛擬仿真測(cè)試工件
圖4 仿真中的虛擬機(jī)床
1)將已經(jīng)生成刀路的測(cè)試工件經(jīng)過機(jī)床后處理生成NC文件simulation_test.h,調(diào)入需要仿真的虛擬機(jī)床,比如前面定義的DMU125P,步驟如下:在GENERIC_MACHINE上點(diǎn)編輯,在彈出界面上選擇從庫中調(diào)用機(jī)床,選擇DMU125P虛擬機(jī)床,通過裝配的方式把機(jī)床和工裝進(jìn)行裝配。
2)調(diào)入機(jī)床后,在機(jī)床導(dǎo)航視圖中制定加工的工件、加工毛坯幾何體和工裝夾具,檢查NC程序中用到的刀具是否齊全,如有問題新建或編輯刀具,并根據(jù)車間現(xiàn)場(chǎng)實(shí)際情況配置相同的刀柄。
3)選擇機(jī)床仿真圖標(biāo),進(jìn)入機(jī)床仿真環(huán)境,選擇外部程序仿真,選擇NC文件simulation_test.h,首先在機(jī)床軸位置界面檢查各個(gè)軸的方向和行程是否正確,保證各個(gè)軸的運(yùn)動(dòng)方向和行程和實(shí)際機(jī)床完全一致。
4)點(diǎn)擊播放按鈕,檢查機(jī)床仿真的NC文件刀路軌跡和操作中的刀路軌跡完全一致。在虛擬仿真過程中,可以設(shè)置斷點(diǎn)、播放、停止等操作對(duì)仿真過程進(jìn)行控制,也可以對(duì)仿真界面通過縮放、平移以及旋轉(zhuǎn)操作來全方位觀察仿真過程并及時(shí)發(fā)現(xiàn)加工中存在的安全隱患,通過設(shè)置可以檢查刀具、機(jī)床主軸、機(jī)床工作臺(tái)、工件和工裝夾具間的干涉碰撞,如果存在干涉碰撞機(jī)床仿真將暫停,并把干涉碰撞處標(biāo)紅處理,在該狀態(tài)下可以修改NC程序,直至NC程序安全無誤。
5)仿真結(jié)束后可以生成仿真過程工件IPW,在IPW上可以用圖譜樣式顯示過切和欠切,并對(duì)過切和欠切位置進(jìn)行測(cè)量。
為了方便客戶在虛擬機(jī)床仿真后對(duì)仿真結(jié)果進(jìn)行記錄和保存,對(duì)客戶需求詳細(xì)調(diào)研后開發(fā)了虛擬機(jī)床仿真報(bào)告。虛擬機(jī)床仿真報(bào)告見表1,仿真報(bào)告可細(xì)化至單個(gè)工步,用來記錄每個(gè)工步加工時(shí)間,虛擬機(jī)床仿真出來的加工時(shí)間準(zhǔn)確性高于95%,可用于工件加工前的成本核算和工時(shí)評(píng)估。
表1 虛擬機(jī)床仿真報(bào)告(仿真機(jī)床:DMU125P)
仿真過程中遇到機(jī)床組件和工件、工裝碰撞干涉,在工步對(duì)應(yīng)表格中記錄碰撞對(duì),同樣,如果存在過切,在對(duì)應(yīng)表格中記錄過切對(duì)。仿真結(jié)束后對(duì)于工時(shí)、過切、碰撞和超程可以做綜合評(píng)估。