呂云峰,丁喜禎,杜 謙
(1武漢數(shù)字工程研究所,武漢430074;2武漢理工大學(xué),武漢430070)
火焰切割機(jī)主要用于切割碳素鋼和低碳鋼,是利用鐵在氧氣中燃燒產(chǎn)生動(dòng)能進(jìn)行切割的一種方法.在切割時(shí),如果切割零件厚度變化較大,而且對(duì)切割質(zhì)量和精度要求不太高時(shí),使用火焰切割機(jī)最為適宜.但如果對(duì)切割質(zhì)量和精度有嚴(yán)格要求時(shí),就必須采用數(shù)控系統(tǒng)控制切割軌跡.目前國(guó)外企業(yè)的火焰切割機(jī)普遍采用了數(shù)控系統(tǒng)進(jìn)行加工,不僅提高了加工零件的利用率,而且還大大改善了產(chǎn)品質(zhì)量,提高了工作效率.我國(guó)的機(jī)械行業(yè)大部分采用手動(dòng)控制火焰切割,不僅效率低下,而且不能滿(mǎn)足市場(chǎng)的需求.因此,開(kāi)發(fā)一套高效、低成本的數(shù)控火焰切割機(jī)系統(tǒng),在我國(guó)有著廣泛的應(yīng)用前景[1].
數(shù)控火焰切割機(jī)是一種特種數(shù)控加工機(jī)床,它具有一般數(shù)控機(jī)床的特點(diǎn),即能根據(jù)數(shù)控加工程序,自動(dòng)完成切割過(guò)程,但也_有一些不同之處.由于火焰切割機(jī)不像金屬切削機(jī)床那樣靠切削工具與工件的剛性接觸來(lái)去除被加工材料,而是利用氣體火焰將鋼材表層加熱到燃點(diǎn)并形成活化狀態(tài),然后送進(jìn)高純度、高流速的切割氧,使鋼板燃燒.與此同時(shí),高壓氧吹除熔渣,從而形成切口將鋼材割開(kāi).因此加工過(guò)程中工件受力較小[2].
火焰切割機(jī)的加工過(guò)程包括點(diǎn)火、預(yù)熱、通切割氧、切割、熄火、返回原點(diǎn)整個(gè)過(guò)程,由于加工時(shí)要有預(yù)熱,所以不能像激光加工、電加工那樣對(duì)能量收放自如,也不能像機(jī)械加工那樣能在任意一點(diǎn)停止和開(kāi)始加工.
由于國(guó)內(nèi)研究的數(shù)控系統(tǒng)主要是基于DOS平臺(tái),基于Windows平臺(tái)的數(shù)控火焰切割機(jī)系統(tǒng)比較少見(jiàn),而且代碼也沒(méi)有完全開(kāi)放.因此本文是基于數(shù)控機(jī)床發(fā)展中存在的一些問(wèn)題及我國(guó)的研究現(xiàn)狀,結(jié)合某科技開(kāi)發(fā)有限公司“基于Windows平臺(tái)的數(shù)控火焰切割機(jī)系統(tǒng)”這個(gè)項(xiàng)目對(duì)數(shù)控系統(tǒng)進(jìn)行研究,并采用Visual C++實(shí)現(xiàn)對(duì)系統(tǒng)軟件功能的模擬仿真.
用戶(hù)界面分層次統(tǒng)一管理數(shù)控系統(tǒng)的各種功能,界面的主體部分主要顯示機(jī)床切割軌跡仿真圖形;界面的左上半部分,用來(lái)顯示G源代碼文件,以便用戶(hù)觀察圖形的正確性;下半部分用來(lái)顯示切割過(guò)程中的機(jī)床坐標(biāo)位置以及實(shí)時(shí)切割速度,便于用戶(hù)實(shí)時(shí)觀察;同時(shí)增加了功能按鍵,可以方便用戶(hù)隨時(shí)添加G源代碼進(jìn)行編譯仿真.本數(shù)控火焰切割機(jī)系統(tǒng)操作界面如圖1所示.
圖1 數(shù)控火焰切割機(jī)系統(tǒng)操作界面Fig.1 NC flame cuttingmachine system operation interface
對(duì)數(shù)控代碼的處理包括譯碼和刀具半徑補(bǔ)償.譯碼模塊是對(duì)加工數(shù)據(jù)進(jìn)行處理的第一個(gè)模塊,譯碼數(shù)據(jù)的正確與否直接關(guān)系到系統(tǒng)能否正常運(yùn)行.譯碼模塊處理的是標(biāo)準(zhǔn)的G代碼,該模塊中集成了對(duì)數(shù)控代碼的讀入、錯(cuò)誤檢查、加工軌跡參數(shù)的讀取與規(guī)范、控制參數(shù)的讀取與存儲(chǔ)、代碼優(yōu)化等功能[3].
刀補(bǔ)模塊是根據(jù)火焰切割的特點(diǎn),將割縫寬度作為刀具半徑.本系統(tǒng)中刀補(bǔ)模塊采用基于矢量計(jì)算的C型刀具半徑補(bǔ)償算法,具體思路是:首先畫(huà)出直線 → 直線、直線 → 圓弧、圓弧 → 直線、圓弧→圓弧4種轉(zhuǎn)接類(lèi)型在平面坐標(biāo)下的圖形,采用解析幾何的思想,并利用三角函數(shù)關(guān)系推導(dǎo)出刀具補(bǔ)償后刀具中心軌跡的起點(diǎn)、終點(diǎn)、相交點(diǎn)和插入點(diǎn)的坐標(biāo)值.
2.3.1 待切割零件圖形的預(yù)顯
實(shí)際加工圖形的大小與繪圖區(qū)域顯示的圖形大小不一樣,因此屏幕上顯示的圖形的每個(gè)點(diǎn)的坐標(biāo)數(shù)據(jù)是經(jīng)過(guò)同比例放縮的.而為了使每個(gè)待加工圖形都能在屏幕上以盡可能大、盡可能清晰地顯示在用戶(hù)面前,這就需要針對(duì)每個(gè)圖形計(jì)算出放縮倍數(shù),我們把這個(gè)放縮倍數(shù)用AP來(lái)表示.AP的計(jì)算公式為:
AP=(實(shí)際零件的大小 /繪圖區(qū)域的大小).
1)實(shí)際零件大小的計(jì)算.實(shí)際零件的大小,可以通過(guò)計(jì)算它在坐標(biāo)系中的所占區(qū)域來(lái)獲得.這就需要分別獲得它在X軸和Y軸的最大、最小坐標(biāo)參數(shù).
對(duì)于直線,根據(jù)起點(diǎn)和終點(diǎn)坐標(biāo)數(shù)據(jù)就可以很容易得到其在X軸和Y軸的最大最小坐標(biāo)參數(shù).這里,每段直線的終點(diǎn)要作為下一段直線的起點(diǎn),否則計(jì)算會(huì)出錯(cuò).
對(duì)于圓弧,如圖2所示,它的起點(diǎn)和終點(diǎn)坐標(biāo)并不一定就是它在坐標(biāo)軸上的極值.所以我們通過(guò)它的起點(diǎn)和終點(diǎn)相對(duì)于圓心的分布,來(lái)對(duì)圓弧進(jìn)行分類(lèi).然后針對(duì)每一個(gè)類(lèi)別來(lái)計(jì)算其最大、最小坐標(biāo).
圖2 圖形映射在坐標(biāo)軸上的極值Fig.2 In the imagemaps coordinates extreme value
根據(jù)圓弧的起點(diǎn)和終點(diǎn)相對(duì)于圓心的位置,以及圓弧的繪圖方向(順時(shí)針和逆時(shí)針),可以分為8類(lèi).下面是順時(shí)針畫(huà)圖時(shí),圓弧起點(diǎn)在圓心左邊,終點(diǎn)在圓心右邊的代碼:
順時(shí)針畫(huà)圓弧的另外3種情況,分別是:起點(diǎn)在圓心右邊,終點(diǎn)在圓心左邊;起點(diǎn)和終點(diǎn)都在圓心左邊;起點(diǎn)和終點(diǎn)都在圓心右邊.這3種情況的代碼結(jié)構(gòu)與上面類(lèi)似,這里不再列出.
圖形在XY坐標(biāo)軸上的最大最小值獲得之后,就可以通過(guò)以下代碼計(jì)算實(shí)際圖形的大小(mx)了:
if(mx<my){mx=my;}/*在坐標(biāo)軸上所占的最大區(qū)域*/
2)繪圖區(qū)域大小的獲得.繪圖區(qū)域的大小要根據(jù)面板中選用的控件,來(lái)使用控件相應(yīng)的函數(shù)來(lái)計(jì)算.比如我們選擇在Canvas控件中繪制圖形.通過(guò)下列函數(shù)可以獲得Canvas控件的高度和寬度:
3)計(jì)算圖形顯示時(shí)的放縮倍數(shù).根據(jù)前面兩步,下面可以計(jì)算圖形的放縮倍數(shù):
得到零件的放縮倍數(shù)AP之后,可以計(jì)算圖形在屏幕中顯示時(shí)的坐標(biāo):
繪圖顯示坐標(biāo) =(零件實(shí)際坐標(biāo) /零件放縮倍數(shù)AP).
圖3即為待加工零件圖形預(yù)顯功能的實(shí)現(xiàn)過(guò)程.
4)零件圖形預(yù)顯實(shí)例.下面采用的測(cè)試用例的G代碼文件如下:
圖3 預(yù)顯的程序流程圖Fig.3 Pre-show program flow chart
將上述G源代碼輸入系統(tǒng)后,經(jīng)過(guò)譯碼編譯得到零件圖形的預(yù)顯如圖4.
2.3.2 模擬仿真
圖4 零件圖形的預(yù)顯Fig.4 Part of pre-show graphics
仿真模塊是在不啟動(dòng)電機(jī)的情況下而實(shí)現(xiàn)加工過(guò)程模擬的繪圖模塊.該模塊與主框架的視圖類(lèi)密切聯(lián)系,是由具體繪圖函數(shù)、尺寸計(jì)算函數(shù)以及插補(bǔ)運(yùn)算函數(shù)組成的.調(diào)用此功能,能對(duì)零件的代碼進(jìn)行檢驗(yàn),繪制零件加工的軌跡圖形.
本系統(tǒng)的仿真功能是應(yīng)用譯碼模塊的數(shù)據(jù)進(jìn)行插補(bǔ),也就是對(duì)給定曲線進(jìn)行細(xì)小劃分,將給定的曲線劃分成用許多小直線段逼近零件形狀;再利用繪圖函數(shù)將圖形按設(shè)定時(shí)間間隔輸出,來(lái)實(shí)現(xiàn)系統(tǒng)的加工軌跡仿真[4].系統(tǒng)仿真過(guò)程如圖5所示.
圖5 系統(tǒng)仿真過(guò)程Fig.5 System simulation
在此還是將上述G源代碼輸入數(shù)控系統(tǒng),圖6為經(jīng)過(guò)譯碼、插補(bǔ)后得到的仿真圖形(其中白線表示運(yùn)動(dòng)軌跡).
圖6 模擬加工過(guò)程圖Fig.6 Simulation process diagram
為建立上下位機(jī)的聯(lián)系,除了硬件連接和軟件系統(tǒng)編程外,建立標(biāo)志位是上下位機(jī)進(jìn)行通信的關(guān)鍵.標(biāo)志位實(shí)際上是單個(gè)單位或連續(xù)的多單位的下位機(jī)內(nèi)存空間,這些內(nèi)存空間中所動(dòng)態(tài)寫(xiě)入的值和加工數(shù)據(jù)代表了不同的控制內(nèi)容,下位機(jī)實(shí)時(shí)檢測(cè)這些內(nèi)存空間,根據(jù)其內(nèi)容決定下位機(jī)的動(dòng)作,進(jìn)行運(yùn)動(dòng)控制[5].
本文介紹了數(shù)控火焰切割機(jī)系統(tǒng)的軟件功能設(shè)計(jì)模塊,包括主框架、用戶(hù)界面、數(shù)控代碼的處理、零件圖形的預(yù)顯和模擬仿真過(guò)程,并在Visual C++平臺(tái)上編程.在Windows下不僅能夠輕松的設(shè)計(jì)出漂亮的人機(jī)界面,大大節(jié)省時(shí)間,而且對(duì)數(shù)控系統(tǒng)的推廣和商業(yè)價(jià)值的實(shí)現(xiàn)是一個(gè)很好的促進(jìn).
[1]黃明吉.虛擬數(shù)控技術(shù)及應(yīng)用[M].北京:化學(xué)工業(yè)出版社,2005.
[2]何 航.Windows下開(kāi)放式數(shù)控系統(tǒng)軟件設(shè)計(jì)與研究[D].電子科技大學(xué),2004:40-43.
[3]趙海軍,徐豪寧,孫旭東.開(kāi)放式數(shù)控火焰切割機(jī)系統(tǒng)設(shè)計(jì)與開(kāi)發(fā)[J].自動(dòng)化技術(shù)與應(yīng)用,2007,26(7):97-99.
[4]夏敏敏,張 屹,覃進(jìn)一,等.基于模糊控制的超精密隔振平臺(tái)優(yōu)化設(shè)計(jì)與仿真[J].三峽大學(xué)學(xué)報(bào):自然科學(xué)版,2010(5):57-61.
[5]王志成.數(shù)控原理與數(shù)控系統(tǒng)[M].北京:國(guó)防工業(yè)出版社,2007.