潘海鴻,葉文海,陳 琳,張秋杰
(廣西大學(xué)機械工程學(xué)院,南守 530004)
特種復(fù)合加工中心數(shù)控系統(tǒng)G代碼編譯器設(shè)計*
潘海鴻,葉文海,陳 琳,張秋杰
(廣西大學(xué)機械工程學(xué)院,南守 530004)
為解決自主研發(fā)的鈑金刻銑與激光切割復(fù)合加工中心開放式數(shù)控系統(tǒng)的譯碼問題,針對該復(fù)合數(shù)控系統(tǒng)在同一機床坐標系下既要實現(xiàn)銑削功能還要能夠完成激光切割的特點,提出采用分段提取、逐行分析的方法設(shè)計一種適用于平面復(fù)合加工的G代碼編譯器。該G編譯器設(shè)計過程中除考慮處理傳統(tǒng)銑削加工指令外,還要考慮激光和專用夾具控制指令的代碼檢測和譯碼,并以數(shù)據(jù)結(jié)構(gòu)體形式存放編譯后的加工數(shù)據(jù)。通過實際加工實驗驗證了所開發(fā)的G代碼編譯器的可行性。
特種復(fù)合加工中心;數(shù)控系統(tǒng);G代碼編譯器
數(shù)控技術(shù)結(jié)合傳統(tǒng)機床技術(shù)與信息技術(shù),是制造工業(yè)現(xiàn)代化的重要基礎(chǔ)。隨著科技的發(fā)展,與傳統(tǒng)封閉式數(shù)控技術(shù)相比開放式全閉環(huán)數(shù)控更符合未來發(fā)展趨勢[1]。“PC+NC(運動控制器)”型開放式數(shù)控系統(tǒng)[2-3]具有很好外部擴展性、適應(yīng)性和靈活性,能根據(jù)用戶要求定制特種復(fù)合加工系統(tǒng)。自主研發(fā)的鈑金刻銑與激光切割復(fù)合加工中心結(jié)構(gòu)上為“PC+NC”型開放式數(shù)控系統(tǒng),即運動控制器為主體,PC作為上位機運行系統(tǒng)控制軟件處理非實時性任務(wù)[4],如響應(yīng)用戶消息、G代碼的編譯[5]等。
數(shù)控加工代碼是指導(dǎo)數(shù)控系統(tǒng)加工的關(guān)鏈信息。目前,對數(shù)控代碼進行處理的方式主要有兩種:解釋和編譯[6-7]。解釋需要將代碼表示成某種中間形式再加以執(zhí)行,譯碼效果有限;編譯則直接將代碼轉(zhuǎn)換成為計算機上可執(zhí)行的數(shù)據(jù)流,由控制器直接讀取執(zhí)行,譯碼效果理想。在“PC+運動控制器”型開放式數(shù)控系統(tǒng)中,上位機PC負責將G代碼編譯成為可供運動控制器直接讀取的目標程序格式,完成加工信息與非加工信息分離和有效管理。
針對自主研發(fā)的鈑金刻銑與激光切割復(fù)合加工數(shù)控系統(tǒng)要求在同一機床坐標系下既要實現(xiàn)銑削功能還要完成激光切割的特點,設(shè)計一種G代碼編譯器,實現(xiàn)對加工G代碼的檢錯、譯碼及數(shù)據(jù)管理。
G代碼編譯器是數(shù)控系統(tǒng)連接上(PC)下(運動控制器)位機的重要模塊[8],該模塊主要完成對符合標準或特定格式要求的G代碼進行編譯,然后以結(jié)構(gòu)體形式存放在上位機申請的動態(tài)數(shù)組中等待打包下發(fā)給運動控制器。所設(shè)計編譯器整體流程如圖1所示,在編譯器內(nèi)部實現(xiàn)對G代碼的詞法、語法分析和指令模態(tài)下傳,并對存在問題的程序段進行錯誤提示。
圖1 G代碼編譯整體流程圖
自主研發(fā)的數(shù)控系統(tǒng)控制對象為特種復(fù)合加工中心,該設(shè)備的結(jié)構(gòu)包括通用三軸銑削數(shù)控加工中心部分、激光軸部分和專用夾具部分。因此,G代碼編譯器設(shè)計時除了滿足常規(guī)數(shù)控標準G代碼指令譯碼要求外,還需識別激光軸和專用夾具控制指令。
2.1 詞法分析程序的實現(xiàn)
數(shù)控加工代碼由字母與數(shù)字數(shù)據(jù)組成,對其進行詞法分析需完成數(shù)據(jù)分離、提取和格式轉(zhuǎn)換工作。根據(jù)特種復(fù)合加工中心的結(jié)構(gòu)特點,在詞法分析程序定義的G代碼字符集中增加激光軸標識符Q和M21、M53等激光、夾具控制指令。所設(shè)計的G代碼編譯器詞法分析步驟如下:
(1)以程序段為單位對G代碼逐行讀取,將程序段存至臨時字符串數(shù)組中。從程序段中讀取一個字符,忽略其大小寫,判斷該字符是否在定義的數(shù)控系統(tǒng)G代碼字符集中。若不在,則標記錯誤類型以及錯誤位置,并跳出編譯循環(huán)提示用戶錯誤信息;若存在,提取該字符后的數(shù)據(jù)信息。
(2)根據(jù)讀取的字符類型將其數(shù)據(jù)進行轉(zhuǎn)換。根據(jù)字符的類型調(diào)用函數(shù)atoi()或者atof()將數(shù)據(jù)轉(zhuǎn)換為int型或float型。當出現(xiàn)非常規(guī)數(shù)字(如出現(xiàn)兩個正負號或一個以上小數(shù)點),則標記錯誤類型以及錯誤位置,并跳出編譯循環(huán)提示用戶錯誤信息。
2.2 語法分析程序的實現(xiàn)
詞法分析僅對G代碼程序字進行檢測,但無法確保程序段語法的正確性。因此,需要對詞法分析所識別出的功能字和數(shù)據(jù)按照標準G代碼數(shù)控指令的規(guī)則和語法進行檢查。針對特種復(fù)合加工中心的主軸與激光軸的移動位于同一方向的結(jié)構(gòu)特點,在程序段語法分析時增加了對進給軸的互鎖檢查。G代碼編譯中對程序段進行如下語法分析:
(1)程序段號檢查:將當前程序段號與前一段對比,若不符合遞增規(guī)律,則標記錯誤類型;
(2)程序段模態(tài)指令檢查:標記程序段中同組模態(tài)指令出現(xiàn)次數(shù)。當該程序段同時存在多個同組指令,如G02 G03 X100,則標記錯誤類型;
(3)冗余指令檢查:判斷程序中是否出現(xiàn)冗余指令或字符,如同一行中出現(xiàn)兩個X坐標字,則標記錯誤類型;
(4)指令數(shù)據(jù)和進給軸行程范圍檢查:若存在數(shù)值超程,如主軸轉(zhuǎn)速超過上限10000 r/min,則標記錯誤類型;
(5)進給軸互鎖檢查:若程序段中同時存在主軸和激光軸的運動指令,則標記錯誤類型。
當語法分析過程中錯誤類型標記不為空,則跳出編譯循環(huán)并提示用戶錯誤信息和程序段位置。詞法、語法分析程序?qū)崿F(xiàn)流程見圖2。
圖2 詞法、語法程序分析流程圖
2.3 指令模態(tài)下傳的實現(xiàn)
在G代碼中有一些模態(tài)功能[9-10]指令,如 G00、 G01等。這類指令將會保持有效直到被下一條具有相同模態(tài)功能的指令所替換,調(diào)用函數(shù)CheckSen()實現(xiàn)程序段間的模態(tài)傳遞。具體實現(xiàn)流程見圖3,其中SenErr是模態(tài)下傳時出現(xiàn)錯誤的標記。
圖3 G代碼模態(tài)下傳流程圖
譯碼過程中需對所提取的加工代碼數(shù)據(jù)進行存儲,因此設(shè)計結(jié)構(gòu)體GCODE保存G代碼程序段編譯完成后所得數(shù)據(jù),并以動態(tài)數(shù)組存儲G代碼文件的全部譯碼數(shù)據(jù)。GCODE結(jié)構(gòu)體如下:
以鈑金刻銑與激光切割復(fù)合加工中心開放式數(shù)控系統(tǒng)為實驗平臺,通過圖形仿真與實例加工來驗證所設(shè)計G代碼編譯器的可行性。
繪制加工零件并生成對應(yīng)G代碼,將該G代碼導(dǎo)入鈑金刻銑與激光切割復(fù)合加工中心數(shù)控系統(tǒng)上位機控制軟件,導(dǎo)入的部分G代碼如圖4所示,經(jīng)過編譯代碼后的軌跡仿真和實例加工的樣例分別如圖5a和圖5b所示。
圖4 導(dǎo)入的部分G代碼
圖5 上位機控制軟件仿真和實例加工樣例圖
針對自主研發(fā)的開放式數(shù)控系統(tǒng)具有鈑金刻銑與激光切割復(fù)合加工的特點,設(shè)計出一種既滿足一般通用性又滿足刻銑與激光切割復(fù)合加工要求的G代碼編譯器。該編譯器能夠?qū)代碼進行詞法和語法分析,并提示譯碼過程中的錯誤信息。實際加工實驗結(jié)果表明所開發(fā)的G代碼編譯器能準確實現(xiàn)數(shù)據(jù)提取與解析,完成加工信息的轉(zhuǎn)換。該研究可為后續(xù)開放式數(shù)控系統(tǒng)的開發(fā)與實現(xiàn)提供一定的借鑒作用。
[1]劉思勝,李松生,陳萍.數(shù)控G代碼解釋器和仿真模塊的設(shè)計與實現(xiàn)[J].機械設(shè)計與制造,2012(1):172-174.
[2]周凱.PC數(shù)控原理、系統(tǒng)與應(yīng)用[M].北京:機械工業(yè)出版社,2006.
[3]房書文,張桂香.PC內(nèi)嵌NC型開放式數(shù)控系統(tǒng)軟件的研制開發(fā)[J].組合機床與自動化加工技術(shù),2005(11):53-55.
[4]張政,吳序堂,馬書根,等.基于軟件化體系結(jié)構(gòu)的數(shù)控機床主控系統(tǒng)的開發(fā)[J].機械工程學(xué)報,2003,39(2):93-97.
[5]周剛,鄔義杰,潘曉弘.數(shù)控系統(tǒng)軟件模塊實時調(diào)度方法[J].機械工程學(xué)報,2009,45(1):162-166.
[6]賈旭,盧曉紅,王鑫鑫,等.基于PMAC的微銑床數(shù)控系統(tǒng)中G代碼編譯研究[J].組合機床與自動化加工技術(shù),2012(3):104-107.
[7]張學(xué)飛,李健.開放式數(shù)控系統(tǒng)G代碼的編譯模塊設(shè)計[J].機械設(shè)計與制造,2010(10):87-88.
[8]伍抗逆,李斌,陳吉紅.面向開放式數(shù)控系統(tǒng)平臺的NC代碼解釋器開發(fā)[J].中國機械工程,2006,17(2):168-171.
[9]劉書華.數(shù)控機床與編程[M].北京:機械工業(yè)出版社,2001.
[10]林礪宗,蘭剛,宋啟盛,等.面向固高數(shù)控卡的G代碼系統(tǒng)[J].模具技術(shù),2009(1):5-8.
(編輯 趙蓉)(編輯 趙蓉)
The Design of G Code Compiler for Special Compound M achining Center NC System
PAN Hai-hong,YE Wen-hai,CHEN Lin,ZHANG Qiu-jie
(College of Mechanical Engineering,Guangxi University,Nanning 530004,China)
In order to solve the code compilation problem of self-developed laser cutting sheet metal with engraved milling machining center open NC system,the method of sub-extraction and line by line analysis was proposed to design a G-code compiler.When this G-code compiler is designed for flat composite processing,the characteristics of complex NC system in the same machine coordinate system to achieve milling and laser cutting must be considered.This designed G-code compiler not only fits to realize the traditional milling instructions,but also fits to realize G code detection and decoding of laser and special fixture control instructions.The compiled data was stored in the form of data structure.The experiments indicate that the developed G-code compiler is feasibility.
special compound machining center;NC system;G-code compiler
TH166;TG659
A
1001-2265(2015)06-0071-03 DOI:10.13462/j.cnki.mmtamt.2015.06.020
2014-09-02,
2014-10-20
國家自然科學(xué)基金(51465005);南寧市科技攻關(guān)(20141018)
潘海鴻(1966—),男,壯族,廣西壯族自治區(qū)武鳴市人,廣西大學(xué)教授,博士,博士生導(dǎo)師,研究方向為數(shù)控技術(shù)、機器人控制技術(shù),(E-mail)hustphh@163.com;通訊作者:陳琳(1973—),女,山東青島人,廣西大學(xué)教授,研究方向為數(shù)控技術(shù)、數(shù)字信號檢測與處理、伺服電機控制,(E-mail)gxdxcl@163.com。