特種復(fù)合加工中心數(shù)控系統(tǒng)G代碼編譯器設(shè)計(jì)
引言 精工技術(shù)結(jié)合傳統(tǒng)機(jī)床技術(shù)與信息技術(shù),是制造 工業(yè)現(xiàn)代化的重要基礎(chǔ),。隨著科技的發(fā)展,,與傳統(tǒng)封 閉式精工技術(shù)相比開放式全閉環(huán)精工更符合未來(lái)發(fā)展 趨勢(shì)⑴,。“PC +NC (運(yùn)動(dòng)控制器),’型開放式精工系 統(tǒng)[2-]具有很好外部擴(kuò)展性,、適應(yīng)性和靈活性,,能根據(jù) 用戶要求定制特種復(fù)合加工系統(tǒng)。自主研發(fā)的鈑金刻 銑與激光切割復(fù)合加工中心結(jié)構(gòu)上為“PC + NC”型開 放式精工系統(tǒng),,即運(yùn)動(dòng)控制器為主體,,PC作為上位機(jī) 運(yùn)行系統(tǒng)控制軟件處理非實(shí)時(shí)性任務(wù)[4],如響應(yīng)用戶 消息,、G代碼的編譯[5]等,。精工加工代碼是指導(dǎo)精工系統(tǒng)加工的關(guān)鍵信息。 目前,,對(duì)精工代碼進(jìn)行處理的方式主要有兩種:解釋和 編譯[6-],。解釋需要將代碼表示成某種中間形式再加 以執(zhí)行,譯碼效果有限;編譯則直接將代碼轉(zhuǎn)換成為計(jì)算機(jī)上可執(zhí)行的數(shù)據(jù)流,,由控制器直接讀取執(zhí)行,,譯碼 效果理想。在“PC +運(yùn)動(dòng)控制器”型開放式精工系統(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ù)管理,。1 G代碼編譯器總體設(shè)計(jì)G代碼編譯器是精工系統(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ì)存在問題的程序段進(jìn)行錯(cuò)誤提示,。2 G代碼編譯器的實(shí)現(xiàn)自主研發(fā)的精工系統(tǒng)控制對(duì)象為特種復(fù)合加工中 心,該設(shè)備的結(jié)構(gòu)包括通用三軸銑削精工加工中心部 分,、激光軸部分和專用夾具部分,。因此,G代碼編譯器 設(shè)計(jì)時(shí)除了滿足常規(guī)精工標(biāo)準(zhǔn)G代碼指令譯碼要求 外,,還需識(shí)別激光軸和專用夾具控制指令,。2.1詞法分析程序的實(shí)現(xiàn)精工加工代碼由字母與數(shù)字?jǐn)?shù)據(jù)組成,對(duì)其進(jìn)行 詞法分析需完成數(shù)據(jù)分離、提取和格式轉(zhuǎn)換工作,。根 據(jù)特種復(fù)合加工中心的結(jié)構(gòu)特點(diǎn),,在詞法分析程序定 義的G代碼字符集中增加激光軸標(biāo)識(shí)符J和M21、 M53等激光,、夾具控制指令,。所設(shè)計(jì)的G代碼編譯器 詞法分析步驟如下:(1) 以程序段為單位對(duì)G代碼逐行讀取,,將程序 段存至臨時(shí)字符串?dāng)?shù)組中。從程序段中讀取一個(gè)字 符,,忽略其大小寫,,判斷該字符是否在定義的精工系統(tǒng) G代碼字符集中。若不在,,則標(biāo)記錯(cuò)誤類型以及錯(cuò)誤 位置,,并跳出編譯循環(huán)提示用戶錯(cuò)誤信息;若存在,提 取該字符后的數(shù)據(jù)信息,。(2) 根據(jù)讀取的字符類型將其數(shù)據(jù)進(jìn)行轉(zhuǎn)換,。根 據(jù)字符的類型調(diào)用函數(shù)atm()或者at〇f()將數(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) 示用戶 。2.2語(yǔ)法分析程序的實(shí)現(xiàn)詞法分析僅對(duì)G代碼程序字進(jìn)行檢測(cè),,但無(wú)法確 保程序段語(yǔ)法的正確性,。因此,需要對(duì)詞法分析所識(shí) 別出的功能字和數(shù)據(jù)按照標(biāo)準(zhǔn)G代碼精工指令的規(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)速超過上限10000 r/min,,則標(biāo)記錯(cuò);(5) 進(jìn)給軸互鎖檢查:若程序段中同時(shí)存在主軸 和激光軸的運(yùn)動(dòng)指令,則標(biāo)記錯(cuò)誤類型,。當(dāng)語(yǔ)法分析過程中錯(cuò)誤類型標(biāo)記不為空,,則跳出 編譯循環(huán)并提示用戶錯(cuò)誤信息和程序段位置。詞法,、 語(yǔ)法分析程序?qū)崿F(xiàn)流程見圖2,。2.3指令模態(tài)下傳的實(shí)現(xiàn)在G代碼中有一些模態(tài)功能)940」指令,如G00,、 G01等,。這類指令將 會(huì)保持有效直到被下 一條具有相同模態(tài)功 的 指換, 調(diào)用函數(shù) CheckSen ()實(shí)現(xiàn)程序段間的模態(tài) 傳遞,。具體實(shí)現(xiàn)流程 見圖3,,其中SenEr/是模態(tài)下傳時(shí)出現(xiàn)錯(cuò) 的 記。3編譯數(shù)據(jù)存儲(chǔ)譯碼過程中需對(duì)取的代據(jù)進(jìn)行存儲(chǔ),,因此設(shè)計(jì) 結(jié)構(gòu)體GC0DE保存G代碼程序段編譯完成后所得數(shù)據(jù),,并以動(dòng)態(tài)數(shù)組存儲(chǔ)G 代碼文件的全部譯碼數(shù)據(jù)。GCODE結(jié)構(gòu)體如下:struct GCODEiunsigned char n; //.了數(shù)unsigned char m; //輔助功能代碼unsigned char t;//刀具號(hào)unsigned char g;//G 功能代碼Ratf;//F代碼(進(jìn)給速率)int s;//S代碼(主軸轉(zhuǎn)速)float x;//X軸坐標(biāo)float y;//Y軸坐標(biāo)float z;//Z軸坐標(biāo)float q;//J軸坐標(biāo)float i;//圓弧插補(bǔ)參數(shù)float j;//圓弧插補(bǔ)參數(shù)float k;//圓弧插補(bǔ)參數(shù)float w;//螺距參數(shù)float p;//延時(shí)參數(shù)},;4實(shí)驗(yàn)驗(yàn)證以鈑金刻銑與激光切割復(fù)合加工中心開放式精工 系統(tǒng)為實(shí)驗(yàn)平臺(tái),,通過圖形仿真與實(shí)例加工來(lái)驗(yàn)證所 設(shè)計(jì)G代碼編譯器的可行性。繪制加工零件并生成對(duì)應(yīng)G代碼,,將該G代碼導(dǎo)人 鈑金刻銑與激光切割復(fù)合加工中心精工系統(tǒng)上位機(jī)控制 軟件,,導(dǎo)人的部分G代碼如圖4所示,經(jīng)過編譯代碼后的 軌跡仿真和實(shí)例加工的樣例分別如圖5a和圖5b所示,。N0820 G01 X-68.15 F936N0830 G03 X-68 Q0 10 J0.15NO840 G02 X-S4.S49 Q20.6978 122.6S J0N的G03 X-46.72 Q39.S988 1-6.的12 J13.S702N0860 G的 K-17.燦88 Q68.87 121.1403 J8.13的N0870G03X1.4522〇76.699I5.3308J13.8602N0880 G02 ^42.8478 120.6978 J-9.199N0890 G03 K61.7488 Q68.87 113.5702 J6.0312N0900G02K91.02〇39.5988 I8.1309J-21.1403N0910 G03 X98.849 Q20.6978 113.8602 J-5.33的N0920 G02 Q-20.6978 1-9.199 J-20.6978N0930 GQ3 X91.02 Q-39.S988 16.0312 J-13.S702H09l|0G02}{61.7li88Q-68.87 I-21.1li03J-8.1309H0950 G03 X42.8478 Q-76.699 1-5.3308 J-13.8662H0960 G02 X1.U522 1-20.6978 J9.199H0970 G03 X-17.IIU88 q-68.87 1-13.5702 J-6.的 12N0980 G02 X-U6.72 Q-39.5988 1-8.1309 J21.1403N0990 G03 X-54.5II9 Q-20.6978 1-13.8602 J5.3308N1000 G02 X-68 QB 19.199 J20.6978N1010 G03 X-68.15 Q0.15 1-0.15 JON1030 M83N1040 M52N185Q M30 (a)加工前的仿真軌跡(b)加工后的實(shí)物照片5結(jié)束語(yǔ)針對(duì)自主研發(fā)的開放式精工系統(tǒng)具有鈑金刻銑與 激光切割復(fù)合加工的特點(diǎn),,設(shè)計(jì)出一種既滿足一般通 用性又滿足刻銑與激光切割復(fù)合加工要求的G代碼 編譯器。該編譯器能夠?qū)代碼進(jìn)行詞法和語(yǔ)法分 析,,并提示譯碼過程中的錯(cuò)誤信息,。實(shí)際加工實(shí)驗(yàn)結(jié) 果表明所開發(fā)的G代碼編譯器能準(zhǔn)確實(shí)現(xiàn)數(shù)據(jù)提取 與解析,完成加工信息的轉(zhuǎn)換,。該研究可為后續(xù)開放 式精工系統(tǒng)的開發(fā)與實(shí)現(xiàn)提供一定的借鑒作用,。本文由海天精工整理發(fā)表文章均來(lái)自網(wǎng)絡(luò)僅供學(xué)習(xí)參考,轉(zhuǎn)載請(qǐng)注明,!