亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        數(shù)控車床仿真系統(tǒng)中指令解釋器的設(shè)計與實現(xiàn)

        2013-12-03 02:08:16董立巖尹相杰辛?xí)匀A李永麗
        關(guān)鍵詞:指令語義程序

        董立巖,尹相杰,田 耕,辛?xí)匀A,李永麗,張 亮,孫 鵬

        (1.吉林大學(xué) 計算機科學(xué)與技術(shù)學(xué)院,長春 130012; 2.東北師范大學(xué) 計算機科學(xué)與信息技術(shù)學(xué)院,長春 130117)

        數(shù)控機床是現(xiàn)代機械加工的主要生產(chǎn)技術(shù),使用越來越普遍,但數(shù)控加工設(shè)備的價格較高,給數(shù)控技術(shù)的普及和推廣帶來了難題[1-2].數(shù)控仿真系統(tǒng)有效地解決了該問題,它能在計算機上完全模擬真實機床的工作.在仿真系統(tǒng)中,用戶通過指令和機床進行交互,但這些指令是為了用戶能方便使用與記憶而開發(fā)的一門高級指令語言,系統(tǒng)無法讀懂這些語言.指令解釋器的出現(xiàn)使該問題迎刃而解.指令解釋器作為用戶與系統(tǒng)交互的橋梁,是仿真系統(tǒng)的核心部分,它能從詞法、 語法和語義上檢查用戶輸入指令代碼的正確性,以獲取刀具的加工位置和運動趨勢信息[3],按一定的機制解釋出能使機床系統(tǒng)讀懂的命令串,真正控制機床運動.因此,設(shè)計一種速度快、 精度高且具有很強通用性和兼容性的指令解釋器是設(shè)計高效仿真系統(tǒng)的前提.本文介紹了指令解釋器的原理,并給出一個快速、 高效解釋器的設(shè)計過程.

        1 指令解釋器的工作原理

        圖1 指令解釋器工作原理Fig.1 Working scheme of command interpreter

        指令解釋器通過對用戶輸入的NC程序進行解釋,生成仿真系統(tǒng)可執(zhí)行的代碼,從而驅(qū)動加工過程.解釋器從結(jié)構(gòu)上主要分為NC程序的預(yù)處理和NC程序的翻譯兩部分.NC程序的預(yù)處理是從語法、 語義對程序進行檢查[4-5],發(fā)現(xiàn)代碼錯誤則進行相應(yīng)的處理,并對缺省指令進行補充[6];NC程序的翻譯則是先把程序翻譯成系統(tǒng)能讀懂的代碼,再把結(jié)果返回給系統(tǒng),控制系統(tǒng)工作[3,6-7],工作原理如圖1所示.

        2 指令解釋器各模塊的分析和設(shè)計

        2.1 指令的格式化 用戶輸入的程序格式具有多樣性,但不管格式怎么多樣系統(tǒng)都應(yīng)該能正確地識別和分析指令.為處理方便,需在對指令分析前,先統(tǒng)一格式化這些指令,實現(xiàn)步驟如下:1) 去除指令中無用的信息;2) 字符串統(tǒng)一轉(zhuǎn)換為大寫形式;3) 根據(jù)英文字符作為標識,對模塊進行劃分;4) 在各模塊之間添加空格作為標識.

        通過上述處理即可返回統(tǒng)一格式的字符串.在這種格式中指令類型和參數(shù)之間、 參數(shù)和參數(shù)之間都以空格隔開.如指令G01 X100 Z100,G01 X100 Z100,G01 X100 Z100這3條指令實際上都是指同一條指令,經(jīng)過格式化處理在內(nèi)部都變?yōu)榻y(tǒng)一格式G01 X100 Z100[5].

        2.2 詞法和語法檢查 用詞法分析對數(shù)控程序進行初步檢查,主要包括程序是否以數(shù)字或非法字符開頭、 在負號前是否出現(xiàn)了非坐標功能字、 小數(shù)點的前后是否都是數(shù)字等情況.語法分析是根據(jù)指令的規(guī)則對代碼檢查,檢查指令類型是否合法、 后面的參數(shù)是否完整等[8].本文在實現(xiàn)時將二者混合在一起.

        本文采用CMDI格式存儲模式.CMDI格式是先在CMDI類中合理地定義靜態(tài)變量,再把提取到的信息放到相應(yīng)的變量中,如G01中把G賦給m_Type,把01賦給m_Instruction.CMDI格式除了能較好地對指令信息進行高效存取,還能方便地實現(xiàn)指令的補充[9].因為在指令或參數(shù)有缺省的情況下可直接繼承上次指令中的信息,以達到補充指令的目的.實現(xiàn)過程如下.

        輸入:要進行處理的指令串tempLine;

        輸出:通過檢查輸出true,否則輸出false;

        1) strs←tempLine.Split(‘ ’): 以空格為分隔符,把指令串分割成字部分放到字符串?dāng)?shù)組strs中;

        2)v←Foreach(strs): 遍歷字符串v,如果遍歷完成,則轉(zhuǎn)6);

        3) first_value←v.substring(0,1): 得到字符串v的第一個字符;

        argument←v.substring(1): 得到第一個字符后面的字符串;

        4) check_result←check(first_value,argument): 根據(jù)first_value和argument,進入到check函數(shù)相應(yīng)的處理部分,進行詞法和語法檢查;

        5) 如果check_result==false,返回false,否則轉(zhuǎn)2);

        6) return true.

        2.3 語義檢查 主要檢查參數(shù)數(shù)值是否合理,如檢查數(shù)值是否越界,所給點是否能真正地構(gòu)成圓弧等.語義檢查的設(shè)計過程如下:

        1) 根據(jù)CMDI格式中存儲的m_Type和m_Instruction判斷該指令類型;

        2) 通過switch和case多分支開路語句定位到該指令的語義檢查函數(shù),其中每個語義檢查函數(shù)都是針對每種指令專門設(shè)計的;

        3) 在語義檢查函數(shù)中,對指令中參數(shù)的合理性進行檢查,其中參數(shù)可直接訪問CMDI格式中相應(yīng)的變量;如對G01,只需獲取DestinationX和DestinationZ對數(shù)值是否越界經(jīng)行檢查,取F對步長是否過大進行檢查;

        4) 當(dāng)語義合理時返回true,否則返回false.

        2.4 指令解釋 指令解釋作為指令解釋器的核心,把通過詞法、 語法、 語義檢查,并補充后的指令解釋成系統(tǒng)能讀懂的命令串,作為刀具移動的根據(jù).本文為每種類型的指令都單獨設(shè)計了指令解釋函數(shù).函數(shù)TranslateMDI_All作為指令解釋的總?cè)肟?根據(jù)m_Type和m_Instruction的組合即可確定需要調(diào)用的指令解釋函數(shù).每條指令解釋時所需的參數(shù)確定,可先在CMDI中得到具體的參數(shù),再根據(jù)參數(shù),最終把一條指令翻譯成可使系統(tǒng)理解的指令串[10-12].刀具的軌跡由直線和圓弧構(gòu)成.

        1) 直線類型關(guān)鍵算法的算法描述.

        解釋直線型指令時,已知刀具當(dāng)前的位置(CurrentX,CurrentZ)、 指令要使刀具到達的位置(DestinationX,DestinationZ)和步長F(指定在Z方向上每次移動的距離).在仿真系統(tǒng)中要真正模擬實際應(yīng)用中的機床運動過程,不能僅依靠提供簡單的兩個點,在系統(tǒng)中要根據(jù)幾何的無限逼近思想,把指令解釋成X_Z_的形式.根據(jù)兩點可以確定直線的斜率:k=(DestinationZ-CurrentZ)/(DestinationX-CurrentX),把F賦值給X方向的步長stepX,由斜率可確定X每走一步后Z方向的移動步長stepZ=(stepX)/k.這樣X方向每走一步,Z方向移動相應(yīng)的步長,然后在最后一步做好越界的判斷處理,即可模擬出一條直線的軌跡,步長越小軌跡越接近一條直線,如圖2所示.

        圖2 直線形解釋原理Fig.2 Linear explanation scheme

        當(dāng)起點位置和終點位置的X或Z相同時算法較簡單,本文只考慮兩者都不相等的情況.假設(shè)起點sp為(x1,z1),終點ep為(x2,z2).定義變量rx和rz分別表示起點到終點位置在X方向和Z方向的矢量距離;變量DirX和DirZ分別表示在X和Z矢量方向的正負,1表示為正,-1表示為負;tx和tz分別表示已經(jīng)走的矢量位移,初始值都為0;slope=rx/(rz)表示直線的斜率;Step表示指令的步長;result存儲解釋后得到的命令串,初始為空.算法如下.

        輸入:起點sp和終點ep.

        輸出:系統(tǒng)可以讀懂的指令串result.

        1) 如果((tx!=rx)||(tz!=rz))則轉(zhuǎn)2),否則轉(zhuǎn)8);

        2) 如果 abs(tz+Step*DirZ)≤rz則轉(zhuǎn)3),否則轉(zhuǎn)5);

        3) result←result+“X”+(Step*DirZ×slope).ToString( )+“;”

        result←result+“Z”+(Step*DirZ).ToString( )+“;”,更新result;

        4)tx←tx+Step×DirZ×slope,tz←tz+ Step×DirZ,更新tx,tz,轉(zhuǎn)1);

        5) disx←rx-tx,disz←rz-tz計算x和z方向的位移余量;

        6) result←result+“X”+disx.ToString( )+“;”;

        result←result+“Z”+disz.ToString( )+“;”,更新result;

        7)tx←rx,tz←rz,更新tx,tz,轉(zhuǎn)2);

        8) result←result+“End”,在result后添加“End”作為命令串結(jié)束的標識;

        9) return result.

        2) 圓弧類型的關(guān)鍵算法描述.

        圖3 圓弧形解釋原理Fig.3 Arc-shaped explain principle

        圓弧類型命令解釋的算法借鑒于求圓周率的割圓法,割圓法用一個邊數(shù)足夠多的外切多邊形無限接近于圓,本文在解釋指令過程中用多邊形的軌跡模擬圓弧軌跡,在命令解釋時圓弧的接近程度受限于指令中所指定的步長,步長越小,越接近圓弧.解釋后的結(jié)果和直線解釋結(jié)果的表示形式相同,用X_Z_的形式表示.解釋原理如圖3所示.

        在車床中所畫的圓弧不會出現(xiàn)一個z值有兩個x值對應(yīng)的情況,所以本文只考慮z和x的值都滿足單調(diào)性的圓,并在最后一次不夠步長的情況特殊考慮.與直線情況一樣,分別定義變量rx,rz,tx,tz,DirX,DirZ,step和result,并分別賦予相應(yīng)的值.定義dir表示順弧還是逆弧,順弧為1,逆弧為-1; sp和ep分別表示起點和終點;cz和cx表示所到點的z軸和x軸的坐標值,分別初始化為起點的坐標值;dx為臨時存儲z軸移動后x軸的坐標值.算法如下.

        輸入:起點sp,終點ep,半徑R.

        輸出:系統(tǒng)可讀懂的指令串result.

        1) round_center←Center(sp,ep,R,dir,DirZ),求出圓心round_center;

        2) 如果tz!=rz,轉(zhuǎn)3);否則轉(zhuǎn)9);

        3) 如果abs(tz+step+DirZ)≤abs(rz),轉(zhuǎn)4),否則轉(zhuǎn)8);

        4)tz←tz+step+DirZ,cz←sp.z+tz,更新tz和cz;

        5)dx←Get_X(sp,ep,round_center,R,cz,dir,DirZ),根據(jù)信息求出dx;

        6) result←result+“X”+(dx-cx).ToString( )+“;”;

        result←result+“Z”+(step+DirZ).ToString( )+“;”,更新result;

        7)cx←dx,更新cx,轉(zhuǎn)2);

        8)tz←rz,cz=ep.z,轉(zhuǎn)5);

        9) result←result+“End”,在result后添加“End”作為命令串結(jié)束的標識;

        10) return result.

        3 實例驗證分析

        把指令解釋器整合到機床系統(tǒng)中,運行一段經(jīng)典的NC程序,再把解釋后的指令串result傳遞給系統(tǒng).下面分別從宏觀和微觀層面上進行效果分析.

        3.1 宏觀分析 圖4和圖5分別為仿真軟件制造商斯沃的車床系統(tǒng)與本文開發(fā)系統(tǒng)運行同一程序的二維效果圖.比較圖4和圖5可見,用本文指令解釋器在車床系統(tǒng)中解釋運行結(jié)果,加工產(chǎn)品的輪廓更清晰,圓弧更圓滑,更接近真實加工效果.

        圖4 斯沃仿真軟件運行效果Fig.4 Operating results by Swatch simulation software

        圖5 本文系統(tǒng)運行效果Fig.5 Operating results by the present system

        3.2 微觀分析 先將加工輪廓在二維圖中表示,并對關(guān)鍵點進行編號,如圖6所示.

        下面分別記錄本文要加工每個點的理論值和加工后的實際測量值,并定義評估數(shù)值接近程度的變量精度,該變量的最大值為1,越接近于1表示數(shù)值越接近.設(shè)理論值為(x,z),測量值為(x1,z1),則精度=1-(abs(x-x1)+abs(z-z1)).分析結(jié)果列于表1.

        因為加工過程和測量過程不能避免誤差的存在,所以測量值在一定范圍內(nèi)波動是合理的.通過微觀分析可見,關(guān)鍵點的定位與理論值幾乎接近,符合仿真系統(tǒng)高精度的要求.

        圖6 二維輪廓Fig.6 Two-dimensional profile

        表1 軌跡關(guān)鍵點數(shù)值分析Table 1 Track key numerical analysis

        [1] NA Ming.Study and Realization of Open CNC System Machining Instruction Code Interpreter [D].Shenyang: Shenyang University of Technology,2006.(那銘.開放式數(shù)控系統(tǒng)加工指令代碼解釋器的研究與實現(xiàn) [D].沈陽:沈陽工業(yè)大學(xué),2006.)

        [2] ZHANG Shu-cheng.Research on the Open NC Systems Based on PC [D].Hefei: Hefei University of Technology,2008.(張書誠.基于PC的開放式數(shù)控系統(tǒng)研究 [D].合肥:合肥工業(yè)大學(xué),2008.)

        [3] WANG Shang-bin,LI Jia-ji,WANG Pin,et al.Research and Implementation of NC Code Interpreter in Virtual NC Machining System [J].Modular Machine Tool &Automatic Manufacturing Technique,2009(2):77-80.(王尚斌,李家霽, 王品, 等.虛擬數(shù)控加工中NC代碼解釋技術(shù)的研究與實現(xiàn) [J].組合機床與自動化加工技術(shù),2009(2):77-80.)

        [4] CAO Sheng-bin,MA Xi-pei,JIA Hui-xin,et al.Study on the Control System and Algorithm of NC Code Compiler for the Miniature CNC Milling Machine [J].Machinery Design &Manufacture,2013(3):159-161.(曹勝彬,馬西沛,賈會欣, 等.微型數(shù)控銑床控制系統(tǒng)及NC代碼編譯算法的研究 [J].機械設(shè)計與制造,2013(3):159-161.)

        [5] WANG Zhi-wei,YUAN Hong-bing.Development and Application of NC Code Compiler [J].Machine Tool and Hydraulics,2011,2(4): 104-107.(王志偉,袁紅兵.NC代碼編譯器的開發(fā)及其應(yīng)用研究 [J].機床與液壓,2011,2(4): 104-107.)

        [6] LIU Jie.Research and Development of CNC System for Lathes [D].Nanjing: Nanjing University of Aeronautics and Astronautics,2011.(劉杰.車床數(shù)控系統(tǒng)研究與開發(fā) [D].南京:南京航空航天大學(xué),2011.)

        [7] HAO Ming-hui,SONG Fang,HAO Shuang-hui,et al.Research on CNC Simulation System with Instruction Interpretations [J].Machine Tool and Hydraulics,2007,35(10): 175-178.(郝明暉,宋芳,郝雙暉, 等.NC指令解釋數(shù)控仿真系統(tǒng)的研究 [J].機床與液壓,2007,35(10): 175-178.)

        [8] LI Mao-sheng,GAO Rong.Pretreatment on Compiling Program for CNC Machining [J].Machinery Design &Manufacture,2011(10): 162-164.(李茂勝,高榮.數(shù)控加工程序的編譯預(yù)處理 [J].機械設(shè)計與制造,2011(10): 162-164.)

        [9] LIU Si-sheng,LI Song-sheng,CHEN Ping.Design and Implementation of CNC G Code Interpreter and Simulation Module [J].Machinery Design &Manufacture,2012(1):172-173.(劉思勝,李松生,陳萍.數(shù)控G代碼解釋器和仿真模塊的設(shè)計與實現(xiàn) [J].機械設(shè)計與制造,2012(1):172-173.)

        [10] REN Song-tao.The Design and Implementation of Code Complier for NC [D].Xi’an: Northwestern Polytechnic University,2007.(任松濤.NC代碼編譯器的設(shè)計與實現(xiàn) [D].西安:西北工業(yè)大學(xué),2007.)

        [11] TIAN Yong-zhong,ZHOU Jian-ping,LIANG Chu-hua.G-Code Compiler Design and Research in the Open CNC System [J].Machinery Design &Manufacture,2011(3):154-155.(田永中,周建平,梁楚華.開放式數(shù)控系統(tǒng)中G代碼編譯器的設(shè)計與研究 [J].機械設(shè)計與制造,2011(3):154-155.)

        [12] ZHENG Jian-hua,LI Di,ZHU Rong,et al.Design Strategy for Embedded CNC Model Verification [J].Computer Science,2008(12): 268-272.(鄭建華,李迪, 朱蓉, 等.嵌入式數(shù)控系統(tǒng)模型層驗證設(shè)計策略研究 [J].計算機科學(xué),2008(12): 268-272.)

        猜你喜歡
        指令語義程序
        聽我指令:大催眠術(shù)
        語言與語義
        試論我國未決羈押程序的立法完善
        ARINC661顯控指令快速驗證方法
        LED照明產(chǎn)品歐盟ErP指令要求解讀
        電子測試(2018年18期)2018-11-14 02:30:34
        “程序猿”的生活什么樣
        英國與歐盟正式啟動“離婚”程序程序
        “上”與“下”語義的不對稱性及其認知闡釋
        創(chuàng)衛(wèi)暗訪程序有待改進
        認知范疇模糊與語義模糊
        欧美成人免费高清视频| 久久天堂一区二区三区av| 人妻少妇久久中文字幕| 色老头在线一区二区三区| 久久婷婷色香五月综合激情| 亚洲精品色播一区二区| 日本久久伊人特级黄色| 一品二品三品中文字幕| 好爽受不了了要高潮了av| 又爽又猛又大又湿的视频| 精品日韩一级免费视频| 久久久久亚洲av片无码下载蜜桃 | 久久精品国产亚洲av高清色欲| AV中文码一区二区三区| 成人激情视频在线手机观看| 777米奇色狠狠俺去啦| 一本色道久久综合狠狠躁| 国产不卡在线免费视频| 日本av一级片免费看| 日日婷婷夜日日天干| 久久这里只有精品9| 一区二区三区人妻在线| 日韩精品 在线 国产 丝袜| 日本欧美视频在线观看| 高清国产亚洲va精品| 亚洲av高清不卡免费在线| 国产md视频一区二区三区| 伊人精品在线观看| 91国内偷拍一区二区三区| 丰满少妇高潮惨叫久久久| 日韩电影一区二区三区| 国产粉嫩高清| 亚洲免费女女在线视频网站| 国产在线观看无码免费视频| 色欲国产精品一区成人精品| 偷拍美女一区二区三区视频| av无码小缝喷白浆在线观看| 女同久久精品国产99国产精品| 国产精品亚洲美女av网站| 国产一区二区三区仙踪林| 永久免费看啪啪网址入口|