資源描述:
《數控車削虛擬仿真系統(tǒng)代碼編譯器的研究與開發(fā).pdf》由會員上傳分享,免費在線閱讀,更多相關內容在行業(yè)資料-天天文庫。
1、萬方數據182機械設計與制造MachineryDesign&Manufacture第7期2009年7月文章編號:1001—3997(2009)07-0182-03數控車削虛擬仿真系統(tǒng)代碼編譯器的研究與開發(fā)i【Abstract】hintroducesthefunctionandthetotalstructureoftheNC-codecompilerofNumerical{}Control(NC)virtualemulationsystem,andanalysesthecodingmethodofexplanation-compilerwh
2、ichis{}adoptedbytheNC-codecompilerofNCv/rtua/emulationsystem.BasedonVisualc++environment,£^括{;paperdiscussestherealizationofcompiler-moduleandemulation-moduleoftheNC-codecompilerofNC{;virtualemulationsystemandtheinte口Caceofthem-ThisNC-codecompilernot04meetstheneedsofin一{;
3、spectingNCprogramcorrectnessbutalsopossessesgoodpracticability.;★來稿日期:2008--09—14萬方數據第7期肖忠躍等:數控車削虛擬仿真系統(tǒng)代碼編譯器的研究與開發(fā)183讎H鋈糖‘
4、I第一次掃描零件Nc程序I編譯并建立結果緩沖區(qū)111CUlWeList寺一退出編譯系統(tǒng).提示出錯信息,并清在緩沖區(qū)l第二次掃描編澤結果緩沖區(qū)圖2解釋一編譯的譯碼方法的流程圖這種分次對不同對象進行掃描的解釋一編譯的譯碼方法:一方面克服了解釋方式和編譯方式浪費計算機內存資源的缺點;另一方面又克服了時間
5、順序處理方式由于在兩個程序段的輸出之間存在的時間間隔,導致電機的時轉時停,而造成工件的加工質量下降的缺點。同時該解釋一編譯方式由于兩次掃描的對象不同,且第二次掃描的內容沒有第~次掃描的復雜。很顯然,這種方法一方面提高了計算機內存資源的利用率,另一方面縮短了編譯的時間,大大提高了編譯軟件的工作效率。4數控加工程序編譯器的實現及其應用數控虛擬仿真系統(tǒng)NC代碼編譯器工作時,必須具有處理大量的輸入、輸出信息的功能,且操作簡單、界面友好。首先,編譯器能對輸入的NC代碼程序中的各個地址符進行詞法規(guī)則、語法規(guī)則以及簡單的語義識別,檢查其中的錯誤信息;并
6、能輸出詳細的錯誤信息和零件加工過程的仿真。其次,NC代碼編譯器編譯NC程序,并為用戶提供詳細的編譯結果信息;如數控程序是否存在錯誤,是詞法錯誤還是語法錯誤,及該錯誤在Nc程序中的位置等。再次,就是該NC代碼編譯器必須具有操作簡單、界面友好和交互性好的特點。4.1NC程序編譯器的實現算法數控加工虛擬仿真系統(tǒng)承擔著兩大任務:一是對數控加工程序進行掃描并作出詞法、語法和語義識別,并將識別結果輸出告知用戶;二是經過掃描識別確定加工程序無誤后,提取驅動機床移動部件的加工信息進行加工仿真。即主要用于對NC程序正確性的檢驗和提取NC程序中的加工信息。因
7、此,在Visualc++環(huán)境下開發(fā)出來的NC程序編譯器,其主要任務是完成對零件程序的掃描與詞法、語法進行識別,并輸出識別結果;同時,程序識別無誤后編譯器將提取NC程序中的加工信息并以鏈表的形式存入緩存區(qū)供仿真模塊調用。所采用的譯碼方法對NC代碼程序進行詞法、語法識別的流程圖,如圖3所示。圖3Nc代碼詞法、語法識別算法流程圖萬方數據184機械設計與制造No.7Jul.20094.1.1編譯模塊的主要數據成員constCStringList&GetFileLineList();,肥NC程序的內容以字符的形式存放到字符串變量m_strFileA
8、ll中,并在以、Il為標志將該字符串即每—個程序段加入字符串鏈表m-JⅢeLineList中;BOOLIsThereChar(CStringstrLine。TCHARc);//x寸N、G、M、x、Y、z、I、J、K、R、U、V、w、S、T、F等地址符的識別;constCStringList&LineToWord(CString);//1).Z空格為標志將程序中所有識別為字,并存放到字鏈表m_sWordlist中;longGetCharValue(CStrings缸Line,TCHARc);,廒得字符的實際值;CStringGetWordO
9、rder(constCStringList&);,確定程序段中各地址符的順序;BOOLLexicalParserconstCStringList&。int);,尉NC程序進行詞法分析,并檢查其