專利名稱:在數控系統上實現參數化編程的方法
技術領域:
本發明涉及編程方法,尤其涉及一種在數控系統上實現參數化編程的方法。
背景技術:
數控機床通過編制的程序實現零部件的各類加工,目前數控編程大致有三種方法第一種是直接手工編寫數控指令代碼,如直線指令是G01,圓弧指令是G02等;這種方法效率低,出錯率高;只能用于簡單零件的程序編制。第二種方法是基于計算機制圖軟件,通過圖形化的人機對話生成數控程序,即“圖形化編程”;這種方法效率較高;不容易出錯;目前已經有許多實際的產品;但是這種編程方法的實現較為復雜,對于軟硬件環境有一定的要求;因此通常是在一臺計算機上進行圖形化編程,然后再將編好的程序導入到數控系統中實現零部件的加工。在數控系統上直接實現圖形化編程有一定的困難。第三種方法是“參數化編程”,即針對一些相似的零件,把它們的特征參數提取出來,通過編輯參數化的數控程序,數控系統可以根據操作者輸入的參數,自動生成數控加工代碼。這種方法也具備簡單高效的特點,但是只能夠適用于特征相似的零件。例如同一類的齒輪、凸輪等零部件。在傳統的數控系統,例如FANUC數控系統中,通過在數控指令中嵌入宏變量,可以實現參數化的數控程序。FANUC數控系統還提供了 G65、G66^G69指令,用來定義宏變量的名稱和顯示位置。從而允許用戶定制參數化的輸入界面。但是這種方法使用較為復雜,所生成的參數輸入界面較為簡陋。且生成的參數表是靜態的,用戶輸入的參數無法改變參數表的結構,缺乏靈活性。還有一些數控系統提供了開放的接口,允許用戶通過高級語言編寫專門的參數化編程界面,并嵌入到數控系統中。采用這種方式可以實現友好和靈活的輸入界面,但是實現難度較高。要求用戶具備高級語言編程的能力,并熟悉數控系統的應用編程接口。
發明內容
本發明所要解決的技術問題是提供一種在數控系統上實現參數化編程的方法,本方法不需使用高級語言進行編程,不必輸入數控指令,而通過輸入零件參數實現數控編程, 使零件參數的輸入操作更為直觀和可靠,降低了數控編程的復雜性。為解決上述技術問題,本發明在數控系統上實現參數化編程的方法包括如下步驟步驟一、編制具有層次化結構的模板文件并定義模板文件的內容,所述模板文件包括實體元素和結構元素,實體元素用于構成模板文件的輸出結果,即數控程序的內容,結構元素用于決定模板文件在數控系統上所顯示的參數編程畫面的內容和結構,并控制實體元素輸出到數控程序中的形式和數量;所述實體元素包括數控指令片段、文件引用標記和參數引用標記;數控指令片段是在模板文件生成數控程序時,構成輸出結果中的數控指令;文件引用標記在模板文件被處理時,會被該標記所指定的外部文件的整體或部分內容所取代,并輸出到數控程序中;參數引用標記在模板文件被處理時,會被該標記所關聯參數的值所取代,參數引用標記關聯的參數需要在該標記出現之前的位置,并通過結構元素進行定義;結構元素用于在模板文件中標記一個范圍,構成文件塊,所述文件塊包含若干完整的實體元素或子文件塊;結構元素包括標簽塊標記、參數定義塊標記、分支塊標記和循環塊標記,標簽塊標記在模板文件被輸出到數控系統的參數編程畫面時將被表示為樹視圖中的一個標簽節點,標簽節點的名稱在標簽塊標記中指定;參數定義塊標記在模板文件被輸出到數控系統的參數編程畫面時將被表示為樹視圖中的一個參數節點,參數名稱、參數值、參數有效范圍、參數說明和圖示內容通過參數定義塊標記描述,參數定義塊標記定義的參數在模板文件中通過所述參數引用標記進行引用;分支塊標記本身不會被直接輸出到數控系統的參數編程畫面上,分支塊標記包含若干文件塊,并對其中的每一文件塊中的參數或表達式指定約束條件,當分支塊標記中文件塊所指定的參數或表達式的值滿足約束條件時,該文件塊才會在模板文件被處理時顯示到數控系統的參數編程畫面上或者輸出到所生成的數控程序中,不滿足約束條件的文件塊將會在顯示參數編程畫面或輸出數控程序時被濾除;循環塊標記本身不會被直接輸出到數控系統的參數編程畫面上,循環塊標記包含的文件塊按照循環塊標記指定的次數,重復輸出到數控系統的參數編程畫面或所生成的數控程序中;步驟二、數控系統對所述模板文件進行解析和處理,在數控系統上顯示為一個樹狀結構的參數輸入表單,參數輸入表單中包含標簽和參數兩種節點,在輸入表單中選擇和設置參數節點的數值并對節點進行展開或折疊操作,在參數節點進行選擇和設置后,數控系統根據所輸入的數值重新更新參數輸入表單的內容和結構;步驟三、數控系統在參數輸入表單更新后,數控系統將所輸入的數值嵌入到所述模板文件中,采用所設置的數值替換所述模板文件中的參數引用標記,濾除所述模板文件中的標簽塊標記和參數引用標記,并對分支塊標記和循環塊標記按照指定的約束條件和次數值進行處理,生成最終的數控程序。由于本發明在數控系統上實現參數化編程的方法采用了上述技術方案,即首先編制具有層次化結構的模板文件并定義模板文件的內容,模板文件包括數控指令片段、文件引用標記、參數引用標記、標簽塊標記、參數定義塊標記、分支塊標記和循環塊標記,數控系統對所述模板文件進行解析和處理,在數控系統的界面上生成樹狀結構的參數輸入表單。 在輸入表單中輸入參數后,數控系統根據輸入的參數將會更新參數輸入表單的結構,同時濾除無關標記和定義并生成數控加工指令,數控系統通過執行所生成的數控加工指令控制機床實現零件的加工。本方法不需使用高級語言進行編程,不必輸入數控指令,而通過輸入零件參數實現數控編程,使零件參數的輸入操作更為直觀和可靠,降低了數控編程的復雜性。
具體實施例方式在數控系統上實現參數化編程的方法包括如下步驟步驟一、編制具有層次化結構的模板文件并定義模板文件的內容,所述模板文件包括實體元素和結構元素,實體元素用于構成模板文件的輸出結果,即數控程序的內容,結構元素用于決定模板文件在數控系統上所顯示的參數編程畫面的內容和結構,并控制實體元素輸出到數控程序中的形式和數量,所述實體元素包括數控指令片段、文件引用標記和參數引用標記,數控指令片段是在模板文件生成數控程序時,構成輸出結果中的數控指令,文件引用標記在模板文件被處理時,會被該標記所指定的外部文件的整體或部分內容所取代,并輸出到數控程序中,參數引用標記在模板文件被處理時,會被該標記所關聯參數的值所取代,參數引用標記關聯的參數需要在該標記出現之前的位置,并通過結構元素進行定義,結構元素用于在模板文件中標記一個范圍,構成文件塊,所述文件塊包含若干完整的實體元素或子文件塊,結構元素包括標簽塊標記、參數定義塊標記、分支塊標記和循環塊標記,標簽塊標記在模板文件被輸出到數控系統的參數編程畫面時將被表示為樹視圖中的一個標簽節點,標簽節點的名稱在標簽塊標記中指定,參數定義塊標記在模板文件被輸出到數控系統的參數編程畫面時將被表示為樹視圖中的一個參數節點,參數名稱、參數值、參數有效范圍、參數說明和圖示內容通過參數定義塊標記描述,參數定義塊標記定義的參數在模板文件中通過所述參數引用標記進行引用,分支塊標記本身不會被直接輸出到數控系統的參數編程畫面上,分支塊標記包含若干文件塊,并對其中的每一文件塊中的參數或表達式指定約束條件,當分支塊標記中文件塊所指定的參數或表達式的值滿足約束條件時,該文件塊才會在模板文件被處理時顯示到數控系統的參數編程畫面上或者輸出到所生成的數控程序中,不滿足約束條件的文件塊將會在顯示參數編程畫面或輸出數控程序時被濾除,循環塊標記本身不會被直接輸出到數控系統的參數編程畫面上,循環塊標記包含的文件塊按照循環塊標記指定的次數,重復輸出到數控系統的參數編程畫面或所生成的數控程序中;步驟二、數控系統對所述模板文件進行解析和處理,在數控系統上顯示為一個樹狀結構的參數輸入表單,參數輸入表單中包含標簽和參數兩種節點,在輸入表單中選擇和設置參數節點的數值并對節點進行展開或折疊操作,在參數節點進行選擇和設置后,數控系統根據所輸入的數值重新更新參數輸入表單的內容和結構;步驟三、數控系統在參數輸入表單更新后,數控系統將所輸入的數值嵌入到所述模板文件中,采用所設置的數值替換所述模板文件中的參數引用標記,濾除所述模板文件中的標簽塊標記和參數引用標記,并對分支塊標記和循環塊標記按照指定的約束條件和次數值進行處理,生成最終的數控程序。本方法中的模板文件可以通過設計一個人機交互的圖形化軟件來幫助創建或編輯,該軟件可以脫離數控系統,獨立運行于通用計算機上,這樣可以使數控系統的參數化編
程進一步簡化。本方法的模板文件非常適合采用XML文件格式來實現。XML本身是一種層次結構的標記語言,模板文件中的參數定義、塊標記等主要元素都可以使用XML元素來定義。例如下面就是一個用XML定義的一個模板文件的示例< ? xml version=" 1· 0” encoding = 〃 gb2312”? ><root><param name = 〃 Number" value = 〃 2 (0,100],,></param>GOO XO YO F500G91〈loop name=" |〃 count =" Number" >G00 XO Y(100*#(I))<param name = " Shape" value = 0{0: " Olrde
1: “ Spuare,,}>
=〃 Diameter" ="10(0,100]
</root>上例中第三行“〈paramname =〃 Number" value = " 2(0,100))〃 ></param>,, 是一個參數的定義;上例中第四行和第五行,是一段數控指令片段上例中第六行“〈loopname=" I" count=" Number" >”和倒數第三行“</ loop〉”構成一個循環塊標記,其中循環次數由參數Number指定;
<if param = “ Shape “ condition = 0>
<param name
scale = 0. 5 value = " 10(0,100]〃 unit = " mm" />
G02 XO YO 10 J#(Diameter)FlOOO
</if> <else>
<param name =" Width" value
“unit =“讓〃 />
GOl X#(Width)FlOOO Y# (Width) X(-l*#(Width)) Y(-l*#(Width))
</else>
</param>
</loop> M30
上例中第九行“<ifparam =〃 Shape" condition = 0>”、第十二行“</if>”、第 十三行“〈else〉”和第十九行“〈/else〉”構成ー個分支塊標記,其條件判斷為Jhape參數 的值是否等于0 ;這個分支塊標記中擁有兩個文件塊,它們分別是從第十行至第十一行,從 第十四行至第十八行。上例中第十一行中“# (Diameter)”是ー個參數引用標記,用于引用參數 Parameter 的值。使用C++、C#等高級語言都可以很方便地讀取和處理這種XML文件,并在屏幕上采 用樹視圖組件將參數定義塊標記、標簽塊標記等節點顯示為樹節點,生成參數輸入表単。例 如上面的模板文件經過處理后,在數控系統上將顯示為以下形式Number = 2Shape = Circle
權利要求
1. 一種在數控系統上實現參數化編程的方法,其特征在于本方法包括如下步驟 步驟一、編制具有層次化結構的模板文件并定義模板文件的內容 所述模板文件包括實體元素和結構元素,實體元素構成模板文件的輸出結果,即數控程序的內容,結構元素決定模板文件在數控系統上所顯示的參數編程畫面的內容和結構,并控制實體元素輸出到數控程序中的形式和數量,所述實體元素包括數控指令片段、文件引用標記和參數引用標記, 數控指令片段是在模板文件生成數控程序時,構成輸出結果中的數控指令, 文件引用標記在模板文件被處理時,會被該標記所指定的外部文件的整體或部分內容所取代,并輸出到數控程序中,參數引用標記在模板文件被處理時,會被該標記所關聯參數的值所取代,參數引用標記關聯的參數需要在該標記出現之前的位置,并通過結構元素進行定義,結構元素用于在模板文件中標記一個范圍,構成文件塊,所述文件塊包含若干完整的實體元素或子文件塊,結構元素包括標簽塊標記、參數定義塊標記、分支塊標記和循環塊標記, 標簽塊標記在模板文件被輸出到數控系統的參數編程畫面時將被表示為樹視圖中的一個標簽節點,標簽節點的名稱在標簽塊標記中指定,參數定義塊標記在模板文件被輸出到數控系統的參數編程畫面時將被表示為樹視圖中的一個參數節點,參數名稱、參數值、參數有效范圍、參數說明和圖示內容通過參數定義塊標記描述,參數定義塊標記定義的參數在模板文件中通過所述參數引用標記進行引用,分支塊標記本身不會被直接輸出到數控系統的參數編程畫面上,分支塊標記包含若干文件塊,并對其中的每一文件塊中的參數或表達式指定約束條件,當分支塊標記中文件塊所指定的參數或表達式的值滿足約束條件時,該文件塊才會在模板文件被處理時顯示到數控系統的參數編程畫面上或者輸出到所生成的數控程序中,不滿足約束條件的文件塊將會在顯示參數編程畫面或輸出數控程序時被濾除,循環塊標記本身不會被直接輸出到數控系統的參數編程畫面上,循環塊標記包含的文件塊按照循環塊標記指定的次數,重復輸出到數控系統的參數編程畫面或所生成的數控程序中;步驟二、數控系統對所述模板文件進行解析和處理,在數控系統上顯示為一個樹狀結構的參數輸入表單,參數輸入表單中包含標簽和參數兩種節點,在輸入表單中選擇和設置參數節點的數值并對節點進行展開或折疊操作,在參數節點進行選擇和設置后,數控系統根據所輸入的數值重新更新參數輸入表單的內容和結構;步驟三、數控系統在參數輸入表單更新后,數控系統將所輸入的數值嵌入到所述模板文件中,采用所設置的數值替換所述模板文件中的參數引用標記,濾除所述模板文件中的標簽塊標記和參數引用標記,并對分支塊標記和循環塊標記按照指定的約束條件和次數值進行處理,生成最終的數控程序。
全文摘要
本發明公開了一種在數控系統上實現參數化編程的方法,首先編制具有層次化結構的模板文件并定義模板文件的內容,模板文件包括數控指令片段、文件引用標記、參數引用標記、標簽塊標記、參數定義塊標記、分支塊標記和循環塊標記,數控系統對所述模板文件進行解析和處理,在數控系統的界面上生成樹狀結構的參數輸入表單。在輸入表單中輸入參數后,數控系統根據輸入的參數將會更新參數輸入表單的結構,同時濾除無關標記和定義并生成數控加工指令,數控系統執行所生成的數控加工指令控制機床實現零件加工。本方法不需使用高級語言編程,不必輸入數控指令,而通過輸入零件參數實現數控編程,使零件參數的輸入操作更為直觀和可靠,降低數控編程的復雜性。
文檔編號G05B19/4093GK102346458SQ20101024690
公開日2012年2月8日 申請日期2010年8月6日 優先權日2010年8月6日
發明者蔣知峰 申請人:上海開通數控有限公司