基于智能運(yùn)動(dòng)控制器的開(kāi)放式多軸聯(lián)動(dòng)數(shù)控系統(tǒng)

發(fā)布日期:2011-11-25    蘭生客服中心    瀏覽:2130

1 數(shù)控系統(tǒng)的硬件結(jié)構(gòu)本文提出了以智能運(yùn)動(dòng)控制器為位控模塊,工業(yè)控制機(jī)為支撐單元的開(kāi)放式數(shù)控系統(tǒng),其軟件平臺(tái)實(shí)現(xiàn)了人機(jī)界面的圖形化,用二次插補(bǔ)法實(shí)現(xiàn)對(duì)多軸聯(lián)動(dòng)的控制。


 javascript:resizepic(this) border=0>


圖1 數(shù)控系統(tǒng)結(jié)構(gòu)原理圖


1 數(shù)控系統(tǒng)的硬件結(jié)構(gòu)

智能運(yùn)動(dòng)控制器


    智能運(yùn)動(dòng)控制器是一個(gè)較高性能的伺服運(yùn)動(dòng)控制器。每一兩塊塊控制器上有三塊或四塊控制芯片,每一塊芯片獨(dú)立地控制一個(gè)軸的運(yùn)動(dòng),可對(duì)芯片進(jìn)行初始化編程,規(guī)定各控制芯片的工作狀態(tài):發(fā)脈沖的速率,發(fā)脈沖的個(gè)數(shù)。本文采用兩塊智能運(yùn)動(dòng)控制器控制五軸聯(lián)動(dòng)。


數(shù)控系統(tǒng)硬件結(jié)構(gòu)及工作原理

    該數(shù)控系統(tǒng)的控制是在工業(yè)控制機(jī)(IPC)平臺(tái)的基礎(chǔ)上,采用兩塊智能運(yùn)動(dòng)控制器進(jìn)行位控。工控機(jī)上的CPU 和運(yùn)動(dòng)器上的控制芯片構(gòu)成了主從式處理機(jī)構(gòu)。主機(jī)完成粗插補(bǔ)運(yùn)算,得到每一次各軸需運(yùn)動(dòng)的步數(shù)及方向,用這些數(shù)據(jù)去控制智能運(yùn)動(dòng)控制器的工作狀態(tài):各軸的運(yùn)動(dòng)步數(shù)、發(fā)脈沖速率:再由智能運(yùn)動(dòng)控制器完成五軸的精插補(bǔ)。工作臺(tái)的運(yùn)行情況通過(guò)傳感器直接反饋輸入智能運(yùn)動(dòng)控制器,此信號(hào)可由主CPU讀入。其結(jié)構(gòu)原理如圖1所示。


閉環(huán)控制系統(tǒng)

    在這種系統(tǒng)中,主機(jī)讀入長(zhǎng)光柵傳感器反饋回的工作臺(tái)的實(shí)際位移量,將此位移量與理想值相比較,得到誤差信號(hào)并用此誤差去控制智能運(yùn)動(dòng)控制器,使實(shí)際值與理想值趨于重合,從而消除運(yùn)行誤差。該系統(tǒng)如圖2所示。


javascript:resizepic(this) border=0>


圖2 閉環(huán)控制系統(tǒng)


2 數(shù)控系統(tǒng)的軟件設(shè)計(jì)

數(shù)字控制的插補(bǔ)算法

    保證數(shù)控工作臺(tái)沿著預(yù)定的軌跡運(yùn)行的問(wèn)題,實(shí)質(zhì)上是如何通過(guò)插補(bǔ)運(yùn)算,實(shí)現(xiàn)按一定規(guī)律分配進(jìn)給脈沖,控制伺服電機(jī)運(yùn)動(dòng)。插補(bǔ)運(yùn)算是根據(jù)數(shù)控語(yǔ)言代碼提供的軌跡類(lèi)型選擇相應(yīng)算法,保證在一定精度范圍內(nèi)計(jì)算出一段直線或圓弧的一系列中間點(diǎn)的坐標(biāo)值,并逐次以增量坐標(biāo)值或脈沖序列形式輸出,使伺服電機(jī)以一定速度轉(zhuǎn)動(dòng),控制工作臺(tái)按預(yù)定的軌跡運(yùn)動(dòng)。數(shù)控技術(shù)中采用的插補(bǔ)算法可歸納為兩類(lèi):


    一次插補(bǔ)法 如逐點(diǎn)比較法、數(shù)字積分器法等,這類(lèi)算法,進(jìn)給速度受到限制,過(guò)去的硬件數(shù)控系統(tǒng)常常采用。


    二次插補(bǔ)法 它將插補(bǔ)功能分為粗插補(bǔ)和精插補(bǔ)兩部份完成,常用的有擴(kuò)展數(shù)字積分器法和時(shí)間分割法。這類(lèi)算法,在每個(gè)插補(bǔ)運(yùn)算周期里輸出的不是單個(gè)脈沖,而是一個(gè)線段(位置增量坐標(biāo)數(shù)據(jù)),因而能顯著提高進(jìn)給速度,在計(jì)算機(jī)數(shù)控系統(tǒng)中得到廣泛采用。本系統(tǒng)的插補(bǔ)算法就是采用時(shí)間分割法,它根據(jù)進(jìn)給速度計(jì)算出每個(gè)固定時(shí)間內(nèi)的進(jìn)給量,進(jìn)行粗插補(bǔ)運(yùn)算,求出這個(gè)插補(bǔ)周期各聯(lián)動(dòng)坐標(biāo)應(yīng)移動(dòng)的位置增量值,然后再通過(guò)精插補(bǔ)將該插補(bǔ)周期的各軸位置增量值變換成各坐標(biāo)方向的均勻運(yùn)動(dòng)。


基于擴(kuò)充內(nèi)存的時(shí)間分割插補(bǔ)法


    數(shù)控系統(tǒng)的加工過(guò)程一般要經(jīng)過(guò)插補(bǔ)、輸出脈沖、反饋等幾個(gè)過(guò)程。傳統(tǒng)的方法是插補(bǔ)一次,發(fā)出一個(gè)脈沖,檢測(cè)一次誤差。在這種方法下,控制過(guò)程是一個(gè)順序過(guò)程,其中各個(gè)環(huán)節(jié)環(huán)環(huán)相扣,互相制約,因此很難實(shí)現(xiàn)誤差的快速響應(yīng)。同時(shí),由于DOS系統(tǒng)的尋址能力有限,因此必須考慮存放大量插補(bǔ)數(shù)據(jù)的方法。為了解決這些問(wèn)題,本系統(tǒng)采用基于擴(kuò)充內(nèi)存的時(shí)間分割插補(bǔ)方法:為了提高系統(tǒng)的實(shí)時(shí)性,控制方法上采用讀入運(yùn)行代碼文件后,先在主機(jī)完成粗插補(bǔ)運(yùn)算,并把插補(bǔ)得到的數(shù)據(jù)放入擴(kuò)充內(nèi)存,然后采用中斷的方式從擴(kuò)充內(nèi)存取數(shù),并與反饋系統(tǒng)檢測(cè)的誤差數(shù)據(jù)合并處理,再用得到的結(jié)果(各軸的位置坐標(biāo)增量數(shù)據(jù))去控制智能運(yùn)動(dòng)控制器的工作狀態(tài),然后由智能運(yùn)動(dòng)控制器完成精插補(bǔ),它發(fā)出序列脈沖去直接控制各個(gè)伺服驅(qū)動(dòng)器。放入擴(kuò)充內(nèi)存的數(shù)據(jù)類(lèi)型定義如下:

struct emms

{char complete:

 char dirr[5]:

 char stepp[5]:

}:


    其中complete 是定義粗插補(bǔ)數(shù)據(jù)是否完成的標(biāo)志,dirr[5]定義五軸的運(yùn)動(dòng)方向:0x00為不動(dòng),0x01為正轉(zhuǎn),0x10為反轉(zhuǎn):stepp[5]定義五軸的運(yùn)動(dòng)步數(shù)。中斷程序從擴(kuò)充內(nèi)存讀入這些數(shù)據(jù)后,再與反饋系統(tǒng)檢測(cè)的誤差數(shù)據(jù)合并處理,并用得到的結(jié)果去控制智能運(yùn)動(dòng)控制器控制芯片的工作狀態(tài),就可完成精插補(bǔ),實(shí)現(xiàn)在相同時(shí)間內(nèi)各軸沿相應(yīng)方向運(yùn)動(dòng)一定的步數(shù)。圖3 是系統(tǒng)閉環(huán)控制程序框圖。






javascript:resizepic(this) border=0>




圖3 閉環(huán)控制程序框圖

 


    這里采用的閉環(huán)控制方法是在精插補(bǔ)前根據(jù)誤差補(bǔ)償數(shù)據(jù)自動(dòng)與粗插補(bǔ)數(shù)據(jù)合并而實(shí)現(xiàn)的。例如取得粗插補(bǔ)數(shù)據(jù)后(各軸應(yīng)運(yùn)動(dòng)的步數(shù)及方向),在發(fā)給智能運(yùn)動(dòng)控制器之前,會(huì)根據(jù)系統(tǒng)反饋的誤差數(shù)據(jù)重新配置,假設(shè)粗插補(bǔ)數(shù)據(jù)0軸是:dirr[0]=0x01,stepp[0]=0x01,而系統(tǒng)反饋情況是上一次反轉(zhuǎn)運(yùn)行有一步未運(yùn)行,則精插補(bǔ)數(shù)據(jù)變?yōu)閐irr[0]=0x00,stepp[0]=0x00,此次0軸電機(jī)不運(yùn)行:如反饋情況是上一次正轉(zhuǎn)有一步未運(yùn)行,則精插補(bǔ)數(shù)據(jù)變?yōu)閐irr[0]=0x01,step-p[0]=0x02,此次0軸電機(jī)正轉(zhuǎn)運(yùn)行- 步。經(jīng)過(guò)這樣的處理后,位控系統(tǒng)及時(shí)地將運(yùn)行誤差在緊鄰的一個(gè)粗插補(bǔ)數(shù)據(jù)進(jìn)行補(bǔ)償,避免了影響后面的插補(bǔ)運(yùn)行,提高了反饋補(bǔ)償?shù)捻憫?yīng)速度和精度。而傳統(tǒng)的間接控制方法是將誤差補(bǔ)償數(shù)據(jù)編入插補(bǔ)算法中,這樣補(bǔ)償被人為地滯后,而且如果補(bǔ)償不到位,將影響后面的插補(bǔ)數(shù)據(jù)精度,其精度和響應(yīng)速度都降低了。


3 實(shí)驗(yàn)

    實(shí)驗(yàn)是在我們教研室自制的五軸聯(lián)動(dòng)數(shù)控機(jī)構(gòu)上進(jìn)行的。實(shí)驗(yàn)所用的閉環(huán)檢測(cè)元件是普通金屬長(zhǎng)光柵尺,其檢測(cè)分辨率為0.004mm。數(shù)控系統(tǒng)采用PⅡ233 研華工控機(jī)為控制主機(jī),運(yùn)動(dòng)控制器采用兩塊國(guó)產(chǎn)智能運(yùn)動(dòng)控制器,驅(qū)動(dòng)電機(jī)為國(guó)產(chǎn)步進(jìn)電機(jī)。實(shí)驗(yàn)中,我們測(cè)試了兩軸、三軸、四軸、五軸的聯(lián)動(dòng)運(yùn)行,運(yùn)動(dòng)速度為1500mm/min。實(shí)驗(yàn)結(jié)果,數(shù)據(jù)誤差為0.02mm。實(shí)驗(yàn)結(jié)果比較令人滿意。


4 結(jié)論

    實(shí)驗(yàn)結(jié)果證明,本系統(tǒng)的硬件、軟件設(shè)計(jì)比較令人滿意,其開(kāi)放性令人滿意,能夠滿足不同用戶的需要,實(shí)現(xiàn)對(duì)多軸聯(lián)動(dòng)的開(kāi)環(huán)或閉環(huán)實(shí)時(shí)控制。

更多相關(guān)信息