徐景亮 鄭聯(lián)語 雷 沛
(北京航空航天大學(xué)機械工程及自動化學(xué)院,北京 100191)
CNC 作為數(shù)控機床的核心部件,從20 世紀50 年代被開發(fā)以來,已經(jīng)經(jīng)歷了重大的變化[1]。盡管CNC已經(jīng)取得了很大的進步,但是仍然需要進一步的改進。尤其是目前CNC 所使用的編程接口,即G 代碼,存在著許多問題。而STEP-NC(ISO14649)作為一個CAD/CAM 和CNC 之間進行數(shù)據(jù)傳遞的新接口標準,彌補了G 代碼存在的缺陷,并且完全兼容STEP(ISO10303)標準[2]。
STEP-NC 數(shù)控系統(tǒng)是指能夠直接支持STEP-NC 數(shù)據(jù)接口的新一代數(shù)控系統(tǒng)。利用STEP-NC 豐富的數(shù)據(jù)信息平臺以及與CAD/CAM 無縫連接,STEP-NC 數(shù)控系統(tǒng)一方面可以針對機床實際情況進行加工仿真、故障檢測和精度校驗,另一方面能夠根據(jù)加工現(xiàn)場情況進行在線的調(diào)整,快速進行加工方案的重新規(guī)劃。從長遠看,STEP-NC 數(shù)控系統(tǒng)將取代基于G 代碼的數(shù)控系統(tǒng)。因此,為實現(xiàn)STEP-NC 數(shù)控系統(tǒng)進行有益的先期研究顯得尤為重要。
根據(jù)CNC 實現(xiàn)STEP-NC 的不同程度,基本可劃分為3 類[3]。第1 類是采用STEP-NC 加工程序輸入,利用后處理器對STEP-NC 加工程序進行識別、解釋,生成G 代碼加工程序,由傳統(tǒng)的控制器根據(jù)G 代碼進行加工。第2 種類型的CNC 直接讀取STEP-NC 加工程序,經(jīng)過解釋器解釋后轉(zhuǎn)化為數(shù)控系統(tǒng)能夠直接識別的數(shù)據(jù)類型,具備在線刀具路徑生成功能。第3 種類型將智能化控制加入到CNC 內(nèi)核中,STEP-NC 數(shù)控系統(tǒng)能夠執(zhí)行加工過程中智能化的操作,如自動切削參數(shù)優(yōu)化、自動故障排除等。
目前絕大多數(shù)STEP-NC 數(shù)控系統(tǒng)的研究基本還局限于前兩種[3]。在STEP-NC 推廣的初級階段,如何與現(xiàn)有的數(shù)控機床兼容是其面臨的首要問題。故本文所開發(fā)的STEP-NC 數(shù)控系統(tǒng)MMI 軟件屬于類型1。該類型一方面能夠滿足當前大量傳統(tǒng)數(shù)控系統(tǒng)能夠兼容STEP-NC 標準;另一方面在改造上只需采用軟、硬插件的方式,易于實現(xiàn)系統(tǒng)的改造。
目前,基于STEP-NC 的數(shù)控程序大多采用ISO10303Part21 物理文件格式,它雖然格式工整,但對于沒有相關(guān)領(lǐng)域知識的人而言很難理解,并且不適合在網(wǎng)上傳輸,因而極大地影響了企業(yè)的生產(chǎn)和發(fā)展。而XML 作為一種優(yōu)秀的網(wǎng)絡(luò)語言得到了廣泛的應(yīng)用。因此,本文設(shè)計的STEP-NC 數(shù)控系統(tǒng)MMI 軟件的輸入是XML 格式的STEP-NC 程序,軟件的過程模型如圖1 所示。
第一步,讀入XML 格式STEP-NC 數(shù)控程序,將程序中出現(xiàn)的實體實例信息存到內(nèi)存中,并以工藝序列樹的形式在界面中顯示。
第二步,根據(jù)加工現(xiàn)場情況,調(diào)整STEP-NC 程序中給出的工藝參數(shù)、機床功能等。對數(shù)控程序中以“$”給出的可選屬性,設(shè)置其具體值。對程序中被修改的信息進行更新。
圖1 STEP-NC 數(shù)控系統(tǒng)MMI 軟件過程模型
第三步,根據(jù)程序中的幾何特征數(shù)據(jù)及工藝數(shù)據(jù),規(guī)劃刀具路徑。
第四步,對生成的刀具路徑進行加工仿真,驗證刀具路徑規(guī)劃模塊輸出路徑的正確性。
第五步,對通過加工仿真模塊驗證的刀具路徑信息轉(zhuǎn)換為G、M 代碼,傳輸?shù)綑C床進行加工。
圖2 STEP-NC 數(shù)控系統(tǒng)人機界面
圖2 為本文構(gòu)建的STEP-NC 數(shù)控系統(tǒng)人機界面。其中左側(cè)區(qū)域為程序顯示區(qū)域,主要用來顯示讀入的STEP-NC 數(shù)控程序與規(guī)劃好的加工路徑信息;右側(cè)區(qū)域是三維圖形顯示區(qū)域,幫助使用者更加直觀的查看工件、加工路徑,且可以查看切削仿真過程,驗證生成路徑的正確性;下側(cè)區(qū)域是實時監(jiān)控區(qū)域,用于數(shù)控系統(tǒng)的實時狀態(tài)顯示。以下就主要的幾個功能模塊進行詳細論述。
目前對XML 支持的解析器和開發(fā)工具箱非常廣泛,因此對XML 格式STEP-NC 程序的解析可以直接采用一些常用的XML 解析器完成[4]。本文使用Microsoft提供的MSXML 編程庫完成。首先讀入整個數(shù)控程序,構(gòu)建一個駐留內(nèi)存的樹結(jié)構(gòu)。此時,可以理解為XML在內(nèi)存中開辟一個存儲文件信息的數(shù)據(jù)庫。然后使用DOM 來操作這個樹結(jié)構(gòu),可以遍歷樹以搜索數(shù)控程序中包含的工作計劃、工步和加工操作等信息。
本文以STEP-NC 類庫作為提取出信息的載體,它是刀具路徑規(guī)劃模塊的輸入,也是系統(tǒng)各模塊之間聯(lián)系的紐帶。如圖3 所示,定義了所有加工特征類的基類CMachFeature 與它的一個派生類CPlanarFace,并解釋了類中成員變量的含義。
圖3 STEP-NC 類庫設(shè)計示例
圖4 信息提取過程
信息提取的過程如圖4 所示,首先通過對內(nèi)存中DOM 節(jié)點樹的操作,提取出程序中的所有特征節(jié)點,根據(jù)節(jié)點名稱選擇相匹配的特征類,建立特征對象。最后再通過對每個特征節(jié)點中幾何信息和工藝信息的提取,初始化特征對象,最后得到路徑規(guī)劃模塊所需的各種信息。
STEP-NC 代碼中各個信息實體間存在相互關(guān)聯(lián),這種關(guān)聯(lián)信息可以采用樹型結(jié)構(gòu)來表達。故本文提供了單層、多層和工作計劃3 種數(shù)據(jù)呈現(xiàn)方式。單層顯示直接在樹根節(jié)點上顯示各個實體及其屬性信息,而不顯示各自的關(guān)聯(lián)層次;多層顯示在樹根節(jié)點上顯示各個實體及作為葉節(jié)點顯示所關(guān)聯(lián)的實體,經(jīng)過關(guān)聯(lián)的實體不再在根節(jié)點顯示。兩種顯示效果如圖5,圖中給出了ISO 14649 測試例1[5]的數(shù)據(jù)顯示結(jié)果。
圖5 數(shù)據(jù)的單層及多層顯示
由圖5 可以看出,STEP-NC 程序信息是非常繁雜的。數(shù)控系統(tǒng)的使用者往往只想關(guān)心全部信息中的一部分。過于豐富的數(shù)據(jù)一方面賦予了STEP-NC 強大的功能,也給使用過程中帶來了理解上的困難[6]。
因此,不能只對XML 文件進行簡單的顯示,應(yīng)首先對STEP-NC 程序進行適當處理,以一種友好直觀的呈現(xiàn)方式給使用者提供所關(guān)心的STEP-NC 數(shù)據(jù)。如圖6 所示,經(jīng)過處理的STEP-NC 數(shù)據(jù)清晰地反映在樹型結(jié)構(gòu)中。由圖可見,加工計劃包含了一個平面特征的精銑、一個孔特征的鉆削和鉸削以及一個型腔的粗銑和精銑。每個加工計劃中又包含了安全平面、加工特征、加工操作和3 方面信息。右圖中的對話框是在雙擊加工操作時彈出,給使用者呈現(xiàn)了平面特征的精銑操作參數(shù),并允許使用者根據(jù)實際情況對工藝信息進行修改。
刀具運動路徑雖然不包括在STEP-NC 程序內(nèi),但STEP-NC 程序包括了走刀策略、特征信息、刀具信息和其他參數(shù)信息,這些信息構(gòu)成了生成刀具路徑信息的信息來源。路徑規(guī)劃就是通過這些信息的處理,最后生成刀具路徑信息。刀具路徑自動生成的功能使得數(shù)控系統(tǒng)操作員根據(jù)實際情況可以對加工計劃作出一定的調(diào)整,例如機床安全平面調(diào)整、下刀策略調(diào)整等。這種特性是采用G 代碼所不具備的,傳統(tǒng)的數(shù)控加工遇到這種情況往往只能重新進行一次CAM 規(guī)劃。
圖6 程序的工作計劃顯示
路徑規(guī)劃的目標是生成總體加工路徑,這是一條連續(xù)的路徑,僅僅生成各個工步的路徑還不能達到路徑連續(xù)的要求[7]。本文的路徑規(guī)劃工作分為三個步驟完成:①根據(jù)加工策略、操作信息、刀具信息、特征幾何信息對工作計劃中的每一個工步進行路徑規(guī)劃,經(jīng)坐標變換后得到各工步加工路徑信息;②按照工作計劃定義的加工工步順序,規(guī)劃工步間的路徑,生成工步間的過渡路徑信息;③連接所有的工步路徑和過渡路徑,生成連續(xù)的刀具單元路徑集合。這些數(shù)據(jù)作為整個解釋器的輸出結(jié)果,可以被仿真系統(tǒng)和運動控制系統(tǒng)所調(diào)用。
圖7 刀具路徑顯示
圖7 所示為以ISO 14649 示例1 為例所生成的刀具路徑。以樹狀圖的形式分類顯示了完整的路徑信息和各特征的路徑信息,雙擊節(jié)點會對相應(yīng)的路徑信息進行三維顯示。
切削仿真功能能夠幫助使用者更直觀地查看加工的零件、刀具路徑及其他相關(guān)信息,并能對加工過程進行仿真??梢詼p少或者消除因為STEP-NC 加工程序錯誤而導(dǎo)致的機床夾具損壞或刀具折斷、工件報廢等問題,減少產(chǎn)品設(shè)計制造的時間,降低成本。
切削仿真模塊主要由以下幾個功能組成:
(1)三維模型顯示 本文通過讀取STL 文件顯示工件三維模型。STL 文件由多個三角形面片的定義組成,每個三角形面片的定義包括三角形各個頂點的三維坐標及三角形面片的法矢量。程序中通過遍歷三角形面片的3 個頂點,可以方便地構(gòu)造實體。然后進一步進行實體渲染,以增加工件實體的真實感。
(2)材料去除 本文采用基于三角網(wǎng)格的幾何仿真方法[8],通過計算毛坯模型表面三角片頂點與刀具掃掠面之間的距離,計算出各三角片頂點高度值,修改自定義的數(shù)據(jù)結(jié)構(gòu),從而實現(xiàn)材料的去除效果。因此首先需要建立毛坯的數(shù)據(jù)模型。本文采用的是三角網(wǎng)格方法來建立毛坯模型。
圖8 毛坯的三角網(wǎng)格化模型
如圖8 所示,采用三角面片離散法將毛坯上表面離散為均勻點陣,下表面邊界離散成均勻點陣,順次連接毛坯上表面點陣形成毛坯上表面三角網(wǎng)格,連接上下表面邊界點陣構(gòu)成毛坯側(cè)面網(wǎng)格,底面采用一個四邊面片表示。
(3)人機交互 基于OpenGL 切削仿真的人機交互接口包括:加工路徑顯示與隱藏、動靜控制、仿真速度控制、視角變換。
圖9 顯示的是一個型腔的粗銑加工。在加工過程中,可以進行調(diào)整仿真速度、顯示/隱藏路徑等操作。
圖9 切削仿真過程
由于在刀具路徑生成模塊已經(jīng)生成了路徑信息鏈表,所以要生成G 代碼程序文件只需從頭開始讀取整個路徑信息鏈表,從每個節(jié)點中取出有關(guān)的加工工藝參數(shù)(如主軸轉(zhuǎn)速、進給速度和冷卻液等),按照指定數(shù)控系統(tǒng)的指令格式將其分別轉(zhuǎn)換成相應(yīng)的F、M、S等功能字,并把刀具軌跡轉(zhuǎn)化為指定的數(shù)控系統(tǒng)的G代碼指令格式[9]。由于在不同工步中所使用的刀具可能不相同,在讀取下一個節(jié)點時,還要判斷該節(jié)點所使用的刀具是否與上個節(jié)點所使用的刀具相同,如果不相同則需要添加換刀功能字。當路徑信息鏈表中所有節(jié)點都轉(zhuǎn)換后,即完成了STEP-NC 文件到G 代碼程序的轉(zhuǎn)換。G 代碼程序的生成過程如圖10a 所示,生成G 代碼程序的軟件界面如圖10b 所示。
圖10 G 代碼的生成
為驗證所生成的G 代碼的正確性,本文利用VERICUT 軟件對生成的G 代碼進行了加工仿真驗證。VERICUT 軟件是美國CGTECH 公司開發(fā)的數(shù)控加工仿真系統(tǒng),由NC 程序驗證模塊、機床運動仿真模塊等組成,具有很高的國際知名度,在制造業(yè)中得到廣泛應(yīng)用。
圖11 VERICUT 加工仿真
圖11a 所示的是在VERICUT 軟件中對工程的設(shè)置,圖11b 展示的是在VERICUT 系統(tǒng)仿真環(huán)境中使用FANUC 數(shù)控機床執(zhí)行G 代碼進行仿真加工的結(jié)果。驗證了所生成的G 代碼能夠正確反映刀具路徑生成模塊所得的軌跡計算結(jié)果。
STEP-NC 程序包含了產(chǎn)品全生命周期的所有信息,同時消除對CNC 系統(tǒng)的依賴性,STEP-NC 的提出和發(fā)展結(jié)束了長期以來數(shù)控系統(tǒng)只能被動執(zhí)行動作的歷史,解決了CNC 與CAX 之間的雙向無縫連接問題,為網(wǎng)絡(luò)制造、虛擬制造、并行工程等先進制造技術(shù)和模式提供了技術(shù)保證。因此,相對于G 代碼來說,具有很大的優(yōu)勢,是未來的一種發(fā)展趨勢。
本文對基于STEP-NC 數(shù)控系統(tǒng)人機界面(MMI)軟件進行了研究和開發(fā),實現(xiàn)了STEP-NC 信息提取,利用程序信息樹的形式再現(xiàn)了STEP-NC 文件的數(shù)據(jù)結(jié)構(gòu),并根據(jù)提取出的工藝信息進行刀具路徑的規(guī)劃,利用OpenGL 圖形庫實現(xiàn)了三維工件顯示及加工路徑仿真功能,為在商用CNC 系統(tǒng)上開發(fā)STEP-NC 人機界面軟件提供了參考。
[1]Suh S H,CHEON S U.A Framework for an intelligent CNC and data model[J].Int.J.Adv.Manuf.Technol,2002,19:727 -735.
[2]朱曉明,王永章.基于STEP-NC 數(shù)控系統(tǒng)的譯碼模塊及坐標問題[J].機械工程學(xué)報,2007,43:185 -190.
[3]Suh S H,Kang S K,Chung D H,et al.Theory and design of CNC systems[M].spring Verlag London Limited,2008.
[4]白喬,左飛.把脈VC++[M].北京:電子工業(yè)出版社,2009.
[5]ISO 14649 -11,Data model for computerized numerical controllers part 11:Process Data for Milling[S].International Organization for Standardization,2002.
[6]肖文磊.基于XML 語言的STEP -NC 解析器及其在數(shù)控機床和切削加工機器人的應(yīng)用[D].北京:北京航空航天大學(xué),2011.
[7]朱曉明,富宏亞等.STEP -NC 數(shù)控系統(tǒng)若干關(guān)鍵實現(xiàn)技術(shù)研究[J].計算機集成制造系統(tǒng),2009,15(6):1122 -1129.
[8]孫殿柱,李延瑞等.基于三角網(wǎng)格索引模型的3 軸實時數(shù)控銑削仿真[J].華中科技大學(xué)學(xué)報:自然科學(xué)版,2009,37 (10):76-80.
[9]杜鵑,閆獻國,等.面向銑削加工的STEP-NC 文件到G 代碼轉(zhuǎn)換技術(shù)[J].計算機集成制造系統(tǒng),2010,16(1):188 -194.