韓 江 吳 濤 夏 鏈 田曉青 吳路路
(合肥工業大學機械與汽車工程學院CIMS 研究所,安徽 合肥 230009)
插削加工是齒輪加工成型的重要方法之一,在加工前對編制的NC 代碼程序或自動生成的NC 程序進行模擬仿真,以驗證程序的正確性[1];在加工過程中對刀具和工件的情況進行實時仿真顯示[2],便于用戶掌握加工狀態;加工過程中對誤差進行監測有利于用戶了解控制參數是否合適,所以對加工過程進行動態仿真具有重要的現實意義和實用價值。本文研究的采用OpenGL ES 開發的加工仿真模塊能夠從加工程序中獲取刀具的軌跡坐標[3],對其進行實時建模,并對跟隨誤差進行實時監測,對于實際生產具有重要意義。
為了能夠在現有的平臺上進行OpenGL ES 圖形開發,應用設備中應用程序所在的路徑必須包含有支持OpenGL ES 的庫文件,以用于在程序開發時進行函數調用。本系統所需要的庫文件有libGLES_CM.dll和libGLES_CM.lib。這兩個庫文件中包含了利用OpenGL ES 開發時繪制直線、顏色設置、頂點數組設置等一系列函數文件,其中libGLES_CM.lib 庫文件會在程序編譯時加載到內存中,而libGLES_CM.dll 文件只有在鏈接的時候才會調用其函數,不會占用內存。將這兩個文件拷貝到嵌入式設備的應用程序所在的路徑NorFlash 下。但是,由于程序是在上位機上開發的,若進行上下位機聯調時,程序是從Windows 下進行啟動的,所以必須將上述的兩個文件放在下位機的Windows 文件夾下,以備聯調時程序調用。上位機與下位機是通過網線進行通訊,其原理圖如圖1 所示。

在利用VS2005 進行開發前,需對上位機的開發環境進行配置,將支持OpenGL ES 的頭文件和庫文件分別放置在應用設備的SDK 安裝目錄的頭文件夾和庫文件夾下,然后對VS 的編程環境進行相關的設置。由于鏈接時需要用到頭文件(與OpenGL ES 相關的頭文件)中聲明的函數的執行代碼,故需將函數代碼所在的庫文件添加到項目中??赏ㄟ^如下兩種方法實現:
(1)代碼實現:
#pragma comment(lib,”codegen.lib”);
#pragma comment(lib,”libGLES_CM.lib”);//告訴編譯器與DLL 相對應的.lib 文件所在的路徑及文件名。
(2)配置實現:將codegen.lib 和ibGLES_CM.lib兩個庫文件添加到“項目屬性鏈接器輸入附加依賴項”中。
本文中采用第2 種方法實現,所有配置工作完成后就可進行嵌入式設備的圖形開發工作。
OpenGL ES 的工作原理是將要繪制的圖形的一系列點寫成數組的形式,然后對數組進行著色、裝配等操作,在緩沖內存中完成繪制,然后將其交換到實際的窗口系統上[4-5],其工作過程如圖2 所示。故在利用OpenGL ES 繪圖之前,還需對OpenGL ES 進行初始化操作:在圖形界面對話框中的適當位置添加一個適當大小的靜態文本框(ID 為IDC_RENDER),以用作圖形的顯示區域。具體的操作過程如圖3 所示。


初始化完成后,就可進行圖形的繪制工作。
本系統是基于ARM+DSP+FPGA 的硬件平臺實現的[6-7],其中ARM 主要用來完成人機交互、顯示與管理功能,而DSP 主要用來實現底層運動控制的實時計算,而兩者間的通訊通過HPI(host port lnterface)來實現,底層(DSP)將電動機的實時位置、報警信息以及機床的I/O 狀態實時反饋給上層(ARM),而上層則將接收的信息進行顯示,同時,上層將編制的數控代碼經編譯后下發給DSP,經DSP 處理后控制電動機的運行;FPGA 用來采集機床信號,并將這些信號反饋給DSP 進行處理。硬件平臺圖如圖4 所示。

由于從DSP 中讀取的機床坐標和程序坐標都是編寫NC 加工代碼時的數值,將其用于圖形繪制時會出現數值過大,超出屏幕范圍的情況。為了解決這個問題,可以將獲得的坐標數值映射成為用于圖形繪制的紋理坐標,即需要建立坐標系。以工作臺的中心位置為圖形坐標系原點,根據設備屏幕上的圖形顯示范圍恰當地選擇機床零點的位置,并計算出零點在圖形坐標系中的紋理坐標(XW,YW)。開啟機床,并將機床進行回零,機床回零后如圖5 所示,將機床上的工作臺中心到機床零點的距離L0測量出來,并將這個距離與零點的紋理坐標對應起來,把工作臺的中心位置與圖形坐標系的原點對應起來,再利用線性插值的方法將刀具的軌跡坐標(X,Y)轉化成為相應的紋理坐標(XM,YM),如式(1)所示。這樣當程序坐標變化時,就可根據(XM,YM)在屏幕上顯示出刀具的軌跡。


圖形仿真的實質就是將從底層(DSP)中讀取的坐標值在實際的窗口系統上繪制出來。具體的可以設置一定時器,保證實時從DSP 存儲機床坐標和程序坐標的地址空間中讀取數值,將獲得的機床坐標和程序坐標賦給相應坐標顯示控件的關聯變量,并將刷新坐標顯示的代碼放在定時器的實現函數中,這樣當加工程序在執行過程中,圖形界面的相對坐標和絕對坐標(圖6)就會不斷刷新,給用戶辨別加工代碼的正確性提供參考,同時根據讀取的數值也可在特定的窗口上繪制出圖形。


在實際加工過程中,根據輸入的刀具齒數和模數計算刀具外徑,得到刀具形體的頂點數組,然后在圖形顯示窗口處對刀具的形體進行建模,當執行到S 指令時則將刀具形體的頂點數組的數值根據S 的數值進行關聯進而實現不同速度的上下往復運動;而執行到G00、G01 等直線運動指令時,則將刀具形體的頂點數組進行相應的增減,從而實現刀具的進給運動,刀具的運動過程實現如圖7 所示。
對于工件而言,可根據編程時輸入的齒輪模數、齒數等參數計算工件齒坯的外徑,由此建立工件的頂點數組,進而利用API 函數來實現工件的建模。在插削加工中,需實時判斷刀具的軌跡坐標與工件的最大外徑尺寸是否相交,以判定刀具是否開始切削到工件,若未切到,則對工件毛坯和刀具軌跡分別進行建模;若二者相交,則說明已經開始切削加工,需要根據刀具的軌跡坐標來調整工件毛坯的頂點數組,實現對工件未切除部分的建模,而對待加工部分進行消隱。具體的流程圖如圖8 所示。
為了全面并友好地反映加工時的部分信息,對加工軌跡監控界面進行詳細地設計,合理分配有關功能的顯示區域和比例,其布置圖如圖6 所示。

在數控加工中,往往對加工精度有較高的要求,這就需要掌握加工誤差的實際變化情況,據此來調整合適的控制參數(PID 參數)來減小誤差。本論文中首先是建立示波器模型,用于顯示每個軸的跟隨誤差;然后每隔一定的時間(可設置一定時時間為0.01 s 的定時器實現)便從DSP 中讀取各軸的跟隨誤差值(在DSP中完成每個軸的實際坐標和指令坐標的差),并將其轉化成紋理坐標,設置一數組Error[13](大小可根據需要選擇,本文中為13),用來保存每一周期的誤差值;最后將當前周期的值繪制在當前時間處,并在下一周期時,將其賦值給前一周期,不斷地循環執行(其繪制過程圖如圖9 所示),即可實現跟隨誤差的實時監測以及觀察跟隨誤差的變化情況。在監測過程中,可通過操作面板上的按鍵來設置需要顯示的軸的跟隨誤差曲線,主要是通過定義標志變量g_AxisErrorChose 來實現,當選擇不同的軸時,其值會跟著變化,根據變化的值來讀取相應軸的跟隨誤差值進行仿真。跟隨誤差的監測實現如圖10 所示。


將開發的功能模塊嵌入插齒數控系統中,并帶電動機進行調試。首先編制插削加工數控程序,并對其進行編譯處理,然后下發給DSP 進行執行,進入圖形界面,進行相關的操作,操作流程如圖11 所示,觀察操作結果,與預期效果進行比較。設置比例因子時,從操作面板上輸入需要放大或者縮小的倍數,然后按下“輸入”即可實現圖形按比例縮放。而“設置坐標系”和“設置軸號”都是由操作面板上的上下左右鍵來控制,同時也要按“輸入”進行確認。通過不同操作者進行操作,驗證了開發的功能模塊能夠實現加工過程的實時仿真顯示,每個數控軸跟隨誤差的實時監測,圖形的縮放,不同坐標系的設置等功能。測試實驗效果如圖12 所示。


本文基于ARM+DSP+FPGA 硬件平臺,利用OpenGL ES 開發出插齒加工的運動軌跡監控和跟隨誤差監測模塊。首先,對編程環境進行配置,并對Open-GL ES 進行初始化操作,以滿足開發需求;然后建立圖形坐標系并讀取坐標值進行仿真,實現插齒加工的刀具運動軌跡監控;最后建立示波器模型,并讀取各軸跟隨誤差值進行仿真監測。通過程序的執行即可實現插削加工的仿真。實驗表明,加工軌跡的實時監控仿真顯示對防止工件的過切、少切和錯切有著較好的現實意義;跟隨誤差的監測仿真對掌握誤差變化,選擇合適的控制參數具有較好的指導意義。
[1]徐建國,張友良,張谞,等.加工過程的可視化仿真[J].中國機械工程,2005,17(12):1265-1269.
[2]侯磊,王培俊,李國良,等.基于OpenGL 與VC++的虛擬數控車床加工仿真研究[J].機械工程與自動化,2011,167(4):4-6,10.
[3]蔣勇敏,許明恒.數控加工軌跡運動控制建模及仿真研究[J].中國機械工程,2006,17(21):2220-2224.
[4]Aaftab Munshi,Dan Ginsburg,Dave Shreiner.OpenGL ES 2.0 programming guide[M].Stoughton:The United States on Recycled Paper,2008.
[5]劉俊,唐善斌,劉潔,等.基于OpenGL ES 的嵌入式數控雕刻系統加工仿真設計[J].制造技術與機床,2011:67-69
[6]Han Jiang,Tian Xiao qing,Li Fu gen,et al.Key technologies of embedded gear machining CNC system[C].The 8th ASME 2013 Manufacturing Science and Engineering Conference(MSEC2013),Madison,Wisconsin.
[7]段業廣,韓江,田曉青,等.基于WinCE 的數控插齒系統多線程設計[J].組合機床及自動化加工技術,2013(7):54-57.