【摘 要】利用Visual C++結合OpenGL開發數控車床動態仿真系統,主要包括幾何建模、NC代碼編譯及仿真顯示三大部分的處理形式。
【關鍵詞】數控車床仿真 教學系統 研究 開發
【中圖分類號】G 【文獻標識碼】A
【文章編號】0450-9889(2012)02C-0190-02
隨著機械加工技術的發展,數控機床的應用日趨廣泛。在這樣的產業背景下,社會對從業人員數控加工技能的要求也日漸增高。在高職教育中,數控技術已經成為機械類學生的重點課程。技能的掌握必須通過實踐去獲取,然而在多數職業院校中,設備資金的短缺使得可供學生訓練的機床有限,學生無法在學校獲得較好的訓練,制約了其技能的掌握。計算機技術特別是虛擬技術的發展及應用,使數控技術的實踐教學有了一個新的平臺,利用計算機虛擬數控機床的功能及操作模式,學生身臨其境,一方面解決了設備少、學生多的矛盾;另一方面降低了操作的危險性,并減少機床的損壞風險。
數控仿真只是利用計算機代替實際的機床對零件進行加工,因此,仿真系統應包含如下幾個模塊:幾何建模、NC代碼編譯、仿真顯示。
一、幾何建模
數控仿真中,幾何建模主要包括建立毛坯模型、刀具模型、數控機床建模以及數控機床的運動模型。幾何建模OpenGL(Open Graphics Library,開放式圖形庫)是一個開放的三維圖形軟件包,可以與Visual C++緊密接口。OpenGL是圖形的底層圖形庫,其本身沒有提供幾何實體圖元,不能直接用來描述場景,但是,通過一些轉換程序,可以很方便地將AutoCAD、3DS/3DSMAX等3D圖形設計軟件制作的DXF和3DS模型文件轉換成OpenGL的頂點數組,以它為基礎開發的應用程序可以十分方便地在各種平臺間移植。
本系統中,采用Visual C++與開放式三維圖形編程標準OpenGL相結合,建立一個與OpenGL相應的接口類完成對OpenGL的初始化設置。在使用OpenGL進行渲染的時候,只需要編制根據插補計算得到的刀位軌跡數據表,然后在圖形顯示類中調用OpenGL基本圖元繪制函數和復雜三維曲線/面繪制函數進行環境的建模。OpenGL的工作流程如圖1所示。利用對話框來實現對毛坯形狀、尺寸、材料的設置以及對刀具的選擇。數控車床模型則根據動、靜部件拆分后完成,拆分后數控車床就有數控車床床身、主軸、刀架、尾架。各運動部件的坐標均符合右手笛卡爾坐標系。
二、NC代碼編譯
數控加工是通過數控加工程序來實現的。一個完整的數控程序由若干NC代碼構成的程序段組成。因此,在仿真系統中,對NC代碼的編譯是實現數控仿真的關鍵。NC代碼的編譯根據數控機床執行數控加工程序的一般原則,自上而下進行編譯。NC代碼的編譯主要包括以下內容:
(一)對NC程序的語法進行檢查。對NC程序的語法進行檢查,主要是對準備功能G代碼、輔助功能M代碼以及其他功能代碼的格式進行標準化、相容性檢查。
在數控程序中,指令代碼應遵循一定的規則:一是N為順序號,用于標明程序的前后順序,兩個N之間的內容為一個完整的程序段。二是準備功能G代碼根據功能不同分兩大類,一類為續效(模態)指令代碼,即某一指令代碼在某一程序段中被指定后,在后續的程序段中就持續有效,并且在后續的程序段中也不必寫出該指令,直至在其他程序段中出現同一組的其他準備功能指令,該指令才失效。此外,同組的指令不能同時出現在同一程序段中。例如,G00、G01、G02、G03為同組的模態指令。另一類為非續效(非模態)指令代碼,即在其被指定的程序段中,指定功能被執行,在后續的程序中未被指定則無效,如要再次被執行必須再次指定。例如,G04。三是在一個程序段中,I、J、K和R不能同時出現。四是同一個程序段中同一字被多次指定則后者優先。
(二)數據的處理。數控加工中,零件輪廓是由程序中指定的坐標值決定的。數控程序中給定的坐標數據為此次刀具軌跡的終點,同時也是下一次刀具軌跡的起點,因此,數據具有連續性、有序性,在數據的處理上采用動態的數據鏈表。
(三)譯碼。譯碼主要是把各個程序段中的信息提取出來,并將信息轉換成相應的數據量或狀態量進行存儲、處理。為了能得到較高的系統運行速度,提高加工效率,對數據的處理采用編譯的數據處理方式,前期譯碼,將生成的數據存入緩沖區內,插補計算時再從緩沖區中調用,以獲得較快的運算速度,但對內存的要求比較高,內存開銷大。處理的流程如圖2所示。
三、數控仿真顯示
數控加工實際是刀具相對于毛坯的運行過程,刀具運動的精確性影響著生產的結果。數控仿真的意義就在于把刀具相對于零件毛坯的運動軌跡通過計算機的圖形處理功能顯示出來,方便操作者判斷刀具加工軌跡的正確性,能夠在實際加工前發現問題,并能檢查刀具與工件的干涉問題。通過數控仿真,可以減少試切甚至可以不試切就進行實物加工,減少試加工時造成的原料、人工成本的消耗,這對于復雜的零件加工尤為重要。刀具軌跡的仿真主要通過主控模塊完成對NC程序編譯模塊、分析模塊和圖形處理模塊三部分的相關處理,處理流程如圖3所示。
(一)模塊功能。NC程序編譯模塊根據數控NC程序的規則讀入NC程序,并按照NC程序的語法結構檢查其正確性,根據指令類型調用相應的函數進行處理。NC程序分析模塊將相應的NC程序指令處理結果轉換成為相應的控制參數或圖形參數。NC圖形處理模塊則將轉換好的控制參數和圖形參數,完成加工過程中所形成的直線或圓弧線,以完成對程序的刀具軌跡的生成。
(二)控制與顯示模塊。數控機床在操作時主要通過操作面板來實現各種動作,如機床參數的初始化,機床主軸的啟停操作,超程報警和解除,程序的啟動、暫停,機床急停,自動執行、手動執行、回零點的轉換等。利用VisualC++開發軟件強大的控件設計,對各種按鈕進行狀態監控,實現對操作界面上對應的事件實時地作出響應。在進行運動控制、零件加工狀態時,動態地對刀具、機床、工件進行處理,根據加工的速度,在窗口中實時地顯示出各工具運動和工件成型的動態圖像。仿真的總體構架如圖4所示。
上述數控仿真教學系統是在PC機的開放平臺基礎上開發的,具有很好的使用普遍性,系統采用模塊化的構建方式設計,這對于數控系統NC格式不同的編程有較好的兼容性,嵌入或置換不同的NC指令模塊可形成不同的數控系統。VisualC++中控件的靈活使用,增加了系統的易控性、交互性,且界面友好。
【參考文獻】
[1]費廣正,喬林.VisualC++6.0高級編程技術-OpenGL篇[M].北京:中國鐵道出版社,2001
[2]朱洪波.Visual C++6.0完全自學寶典[M].北京:清華大學出版社,2008
[3]應珂.基于OpenGL的數控仿真三維圖形的研究[J].微計算機信息,2006(25)
[4]范建明,曹鋒,劉金磊.數控機床仿真系統研究[J].煤礦機械,2010(1)
【作者簡介】鄧岐杏(1978- ),女,廣西水利電力職業技術學院機電工程系講師,研究方向:數控技術、機電一體化技術。
(責編 吳 筱)