<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 光電顯示 > 設計應用 > 基于微機的激光雕刻機控制系統設計

基于微機的激光雕刻機控制系統設計

作者: 時(shí)間:2006-05-07 來(lái)源:網(wǎng)絡(luò ) 收藏

摘要:敘述了基于PC機的激光雕刻機運動(dòng)軌跡插補控制軟件的設計與實(shí)現和其外圍接口特性。

本文引用地址:http://dyxdggzs.com/article/225705.htm

關(guān)鍵詞:控制 CNC 插補原理 計算機并口

激光是20世紀60年代初期興起的一項新技術(shù),由于其具有單色性好,高亮度和方向性好的特點(diǎn),對各個(gè)技術(shù)領(lǐng)域產(chǎn)生了巨大的影響。而近年來(lái)的基于CNC(Computer Numerical Control)的激光雕刻機作為一種機、光、電、算相結合的高科技產(chǎn)品也在市場(chǎng)上出現,其應用相當廣泛,市場(chǎng)需求量很大。由于該產(chǎn)品大部分是由國外進(jìn)口,其價(jià)格之高,令一般的國內消費者難以接受。主要同類(lèi)產(chǎn)品有日本的MIMAKI PRO的專(zhuān)業(yè)刻字機,上海長(cháng)江匯眾企業(yè)發(fā)展有限公司的長(cháng)江激光雕刻機和北京開(kāi)天科技公司的FC-15型激光雕刻機等。本文主要介紹激光雕刻機的控制系統的軟件設計以及主要端口的接口特性。在該激光雕刻機控制系統中,主要采用基于PC機的數字控制系統,通過(guò)并口和步進(jìn)電機驅動(dòng)器來(lái)控制步進(jìn)電機,從而達到控制工作臺(或激光束)的走向和速度的目的。

1 控制軟件的設計

1.1 插補原理

在激光雕刻機中為了實(shí)現對激光雕刻機的控制,主要采用矢量化的方法將控制分成不同種類(lèi)的基本矢量,其中包括直線(xiàn)、圓弧、橢圓三個(gè)基本矢量。再利用插補原理來(lái)實(shí)現對這三個(gè)基本矢量的數字逼近。在激光雕刻機的控制系統中要求能夠達到較高的速度和精確度,因此控制軟件的計算不能太復雜,花費的時(shí)間不能太多,這就是使用插補原理的原因所在。在本系統中所采用的為逐點(diǎn)比較插補算法。所謂逐點(diǎn)比較插補算法,即每走一步都要和給定軌跡上的坐標值進(jìn)行一次比較,使該點(diǎn)在給定軌跡的上方或下方,或在給定軌跡的里面或外面,從而決定下一步的進(jìn)給方向,使之趨近加工軌跡。如此走一步,比較一次,決定下一步走向,逐步逼近給定的軌跡。逐點(diǎn)比較法是以折線(xiàn)來(lái)逼近直線(xiàn)或圓弧曲線(xiàn)的,它與規定的直線(xiàn)或圓弧之間的最大誤差不超過(guò)一個(gè)脈沖當量,只要將脈沖當量(即每走一步的距離)取得足夠小,就可以達到加工的精度要求。下面以直線(xiàn)為例來(lái)說(shuō)明插補原理。如圖1所示。

偏差計算公式假定加工第一象限的直線(xiàn)OA,取直線(xiàn)起點(diǎn)為坐標原點(diǎn)O,直線(xiàn)終點(diǎn)坐標A(Xe,Ye)是已知的。M(Xm,Ym)為加工點(diǎn)(動(dòng)點(diǎn))。若M在OA直線(xiàn)上,則根據相似三角形的關(guān)系有:

Xm / Ym=Xe / Ye

?。疲恚剑伲恚兀澹兀恚伲遄鳛橹本€(xiàn)插補的偏差判別式。

若Fm=0,表明M點(diǎn)在直線(xiàn)OA上。

若Fm>0,表明M點(diǎn)在直線(xiàn)OA上方的M′處。

若Fm<0,表明M點(diǎn)在直線(xiàn)OA下方的M″處。

對于第一象限直線(xiàn)從起點(diǎn)(即坐標原點(diǎn))出發(fā),

若Fm>=0,沿+X軸方向走一步。

若Fm<=0,沿-X軸方向走一步。

當兩方向所走的步數與終點(diǎn)坐標(Xe,Ye)相等時(shí),發(fā)出到達終點(diǎn)信號,停止插補。設在某加工點(diǎn)出現有Fm>=0時(shí),應沿+X方向進(jìn)給一步,走一步后的坐標值為: Xm+1=Xm+1, Ym+1=Ym

新的偏差為:Fm+1=Ym+1-Xm+1=F-Y

若Fm<=0時(shí),應沿+Y方向進(jìn)給一步,走一步后的坐標值為: Xm+1=Xm,Ym+1=Y+1

新的偏差為:Fm+1=Ym+1-Xm+1=F+X

上式為簡(jiǎn)化后的偏差計算公式在公式中只有加、減運算,只要將前一點(diǎn)的偏差值等于上述的終點(diǎn)坐標值。當然對于不同的象限以及不同的矢量插補公式不同,但其基本原理相似,在這里不再贅述。

1.2 對電機運行速度的控制

由于國產(chǎn)步進(jìn)電機的最高啟動(dòng)頻率一般為1~2kHz,一般步進(jìn)電機不能一下突變到要求的最大頻率,而在電機的最大運行頻率下也不能立即停止,否則就會(huì )造成電機的丟步,影響系統的精度。這就需要在程序中有對電機的加減速控制,其基本思路如下:

設電機每次步進(jìn)的時(shí)間為t,t與電機的運行速度成反比,當電機處于加速階段時(shí),在電機的下一步應使其時(shí)間為t-洌?,其中洌羰歉鶕姍C加速度計算出的時(shí)間減小量,其計算方式如下:

n=l / δ,δt=t0-t1 / n-l,tsum=n(t0+t1) / 2

其中l為某段距離的長(cháng)度,δ為系統的分辨率即最小步進(jìn)距離,n為所走的總瞳數,tsum為所需走的總時(shí)間,t0為初始速度時(shí)每走一瞳所花費的時(shí)間,t1為到達所要求走的距離時(shí)(即達到最大速度 時(shí))每走一走所花費的時(shí)間,根據具體的要求我們可以計算出以各式的值。

在基于PC機的控制系統中,一個(gè)很重要的問(wèn)題就是如何獲得對時(shí)間的精確控制。在windows操作系統中系統所提供的時(shí)間函數只能達到毫秒級的精度,很難達到微秒級的控制精度。對于不同配置的PC機,執行相同的語(yǔ)句其時(shí)間也不會(huì )相同。為此我們利用系統提供的GetTickCount()函數,用包括_nop語(yǔ)句的循環(huán)來(lái)達到微秒級的控制精度。下面為具體的實(shí)現方法用法:

構造CMicroSecond類(lèi):

在類(lèi)初始化函數中實(shí)現每微秒包含_nop語(yǔ)句循環(huán)數。

void CMicroSecond::Initialize

{

DWORD dwStart = 0;

DWORD dwStop = 0;

int nLoopSeed = 100000;

do{

m_dwLoopCounter1 = 0;

dwStart = GetTickCount;

for(int i=0;i< nLoopSeed;i++)

{

m_dwLoopCounter1++;

_asmnop;

}

dwStop = GetTickCount();

nLoopSeed += 100000;

}while ( dwStop - dwStart < 50 );

m_dwLoopCounter1 = 0;

dwStart=GetTickCount;

for(int i=0; i<nLoopSeed;i++)

{

m_dwLoopCounter1++;

_asm{nop}

}

dwStop = GetTickCount();

//每毫秒的循環(huán)數

m_dwLoopCounter1=m_dwLoopCounter1/dwStop-

dwStart;

//每微秒的循環(huán)數

m_nLoopCountPerMicroSecond=intm_dwLoop

Counter 1/1000;

}

實(shí)現固定時(shí)間的延時(shí):

void CMicroSecond::MicroDelay( int uSec )

{

n=0;

for(int i=0;i<uSec*m_nLoopCountPerMicroSecond;i++)

{

n++;

_asm{nop}

}

}

由于賦值語(yǔ)句、for語(yǔ)句、函數的調用等要消耗時(shí)間,因此所得到的時(shí)間也并不是非常精確的時(shí)間。但對于一般的PC機來(lái)說(shuō)完全可以達到幾十微妙的精度,而對于一般的控制系統來(lái)說(shuō),這個(gè)精度是足以達到控制要求的。

2 外圍接口特性

在本系統中我們通過(guò)計算機的并口來(lái)實(shí)現對步進(jìn)電機驅動(dòng)器的控制。我們知道并行口適配器的具體形式是多種多樣的,但是在PC系列微機中分配給它的最多有四個(gè)口,常用的是三個(gè)口,其地址為:03BCH - 03BEH:并口一(LPT1),0378H - 037AH:并口二(LPT2),0278H - 027AH:并口三(LPT3)。這里可以看到每個(gè)并口包括了三個(gè)口地址其中第一個(gè)為基地址,是因為一個(gè)并口具有數據口狀態(tài)口和控制口的緣故。不過(guò)值得注意的是,最好不要直接用上述口的地址去讀寫(xiě)并口,因為在實(shí)際應用中很少有三個(gè)并行口都同時(shí)有效的,而且多功能卡和單色顯示卡上的并行口地址是有差別的。單色顯示卡上的并口地址一般是03BCH,而多功能卡上的并口基地址一般可以在0378H和0278H之間進(jìn)行選擇。因此如果直接對某一并口地址進(jìn)行操作,萬(wàn)一PC機上的并口適配器用的不是這個(gè)口地址那就要出錯了。

熟悉PC機的讀者都知道,PC機內存最低端BIOS數據區的40:08H,40:0AH,40:0CH三個(gè)字是被設計用來(lái)存放上述三個(gè)并行口的基地址的,40:08H - 09H LPT1基地址;40:0AH - 0BH LPT2基地址;40:0CH - 0DH LPT3基地址。這三個(gè)字中的基地址是在PC機啟動(dòng)過(guò)程中根據實(shí)際存在的并行口地址存放的,使用它們來(lái)讀寫(xiě)并行口就不會(huì )出錯,所以在使用時(shí)一定要通過(guò)檢查這三個(gè)字來(lái)得到并行口的基地址。在對并口的讀寫(xiě)操作用到的語(yǔ)句為_outp(并口地址,數據)和 _inp( 并口地址 )(_inp返回值為讀到的數據)。

3 系統特點(diǎn)及結果分析

在本文所述的激光雕刻機系統中,我們通過(guò)動(dòng)態(tài)連接庫的方式對系統進(jìn)行控制,我們將對基本矢量元素的控制都封裝在了一個(gè)動(dòng)態(tài)連接庫中,這樣使系統的控制軟件具有一定可移植性。而這種通過(guò)PC機并口實(shí)現對激光雕刻機控制的方法簡(jiǎn)單而且易于實(shí)現,可以大大的縮短開(kāi)發(fā)周期。如果我們配上相應的激光雕刻機作圖軟件,就可以成為一個(gè)商用化的產(chǎn)品了。



評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>