新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于PC和FPGA的運動控制系統(tǒng)

基于PC和FPGA的運動控制系統(tǒng)

作者: 時間:2011-07-26 來源:網(wǎng)絡(luò) 收藏

運動控制系統(tǒng)被廣泛地運用于各個領(lǐng)域。傳統(tǒng)的運動控制系統(tǒng)設(shè)計有基于的中央控制方式和基于微控制器的嵌入式控制方式等。基于的運動控制方式,由于其采用多任務(wù)操作系統(tǒng),對處理器的分時復(fù)用會導(dǎo)致在運行高速度和高控制頻率的系統(tǒng)時,實時性得不到保證。而基于微控制器的運動控制系統(tǒng),由于處理器資源有限,對功能復(fù)雜系統(tǒng)的開發(fā)帶來很大難度,往往系統(tǒng)中的某個子功能模塊就占用了整塊芯片的資源。

隨著計算機(jī)技術(shù)與嵌入式技術(shù)的日益發(fā)展,出現(xiàn)了各種架構(gòu)互異的運控系統(tǒng)設(shè)計方案,其目標(biāo)都在于對系統(tǒng)的高速度與高精度的不斷追求。基于這兩種技術(shù),本文提出了一種基于+的多功能主從式運動控制結(jié)構(gòu),實現(xiàn)運控系統(tǒng)的分工。既滿足了系統(tǒng)的功能多樣性需求,又保證了高頻控制脈沖的生成以及系統(tǒng)運行的實時性,同時還降低了系統(tǒng)維護(hù)與升級的難度[1-2]。

1 主從式運動控制系統(tǒng)

本系統(tǒng)的設(shè)計目標(biāo)是實現(xiàn)兩軸聯(lián)動的運控系統(tǒng),主要由PC機(jī)、從控板和電機(jī)驅(qū)動板三個部分構(gòu)成,系統(tǒng)結(jié)構(gòu)如圖1所示。上位機(jī)(PC)的主要功能是對系統(tǒng)運行過程進(jìn)行控制規(guī)劃和粗插補(bǔ)(曲線加工規(guī)劃)。從控板的主要功能是對加工進(jìn)行精插補(bǔ),在此二次插補(bǔ)完成后通過速度補(bǔ)償模塊對插補(bǔ)的執(zhí)行速度進(jìn)行補(bǔ)償,進(jìn)一步減小插補(bǔ)的偏差,產(chǎn)生直接用于驅(qū)動進(jìn)行直線/圓弧運動的脈沖信號。驅(qū)動電路的作用是將脈沖控制信號進(jìn)行功率放大,以直接驅(qū)動電機(jī),同時為了提高控制精度,可以使用其細(xì)分電路對電機(jī)的步進(jìn)進(jìn)行1、2、4、8次的細(xì)分。

主從模塊通過異步串行通信方式RS-232標(biāo)準(zhǔn)進(jìn)行通信。上位機(jī)將一條曲線分割成一組簡單曲線(直線/圓弧)的執(zhí)行序列,使用自定義的編碼方式將信息下載到FPGA上。對應(yīng)地,F(xiàn)PGA上設(shè)計有接收并存儲這些編碼信息的功能模塊。

2 上位機(jī)主控軟件設(shè)計

上位機(jī)只需要將一條待加工曲線分解為精插補(bǔ)模塊可執(zhí)行的直線和圓弧的序列,以FPGA能夠識別的指令傳輸給從控板。以粗插補(bǔ)為目的,配套開發(fā)了相應(yīng)所需的通信模塊、作為示教功能所需的命令控制模塊以及作為數(shù)控系統(tǒng)解決方案的G代碼生成與編譯模塊。

本設(shè)計的上位機(jī)主控系統(tǒng)是在Windows 7環(huán)境下,以Visual Studio 2010作為開發(fā)工具,基于Microsoft .NET Framework 4.0開發(fā)的。該上位機(jī)主控系統(tǒng)主要有5個功能模塊,如圖2所示。

這5個模塊被設(shè)計在一個Windows窗體中,不同功能設(shè)計在不同選項卡中,因此只需切換選項卡就可以輕松實現(xiàn)功能的切換。在窗體的右側(cè)有一列獨立于選項卡容器的對象,其功能是對串口通信進(jìn)行設(shè)置,控制FPGA執(zhí)行的起停以及對監(jiān)視功能進(jìn)行復(fù)位。上位機(jī)主控軟件視圖如圖3所示。

粗插補(bǔ)是將一條曲線分解為一系列的能夠被下位機(jī)FPGA執(zhí)行的直線和圓弧的小段。這樣,控制者可以在PC機(jī)上手動繪制一條待運行的曲線,調(diào)用粗插補(bǔ)運算函數(shù)產(chǎn)生相應(yīng)的G代碼,再譯碼運行,實現(xiàn)所見即所得。

G代碼是數(shù)控程序中的指令,也稱為G指令。在命令編譯模塊中實現(xiàn)的功能是將之前生成的G代碼,或者從本地文件中讀入的G代碼轉(zhuǎn)換成FPGA控制板可以識別的自定義命令序列,并發(fā)送至從控板。

3 基于FPGA的從控模塊設(shè)計

精插補(bǔ)模塊以硬件方式實現(xiàn),即將多軸運動控制模塊固化在FPGA中,把上位機(jī)從生成的直接驅(qū)動信號時的繁重單調(diào)的工作中解放出來,提高執(zhí)行的速度和效率。其功能結(jié)構(gòu)如圖4所示。

軟件實現(xiàn)的功能是通信協(xié)議、命令解析、精插補(bǔ)和速度補(bǔ)償?shù)裙δ堋?/P>

3.1 FPGA從控板硬件設(shè)計

作為脈沖控制指令的直接生成者,F(xiàn)PGA從控板在整體的設(shè)計中具有核心地位。由于本設(shè)計的輸入輸出信號有兩路不共地的電壓輸入,因此電源設(shè)計與信號隔離至關(guān)重要。簡易鍵盤作為系統(tǒng)控制輸入,主要進(jìn)行系統(tǒng)運行方式的選擇和控制指令輸入。對于系統(tǒng)中簡單的開關(guān)量,直接用LED顯示;而對于復(fù)雜的系統(tǒng)狀態(tài),如執(zhí)行時序狀態(tài)機(jī)的監(jiān)視,則需要借助LCD進(jìn)行監(jiān)控。FPGA從控板需要接收來自上位機(jī)的加工指令序列,串口作為最為常用的通信接口,它能夠保證數(shù)據(jù)信息以足夠高的速度由上位機(jī)發(fā)送到FPGA從控板上,完成控制操作[3]。

3.2 基于最小偏差法的插補(bǔ)設(shè)計

因為任何一條曲線都可以用直線和圓弧的小段對其進(jìn)行逼近,因此,直線與圓弧是構(gòu)成運動控制軌跡的基本要素,直線/圓弧插補(bǔ)就是運動控制器的基本功能,也是實現(xiàn)高精控制的基本手段。

精插補(bǔ)模塊的實現(xiàn)原理有很多種,對于直線和圓弧插補(bǔ),常用的插補(bǔ)原理有逐點比較法、最小偏差法、數(shù)字脈沖相乘法等。最小偏差比較法是在逐點比較法的基礎(chǔ)上衍生而來的,其原理是在進(jìn)給之前先判定向x坐標(biāo)方向或y坐標(biāo)方向進(jìn)給一步的偏差和向?qū)蔷€進(jìn)給一步的偏差(向x軸與y軸同時進(jìn)給一步),應(yīng)選擇偏差小的那個方向進(jìn)給[4]。


上一頁 1 2 3 下一頁

關(guān)鍵詞: PC FPGA 步進(jìn)電機(jī)

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉