蔡 昆,吳文江
(中國科學(xué)院 沈陽計(jì)算技術(shù)研究所,沈陽 110168)
0 引言
藍(lán)天數(shù)控系統(tǒng)已很好的實(shí)現(xiàn)了對G 代碼的解釋與執(zhí)行的功能,然而當(dāng)需要加工新的工件時(shí),用戶需要現(xiàn)場編制G 代碼,然后才能加工出理想的工件成品。這不僅費(fèi)時(shí)費(fèi)力,而且要求用戶有較好的G 代碼編程經(jīng)驗(yàn)與水平。針對這一實(shí)際問題,文獻(xiàn)[1]將圖形編程和宏編程相結(jié)合,用圖形化的方法形成對宏程序的調(diào)用指令,以輔助用戶編程。不過此方法僅調(diào)用宏程序,在實(shí)際應(yīng)用中有一定的局限性。
本文基于零件加工庫,提出了一種流程化編程機(jī)制。該機(jī)制的主要任務(wù)是將零件加工庫、流程化加工隊(duì)列和數(shù)控系統(tǒng)三部分聯(lián)系起來,進(jìn)而實(shí)現(xiàn)一個(gè)簡單的編程方法,以提高用戶編程操作體驗(yàn)。同時(shí)該機(jī)制實(shí)現(xiàn)的刀具軌跡三維顯示功能可以在一些情況下幫助用戶及時(shí)發(fā)現(xiàn)程序錯誤,以避免浪費(fèi)昂貴的加工工件、損壞刀具或夾具等情況的發(fā)生[2]。
1 流程化編程機(jī)制
1.1 流程化編程機(jī)制研究
通過對數(shù)控系統(tǒng)加工過程的分析,可將其按照加工工藝劃分為多個(gè)步驟。例如:等高粗加工、曲面區(qū)域加工和精加工等。而多個(gè)加工工藝又可以組成一個(gè)更加復(fù)雜的加工過程?;谝陨戏治觯疚膶⒚總€(gè)工藝步驟作為一個(gè)加工動作,然后組合多個(gè)加工動作生成一個(gè)加工隊(duì)列。如果可以解釋處理該加工隊(duì)列,便能夠以簡潔明了的方式實(shí)現(xiàn)復(fù)雜工件的加工。而如何利用現(xiàn)有零件加工庫和藍(lán)天系列數(shù)控系統(tǒng)設(shè)計(jì)并實(shí)現(xiàn)這個(gè)思想便是本文流程化編程機(jī)制研究的重點(diǎn)。
1.2 流程化編程機(jī)制設(shè)計(jì)思想
流程化編程機(jī)制基于零件加工庫中的零件庫、輔助庫和現(xiàn)有程序三部分。零件庫中的零件加工動作是可配置參數(shù)的G 代碼程序,比如一個(gè)加工圓孔的程序,可設(shè)置圓孔的半徑和深度等參數(shù)值;輔助庫中的輔助動作一般是幾句G/M 代碼,比如冷卻液關(guān)閉、打開,主軸停止等;現(xiàn)有程序是已有的G 代碼程序。
流程化編程機(jī)制創(chuàng)建了兩個(gè)表:動作顯示列表和G 代碼程序文件路徑列表,并形成一一對應(yīng)關(guān)系。流程化加工隊(duì)列就是由這兩個(gè)表組成的。動作顯示列表供用戶了解當(dāng)前隊(duì)列的組成排列情況,文件路徑列表是順序生成G 代碼文件,然后進(jìn)行驗(yàn)證、執(zhí)行的必要條件。
對于用戶,流程化編程機(jī)制將G 代碼程序透明化,取而代之的是一個(gè)流程化加工隊(duì)列。隊(duì)列中的動作元素是零件加工庫中已有加工實(shí)例的有序子集。利用人機(jī)操作界面,用戶可以簡單方便的向加工隊(duì)列中添加刪除動作元素。通過解釋處理加工隊(duì)列,該機(jī)制能夠按序生成相應(yīng)G 代碼程序,并逐個(gè)交給數(shù)控系統(tǒng)進(jìn)行驗(yàn)證或執(zhí)行,然后三維顯示刀具軌跡,進(jìn)而實(shí)現(xiàn)用戶可視的流程化編程。
1.3 流程化編程方法
1.3.1 確定加工流程
為準(zhǔn)確的完成工件加工,用戶需首先制定一個(gè)合理的加工流程,即確定用到了零件加工庫中的哪些零件加工動作、輔助動作和現(xiàn)有程序動作,并將其正確排序。
1.3.2 添加加工實(shí)例
零件加工庫是以樹狀目錄形式顯示的,其中每一個(gè)底層目錄項(xiàng)代表一個(gè)零件對象,每一個(gè)文件項(xiàng)都代表一個(gè)加工實(shí)例。用戶可以在零件庫中添加加工動作,并實(shí)例化:利用零件參數(shù)幫助信息,用戶可以準(zhǔn)確方便的設(shè)置零件各項(xiàng)參數(shù),并根據(jù)參數(shù)間限定條件完成參數(shù)合法性檢查。
1.3.3 生成加工隊(duì)列
用戶可以通過鼠標(biāo)拖拽操作方便的將零件加工庫中的加工實(shí)例添加到動作顯示列表中,也可以通過雙擊將其從列表中刪除或通過拖拽調(diào)整其在列表中的位置。同時(shí)G 代碼文件路徑列表也會做相應(yīng)的添加刪除調(diào)整操作。
經(jīng)過以上三個(gè)步驟,用戶便輕松的完成了流程化編程。
2 流程化編程解釋實(shí)現(xiàn)
2.1 流程化加工隊(duì)列解釋處理
流程化加工隊(duì)列相當(dāng)于一個(gè)按順序播放的音樂列表。利用隊(duì)列中的文件路徑列表和零件加工庫,流程化編程機(jī)制可以生成相應(yīng)G 代碼文件:
(1)當(dāng)處理現(xiàn)有程序中的動作實(shí)例時(shí),只需簡單的復(fù)制其內(nèi)容到指定文件即可;
(2)當(dāng)處理輔助庫中的動作實(shí)例時(shí),需要按序提取其中的G/M 代碼并添加到指定文件中;
(3)當(dāng)處理零件庫中的動作實(shí)例時(shí),需先將零件對應(yīng)G 代碼文件中的參數(shù)名替換成用戶設(shè)置的值,再將其寫到指定文件中。這里為便于定位參數(shù)名,零件庫統(tǒng)一用G 代碼中未用到的尖括號符號將參數(shù)名嵌在其中。這樣就可以利用正則表達(dá)式" <[^<][^>]* >"方便地進(jìn)行匹配。

圖1 流程化加工隊(duì)列處理流程
2.2 G 代碼程序解釋處理
為了方便用戶操作并避免對藍(lán)天數(shù)控系統(tǒng)增加過大的負(fù)荷,流程化編程機(jī)制利用網(wǎng)絡(luò)套接字對數(shù)控主機(jī)進(jìn)行遠(yuǎn)程操作:G 代碼程序驗(yàn)證與執(zhí)行。為達(dá)到這一目標(biāo),該機(jī)制在數(shù)控系統(tǒng)中創(chuàng)建了一個(gè)聯(lián)絡(luò)員進(jìn)程,該進(jìn)程主要負(fù)責(zé)兩臺主機(jī)間的通信。
流程化編程機(jī)制將經(jīng)過解釋處理加工動作后生成的G 代碼文件發(fā)送給聯(lián)絡(luò)員進(jìn)程。同時(shí)為區(qū)分驗(yàn)證與執(zhí)行操作,在傳送G 代碼文件后會繼續(xù)發(fā)送字符’