基于VB的H型鋼火焰切割機(jī)數(shù)控系統(tǒng)開發(fā)
點(diǎn)擊:1254
A+ A-
所屬頻道:新聞中心
隨著國(guó)家經(jīng)濟(jì)的持續(xù)高速增長(zhǎng),油氣資源供應(yīng)不足將成為阻礙經(jīng)濟(jì)發(fā)展的主要矛盾。海洋油氣開發(fā)裝備產(chǎn)業(yè)是直接關(guān)系到海洋油氣資源開發(fā)、影響國(guó)家能源穩(wěn)定和經(jīng)濟(jì)安全的戰(zhàn)略產(chǎn)業(yè),因此必須對(duì)油氣開采設(shè)備的精度和設(shè)備制造的效率提出更高的要求。海洋石油鉆井平臺(tái)是海洋油氣開發(fā)的關(guān)鍵裝備,其主要構(gòu)件是H型鋼,如何提高H型鋼的下料效率和精度,已成為企業(yè)面臨的重要課題。本文講述的H型鋼火焰切割機(jī)采用數(shù)控火焰切割,具有切割效率高的優(yōu)點(diǎn);采用數(shù)控系統(tǒng)自動(dòng)控制切割軌跡,保證了加工的精度要求。數(shù)控系統(tǒng)是H型鋼火焰切割機(jī)的核心,本文重點(diǎn)介紹數(shù)控系統(tǒng)的設(shè)計(jì)和開發(fā)。
1 VB設(shè)計(jì)語(yǔ)言的選擇
VB(Visual Basic)是Microsoft公司于1991年推出的一種Windows應(yīng)用程序的開發(fā)工具。Visual意為/可視化的0,指的是一種開發(fā)圖形用戶界面的方法,所以VB是基于Basic的可視化的程序設(shè)計(jì)語(yǔ)言。經(jīng)過(guò)多次的升級(jí),Microsoft公司于1998年推出功能更強(qiáng)、更完善的VB6.0版本。它具有以下的特點(diǎn)[2]:(1)面向?qū)ο蟮目梢暬某绦蛟O(shè)計(jì)方法;(2)事件驅(qū)動(dòng)的程序設(shè)計(jì)機(jī)制;(3)結(jié)構(gòu)化的高級(jí)程序設(shè)計(jì)語(yǔ)言;(4)支持大型數(shù)據(jù)庫(kù)的連接與存取操作;(5)功能更強(qiáng)的用戶開發(fā)工具。
基于以上優(yōu)點(diǎn),故選擇VB為開發(fā)火焰切割機(jī)數(shù)控系統(tǒng)的圖形仿真工具。
2 火焰切割運(yùn)動(dòng)軌跡仿真的方法及原理
2.1 軌跡仿真實(shí)現(xiàn)的方法及選擇
依據(jù)笛卡爾坐標(biāo)定理,火焰切割機(jī)的控制系統(tǒng)控制X, Y,Z坐標(biāo)軸,H型鋼火焰切割機(jī)數(shù)控系統(tǒng)的軌跡仿真是分別在XY, YZ,XZ平面內(nèi)進(jìn)行軌跡仿真。在計(jì)算機(jī)圖形學(xué)中,常用的動(dòng)畫技術(shù)主要有以下3種:多頁(yè)面切換技術(shù)、圖段變換技術(shù)和幀動(dòng)畫技術(shù)。多頁(yè)面切換技術(shù)是在主顯示頁(yè)和工作頁(yè)(輪流放置要顯示的圖形)之間切換形成動(dòng)態(tài)變化。圖段變換技術(shù)是通過(guò)變換不同的圖段在屏幕上的不同位置,產(chǎn)生圖段圖形的連續(xù)移動(dòng),形成圖段變換動(dòng)畫。幀動(dòng)畫技術(shù)是通過(guò)對(duì)欲顯示的幀緩沖區(qū)直接操作(逐幀切換)和再填寫(填寫圖像的顏色信息)來(lái)動(dòng)態(tài)顯示相應(yīng)的圖形和圖像。結(jié)合VB的定時(shí)器(Timer)功能,本文采用圖段變換技術(shù)來(lái)實(shí)現(xiàn)動(dòng)畫顯示。通過(guò)對(duì)VB6. 0進(jìn)行分析,在
VB6.0上實(shí)現(xiàn)軌跡有下列3種方法。
方法1:利用VB6.0自帶的繪圖功能。
VB6.0提供一些用于作圖的方法,可以根據(jù)需要,在程序運(yùn)行時(shí)繪制所需圖形。
a.用Pset方法畫點(diǎn)。
Pset方法的一般格式為:
[對(duì)象名.]Pset(x,z)[,顏色]
功能說(shuō)明:在(x,z)位置用[,顏色]畫一個(gè)點(diǎn)。
示例:
Picture1.Pset(2 600,3 500),(0,0,255)
表示在Picture1的(2 600,3 500)位置畫一個(gè)藍(lán)色的點(diǎn)。
b.用Line方法畫線和矩形。
Line方法的一般格式為:
[對(duì)象名.]Line[[Step](x1,z1)]-[Step](x2,z2)[,顏色],[B][F]
功能說(shuō)明:在對(duì)象上由始點(diǎn)(x1,z1)到終點(diǎn)(x2,z2)用[,顏色]畫一條直線(當(dāng)有[B]時(shí)為矩形,而[F]表示一個(gè)實(shí)心的矩形), [Step]表示其后的坐標(biāo)值為相對(duì)當(dāng)前點(diǎn)的坐標(biāo)增量值。示例:Pictur1.Line(10,70)- (20,100),VbGreen表示在Pictur1上從(10,70)到(20,100)作一條直線,顏色為綠色(VbGreen)。
c.用Circle方法畫圓、橢圓和圓弧。
Circle方法的一般格式為:
[對(duì)象名.] Circle [Step](x,z),半徑,[,顏色][,起始角][,終止角][縱橫比]
功能說(shuō)明:在對(duì)象上用[,顏色]以(x,z)為圓心,以/半徑0為半徑畫一個(gè)圓。如有[,起始角] [,終止角]則為圓弧。如有[縱橫比]則為橢圓。示例:
Pictur1.Circle(20,40),500,VbYellow表示在Pictur1上以(20,40)為圓心,以500為半徑畫一個(gè)圓,顏色為黃色(VbYellow)。
方法2:利用循環(huán)功能繪圖。
其基本原理是將一條曲線分解成足夠多的有限連續(xù)點(diǎn),然后利用Pset方法通過(guò)循環(huán)來(lái)畫這些點(diǎn)。當(dāng)點(diǎn)的數(shù)量足夠多時(shí),相鄰兩點(diǎn)的間距就很小,這樣一條線就看成是有限點(diǎn)的排列。
方法3:利用時(shí)間針(Timer)的定時(shí)功能繪圖。這種方法與方法2的思想基本相同。其基本原理是將一條曲線分解成足夠多的有限微小曲線段近似于直線,然后利用Line方法通過(guò)時(shí)間針(Timer)的定時(shí)功能來(lái)連續(xù)地畫這些直線。當(dāng)直線的數(shù)量足夠多時(shí),所有直線的連接就形成曲線。這樣一條曲線就可看成是有限微小直線段的連續(xù)排列。
2.2 3種繪圖方法的比較
方法1是畫圖的最基本方法,其程序?qū)崿F(xiàn)比較簡(jiǎn)單,但點(diǎn)、線、圓是瞬間畫出的,不能產(chǎn)生線、圓的動(dòng)畫效果,也沒有實(shí)時(shí)顯示效果。
方法2的程序?qū)崿F(xiàn)也較簡(jiǎn)單,對(duì)線、圓也能產(chǎn)生動(dòng)畫效果,而且通過(guò)點(diǎn)的數(shù)量設(shè)置可以控制線的動(dòng)態(tài)顯示速度,但這種方法的缺點(diǎn)是不能產(chǎn)生實(shí)時(shí)顯示效果。
方法3的程序?qū)崿F(xiàn)相對(duì)較復(fù)雜一些,但可以實(shí)現(xiàn)動(dòng)態(tài)顯示和實(shí)時(shí)顯示,而且只要知道軌跡的方程z = f(x),那么就可以將它畫出來(lái)。
針對(duì)上述分析過(guò)程,考慮到華中Ñ型數(shù)控車床軌跡仿真需要有軌跡動(dòng)態(tài)顯示和當(dāng)前點(diǎn)位置實(shí)時(shí)顯示,本文采用方法3來(lái)實(shí)現(xiàn)運(yùn)動(dòng)軌跡仿真。
3 直線、圓弧軌跡仿真實(shí)現(xiàn)的原理
3.1 直線軌跡仿真的實(shí)現(xiàn)原理
如圖1所示,令起點(diǎn)A(X0,Z0),終點(diǎn)B(X1,Z1),則直線方程為:
(X1-X0)( Y-Z0) = ( Y1-Z0)(X-X0)故tanA= (Z1-Z0)/(X1-X0)。
依據(jù)插補(bǔ)原理,將直線AB分解成足夠多的有限微小線段AiAi+1,因?yàn)锳i在直線AB上,則:Ai(Xi,Zi),A i+1(X i+1,Z i+1),X i+1= Xi+△X;Zi+1= Zi+△Z,且tanNAiOAi+1=△Z/△X。
如果將$X,$Z設(shè)置得很小(如0.020mm),直線AB分成足夠多的線段AA1,A1A2,A2A3,,,A(N-1)B。設(shè)置時(shí)鐘計(jì)時(shí)器(Timer)的間隔(Interval)為60ms(為盡量滿足坐標(biāo)顯示的實(shí)時(shí)性,時(shí)間間隔不要小于55ms),利用計(jì)時(shí)器的定時(shí)功能,連續(xù)畫出系列直線AiAi+1。實(shí)現(xiàn)直線段AiAi+1的VB程序?yàn)?
Line(z+Z0,x+X0)-(Z+Z0+△Z,x+X0+△X)
其中z,x為時(shí)間鐘函數(shù)的靜態(tài)變量。由于上一線段的終點(diǎn)就是下一線段的始點(diǎn),因此這些線段會(huì)首尾相連,動(dòng)態(tài)地產(chǎn)生一條直線。同時(shí)為使直線能在終點(diǎn)準(zhǔn)確到達(dá)B點(diǎn),應(yīng)使用判斷語(yǔ)句(IF語(yǔ)句)。
3.2 圓弧軌跡仿真的實(shí)現(xiàn)原理
圓弧軌跡的生成原理基本與直線的生成原理基本相同。如圖2所示,令圓弧起點(diǎn)A(X0, Y0),
終點(diǎn)B(X1, Y1),圓心在(0,0),半徑為R(圓弧方程為:X2+Z2= R2)。依據(jù)插補(bǔ)原理,將圓弧AB分成若干份直線段(或圓弧段)AA1,A1A2,A2A3,..A(N-1)B。若用直線段來(lái)逼近圓弧,則有:
X i-1 2+Z i-1 2= Xi 2+Z i 2= R 2 Xi= X i-1+△X Zi= Z i-1+△Z
由于上述計(jì)算很復(fù)雜,而且$X和$Z的取法不可能很精確,因此仿真產(chǎn)生的軌跡與真實(shí)的圓弧有一定的誤差。若用微圓弧段來(lái)組成圓弧,依據(jù)VB的Circle屬性,設(shè)定微圓弧對(duì)應(yīng)的圓心角$A,而圓心和半徑均不變,這樣很容易實(shí)現(xiàn)。其過(guò)程為:令起點(diǎn)A對(duì)應(yīng)的圓弧起始角為AA,終點(diǎn)B對(duì)應(yīng)的圓弧起始角為AB,微小圓弧段Ai-1Ai的起始和終止圓心角分別為Ai-1,Ai,則:Ai=Ai-1+△A,Ai的坐標(biāo)為(RcosAi,RsinAi)。
其VB的實(shí)現(xiàn)程序?yàn)?
Circle(0,0),R,α,α+△α
其中A是系統(tǒng)設(shè)置的靜態(tài)變量。再用IF判斷語(yǔ)句實(shí)現(xiàn)圓弧準(zhǔn)確到達(dá)終點(diǎn)。
4 H型鋼火焰切割機(jī)數(shù)控系統(tǒng)
在基于VB H型鋼火焰切割機(jī)數(shù)控系統(tǒng)界面設(shè)計(jì)時(shí),輸入典型接口的參數(shù)自動(dòng)生成數(shù)控加工程序。首先自動(dòng)檢查數(shù)控程序的正確性、準(zhǔn)確性及工藝的可行性,其次在模擬界面上進(jìn)行數(shù)控程序的動(dòng)畫仿真,再次根據(jù)圖形對(duì)程序進(jìn)行校驗(yàn),最后進(jìn)行典型接口的加工。圖3~圖6是對(duì)一個(gè)典型接口過(guò)程的演示界面。
圖3 H型鋼火焰切割機(jī)的數(shù)控系統(tǒng)主界面
圖4 H型鋼火焰切割機(jī)的數(shù)控程序
圖5 H型鋼毛坯
圖6 火焰切割仿真
5 H型鋼火焰切割機(jī)數(shù)控系統(tǒng)VB程序
下面是H型鋼火焰切割機(jī)數(shù)控系統(tǒng)部分的VB源程序。
1. Private Declare Sub Sleep Lib/kernel320(ByValdwMilliseconds As Long) 2. Dim A, C, B, R, K, F, E, s, b1 As Integer 3. Private Sub Command1 Click() 4. Const PI=3.14 5. Dim i As Single 6. For i=0 To (F-K)/2 Step 10 7. Line(1000+s+b1,5000)-Step(0,i),RGB(200, 100, 50) 8. Line(6700+s+b1,800)-Step(0,i), RGB(200, 100, 50) 9. Sleep (5)
6 結(jié)束語(yǔ)
通過(guò)該系統(tǒng)的使用,企業(yè)爐溫管理水平大大提高。作為西安飛機(jī)工業(yè)(集團(tuán))公司熱處理設(shè)備溫度參數(shù)校準(zhǔn)技術(shù)研究推廣課題,溫度均勻性數(shù)據(jù)處理系統(tǒng)已經(jīng)通過(guò)了企業(yè)專家組的驗(yàn)收。該軟件統(tǒng)一了數(shù)據(jù)處理過(guò)程,提高了數(shù)據(jù)處理效率,規(guī)范了人員操作程序;同時(shí)為了保證通用性,統(tǒng)一了航空企業(yè)溫度均勻性報(bào)表格式,又使其具有一定的靈活性。
(審核編輯: 智匯張瑜)
分享