基於宏程序的代碼調試及仿真的方法和裝置的製作方法
2023-04-22 23:11:51 2
專利名稱:基於宏程序的代碼調試及仿真的方法和裝置的製作方法
技術領域:
本發明涉及的是一種數控加工代碼程序調試和仿真方法和裝置,特別涉及的是一 種基於宏程序的代碼調試及仿真的方法和裝置。
背景技術:
隨著全球競爭日益劇烈,數控加工作為保證產品質量、提高勞動生產率及實現自 動化的重要手段被廣泛應用到汽車、航空、模具等各個製造領域。而數控工具機是否能充分發 揮其作用,重要的一點在於其所使用的數控程序的效率和易用性。在實際生產中有很多結 構相似、尺寸不同的零件,如果每批零件都去編制數控加工程序,將浪費大量時間。充分利 用宏程序是解決這些問題非常有效的措施。包含有變量、轉向、比較判斷等功能的指令稱為 宏指令,包含有宏指令的程序稱為宏程序。對於反覆進行同一切削動作的程序,可以使用宏 程序進行編制,簡單的宏指令代表了複雜的加工動作。數控工具機加工零件是靠數控指令程序控制完成的。為確保數控程序的正確性,防 止加工過程中幹涉和碰撞的發生,在實際生產中,常採用試切的方法進行檢驗。但這種方法 費工費料,代價昂貴,使生產成本上升,增加了產品加工時間和生產周期。後來又採用軌跡 顯示法,即以劃針或筆代替刀具,以著色板或紙代替工件來仿真刀具運動軌跡的二維圖形 (也可以顯示二維半的加工軌跡),有相當大的局限性。對於工件的三維和多維加工,也有 用易切削的材料代替工件(如,石蠟、木料、改性樹脂和塑料等)來檢驗加工的切削軌跡。但 是,試切要佔用數控工具機和加工現場。同時仍然存在以下問題1)編寫宏程序,主要是採用手工編寫加工代碼,耗費時間較長,容易出現錯誤,無 法勝任複雜形狀零件的編程。據國外資料統計,當採用手工編程時,一段程序的編寫時間與 其在工具機上運行加工的實際時間之比,平均約為30 1,而數控工具機不能開動的原因中有 20% 30%是由於加工程序編制困難,編程時間較長。2)使用CAM軟體進行自動編程,是解決了手工編寫的問題,但生成的加工代碼比 較長,不具有通用性,換一個類似的零件,還得需要重新生成程序代碼。3)宏程序調試困難,無法顯示變量的中間值,真實的模擬程序的運行、程序的跳 轉。鑑於上述缺陷,本發明創作者經過長時間的研究和實踐終於獲得了本創作。
發明內容
本發明的目的在於,提供一種基於宏程序的代碼調試及仿真的方法和裝置,用以 克服現有技術中存在的缺陷。為實現上述目的,本發明採用的技術方案在於,首先提供一種基於宏程序的代碼 調試及仿真的方法,其包括的步驟為步驟a 輸入加工代碼程序;
步驟b 以程序段為單位編譯所述的代碼程序,建立語句樹;步驟c 遍歷所述語句樹,計算結果,生成軌跡數據;步驟d 選擇進入調試和仿真環境;步驟e 進行單段執行或是斷點設置執行到某一程序段。其中,所述的步驟b包括
步驟bl 建立所述語句樹的頭節點;步驟b2 判斷正在編譯的程序段是否有錯誤,如果有錯誤顯示錯誤信息,執行下 述步驟b4 ;步驟b3:建立語句結點,並與所述語句樹中對應的父節點建立連接,判斷是否還有 程序段沒有編譯完成,是,則編譯下一程序段並執行上述步驟b2,否,則執行下述步驟b4 ;步驟b4:完成。其中,所述的步驟e包括步驟el 在每一程序段,設置唯一標識的特徵,作為斷點執行或程序跳轉的標識;步驟e2 建立一個變量表,存儲變量信息;步驟e3 對語句樹的每一結點進遍歷;步驟e4 當變量信息中的變量值發生變化時,更新變量表中變量信息。其次提供一種基於宏程序的代碼調試及仿真的裝置,其包括—輸入模塊,其用以輸入加工代碼程序;一反讀模塊,以程序段為單位編譯所述的代碼程序,建立語句樹;一執行模塊,遍歷所述語句樹,計算結果,生成軌跡數據;一啟動模塊,用以選擇進入調試和仿真環境;一調試和仿真模塊,用以進行單段執行或是斷點設置執行到某一程序段。較佳的,所述的反讀模塊中還設有判斷單元,用以判斷程序段解析是否有錯誤。較佳的,還包括一顯示模塊,其用以進行代碼顯示、圖形顯示、變量顯示以及錯誤 提示。與現有技術比較本發明的有益效果在於,解決了宏程序的編輯與調試問題;降低 了操作難度和風險,增強了加工的安全性,提高了產品加工的合格率;減少加工準備時間, 提高了生產效率。節省了資金,降低了成本。
圖1為本發明基於宏程序的代碼調試及仿真的方法實施例的流程圖;圖2為本發明基於宏程序的代碼調試及仿真的方法中宏程序的分類示意圖;圖3為本發明基於宏程序的代碼調試及仿真的方法中語句樹實施例的結構圖;圖4為本發明基於宏程序的代碼調試及仿真的方法中調試的流程圖;圖5為本發明基於宏程序的代碼調試及仿真的裝置的較佳實施例的功能結構框 圖。
具體實施例方式以下結合附圖,對本發明上述的和另外的技術特徵和優點作更詳細的說明。
對於本具體實施方式
而言,加工代碼程序理解為一個數控加工代碼是由多個程 序段組成的,每個程序段執行一個加工步驟,而一個程序段又可以由若干個字組成,字是組 成程序段的基本元素,由字構成數控系統的指令。隨著數控技術的發展,現在大多數數控系 統不僅能夠處理一般的準備功能和輔助功能,而且能夠處理宏程序。宏程序是數控編程的重要補充,其中變量的用途有運算、遞增量或遞減量、與一 個表達式比較後,決定是否實現跳轉功能的條件分支、將變量值傳遞到零件程序中去;其中 運算又包括算術運算(賦值、加、減、乘、除、絕對值、四捨五入等);函數運算(正弦、餘弦、 正切、反正切、平方根等);邏輯操作(與、或);比較操作(等於、大於、小於、大於或等於、小 於或等於、不等於)。請參閱圖1所示,其為本發明基於宏程序的代碼調試及仿真的方法實施例的流程 圖;所述的基於宏程序的代碼調試及仿真的方法,其包括的步驟為步驟a 輸入加工代碼程序;步驟b 以程序段為單位編譯所述的代碼程序,建立語句樹;步驟c 遍歷所述語句樹,計算結果,生成軌跡數據; 步驟d 選擇進入調試和仿真環境;步驟e 選擇單段執行或設置斷點執行到某一程序段。較佳的,上述步驟b包括步驟bl 建立所述語句樹的頭節點;步驟b2 判斷正在編譯的程序段是否有錯誤,如果有錯誤顯示錯誤信息,執行下 述步驟b4 ;步驟b3 建立語句結點,並與所述語句樹中對應的父節點建立連接,判斷是否還 有程序段沒有編譯完成,是,則編譯下一程序段並執行上述步驟b2,否,則執行下述步驟 b4 ;步驟b4:完成。上述步驟b2所述的錯誤原因通常分為兩類,一類是解析時出錯,主要是語法錯 誤,如語句的格式錯誤、字符串無法識別等;另一類是執行出錯,如循環超過最大循環次數 限制,變量沒有定義等錯誤。錯誤信息將告知編程人員哪一個程序段的哪裡出錯了,出了什 麼問題,極大地提示編程人員,幫助其更快的解決程序中的錯誤。本發明基於宏程序的代碼調試及仿真的方法中步驟b和步驟e尤為重要,參閱圖2 所示,其為本發明基於宏程序的代碼調試及仿真的方法中宏程序的分類示意圖;根據加工 代碼的特點,本發明將程序段語句分為G代碼語句、循環定義語句、變量定義語句、變量賦 值語句、WHILE語句、IF語句、GOTO語句、子程序語句、模態調用語句等。每一種語句,均是 從「語句類」派生。如果加工代碼解析沒有錯誤時,則建立語句樹。語句樹由一系列的語句結點組成, 直觀地表示了各個語句之間的關係,即父子關係與兄弟關係。請參閱圖3所示,其為本發明基於宏程序的代碼調試及仿真的方法中語句樹實施 例的結構圖;其是以下面一段程序語言為例建立的,並且建立語句樹是實現本發明的一個 關鍵00001 ;
#1 = 0;#2=1;WHILE[#2 LE 10]DO 1 ;#1 = #l+#2 ;#2 = #2+1 ;END 1 ;M30 ;WHILE語句是宏程序中的一種,DO標誌作用域開始,END標誌作用域結束。作用域 內 的語句結點均為WHILE語句結點的子結點,也就是說WHILE是它們的父結點。每編譯一 個程序段,如果沒有錯誤,就生成一個語句結點,就聯結到語句樹的相應位置。請參閱圖4所示,其為本發明基於宏程序的代碼調試及仿真的方法中調試的流程 圖;其是針對上述步驟e所述的進行單段執行或是斷點設置執行到某一程序段,其實現的 步驟為步驟el 在每一程序段,設置唯一標識的特徵,作為斷點執行或程序跳轉的標識;步驟e2 建立一個變量表,存儲變量信息;步驟e3 對語句樹的每一結點進遍歷;步驟e4 當變量信息中的變量值發生變化時,更新變量表中變量信息。編程人員可以在變量watch窗口中,鍵入需要觀察的變量名,以確定程序是否與 要求的一致。編程人員可以選擇單步執行程序,或者斷點執行到某一段。在調試與仿真過程中,通過實時顯示變量、軌跡,通過觀察代碼、變量、軌跡三者相 互關係,可以簡單地確定程序是否滿足要求,哪裡不合要求,需要怎麼調整。利用此發明可以對多種數控系統的加工代碼進行仿真與調試,支持宏程序的調試 與仿真,極大的方便了編程人員編寫代碼、檢驗代碼。本發明可用於工具機數控系統、CAM軟體使用。基於上述的思想,本發明同時還提供一種基於宏程序的代碼調試及仿真的裝置。請參閱圖5所示,其為本發明基於宏程序的代碼調試及仿真的裝置的較佳實施例 的功能結構框圖,其包括一輸入模塊1,其用以輸入加工代碼程序;一反讀模塊2,以程序段為單位編譯所述的代碼程序,建立語句樹,其首先設置所 述語句樹的父節點;判斷正在編譯的程序段是否有錯誤,如果有錯誤顯示錯誤信息,完成編 譯;如果沒有錯誤,則建立語句結點,並與所述語句樹中對應的父節點建立連接,然後對下 一個程序段進行編譯,直到所有的加工代碼全部解析完成,此時對應的語句樹就建立起來 了。一執行模塊3,遍歷所述語句樹,計算結果,生成軌跡數據;一啟動模塊4,用以選擇進入調試和仿真環境;一調試和仿真模塊5,用以進行單段執行或是斷點設置執行到某一程序段,其首先 在每一程序段,設置唯一標識的特徵,作為斷點執行或程序跳轉的標識;然後建立一個變量 表,存儲變量信息;對語句樹的每一結點進遍歷;當變量信息中的變量值發生變化時,更新變量表中變量信息。較佳的,所述的反讀模塊2中還設有判斷單元21,用以判斷程序段解析是否有錯
誤。
較佳的,還包括一顯示模塊6,其用以進行代碼顯示、圖形顯示、變量顯示以及錯 誤提示。以上所述僅為本發明的較佳實施例,對本發明而言僅僅是說明性的,而非限制性 的。本專業技術人員理解,在本發明權利要求所限定的精神和範圍內可對其進行許多改變, 修改,甚至等效,但都將落入本發明的保護範圍內。
權利要求
一種基於宏程序的代碼調試及仿真的方法,其特徵在於,其包括的步驟為步驟a輸入加工代碼程序;步驟b以程序段為單位編譯所述的代碼程序,建立語句樹;步驟c遍歷所述語句樹,計算結果,生成軌跡數據;步驟d選擇進入調試和仿真環境;步驟e進行單段執行或是斷點設置執行到某一程序段。
2.根據權利要求1所述的基於宏程序的代碼調試及仿真的方法,其特徵在於,所述的 步驟b包括步驟bl 建立所述語句樹的頭節點;步驟b2 判斷正在編譯的程序段是否有錯誤,如果有錯誤顯示錯誤信息,執行下述步 驟b4 ;步驟b3:建立語句結點,並與所述語句樹中對應的父節點建立連接,判斷是否還有程 序段沒有編譯完成,是,則編譯下一程序段並執行上述步驟b2,否,則執行下述步驟b4 ; 步驟b4:完成。
3.根據權利要求2所述的基於宏程序的代碼調試及仿真的方法,其特徵在於,所述的 步驟e包括步驟el 在每一程序段,設置唯一標識的特徵,作為斷點執行或程序跳轉的標識; 步驟e2 建立一個變量表,存儲變量信息; 步驟e3 對語句樹的每一結點進遍歷;步驟e4 當變量信息中的變量值發生變化時,更新變量表中變量信息。
4.一種基於宏程序的代碼調試及仿真的裝置,其特徵在於其包括 一輸入模塊,其用以輸入加工代碼程序;一反讀模塊,以程序段為單位編譯所述的代碼程序,建立語句樹; 一執行模塊,遍歷所述語句樹,計算結果,生成軌跡數據; 一啟動模塊,用以選擇進入調試和仿真環境;一調試和仿真模塊,用以進行單段執行或是斷點設置執行到某一程序段。
5.根據權利要求4所述的基於宏程序的代碼調試及仿真的裝置,其特徵在於所述的 反讀模塊中還設有判斷單元,用以判斷程序段解析是否有錯誤。
6.根據權利要求5所述的基於宏程序的代碼調試及仿真的裝置,其特徵在於還包括 一顯示模塊,其用以進行代碼顯示、圖形顯示、變量顯示以及錯誤提示。
全文摘要
本發明為一種基於宏程序的代碼調試及仿真的方法和裝置,其中所述的方法包括的步驟為步驟a輸入加工代碼程序;步驟b以程序段為單位編譯所述的代碼程序,建立語句樹;步驟c遍歷所述語句樹,計算結果,生成軌跡數據;步驟d選擇進入調試和仿真環境;步驟e進行單段執行或是斷點設置執行到某一程序段。
文檔編號G06F11/36GK101968767SQ201010515758
公開日2011年2月9日 申請日期2010年10月15日 優先權日2010年10月15日
發明者白俊濤, 賈喜存, 高玉鳳 申請人:北京數碼大方科技有限公司