四川省裝備制造業機器人應用技術工程實驗室 雷剛 施蕓 汪健 王濤
本文介紹了數控切割機中加工零件的圖形顯示方法,分析了實現零件顯示的基本方法和步驟,提出了利用檢索零件極值坐標實現零件尺寸提取的方法,利用坐標變換方式實現了基于切割零件數控代碼在軟件系統中的圖形顯示。
數控切割機在切割加工過程中,需要用戶將加工零件以NC代碼(數控代碼)的形式輸入數控切割機[1],數控切割機讀取NC代碼的數據信息控制切割頭進行加工。但由于零件的復雜性、輸入過程中的差錯等可能導致需求與實際切割效果的差異。為解決該問題,可以在數控切割機的軟件系統中添加加工零件的圖形顯示功能[2]。當用戶將NC代碼輸入數控切割機后,利用圖形顯示功能可以將加工的零件的圖形顯示出來,保證了零件加工的有效性,減少了加工零件的廢品率,提高了生產效率。
在現階段,數控系統有多種不同的形式,在本項目中選用PC104工控板作為整個系統硬件平臺。該工控板具有以下優點[3]:
(1)PC104具備小尺寸(96mm×90mm)優勢,便于系統的集成。
(2)采用多重疊壓式結構,在工業現場具有很好的抗震性能。
(3)豐富的硬件和軟件資源,便于實現系統功能的需要。
(4)PC104應用極為廣泛,各大專業廠商的支持力度大,為系統的開發提供了便利條件。
在數控切割機軟件開發中使用MS-DOS作為系統環境,進行系統軟件的開發。同時為克服DOS環境下的限制問題,使用DJGPP軟件工具進行軟件開發[4]。DJGPP是一個開源的應用軟件,是由DJ Delorie發起和編寫的。該軟件是全開源的軟件,任何需要的用戶都可以通過網絡得到軟件的源代碼,并進行修改使用,沒有任何費用負擔。該系統的使用環境與Turbo C的使用環境基本一致,對于使用C語言進行程序開發的人員,可以很容易的安裝使用。
數控切割機進行零件的顯示實現過程中,首先需要將各個節點的數據信息依次讀出進行處理[5]。針對于不同的加工零件,需要根據顯示屏和加工零件尺寸進行計算,確定顯示區域大小與零件大小的關系,確定相互比例和轉換坐標,經過轉換后才能實現顯示。由于數控代碼是根據直線和圓弧進行圖像擬合的,圖形顯示實質就是利用直線和圓弧繪制工具進行繪圖的過程。另外在部分數控切割機中,可能使用子程序調用和程序轉移指令,在顯示程序中必須對該類復合指令進行處理。結合以上情況,使用模塊式結構進行軟件設計,其基本結構如圖1所示。

圖1 軟件結構圖Fig.1 Software structure diagram
(1)顯示預處理模塊。這一模塊為圖形顯示設定初始化條件,規定顯示的區域和范圍。通過對加工零件數控代碼的極值檢索,計算出加工零件的區域范圍,通過比較顯示區域和加工零件區域,計算出顯示比例。同時根據顯示器和數控代碼坐標系的差異推導出兩者的轉換坐標[6]。
(2)直線顯示模塊。這一模塊實現直線軌跡顯示。通過數據分析,調用直線繪制函數line(),繪制出G00和G01的運行軌跡。
(3)圓弧顯示模塊。這一模塊實現圓弧軌跡顯示。通過數據提取和處理,然后調用圓弧繪制函數arc()和circle(),分別繪制出不同的圓弧運行軌跡。
(4)回參指令顯示模塊。該模塊完成數控代碼中回參指令G26/G27/G28的軌跡顯示。分別繪制出3種不同的回參軌跡。
(5)復合指令顯示模塊。該模塊完成數控代碼中復合指令的軌跡顯示。其中G98和G99一起實現子程序的軌跡顯示;G22和G80一起實現循環程序的軌跡顯示。
為保證將加工零件的圖形合理的顯示在顯示屏上,需要首先對該零件的NC代碼進行極值檢索(由于切割機系統為一個二維系統,實質為X方向和Y方向的極值檢索),進而確定顯示比例[7]。由于NC代碼的相關信息已經提取到鏈表的節點中,極值的檢索實際就是對各個節點涉及的數據檢索。為此在軟件設計中,定義了一個maxxy[i]數組。其中:

圖 2 圓弧極值檢索方法Fig.2 Arc extremum retrieval method
(1)maxxy[0]存放水平方向(X方向)的正向最大值;
(2)maxxy[2]存放水平方向(X方向)的負向最大值;
(3)maxxy[1]存放垂直方向(Y方向)的正向最大值;
(4)maxxy[3]存放垂直方向(Y方向)的負向最大值。
經過極值的檢索后,切割軌跡在水平方向的范圍為:maxxy[2]-maxxy[0];在垂直方向的范圍為:maxxy[3]-maxxy[1]。
在數控切割機中,切割路徑都采用直線和圓弧進行擬合,所以加工軌跡的極限值檢索就是對直線切割代碼和圓弧切割代碼的極限值檢索。
具體實現方法是:先判斷采用的坐標表示類型(絕對坐標/相對坐標),分別進入兩種不同處理通道,得到終點坐標的數據,最后與已有的極限坐標值進行比較,得到當前的極值坐標。
具體實現方法是:先讀入逆時針圓弧切割的參數信息,首先看起點是否出現極值,其次以圓心為坐標原點建立一個二維坐標系;然后分別計算出起點和終點在該坐標下的象限位置;最后圍繞圓心O,以起點開始逆時針旋轉,直到與終點處于同一象限,在旋轉過程中,判斷經過的象限情況,分析出極限值出現的位置,最終得到逆時針圓弧上的極限值。程序流程如圖2所示。
顯示器坐標系與數控代碼坐標系如圖3所示,通過對顯示器的坐標系和數控代碼表示的圖形坐標系的分析可知,在顯示器上顯示時,不能使用負值的坐標,且Y軸的遞增方向應該從上向下,所以需要使用一個轉換坐標進行數控代碼坐標的變換。具體實現方法是:在X方向,需要向正向平移一個反向極值;在Y方向,由于在顯示和數控代碼的表示上,變化方向是反向的,所以需要先進行鏡像變換,再進行正向平移。具體變換關系如下:

圖3 顯示器的坐標和數控代碼表示的圖形坐標示意圖Fig.3 Schematic diagram of the coordinates of the display and the graphic coordinates represented by the NC code

其中:K1為X方向顯示比例調節系數;K2為Y方向顯示比例調節系數。
由于零件的數控代碼是根據直線和圓弧進行圖像擬合的,圖形顯示實質就是利用直線和圓弧繪制工具進行繪圖的過程。
先讀入該鏈表節點的數據,判斷讀入坐標是相對或絕對坐標格式,通過參數計算得到直線起點和終點的坐標;其次根據初始化中得到的轉換坐標,進行起點和終點的坐標變換;最后通過區分G00和G01的差異,調用直線繪制函數line(),分別繪制出G00和G01的運行軌跡。
在數控零件的加工過程中,圓弧運行包含G02(順時針圓弧切割運行)和G03(逆時針圓弧切割運行)兩類代碼,以及圓心和半徑兩種表示形式。由于在標準C語言中圓弧函數arc()使用的是圓心、弧度和半徑作為接口參數,為簡化程序處理過程需要將不同的形式統一為逆向畫圓弧。
經過對顯示實現方法的分析、完成了相關程序設計與調試,并將設計的顯示軟件模塊嵌入工程樣機中,檢驗了軟件的可靠性和穩定性。具體運行狀態如圖4所示。

圖4 數控切割機圖形顯示圖Fig.4 Graphical display of CNC cutting machine
引用
[1] 甘明,袁正萍,陳小亮.數控切割機系統加工代碼圖形庫的開發[J].制造技術與機床,2010(2):85-87.
[2] 劉俊,楊代華,歐陽才校.基于OpenGL的數控加工代碼圖形庫的開發[J].制造技術與機床,2009(1):29-31.
[3] 周海力,朱達書,劉沖,等.基于PC104結構的龍芯1A嵌入式控制模塊設計[J].測控技術,2017,36(10):98-101+121.
[4] 高強業,王憲平,李圣怡,等.保護模式軟件開發環境DJGPP在實時高速數據采集中的應用[J].現代電子技術,2003(11):42-44.
[5] 潘海鴻,葉文海,陳琳,等.特種復合加工中心數控系統G代碼編譯器設計[J].組合機床與自動化加工技術,2015(6):71-73.
[6] 吳志勇,鞠傳香,鄭雯玉.嵌入式Linux下PC/104數據采集模塊驅動實現[J].儀表技術與傳感器,2012(6):58-60+63.
[7] 張小林.嵌入式計算機PC-104在飛行控制系統中的應用[J].微電子學與計算機,2003,20(4):26-27+31.