《電子技術(shù)應用》
您所在的位置:首頁 > 嵌入式技術(shù) > 業(yè)界動態(tài) > 基于微機的激光雕刻機控制系統(tǒng)設(shè)計

基于微機的激光雕刻機控制系統(tǒng)設(shè)計

2008-12-08
作者:于政濤 林喜榮 周云龍

  摘 要: 敘述了基于PC機的激光雕刻機運動軌跡插補" title="插補">插補控制軟件的設(shè)計與實現(xiàn)和其外圍接口特性,。
  關(guān)鍵詞: 控制 CNC 插補原理 計算機并口


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

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


  偏差計算公式假定加工第一象限的直線OA,取直線起點為坐標原點O,,直線終點坐標A(Xe,、Ye)是已知的。M(Xm,、Ym)為加工點(動點),。若M在OA直線上,則根據(jù)相似三角形的關(guān)系有:
  
  取Fm=Y(jié)mXe-XmYe作為直線插補的偏差判別式,。
  若Fm=0,,表明M點在直線OA上。
  若Fm>0,,表明M點在直線OA上方的M′處,。
  若Fm<0,表明M點在直線OA下方的M″處,。
  對于第一象限直線從起點(即坐標原點)出發(fā),、
  若Fm>=0,沿+X軸方向走一步,。
  若Fm<=0,,沿-X軸方向走一步。
  當兩方向所走的步數(shù)與終點坐標(Xe,、Ye)相等時,,發(fā)出到達終點信號,停止插補,。設(shè)在某加工點出現(xiàn)有Fm>=0時,,應沿+X方向進給一步,走一步后的坐標值為: Xm+1=Xm+1,、 Ym+1=Y(jié)m
  新的偏差為: Fm+1=Y(jié)m+1Xe-Xm+1Ye=Fm-Ye
  若Fm<=0時,,應沿+Y方向進給一步,走一步后的坐標值為: Xm+1=Xm,、 Ym+1=Y(jié)m+1
  新的偏差為:Fm+1=Y(jié)m+1Xe-Xm+1Ye=Fm+Xe
  上式為簡化后的偏差計算公式,、在公式中只有加、減運算,,只要將前一點的偏差值等于上述的終點坐標值,。當然對于不同的象限以及不同的矢量插補公式不同,但其基本原理相似,,在這里不再贅述,。
1.2 對電機運行速度的控制
  由于國產(chǎn)步進電機的最高啟動頻率一般為1~2kHz,一般步進電機不能一下突變到要求的最大頻率,,而在電機的最大運行頻率下也不能立即停止,,否則就會造成電機的丟步,影響系統(tǒng)的精度,。這就需要在程序中有對電機的加減速控制,,其基本思路如下:
  設(shè)電機每次步進的時間為t,t與電機的運行速度成反比,,當電機處于加速階段時,,在電機的下一步應使其時間為t-δt,其中δt是根據(jù)電機加速度計算出的時間減小量,,其計算方式如下:
  
  其中l(wèi)為某段距離的長度,,δ為系統(tǒng)的分辨率即最小步進距離,n為所走的總步數(shù),,tsum為所需走的總時間,,t0為初始速度時每走一步所花費的時間,t1為到達所要求走的距離時(即達到最大速度時)每走一步所花費的時間,,根據(jù)具體的要求我們可以計算出以上各式的值,。
  在基于PC機的控制系統(tǒng)中,,一個很重要的問題就是如何獲得對時間的精確控制。在windows操作系統(tǒng)中,、系統(tǒng)所提供的時間函數(shù)只能達到毫秒級的精度,,很難達到微秒級的控制精度。對于不同配置的PC機,,執(zhí)行相同的語句其時間也不會相同,。為此我們利用系統(tǒng)提供的GetTickCount()函數(shù),用包括_nop語句的循環(huán)來達到微秒級的控制精度,。下面為具體的實現(xiàn)方法用法:
  構(gòu)造CMicroSecond類:
  在類初始化函數(shù)中實現(xiàn)每微秒包含_nop語句循環(huán)數(shù),。
  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++;
   ?。遖sm{nop}
   }
   dwStop = GetTickCount();
  ?。亢撩氲难h(huán)數(shù)
   m_dwLoopCounter1=m_dwLoopCounter1/(dwStop-dwStart);
   //每微秒的循環(huán)數(shù)
   m_nLoopCountPerMicroSecond=(int)m_dwLoop
   Counter 1/1000;
  }
  實現(xiàn)固定時間的延時:
  void CMicroSecond::MicroDelay( int uSec )
  {
   n=0;
   for(int i=0;i<uSec*m_nLoopCountPerMicroSecond;i++)
   {
    n++;
   ?。遖sm{nop}
   }
  }
  由于賦值語句,、for語句、函數(shù)的調(diào)用等要消耗時間,,因此所得到的時間也并不是非常精確的時間,。但對于一般的PC機來說完全可以達到幾十微妙的精度,而對于一般的控制系統(tǒng)來說,,這個精度是足以達到控制要求的,。
2 外圍接口特性
  在本系統(tǒng)中我們通過計算機的并口來實現(xiàn)對步進電機驅(qū)動器的控制。我們知道并行口適配器的具體形式是多種多樣的,,但是在PC系列微機中分配給它的最多有四個口,,常用的是三個口,其地址為:03BCH - 03BEH:并口一(LPT1),,0378H - 037AH:并口二(LPT2),,0278H - 027AH:并口三(LPT3)。這里可以看到每個并口包括了三個口地址(其中第一個為基地址),,是因為一個并口具有數(shù)據(jù)口狀態(tài)口和控制口的緣故,。不過值得注意的是,最好不要直接用上述口的地址去讀寫并口,,因為在實際應用中很少有三個并行口都同時有效的,,而且多功能卡和單色顯示卡上的并行口地址是有差別的。單色顯示卡上的并口地址一般是03BCH,,而多功能卡上的并口基地址一般可以在0378H和0278H之間進行選擇,。因此如果直接對某一并口地址進行操作,萬一PC機上的并口適配器用的不是這個口地址那就要出錯了。
  熟悉PC機的讀者都知道,,PC機內(nèi)存最低端BIOS數(shù)據(jù)區(qū)的40:08H,,40:0AH,40:0CH三個字是被設(shè)計用來存放上述三個并行口的基地址的,,40:08H - 09H LPT1基地址,;40:0AH - 0BH LPT2基地址;40:0CH - 0DH LPT3基地址,。這三個字中的基地址是在PC機啟動過程中根據(jù)實際存在的并行口地址存放的,使用它們來讀寫并行口就不會出錯,,所以在使用時一定要通過檢查這三個字來得到并行口的基地址,。在對并口的讀寫操作用到的語句為_outp( 并口地址、數(shù)據(jù))和 _inp( 并口地址 )(_inp返回值為讀到的數(shù)據(jù)),。
3 系統(tǒng)特點及結(jié)果分析
  在本文所述的激光雕刻機系統(tǒng)中,,我們通過動態(tài)連接庫的方式對系統(tǒng)進行控制,我們將對基本矢量元素的控制都封裝在了一個動態(tài)連接庫中,,這樣使系統(tǒng)的控制軟件具有一定可移植性,。而這種通過PC機并口實現(xiàn)對激光雕刻機控制的方法簡單而且易于實現(xiàn),可以大大的縮短開發(fā)周期,。如果我們配上相應的激光雕刻機作圖軟件,,就可以成為一個商用化的產(chǎn)品了。

參考文獻
1 廖效果,,朱啟述.數(shù)字控制機床.華中理工大學出版社,, 1992
2 王全國,任晨光.軟件狗加密技術(shù)透視.北京:清華大學出版社,,1996
3 MSDN.VC6在線幫助手冊.

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點,。轉(zhuǎn)載的所有的文章,、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有,。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認版權(quán)者,。如涉及作品內(nèi)容、版權(quán)和其它問題,,請及時通過電子郵件或電話通知我們,,以便迅速采取適當措施,避免給雙方造成不必要的經(jīng)濟損失,。聯(lián)系電話:010-82306118,;郵箱:[email protected]