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