国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于G代碼關(guān)系的譯碼系統(tǒng)的研究

2013-01-03 02:42:36羅海據(jù)吳永明
赤峰學院學報·自然科學版 2013年12期
關(guān)鍵詞:詞法譯碼代碼

羅海據(jù),吳永明

(1.廣州數(shù)控設(shè)備有限公司,廣東 廣州 510530;2.廣東工業(yè)大學 機電學院,廣東 廣州 510006)

在數(shù)控加工,運動控制卡,機器人的應用領(lǐng)域,用戶通過編寫帶有G指令的數(shù)控加工文件來控制機床,運動部件,機器人的運動.即使是數(shù)控機床領(lǐng)域,在JB3208-1999里規(guī)定50多個的G代碼功能,某些廠家如FANUC系列,SIEMENS等的數(shù)控系統(tǒng)也各自定義了40多個的基本G代碼,這些廠家的數(shù)控系統(tǒng)出了一些基本功能的G代碼相同以外,其余的G代碼都代表不同的意義.而且由于用戶的使用習慣,可能對相同的G代碼會有不同理解.另外,對于用戶需要增加一些特殊應用,需要增加新的G代碼.如果針對每一種系統(tǒng)都開發(fā)一套G代碼,那就相當消耗時間,所以譯碼系統(tǒng)應該解決這些問題.目前文獻[1,2,3]論述了譯碼的解釋系統(tǒng)通用實現(xiàn)過程,以及G代碼分組、實現(xiàn)過程等作了詳細的論述.文獻[4]分析數(shù)控加工指令與特征的對應關(guān)系,對加工指令進行分類,利用這種分類將功能函數(shù)子模塊的計算結(jié)果以數(shù)據(jù)集合的方式輸出,促進了功能函數(shù)子模塊的獨立.

每個G代碼有各自要實現(xiàn)的功能和特性,它們之間的存在一定的關(guān)系如模態(tài)、排斥、替代等.數(shù)控的譯碼系統(tǒng)要對用戶輸入的G代碼文件進行翻譯、檢測,防止出現(xiàn)功能相互沖突的G代碼而導致加工異常.另外,當數(shù)控系統(tǒng)推出市場往往要順應用戶的要求增加特定功能的G代碼,隨著G代碼的增加,譯碼系統(tǒng)的規(guī)模也將增加,新的模塊增加到原來的系統(tǒng),往往帶來不穩(wěn)定的因素.文章嘗試將G代碼看作數(shù)據(jù),用E-R表描述G代碼之間的關(guān)系,G代碼解釋系統(tǒng)只實現(xiàn)這些關(guān)系的運算便可以了.如果開發(fā)新的G代碼系統(tǒng),或者增加新的G代碼,只需要改變或者添加G代碼的關(guān)系表便可以完成,減少加入原來系統(tǒng)的代碼量.

1 譯碼功能分析

1.1 總體分析

數(shù)控的譯碼功能主要完成對CNC程序文件的讀寫,對程序進行譯碼,最終得到機床移動的目標點送給插補器.它一般包括了詞法分析,語法分析和語義分析這三部分.

詞法分析先一段NC程序從CNC文件讀進內(nèi)存、然后按照CNC的詞法規(guī)則檢測和檢查空格、段結(jié)束符等.而語法分析要檢查G指令表示是否合法和完整、或者存在與語法規(guī)則不相符的表達式等.語義分析最終的目的是根據(jù)G代碼的功能確定機床的運動方式和計算機床的移動終點.然而在計算終點坐標值前需要來檢測G代碼功能是否存在執(zhí)行時邏輯沖突,這需要要對每個G代碼特性和G代碼之間的關(guān)系進行分析.另外,對于一段CNC程序,可能要實現(xiàn)多個G指令的功能,就涉及到它們之間的執(zhí)行順序問題,所以譯碼系統(tǒng)要把G代碼的功能按一定的邏輯順序排序.筆者認為整個譯碼功能的結(jié)構(gòu)如下圖1,除了基本的詞法分析、語法分析,語義分析包括了計算目標點模塊,和一個G代碼關(guān)系分析模塊.經(jīng)過邏輯分析后,得到本段CNC程序需要執(zhí)行的G代碼,根據(jù)這些G代碼表示的功能計算機床目標點.

圖1

1.2 G代碼關(guān)系分析

詞法、語法分析將CNC程序讀入內(nèi)存以后,就要開始檢測G代碼所表示的功能之間的關(guān)系.一般而言,為了方便用戶使用G代碼包含一個模態(tài)的屬性,和所屬于哪一組的特性.所謂模態(tài)G指令就是當該指令被指令后,此后的每一段程序都需要執(zhí)行該指令,直到該G指令被其他G指令替代為止.非模態(tài)G指令就是只在指令了該G指令的程序段里生效,當該段執(zhí)行完畢后下一段程序不再執(zhí)行此功能,例如G04X10.執(zhí)行暫停功能.基本來講,同組的G代碼執(zhí)行相同的功能,如移動G代碼組包括了,G0快速移動,G1切屑,G2順時針圓弧加工,G3逆時針圓弧加工,G04執(zhí)行暫停等.而分組屬性方便用戶使用.

另外,G代碼之間的關(guān)系包括了功能上相互間的排斥、替代、轉(zhuǎn)折等關(guān)系.當前段的有一個G代碼被指令,如果和模態(tài)G指令或者同段其他G代碼的同時執(zhí)行使加工出現(xiàn)質(zhì)量下降,或者機床異常情況,例如出現(xiàn)過切,或者撞刀等情況,認為這些G代碼是排斥的,不能同時生效的.例如在CNC程序里指令了鉆孔加工的G代碼,該代碼具有模態(tài)性,將該段執(zhí)行完畢后,在執(zhí)行下一段CNC程序時,某些信息會被繼承下來,例如鉆孔軸,回退平面等.如果下一段指令了與該段不同的平面選擇G指令,鉆孔的進給軸就發(fā)生改變,雖然CNC程序在語法上沒有錯誤,然而在實際加工過程中往往出現(xiàn)撞刀的情形,這時候譯碼系統(tǒng)就要發(fā)出報警,或者其他提示的畫面來通知用戶.

替代是指某些模態(tài)指令被指令后,某些模態(tài)從屬于某一組,可以被同一組的G代碼替換執(zhí)行同組的其他功能.轉(zhuǎn)折是當指令某一G代碼,令之前的G代碼的功能發(fā)生了改變,變成了另一種功能,如極坐標系編程,相對或絕對指令都可以使其算法發(fā)生了改變.為了更清晰描述這些關(guān)系,這里引用數(shù)據(jù)庫關(guān)系描述工具,E-R關(guān)系圖表,如圖2.

圖2

分析所有的G代碼之后,將這些G代碼關(guān)系作成表的形式存放起來,如下表1所示:

表1

為了方便關(guān)系數(shù)據(jù)的讀取,定義了如下的數(shù)據(jù) 結(jié)構(gòu)以常數(shù)的形式存放.

}GCODEATTRIgCodeAttri[G_CODE_MAX]={{0,1,{1,2,3,4,-1},{-1},{-1}},…};為了方便處理,用-1表示沒有與之有關(guān)系的G代碼,當程序掃描該組的G代碼,遇到-1便返回,節(jié)約處理時間.

2 譯碼系統(tǒng)的實現(xiàn)

由上面的分析可以知道,譯碼系統(tǒng)先將一段CNC文件讀入內(nèi)存,直接對文件格式的內(nèi)存并不方便,文章將這些數(shù)據(jù)轉(zhuǎn)換成中間數(shù)據(jù),然后將坐標移動量和控制量輸送插補器.文章設(shè)計的中間數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)如下:

2.1 詞法和語法的實現(xiàn)

詞法分析逐個字母進行分析,并將字母后面的數(shù)字字符串轉(zhuǎn)化為數(shù)值賦值到相對應于字母對應的地址里.由于中間數(shù)據(jù)預留了所有組的G代碼,按照G代碼的組號分別填到G代碼數(shù)組里.在CNC程序段出現(xiàn)G代碼,按照G代碼關(guān)系表,將后面出現(xiàn)的代替前面的就可以,實現(xiàn)G代碼的替代關(guān)系.另外,在轉(zhuǎn)化過程中要檢測空格,不合法的地址表達式,注釋等,如果出錯就退出并給出報警信息.

語法分析直接對中間數(shù)據(jù)進行處理,先按照分析的G代碼邏輯表,對G代碼進行排斥檢查,如果有排斥的G代碼則報警并退出,遇到轉(zhuǎn)折關(guān)系的G代碼則在condition[]設(shè)置該G代碼的在執(zhí)行條件,并將計算方法填入CaculateWay[]的函數(shù)指針的數(shù)組里.另外,得到本段程序需要執(zhí)行的G代碼后,根據(jù)要執(zhí)行的G代碼類型,來判斷其他的地址,如F、P、Q、X、Y、Z等是否合理,因為這了地址會因為G代碼的不同而有不同的含義和取值范圍,如果這些地址取值不合理,則報警.

2.2 語義的實現(xiàn)

語法分析后得到了中間數(shù)據(jù)的最終結(jié)果,根據(jù)參數(shù)入口condition[]和計算方法CaculateWay里面的函數(shù)指針一一調(diào)用相應的參數(shù)和函數(shù)計算目標點.目前的數(shù)控系統(tǒng)一般都包括對了極坐標轉(zhuǎn)換、鏡像、縮放、旋轉(zhuǎn)的計算和刀具半徑補償和長度補償.如果程序指令了固定循環(huán)的G代碼還要分解刀具移動的路徑.這些算法的順序是固定的,如果用戶按照實際應用提出新的要求,那么只需要添加G代碼關(guān)系和相應的算法就可以.另外,在計算過程中檢測是否有溢出、除零、坐標是否有超出軟限位等判斷,如果有錯誤則報警退出譯碼模塊.經(jīng)過計算最終得到機床的移動目標位置,放到與插補接口的數(shù)據(jù)緩沖區(qū).

3 結(jié)論

文章對數(shù)控譯碼系統(tǒng)進行分析,并根據(jù)G指令的特點將G代碼的關(guān)系以數(shù)據(jù)表的方式確定,對于開發(fā)新的運動控制產(chǎn)品,或者增加的G代碼只需要改變數(shù)據(jù)表就可以,縮短開發(fā)時間.該譯碼系統(tǒng)已經(jīng)應用到實際的數(shù)控系統(tǒng),實踐證明可以滿足不同的用戶需求,加快產(chǎn)品的研發(fā).

〔1〕張承瑞,單誠,王恒,等.數(shù)控G代碼解釋器的設(shè)計與實現(xiàn)[J].山東大學學報(工學版),2002,32(6):564~568.

〔2〕吉華,李彥,肖世廣.Linux下G代碼解釋器的設(shè)計與實現(xiàn)[J].計算機應用研究,2006,12:201~202.

〔3〕王心光,傅建中,等.虛擬數(shù)控加工中G代碼編譯器的研究.組合機床和自動化加工技術(shù)[J].2005,6:80~81,84.

〔4〕王琦魁,李偉,陳有東,王田苗,等.新型的數(shù)控譯碼模塊結(jié)構(gòu)的研究與實現(xiàn)[J].北京航空航天大學學報,2009,35(1):122~125.

猜你喜歡
詞法譯碼代碼
詞法 名詞、代詞和冠詞
基于校正搜索寬度的極化碼譯碼算法研究
創(chuàng)世代碼
動漫星空(2018年11期)2018-10-26 02:24:02
創(chuàng)世代碼
動漫星空(2018年2期)2018-10-26 02:11:00
創(chuàng)世代碼
動漫星空(2018年9期)2018-10-26 01:16:48
創(chuàng)世代碼
動漫星空(2018年5期)2018-10-26 01:15:02
應用于詞法分析器的算法分析優(yōu)化
談對外漢語“詞法詞”教學
從霍爾的編碼譯碼理論看彈幕的譯碼
新聞傳播(2016年3期)2016-07-12 12:55:27
LDPC 碼改進高速譯碼算法
遙測遙控(2015年2期)2015-04-23 08:15:19
香港| 如皋市| 蒙阴县| 安陆市| 田东县| 武穴市| 手机| 池州市| 永德县| 锡林郭勒盟| 苏尼特右旗| 双江| 阜阳市| 团风县| 新津县| 长春市| 酒泉市| 巴彦县| 昌乐县| 昌邑市| 涡阳县| 镇赉县| 沅陵县| 阳江市| 广州市| 营口市| 洱源县| 垫江县| 林西县| 石屏县| 正蓝旗| 榆中县| 原阳县| 太仓市| 惠东县| 永胜县| 镇安县| 满城县| 石楼县| 湟源县| 吐鲁番市|