劉 俊 唐善斌 劉 潔 肖 文
(三一重工攪拌設備研究院,湖南長沙410100)
目前,市場上出現的嵌入式數控系統大都采用二維畫圖來實現加工軌跡仿真,實現三維加工軌跡仿真的很少。主要原因在于嵌入式處理器對OpenGL ES的支持不夠。隨著嵌入式技術和制造工藝的發展,ARM處理器的主頻不斷提升,對3D加速也提供了足夠的支持,使得嵌入式數控系統軌跡加工的三維仿真成為可能。
本文介紹了一種嵌入式數控雕刻系統軌跡加工三維仿真的實現方法。嵌入式數控雕刻系統以WinCE6.0作為嵌入式操作系統,VS2005作為應用程序開發環境,采用三星公司的ARM處理器S3C6410作為CPU、NOVA公司的MCX314芯片作為運動控制芯片。通過本仿真軟件,可以實現NC加工代碼編譯、雕刻圖形的三維建模、以及加工軌跡的動態仿真。
OpenGL ES是針對嵌入式系統專門設計的跨平臺的、功能完善的2D和3D圖形應用程序接口API,它由桌面OpenGL子集組成[1]。針對硬件資源相對緊缺的嵌入式系統,OpenGL ES具有統一標準的操作系統平臺接口層EGL,保留OpenGL最常用的API,并增加了新的特性:定點運算、字節匹配、調色板紋理[2]。目前OpenGL ES已經發展到2.0版本,其可編程流水線示意圖如圖1所示。

根據2.0版本的可編程流水線,OpenGL ES的初始化過程如圖2所示,分六個步驟,分別是:獲取Display、初始化 EGL、選擇 Config、構造 Surface、創建 Context、顯示。各個步驟對應的調用函數為:eglGetDisplay、eglInitialize、eglChooseConfig、eglCreateWindowSurface、eglCreateContext、eglSwapBuffers。OpenGL ES 簡化了模型描述,取消了通過在glBegin/glEnd之間使用大量glVertex之類的調用來逐點描述模型[3],統一使用VertexArray(頂點數組)來繪圖。

仿真程序首先要對NC文件進行編譯,才能獲得雕刻圖形的加工信息,然后通過數學運算得到待仿真模型的像素點和灰度信息,進而才能進行三維建模。NC代碼的編譯流程包括:語法和詞法檢查、語義分析、生成可識別的中間數據。首先根據數控機床標準G代碼(JB3208-83)設定規則庫,根據規則進行詞法、語法檢查和語義分析,并設立出錯信息表,方便用戶查找錯誤和分析錯誤原因以及進行出錯處理。詞法語法檢查包括:去除無效字符如注釋信息、程序段中的空格、N指令等;根據NC代碼的組詞規則進行逐個檢查,包括代碼中的字符是否合法、代碼的參數是否合理等[4]。語義分析主要的規則有:NC代碼功能指令代碼和坐標代碼在每一行中只能出現一次;X、Y、Z、F 等代碼的取值不能超過機床的設定范圍;圓弧運動指令 G02、G03必須指定圓心坐標及半徑;F指令只對 G01、G02、G03 有效,對G00無效等。
通過如圖3所示的編譯流程,得到中間代碼,并將其保存到一個數據結構體中。定義如下:



}*pNCCodeData;根據NCCodeData結構體中的坐標信息和脈沖當量信息可以計算雕刻圖形的像素和灰度(即加工深度),從而為三維建模和仿真提供數據源。
根據CCodeData提供的數據源,通過逐點比較的方法獲得X軸和Y軸方向的最大最小值,從而確定待加工幅面的大小。通過坐標變換和比例變換將工件坐標轉換為圖形的像素點坐標。CAD/CAM軟件處理圖形時,需要設定加工深度h?;叶戎礸ray可以根據加工深度和Z軸工件坐標計算得到。設g(x,y,z)表示工件坐標(x,y,z)處的像素點灰度值,圖形灰度值為256時可由如下公式得到:

根據公式(1)得到的像素點坐標和灰度值以向量的形式保存,然后調用OpenGL ES的相關畫圖API函數(如glDrawArrays)構建雕刻圖形的三維模型,再結合加工初始信息可以實現加工軌跡仿真(如圖4所示)。


加工軌跡實時仿真有兩種方式:逐行掃描和輪廓跟蹤掃描。本系統支持這兩種掃描方式。當前加工的坐標數據的刷新由WINDOW的多線程技術實現,在自動加工過程中,建立一個加工監控線程,由其實時讀取運動控制芯片MCX314返回的當前加工點的坐標數據。然后根據公式(1)獲得當前加工點的像素點坐標和灰度值,在OpenGL ES平臺中完成當前加工點的重繪。三維建模以及實際加工的效果圖如圖5所示。
本仿真軟件主要可以實現以下功能:(1)對NC文件進行詞法語法檢查以及語義分析;(2)對雕刻圖形進行三維建模;(3)三維仿真雕刻圖形的加工過程,并得到加工結果;(4)同步顯示機床狀態和加工時間;(5)在實際雕刻過程中實現與加工過程同步的動畫效果,從而方便用戶監控和觀察雕刻加工過程。通過VS2005開發平臺,本仿真軟件已成功移植到嵌入式雕刻機的操作系統WinCE6.0中,目前已成功應用于中國地質大學機械與電子工程研究所研制的嵌入式數控木雕機系統。利用OpenGL ES技術在嵌入式數控系統中進行三維仿真,具有十分廣闊的應用前景。
[1]史揚,吳金平.OpenGL ES圖形標準在嵌入式系統中的應用[J].工業控制計算機,2008,21(3):27-29.
[2]Aaftab Munshi,Dan Ginsburg,Dave Shreiner.OpenGL ES 2.0 programming guide[M].New Jersey:Addison Wesloy,2008.
[3]Kari Pulli,Tomi Aarnio,Ville Miettinen,et al.Mobile 3D graphics with OpenGL ES and M3G[M].Amsterdan:Morgan Kaufmann Publishes,2007:170-193.
[4]劉沖,楊代華,張曉婷.基于工控機的G代碼編譯程序設計[J].機械設計與制造,2007(5):60-62.
[5]吳濤,楊代華,章文獻,等.用 VC實現數控雕刻機加工過程仿真[J].機床與液壓,2003(5):130-131.