潘海鴻,葉文海,陳 琳,張秋杰
(廣西大學(xué)機(jī)械工程學(xué)院,南守 530004)
特種復(fù)合加工中心數(shù)控系統(tǒng)G代碼編譯器設(shè)計(jì)*
潘海鴻,葉文海,陳 琳,張秋杰
(廣西大學(xué)機(jī)械工程學(xué)院,南守 530004)
為解決自主研發(fā)的鈑金刻銑與激光切割復(fù)合加工中心開(kāi)放式數(shù)控系統(tǒng)的譯碼問(wèn)題,針對(duì)該復(fù)合數(shù)控系統(tǒng)在同一機(jī)床坐標(biāo)系下既要實(shí)現(xiàn)銑削功能還要能夠完成激光切割的特點(diǎn),提出采用分段提取、逐行分析的方法設(shè)計(jì)一種適用于平面復(fù)合加工的G代碼編譯器。該G編譯器設(shè)計(jì)過(guò)程中除考慮處理傳統(tǒng)銑削加工指令外,還要考慮激光和專用夾具控制指令的代碼檢測(cè)和譯碼,并以數(shù)據(jù)結(jié)構(gòu)體形式存放編譯后的加工數(shù)據(jù)。通過(guò)實(shí)際加工實(shí)驗(yàn)驗(yàn)證了所開(kāi)發(fā)的G代碼編譯器的可行性。
特種復(fù)合加工中心;數(shù)控系統(tǒng);G代碼編譯器
數(shù)控技術(shù)結(jié)合傳統(tǒng)機(jī)床技術(shù)與信息技術(shù),是制造工業(yè)現(xiàn)代化的重要基礎(chǔ)。隨著科技的發(fā)展,與傳統(tǒng)封閉式數(shù)控技術(shù)相比開(kāi)放式全閉環(huán)數(shù)控更符合未來(lái)發(fā)展趨勢(shì)[1]。“PC+NC(運(yùn)動(dòng)控制器)”型開(kāi)放式數(shù)控系統(tǒng)[2-3]具有很好外部擴(kuò)展性、適應(yīng)性和靈活性,能根據(jù)用戶要求定制特種復(fù)合加工系統(tǒng)。自主研發(fā)的鈑金刻銑與激光切割復(fù)合加工中心結(jié)構(gòu)上為“PC+NC”型開(kāi)放式數(shù)控系統(tǒng),即運(yùn)動(dòng)控制器為主體,PC作為上位機(jī)運(yùn)行系統(tǒng)控制軟件處理非實(shí)時(shí)性任務(wù)[4],如響應(yīng)用戶消息、G代碼的編譯[5]等。
數(shù)控加工代碼是指導(dǎo)數(shù)控系統(tǒng)加工的關(guān)鏈信息。目前,對(duì)數(shù)控代碼進(jìn)行處理的方式主要有兩種:解釋和編譯[6-7]。解釋需要將代碼表示成某種中間形式再加以執(zhí)行,譯碼效果有限;編譯則直接將代碼轉(zhuǎn)換成為計(jì)算機(jī)上可執(zhí)行的數(shù)據(jù)流,由控制器直接讀取執(zhí)行,譯碼效果理想。在“PC+運(yùn)動(dòng)控制器”型開(kāi)放式數(shù)控系統(tǒng)中,上位機(jī)PC負(fù)責(zé)將G代碼編譯成為可供運(yùn)動(dòng)控制器直接讀取的目標(biāo)程序格式,完成加工信息與非加工信息分離和有效管理。
針對(duì)自主研發(fā)的鈑金刻銑與激光切割復(fù)合加工數(shù)控系統(tǒng)要求在同一機(jī)床坐標(biāo)系下既要實(shí)現(xiàn)銑削功能還要完成激光切割的特點(diǎn),設(shè)計(jì)一種G代碼編譯器,實(shí)現(xiàn)對(duì)加工G代碼的檢錯(cuò)、譯碼及數(shù)據(jù)管理。
G代碼編譯器是數(shù)控系統(tǒng)連接上(PC)下(運(yùn)動(dòng)控制器)位機(jī)的重要模塊[8],該模塊主要完成對(duì)符合標(biāo)準(zhǔn)或特定格式要求的G代碼進(jìn)行編譯,然后以結(jié)構(gòu)體形式存放在上位機(jī)申請(qǐng)的動(dòng)態(tài)數(shù)組中等待打包下發(fā)給運(yùn)動(dòng)控制器。所設(shè)計(jì)編譯器整體流程如圖1所示,在編譯器內(nèi)部實(shí)現(xiàn)對(duì)G代碼的詞法、語(yǔ)法分析和指令模態(tài)下傳,并對(duì)存在問(wèn)題的程序段進(jìn)行錯(cuò)誤提示。
圖1 G代碼編譯整體流程圖
自主研發(fā)的數(shù)控系統(tǒng)控制對(duì)象為特種復(fù)合加工中心,該設(shè)備的結(jié)構(gòu)包括通用三軸銑削數(shù)控加工中心部分、激光軸部分和專用夾具部分。因此,G代碼編譯器設(shè)計(jì)時(shí)除了滿足常規(guī)數(shù)控標(biāo)準(zhǔn)G代碼指令譯碼要求外,還需識(shí)別激光軸和專用夾具控制指令。
2.1 詞法分析程序的實(shí)現(xiàn)
數(shù)控加工代碼由字母與數(shù)字?jǐn)?shù)據(jù)組成,對(duì)其進(jìn)行詞法分析需完成數(shù)據(jù)分離、提取和格式轉(zhuǎn)換工作。根據(jù)特種復(fù)合加工中心的結(jié)構(gòu)特點(diǎn),在詞法分析程序定義的G代碼字符集中增加激光軸標(biāo)識(shí)符Q和M21、M53等激光、夾具控制指令。所設(shè)計(jì)的G代碼編譯器詞法分析步驟如下:
(1)以程序段為單位對(duì)G代碼逐行讀取,將程序段存至臨時(shí)字符串?dāng)?shù)組中。從程序段中讀取一個(gè)字符,忽略其大小寫(xiě),判斷該字符是否在定義的數(shù)控系統(tǒng)G代碼字符集中。若不在,則標(biāo)記錯(cuò)誤類型以及錯(cuò)誤位置,并跳出編譯循環(huán)提示用戶錯(cuò)誤信息;若存在,提取該字符后的數(shù)據(jù)信息。
(2)根據(jù)讀取的字符類型將其數(shù)據(jù)進(jìn)行轉(zhuǎn)換。根據(jù)字符的類型調(diào)用函數(shù)atoi()或者atof()將數(shù)據(jù)轉(zhuǎn)換為int型或float型。當(dāng)出現(xiàn)非常規(guī)數(shù)字(如出現(xiàn)兩個(gè)正負(fù)號(hào)或一個(gè)以上小數(shù)點(diǎn)),則標(biāo)記錯(cuò)誤類型以及錯(cuò)誤位置,并跳出編譯循環(huán)提示用戶錯(cuò)誤信息。
2.2 語(yǔ)法分析程序的實(shí)現(xiàn)
詞法分析僅對(duì)G代碼程序字進(jìn)行檢測(cè),但無(wú)法確保程序段語(yǔ)法的正確性。因此,需要對(duì)詞法分析所識(shí)別出的功能字和數(shù)據(jù)按照標(biāo)準(zhǔn)G代碼數(shù)控指令的規(guī)則和語(yǔ)法進(jìn)行檢查。針對(duì)特種復(fù)合加工中心的主軸與激光軸的移動(dòng)位于同一方向的結(jié)構(gòu)特點(diǎn),在程序段語(yǔ)法分析時(shí)增加了對(duì)進(jìn)給軸的互鎖檢查。G代碼編譯中對(duì)程序段進(jìn)行如下語(yǔ)法分析:
(1)程序段號(hào)檢查:將當(dāng)前程序段號(hào)與前一段對(duì)比,若不符合遞增規(guī)律,則標(biāo)記錯(cuò)誤類型;
(2)程序段模態(tài)指令檢查:標(biāo)記程序段中同組模態(tài)指令出現(xiàn)次數(shù)。當(dāng)該程序段同時(shí)存在多個(gè)同組指令,如G02 G03 X100,則標(biāo)記錯(cuò)誤類型;
(3)冗余指令檢查:判斷程序中是否出現(xiàn)冗余指令或字符,如同一行中出現(xiàn)兩個(gè)X坐標(biāo)字,則標(biāo)記錯(cuò)誤類型;
(4)指令數(shù)據(jù)和進(jìn)給軸行程范圍檢查:若存在數(shù)值超程,如主軸轉(zhuǎn)速超過(guò)上限10000 r/min,則標(biāo)記錯(cuò)誤類型;
(5)進(jìn)給軸互鎖檢查:若程序段中同時(shí)存在主軸和激光軸的運(yùn)動(dòng)指令,則標(biāo)記錯(cuò)誤類型。
當(dāng)語(yǔ)法分析過(guò)程中錯(cuò)誤類型標(biāo)記不為空,則跳出編譯循環(huán)并提示用戶錯(cuò)誤信息和程序段位置。詞法、語(yǔ)法分析程序?qū)崿F(xiàn)流程見(jiàn)圖2。
圖2 詞法、語(yǔ)法程序分析流程圖
2.3 指令模態(tài)下傳的實(shí)現(xiàn)
在G代碼中有一些模態(tài)功能[9-10]指令,如 G00、 G01等。這類指令將會(huì)保持有效直到被下一條具有相同模態(tài)功能的指令所替換,調(diào)用函數(shù)CheckSen()實(shí)現(xiàn)程序段間的模態(tài)傳遞。具體實(shí)現(xiàn)流程見(jiàn)圖3,其中SenErr是模態(tài)下傳時(shí)出現(xiàn)錯(cuò)誤的標(biāo)記。
圖3 G代碼模態(tài)下傳流程圖
譯碼過(guò)程中需對(duì)所提取的加工代碼數(shù)據(jù)進(jìn)行存儲(chǔ),因此設(shè)計(jì)結(jié)構(gòu)體GCODE保存G代碼程序段編譯完成后所得數(shù)據(jù),并以動(dòng)態(tài)數(shù)組存儲(chǔ)G代碼文件的全部譯碼數(shù)據(jù)。GCODE結(jié)構(gòu)體如下:
以鈑金刻銑與激光切割復(fù)合加工中心開(kāi)放式數(shù)控系統(tǒng)為實(shí)驗(yàn)平臺(tái),通過(guò)圖形仿真與實(shí)例加工來(lái)驗(yàn)證所設(shè)計(jì)G代碼編譯器的可行性。
繪制加工零件并生成對(duì)應(yīng)G代碼,將該G代碼導(dǎo)入鈑金刻銑與激光切割復(fù)合加工中心數(shù)控系統(tǒng)上位機(jī)控制軟件,導(dǎo)入的部分G代碼如圖4所示,經(jīng)過(guò)編譯代碼后的軌跡仿真和實(shí)例加工的樣例分別如圖5a和圖5b所示。
圖4 導(dǎo)入的部分G代碼
圖5 上位機(jī)控制軟件仿真和實(shí)例加工樣例圖
針對(duì)自主研發(fā)的開(kāi)放式數(shù)控系統(tǒng)具有鈑金刻銑與激光切割復(fù)合加工的特點(diǎn),設(shè)計(jì)出一種既滿足一般通用性又滿足刻銑與激光切割復(fù)合加工要求的G代碼編譯器。該編譯器能夠?qū)代碼進(jìn)行詞法和語(yǔ)法分析,并提示譯碼過(guò)程中的錯(cuò)誤信息。實(shí)際加工實(shí)驗(yàn)結(jié)果表明所開(kāi)發(fā)的G代碼編譯器能準(zhǔn)確實(shí)現(xiàn)數(shù)據(jù)提取與解析,完成加工信息的轉(zhuǎn)換。該研究可為后續(xù)開(kāi)放式數(shù)控系統(tǒng)的開(kāi)發(fā)與實(shí)現(xiàn)提供一定的借鑒作用。
[1]劉思勝,李松生,陳萍.數(shù)控G代碼解釋器和仿真模塊的設(shè)計(jì)與實(shí)現(xiàn)[J].機(jī)械設(shè)計(jì)與制造,2012(1):172-174.
[2]周凱.PC數(shù)控原理、系統(tǒng)與應(yīng)用[M].北京:機(jī)械工業(yè)出版社,2006.
[3]房書(shū)文,張桂香.PC內(nèi)嵌NC型開(kāi)放式數(shù)控系統(tǒng)軟件的研制開(kāi)發(fā)[J].組合機(jī)床與自動(dòng)化加工技術(shù),2005(11):53-55.
[4]張政,吳序堂,馬書(shū)根,等.基于軟件化體系結(jié)構(gòu)的數(shù)控機(jī)床主控系統(tǒng)的開(kāi)發(fā)[J].機(jī)械工程學(xué)報(bào),2003,39(2):93-97.
[5]周剛,鄔義杰,潘曉弘.數(shù)控系統(tǒng)軟件模塊實(shí)時(shí)調(diào)度方法[J].機(jī)械工程學(xué)報(bào),2009,45(1):162-166.
[6]賈旭,盧曉紅,王鑫鑫,等.基于PMAC的微銑床數(shù)控系統(tǒng)中G代碼編譯研究[J].組合機(jī)床與自動(dòng)化加工技術(shù),2012(3):104-107.
[7]張學(xué)飛,李健.開(kāi)放式數(shù)控系統(tǒng)G代碼的編譯模塊設(shè)計(jì)[J].機(jī)械設(shè)計(jì)與制造,2010(10):87-88.
[8]伍抗逆,李斌,陳吉紅.面向開(kāi)放式數(shù)控系統(tǒng)平臺(tái)的NC代碼解釋器開(kāi)發(fā)[J].中國(guó)機(jī)械工程,2006,17(2):168-171.
[9]劉書(shū)華.數(shù)控機(jī)床與編程[M].北京:機(jī)械工業(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
國(guó)家自然科學(xué)基金(51465005);南寧市科技攻關(guān)(20141018)
潘海鴻(1966—),男,壯族,廣西壯族自治區(qū)武鳴市人,廣西大學(xué)教授,博士,博士生導(dǎo)師,研究方向?yàn)閿?shù)控技術(shù)、機(jī)器人控制技術(shù),(E-mail)hustphh@163.com;通訊作者:陳琳(1973—),女,山東青島人,廣西大學(xué)教授,研究方向?yàn)閿?shù)控技術(shù)、數(shù)字信號(hào)檢測(cè)與處理、伺服電機(jī)控制,(E-mail)gxdxcl@163.com。