李雪萍,吳文江
(中國(guó)科學(xué)院沈陽(yáng)計(jì)算技術(shù)研究所,沈陽(yáng) 110015)
數(shù)控系統(tǒng)零件加工庫(kù)的設(shè)計(jì)與實(shí)現(xiàn)*
李雪萍,吳文江
(中國(guó)科學(xué)院沈陽(yáng)計(jì)算技術(shù)研究所,沈陽(yáng) 110015)
文章在數(shù)控系統(tǒng)平臺(tái)上設(shè)計(jì)并實(shí)現(xiàn)一個(gè)零件加工庫(kù)管理系統(tǒng),從而為用戶提供一種建立零件加工庫(kù)的機(jī)制。該系統(tǒng)采用參數(shù)化的形式,將典型加工程序模板化,提高加工程序的靈活適應(yīng)性。論文闡述了零件加工庫(kù)的系統(tǒng)結(jié)構(gòu)并給出了系統(tǒng)參數(shù)校驗(yàn)?zāi)K的分析處理過(guò)程。同時(shí)系統(tǒng)提供了刀具軌跡的仿真驗(yàn)證功能,用戶可以參照仿真圖形驗(yàn)證所編寫加工程序的正確性。
數(shù)控系統(tǒng);零件加工庫(kù);參數(shù)校驗(yàn);仿真驗(yàn)證
國(guó)內(nèi)北京聯(lián)高軟件開發(fā)有限公司開發(fā)的可視化數(shù)控編程軟件VisualG,是一套數(shù)控程序員可以簡(jiǎn)單、直觀、快速地輸入、編輯、調(diào)試和仿真數(shù)控代碼的簡(jiǎn)單而高效的數(shù)控編程軟件。德國(guó)西門子公司專為現(xiàn)代車削加工而開發(fā)的軟件ShopTurn,采用按加工步驟,規(guī)劃整個(gè)工件的加工,每一條加工指令的生成,均采用參數(shù)化界面,輔以智能的在線幫助文本,再加上直觀的圖形顯示,讓用戶得以輕松編制任何復(fù)雜的加工程序,而無(wú)需學(xué)習(xí)專門的NC編程知識(shí)。
國(guó)外前期在數(shù)控編程軟件易用性方面已經(jīng)做了一些較好的工作。國(guó)內(nèi)在這方面也有了一定的進(jìn)步。因此,開展簡(jiǎn)化用戶編程方式的研發(fā)工作是國(guó)內(nèi)外數(shù)控系統(tǒng)編程軟件的一個(gè)發(fā)展方向。
本文在數(shù)控系統(tǒng)平臺(tái)上設(shè)計(jì)并實(shí)現(xiàn)一個(gè)零件加工庫(kù)系統(tǒng),從而為用戶提供一種建立零件加工庫(kù)的機(jī)制。這種機(jī)制的設(shè)計(jì)以簡(jiǎn)化編程方式、提高編程效率以及增加數(shù)控系統(tǒng)的人機(jī)交互功能為設(shè)計(jì)目標(biāo)。該系統(tǒng)可以避免重復(fù)性的勞動(dòng),使熟練或非熟練的操作者,都能直接通過(guò)手上的“零件庫(kù)”完成復(fù)雜的加工任務(wù),并且使得有編程經(jīng)驗(yàn)的用戶,以數(shù)控加工工藝為基本原則,將各類典型的加工零件分類,建立零件加工庫(kù)來(lái)完成加工任務(wù)。通過(guò)加工經(jīng)驗(yàn)的不斷積累,當(dāng)零件加工庫(kù)的實(shí)例積累到一定程度,方便經(jīng)驗(yàn)不足的用戶通過(guò)瀏覽零件加工庫(kù)模板尋找適合自己的加工方案完成加工任務(wù)[1]。
可擴(kuò)展結(jié)構(gòu)是指系統(tǒng)數(shù)據(jù)結(jié)構(gòu)和實(shí)現(xiàn)上的開放性,是系統(tǒng)生命力的重要體現(xiàn)。本文實(shí)現(xiàn)的零件加工庫(kù)管理系統(tǒng)著重考慮系統(tǒng)的可擴(kuò)展性,即設(shè)計(jì)人員可以自行向零件庫(kù)中加入新的零件信息。這個(gè)系統(tǒng)可以通過(guò)其各個(gè)模塊功能很好的保存數(shù)控典型加工程序及其相關(guān)輔助信息[2]。
本文設(shè)計(jì)的零件加工庫(kù)系統(tǒng)根據(jù)工作需求,以簡(jiǎn)便、實(shí)用的思想為指導(dǎo),設(shè)計(jì)實(shí)現(xiàn)該系統(tǒng),主要體現(xiàn)在以下四個(gè)方面:
(1)可編輯、可擴(kuò)展。用戶可根據(jù)自己的需求,加工同一類型不同尺寸的零件。輸入零件加工程序及其變量等相關(guān)信息。
(2)可檢驗(yàn)。在用戶輸入待加工零件的尺寸后,系統(tǒng)可以自動(dòng)地進(jìn)行合法性驗(yàn)證,檢查各數(shù)值間是否滿足一定的約束關(guān)系,并可以及時(shí)發(fā)現(xiàn)錯(cuò)誤、及時(shí)修改。
(3)幫助文檔及輔助圖形的支持。系統(tǒng)可以添加編輯加工零件的示意圖和詳細(xì)幫助文檔,以便用戶理解。
(4)3D仿真。調(diào)用底層的解釋器和任務(wù)器,得到刀具軌跡狀態(tài),進(jìn)而繪制刀具軌跡,實(shí)現(xiàn)零件加工程序的驗(yàn)證和仿真[3]。
根據(jù)以上設(shè)計(jì)思想,整個(gè)零件加工庫(kù)管理系統(tǒng)由六個(gè)模塊組成。文件管理編輯模塊、參數(shù)編輯模塊、約束條件編輯模塊、校驗(yàn)?zāi)K、輔助模塊和程序仿真模塊。
(1)文件管理編輯模塊負(fù)責(zé)用戶創(chuàng)建、刪除零件加工庫(kù)目錄及相關(guān)文件。它幫助用戶有效編輯保存數(shù)控系統(tǒng)典型加工程序及其相關(guān)輔助信息。
(2)參數(shù)編輯模塊負(fù)責(zé)用戶輸入零件加工程序中的變量相關(guān)信息,采用參數(shù)化的形式,將典型加工程序模板化,可以加工出同一類型不同尺寸的零件。
(3)約束條件模塊負(fù)責(zé)用戶輸入變量之間的約束關(guān)系,從而進(jìn)行合法性驗(yàn)證。
(4)校驗(yàn)?zāi)K幫助用戶對(duì)其輸入的參數(shù)及約束條件進(jìn)行合法性驗(yàn)證。
(5)輔助模塊包括圖形輔助模塊和幫助信息模塊。前者提供添加加工零件的示意圖功能,可以使用戶對(duì)零件有著感觀的認(rèn)識(shí)。后者可以輸入加工零件的文字描述。
(6)程序仿真模塊提供刀具軌跡仿真功能,實(shí)現(xiàn)零件加工程序的驗(yàn)證和仿真。
零件加工庫(kù)中各模塊文件分別保存于以gcode、img、info、lib為名的文件夾中,其中零件加工程序文件存放于gcode文件夾,用戶添加的零件示意圖文件存放于img文件夾中,用戶輸入的相關(guān)幫助信息文件存放于info文件夾中,參數(shù)和約束條件一起保存于以.lib格式命名的文件,存放于lib文件夾中。
零件加工庫(kù)模塊以目錄樹的形式展現(xiàn),主要分為三項(xiàng),有零件庫(kù),輔助庫(kù)和現(xiàn)有程序庫(kù)。零件庫(kù)是由G代碼程序文件及相關(guān)輔助信息構(gòu)成;輔助庫(kù)是由輔助動(dòng)作文件構(gòu)成,一般是幾句G/M代碼,比如冷卻液關(guān)閉、打開,程序結(jié)束等;現(xiàn)有程序庫(kù)是由已有的G代碼程序文件組成。
零件加工庫(kù)的整體界面設(shè)計(jì)如圖1所示。
圖1 零件加工庫(kù)管理系統(tǒng)操作界面
零件加工庫(kù)參數(shù)校驗(yàn)機(jī)制是為了滿足用戶輸入待加工零件的尺寸后,系統(tǒng)可以自動(dòng)地進(jìn)行合法性驗(yàn)證。每個(gè)約束關(guān)系都是一個(gè)關(guān)系表達(dá)式,所以判斷約束關(guān)系的結(jié)果實(shí)質(zhì)是表達(dá)式求值問(wèn)題。
表達(dá)式求值一般有兩種方法:
(1)算符優(yōu)先算法是用兩個(gè)棧來(lái)實(shí)現(xiàn),依次讀入表達(dá)式中的每個(gè)字符,若是操作數(shù)則將該字符壓入操作數(shù)棧,若是運(yùn)算符,則壓入運(yùn)算符棧并和棧頂字符比較優(yōu)先級(jí),并采取對(duì)應(yīng)操作。
(2)遞歸向下解析器方法是表達(dá)式被視為遞歸的數(shù)據(jù)結(jié)構(gòu),所有的表達(dá)式可以由如下的規(guī)則生成:表達(dá)式由項(xiàng)組成,項(xiàng)又由因數(shù)構(gòu)成,因數(shù)又可以是數(shù)字或者是表達(dá)式。
用戶輸入約束關(guān)系表達(dá)式可以包含三角函數(shù),關(guān)系運(yùn)算符、邏輯運(yùn)算符等,例如(!a&&(c<sin(c-d)))。如果單采用算符優(yōu)先算法,無(wú)法比較三角函數(shù)和邏輯、關(guān)系運(yùn)算符優(yōu)先級(jí)。所以本文綜合了兩種方法解決表達(dá)式求值問(wèn)題。
本文設(shè)計(jì)思想是采用一個(gè)棧來(lái)實(shí)現(xiàn)算符優(yōu)先算法,并且表達(dá)式被視為遞歸的數(shù)據(jù)結(jié)構(gòu),由整體因數(shù)和運(yùn)算符構(gòu)成。通過(guò)整體因數(shù)函數(shù)求解操作數(shù),按順序依次獲取操作數(shù)和運(yùn)算符,并把兩者一起壓入棧中。當(dāng)存放運(yùn)算符時(shí),直接利用轉(zhuǎn)化優(yōu)先級(jí)函數(shù)存放對(duì)應(yīng)的優(yōu)先級(jí)數(shù)。再次讀入下一個(gè)操作數(shù)和優(yōu)先級(jí)數(shù),比較此優(yōu)先級(jí)數(shù)是否高于棧頂優(yōu)先級(jí)數(shù),再按算符優(yōu)先算法思想采取相應(yīng)操作。本文按照運(yùn)算符的優(yōu)先級(jí),定義以下運(yùn)算符的優(yōu)先級(jí)數(shù),如表1所示。
表1 運(yùn)算符的優(yōu)先級(jí)數(shù)
數(shù)控機(jī)床是靠控制數(shù)控指令程序完成加工零件任務(wù)[4]。為了確保數(shù)控零件加工程序的正確性,零件加工庫(kù)提供了程序仿真功能,讓編程人員可以實(shí)現(xiàn)零件加工程序的驗(yàn)證和仿真,從而提高工作效率[5]。本文利用linux環(huán)境下Qt軟件,結(jié)合OpenGL圖形編程,并采用基于數(shù)控代碼的仿真方法,開發(fā)零件加工庫(kù)的程序仿真模塊[6]。
2.2.1 仿真模塊軌跡點(diǎn)的數(shù)據(jù)結(jié)構(gòu)
仿真模塊需要獲取G代碼程序中刀具軌跡信息才能完成繪制工作[7]。這些軌跡信息是數(shù)控系統(tǒng)中的任務(wù)控制器在執(zhí)行程序驗(yàn)證時(shí)生成的。通過(guò)網(wǎng)絡(luò)套接字遠(yuǎn)程實(shí)現(xiàn)零件加工庫(kù)系統(tǒng)和數(shù)控系統(tǒng)之間的聯(lián)系。在數(shù)控系統(tǒng)中建立一個(gè)聯(lián)絡(luò)員進(jìn)程,以實(shí)現(xiàn)兩臺(tái)主機(jī)間的通信[8]。仿真模塊軌跡點(diǎn)的數(shù)據(jù)結(jié)構(gòu)定義如下:
這種結(jié)構(gòu)采用位字段方式既節(jié)省存儲(chǔ)空間,又可以方便操作。當(dāng)加工零件程序過(guò)于冗長(zhǎng)時(shí),進(jìn)行軌跡仿真存儲(chǔ)點(diǎn)信息,這種設(shè)計(jì)可以節(jié)省存儲(chǔ)空間。
2.2.2 程序仿真模塊參數(shù)文件的處理
系統(tǒng)程序仿真模塊通過(guò)socket文件流給數(shù)控系統(tǒng)傳送程序代碼,進(jìn)而調(diào)用數(shù)控系統(tǒng)中的任務(wù)器對(duì)程序進(jìn)行解析。在傳送文件過(guò)程中,如果加工程序中包含變量,需要替換為具體的變量值,才能進(jìn)行加工軌跡的仿真。為了方便尋找程序中的變量,規(guī)定用戶在輸入零件加工程序時(shí),需要用左右尖括號(hào)包含變量,例如變量a,輸入為<a>。這樣就可以利用正則表達(dá)式"<[^<][^>]* >"方便地進(jìn)行匹配。
2.2.3 仿真模塊繪圖算法流程設(shè)計(jì)
仿真模塊從遠(yuǎn)程socket服務(wù)器中接收加工軌跡點(diǎn)存入到shapeList數(shù)組中,并按shapeList數(shù)組中點(diǎn)的類型分別調(diào)用各個(gè)繪圖函數(shù)[9]。繪制仿真軌跡的流程圖如圖2所示。
零件加工庫(kù)的仿真模塊通過(guò)對(duì)數(shù)控刀具軌跡數(shù)據(jù)的處理,動(dòng)態(tài)地繪制刀具加工運(yùn)動(dòng)軌跡,能夠使用戶快速、高效地實(shí)現(xiàn)零件加工程序的驗(yàn)證和仿真,并且用戶可以從多方位,多角度觀察仿真效果,可視效果非常好[10]。圖3為一個(gè)直線排孔零件加工程序的程序仿真效果圖。
圖2 繪制仿真軌跡流程圖
圖3 程序仿真效果圖
本文在藍(lán)天數(shù)控系統(tǒng)平臺(tái)上設(shè)計(jì)并實(shí)現(xiàn)一個(gè)零件加工庫(kù)系統(tǒng),從而為用戶提供一種建立零件加工庫(kù)的機(jī)制。論文闡述了零件加工庫(kù)的系統(tǒng)結(jié)構(gòu)并給出了系統(tǒng)參數(shù)校驗(yàn)?zāi)K的分析處理過(guò)程。同時(shí)系統(tǒng)程序仿真模塊提供了刀具軌跡仿真功能,進(jìn)而實(shí)現(xiàn)零件加工程序的驗(yàn)證和仿真[11]。目前本系統(tǒng)已成功應(yīng)用到藍(lán)天系列數(shù)控系統(tǒng)中。
[1]高慧.藍(lán)天數(shù)控系統(tǒng)宏程序及圖形輔助編程模塊的設(shè)計(jì)與實(shí)現(xiàn)[D].沈陽(yáng):中國(guó)科學(xué)院沈陽(yáng)計(jì)算技術(shù)研究所,2008.
[2]高杉,吳文江.數(shù)控系統(tǒng)宏程序會(huì)話編程設(shè)計(jì)與實(shí)現(xiàn)[J].遼寧省交通高等??茖W(xué)校學(xué)報(bào),2010(10):12-5.
[3]何峰,蔣新華.Linux下數(shù)控代碼的軌跡仿真[J].機(jī)床與液壓,2009,37(6):178 -182.
[4]蔣秀峰,任志雄.可視編譯器的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)與現(xiàn)代化,2010(10):63-67.
[5]彭健鈞,郭銳鋒,張世民,等.數(shù)控加工仿真系統(tǒng)的研究與應(yīng)用[J].小型微型計(jì)算機(jī)系統(tǒng),2010(6):218-222.
[6]方建忠,尹顯明.基于QT OpenGL的軌跡仿真模塊的設(shè)計(jì)[J].制造技術(shù)與機(jī)床,2009(2):81-84.
[7]李琳茹,游林儒,劉少君.利用OpenGL實(shí)現(xiàn)數(shù)控系統(tǒng)加工過(guò)程的三維動(dòng)態(tài)仿真[J].組合機(jī)床與自動(dòng)化加工技術(shù),2012(1):62-65.
[8]吳晶,史步海.基于EMC2的數(shù)控系統(tǒng)軟件架構(gòu)及通信機(jī)制分析[J].組合機(jī)床與自動(dòng)化加工技術(shù),2010(10):48-51.
[9]Rongjian Zheng,Genwang Ying.Improvement of NC Simulation Using Three-Dimension Graphics Arrangement Method[J],International Conforence on Computer Application and System Modeling,2010,15:469 -471.
[10] Wang Pin,Su Lanzhi.Design and Realization of NC Graphic Programming System[J],Second WRI World Congress on Software Engineering,2010:26-29.
[11]Zongmin Chen,Development of OpenGL Based 3D Simulator for Computer Numerical Control[J],International Conference on Artificial Intelligence and Computational Intelligence,2010:319-321.
(編輯 李秀敏)
Design and Im plementation of a Parts Library on CNC System
The paper designs and implements the parts processing library so as to provide users w ith a mechanism of establishing parts processing library on CNC system experimental platform.The system uses a parameterized form and makes the typical processing procedure template in order to improve the flexibility and adaptability of the processing procedure.The paper describes the system architecture of the parts processing library and gives the analysis process of the parameter calibration module.And the system provides a simulation function of the tool path,the user can refer to the simulation to verify the correctness of the processing program.
NC system;parts processing library;parameters calibration;simulation verification
TH16;TG65
A
1001-2265(2013)03-0047-03
2012-09-04;
2012-09-15
“高檔數(shù)控機(jī)床與基礎(chǔ)制造裝備”國(guó)家科技重大專項(xiàng)(2011ZX04016-071);國(guó)家重點(diǎn)基礎(chǔ)研究發(fā)展計(jì)劃資助(973項(xiàng)目,2011CB302400)
李雪萍(1988—),女,黑龍江人,中科院沈陽(yáng)計(jì)算技術(shù)研究所碩士研究生,研究方向?yàn)橛?jì)算機(jī)應(yīng)用技術(shù),(E-mail)lxpfamily@163.com。
LIXue-ping,WUWen-jiang
(Shenyang Institute of Computing Technology,Chinese Academy of Sciences,Shenyang 110015,China)