1 數(shù)控系統(tǒng)的硬件結(jié)構(gòu)
智能運(yùn)動控制器
智能運(yùn)動控制器是一個較高性能的伺服運(yùn)動控制器。每一兩塊塊控制器上有三塊或四塊控制芯片,每一塊芯片獨(dú)立地控制一個軸的運(yùn)動,可對芯片進(jìn)行初始化編程,規(guī)定各控制芯片的工作狀態(tài):發(fā)脈沖的速率,發(fā)脈沖的個數(shù)。本文采用兩塊智能運(yùn)動控制器控制五軸聯(lián)動。
數(shù)控系統(tǒng)硬件結(jié)構(gòu)及工作原理
該數(shù)控系統(tǒng)的控制是在工業(yè)控制機(jī)(IPC)平臺的基礎(chǔ)上,采用兩塊智能運(yùn)動控制器進(jìn)行位控。工控機(jī)上的CPU 和運(yùn)動器上的控制芯片構(gòu)成了主從式處理機(jī)構(gòu)。主機(jī)完成粗插補(bǔ)運(yùn)算,得到每一次各軸需運(yùn)動的步數(shù)及方向,用這些數(shù)據(jù)去控制智能運(yùn)動控制器的工作狀態(tài):各軸的運(yùn)動步數(shù)、發(fā)脈沖速率:再由智能運(yùn)動控制器完成五軸的精插補(bǔ)。工作臺的運(yùn)行情況通過傳感器直接反饋輸入智能運(yùn)動控制器,此信號可由主CPU讀入。其結(jié)構(gòu)原理如圖1所示。
閉環(huán)控制系統(tǒng)
圖1 數(shù)控系統(tǒng)結(jié)構(gòu)原理圖
在這種系統(tǒng)中,主機(jī)讀入長光柵傳感器反饋回的工作臺的實(shí)際位移量,將此位移量與理想值相比較,得到誤差信號并用此誤差去控制智能運(yùn)動控制器,使實(shí)際值與理想值趨于重合,從而消除運(yùn)行誤差。該系統(tǒng)如圖2所示。
圖2 閉環(huán)控制系統(tǒng)
2 數(shù)控系統(tǒng)的軟件設(shè)計
數(shù)字控制的插補(bǔ)算法
保證數(shù)控工作臺沿著預(yù)定的軌跡運(yùn)行的問題,實(shí)質(zhì)上是如何通過插補(bǔ)運(yùn)算,實(shí)現(xiàn)按一定規(guī)律分配進(jìn)給脈沖,控制伺服電機(jī)運(yùn)動。插補(bǔ)運(yùn)算是根據(jù)數(shù)控語言代碼提供的軌跡類型選擇相應(yīng)算法,保證在一定精度范圍內(nèi)計算出一段直線或圓弧的一系列中間點(diǎn)的坐標(biāo)值,并逐次以增量坐標(biāo)值或脈沖序列形式輸出,使伺服電機(jī)以一定速度轉(zhuǎn)動,控制工作臺按預(yù)定的軌跡運(yùn)動。數(shù)控技術(shù)中采用的插補(bǔ)算法可歸納為兩類:
一次插補(bǔ)法 如逐點(diǎn)比較法、數(shù)字積分器法等,這類算法,進(jìn)給速度受到限制,過去的硬件數(shù)控系統(tǒng)常常采用。
二次插補(bǔ)法 它將插補(bǔ)功能分為粗插補(bǔ)和精插補(bǔ)兩部份完成,常用的有擴(kuò)展數(shù)字積分器法和時間分割法。這類算法,在每個插補(bǔ)運(yùn)算周期里輸出的不是單個脈沖,而是一個線段(位置增量坐標(biāo)數(shù)據(jù)),因而能顯著提高進(jìn)給速度,在計算機(jī)數(shù)控系統(tǒng)中得到廣泛采用。本系統(tǒng)的插補(bǔ)算法就是采用時間分割法,它根據(jù)進(jìn)給速度計算出每個固定時間內(nèi)的進(jìn)給量,進(jìn)行粗插補(bǔ)運(yùn)算,求出這個插補(bǔ)周期各聯(lián)動坐標(biāo)應(yīng)移動的位置增量值,然后再通過精插補(bǔ)將該插補(bǔ)周期的各軸位置增量值變換成各坐標(biāo)方向的均勻運(yùn)動。
基于擴(kuò)充內(nèi)存的時間分割插補(bǔ)法
數(shù)控系統(tǒng)的加工過程一般要經(jīng)過插補(bǔ)、輸出脈沖、反饋等幾個過程。傳統(tǒng)的方法是插補(bǔ)一次,發(fā)出一個脈沖,檢測一次誤差。在這種方法下,控制過程是一個順序過程,其中各個環(huán)節(jié)環(huán)環(huán)相扣,互相制約,因此很難實(shí)現(xiàn)誤差的快速響應(yīng)。同時,由于DOS系統(tǒng)的尋址能力有限,因此必須考慮存放大量插補(bǔ)數(shù)據(jù)的方法。為了解決這些問題,本系統(tǒng)采用基于擴(kuò)充內(nèi)存的時間分割插補(bǔ)方法:為了提高系統(tǒng)的實(shí)時性,控制方法上采用讀入運(yùn)行代碼文件后,先在主機(jī)完成粗插補(bǔ)運(yùn)算,并把插補(bǔ)得到的數(shù)據(jù)放入擴(kuò)充內(nèi)存,然后采用中斷的方式從擴(kuò)充內(nèi)存取數(shù),并與反饋系統(tǒng)檢測的誤差數(shù)據(jù)合并處理,再用得到的結(jié)果(各軸的位置坐標(biāo)增量數(shù)據(jù))去控制智能運(yùn)動控制器的工作狀態(tài),然后由智能運(yùn)動控制器完成精插補(bǔ),它發(fā)出序列脈沖去直接控制各個伺服驅(qū)動器。放入擴(kuò)充內(nèi)存的數(shù)據(jù)類型定義如下:
struct emms
{char complete:
char dirr[5]:
char stepp[5]:
}:
其中complete 是定義粗插補(bǔ)數(shù)據(jù)是否完成的標(biāo)志,dirr[5]定義五軸的運(yùn)動方向:0x00為不動,0x01為正轉(zhuǎn),0x10為反轉(zhuǎn):stepp[5]定義五軸的運(yùn)動步數(shù)。中斷程序從擴(kuò)充內(nèi)存讀入這些數(shù)據(jù)后,再與反饋系統(tǒng)檢測的誤差數(shù)據(jù)合并處理,并用得到的結(jié)果去控制智能運(yùn)動控制器控制芯片的工作狀態(tài),就可完成精插補(bǔ),實(shí)現(xiàn)在相同時間內(nèi)各軸沿相應(yīng)方向運(yùn)動一定的步數(shù)。圖3 是系統(tǒng)閉環(huán)控制程序框圖。
圖3 閉環(huán)控制程序框圖
這里采用的閉環(huán)控制方法是在精插補(bǔ)前根據(jù)誤差補(bǔ)償數(shù)據(jù)自動與粗插補(bǔ)數(shù)據(jù)合并而實(shí)現(xiàn)的。例如取得粗插補(bǔ)數(shù)據(jù)后(各軸應(yīng)運(yùn)動的步數(shù)及方向),在發(fā)給智能運(yùn)動控制器之前,會根據(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)過這樣的處理后,位控系統(tǒng)及時地將運(yùn)行誤差在緊鄰的一個粗插補(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)動數(shù)控機(jī)構(gòu)上進(jìn)行的。實(shí)驗(yàn)所用的閉環(huán)檢測元件是普通金屬長光柵尺,其檢測分辨率為0.004mm。數(shù)控系統(tǒng)采用PⅡ233 研華工控機(jī)為控制主機(jī),運(yùn)動控制器采用兩塊國產(chǎn)智能運(yùn)動控制器,驅(qū)動電機(jī)為國產(chǎn)步進(jìn)電機(jī)。實(shí)驗(yàn)中,我們測試了兩軸、三軸、四軸、五軸的聯(lián)動運(yùn)行,運(yùn)動速度為1500mm/min。實(shí)驗(yàn)結(jié)果,數(shù)據(jù)誤差為0.02mm。實(shí)驗(yàn)結(jié)果比較令人滿意。
4 結(jié)論
實(shí)驗(yàn)結(jié)果證明,本系統(tǒng)的硬件、軟件設(shè)計比較令人滿意,其開放性令人滿意,能夠滿足不同用戶的需要,實(shí)現(xiàn)對多軸聯(lián)動的開環(huán)或閉環(huán)實(shí)時控制。
轉(zhuǎn)載請注明出處。