多軸步進(jìn)電動機(jī)運動控制系統(tǒng)的設(shè)計
廖高華,謝云敏
(南昌工程學(xué)院,江西南昌330099)
摘要:為保證步進(jìn)電動機(jī)運動控制精度高、響應(yīng)快、低成本、操作簡單,研制了一種性價比高的步進(jìn)電動機(jī)運動控制系統(tǒng)。以高速單片機(jī)為主控器,增強型并行口(EPP)為通信接口,F(xiàn)PGA實現(xiàn)脈沖信號發(fā)生器,利用Pc豐富的資源,實現(xiàn)了步進(jìn)脈沖信號連續(xù)、穩(wěn)定可調(diào)和聯(lián)動插補。實驗證明,控制系統(tǒng)用于焊縫掃查跟蹤控制時,其焊縫掃查偏差小于1 mm,定位準(zhǔn)確、實時可靠、控制靈活、速度運行寬、抗干擾性能強、人機(jī)接口方便,具有良好的適應(yīng)性和自保護(hù)能力。
關(guān)鍵詞:步進(jìn)電動機(jī);EPP;單片機(jī);FPGA;脈沖信號;運動控制
中圖分類號:TM383.6 文獻(xiàn)標(biāo)識碼:A 文章編號:1004—7018(2008)06—0030—04
0引 言
步進(jìn)電動機(jī)在民用工業(yè)控制中應(yīng)用廣泛,而運動控制系統(tǒng)是步進(jìn)電動機(jī)系統(tǒng)的重要組成部分,通過其輸出的脈沖信號來實現(xiàn)電機(jī)的精確位置與速度的伺服控制。步進(jìn)電動機(jī)的轉(zhuǎn)速及所旋轉(zhuǎn)的角度由輸入脈沖的速率和總脈沖數(shù)所決定,其旋轉(zhuǎn)角誤差不會逐步累積。在實際中常需要調(diào)節(jié)步進(jìn)電動機(jī)的旋轉(zhuǎn)速度或步進(jìn)量,即需要一個能精確設(shè)定脈沖速率和脈沖總數(shù)的脈沖發(fā)生器。主控器輸出信號,通過脈沖發(fā)生器完成步進(jìn)電動機(jī)位置、正反轉(zhuǎn)、升速、降速控制等一系列復(fù)雜的控制和插補運算。脈沖發(fā)生器和插補運算的設(shè)計可以通過單片機(jī)及采用專用邏輯電路的方法來實現(xiàn),但采用單片機(jī)實現(xiàn)受其時鐘頻率的限制,實現(xiàn)精度低、抗干擾能力差,很難實現(xiàn)非整數(shù)時鐘周期的脈沖信號[1]。系統(tǒng)研制中使用現(xiàn)場可編程門陣列(FPcA)技術(shù)實現(xiàn)脈沖發(fā)生器和插補運算功能,單片機(jī)為主控器,利用豐富的Pc機(jī)資源,采用增強型并行口EPP數(shù)據(jù)傳輸模式進(jìn)行通信,可以隨時根據(jù)應(yīng)用場合修改輸出脈沖參數(shù),不僅能夠滿足實時控制的要求,而且設(shè)計筒捷、經(jīng)濟(jì)可靠、接口方便,可充分利用計算機(jī)的資源,并縮短開發(fā)周期。
1控制系統(tǒng)結(jié)構(gòu)
電機(jī)控制系統(tǒng)是基于高速單片機(jī)w77E58為核心,與存儲器、信號處理電路、人機(jī)接口電路、看門狗電路、并行通信接口(EPP)、FPGA模塊等組成的下位控制單元,其控制算法的程序固化在存儲器中,與Pc機(jī)構(gòu)成上下位機(jī)控制結(jié)構(gòu)。Pc機(jī)主要完成人機(jī)交互界面的管理、系統(tǒng)編程的功能、圖形功能、參數(shù)設(shè)定及自診斷功能;控制系統(tǒng)負(fù)責(zé)運動控制,可以輸
出步進(jìn)脈沖和方向信號,以控制電機(jī)的運轉(zhuǎn);同時可外接限位信號,控制系統(tǒng)對外接信號檢測并做出相應(yīng)處理,上下位機(jī)通信是通過EPP協(xié)議來進(jìn)行的?刂葡到y(tǒng)是采用軟硬件的開放式、模塊化設(shè)計,控制系統(tǒng)的結(jié)構(gòu)如圖l所示。
上位機(jī)(Pc)能夠可靠地將經(jīng)過處理的控制指令和參數(shù)發(fā)送到下位機(jī)(高速單片機(jī)),下位機(jī)接收到相應(yīng)的控制指令和參數(shù)并準(zhǔn)確、及時地發(fā)出控制信號和方向信號輸出控制步進(jìn)電動機(jī)動作;同時,上位機(jī)收集下位機(jī)反饋的各種狀態(tài)信號(如電機(jī)運動中的限位等輸入信號),進(jìn)行診斷、處理、曲線顯示和數(shù)據(jù)存儲。
2 FPGA數(shù)字模塊設(shè)計
2.1步進(jìn)脈沖產(chǎn)生模塊
由FPGA設(shè)計的內(nèi)部定時/計數(shù)器構(gòu)成,定時/計數(shù)器的定時值和定時范圍可由軟件設(shè)定和改變。設(shè)定好定時器的工作方式并裝入數(shù)值后,其便能夠工作,不占用大量時間,使用方便,功能較強。當(dāng)內(nèi)部定時/計數(shù)器啟動后,定時器從裝載的初值開始對系統(tǒng)機(jī)器周期進(jìn)行加計數(shù),當(dāng)計數(shù)值產(chǎn)生溢出時,定時器產(chǎn)生中斷信號,中止主程序的執(zhí)行,系統(tǒng)轉(zhuǎn)為執(zhí)行定時器中斷子程序。將電動機(jī)換相子程序放在定時器中斷服務(wù)程序中,則定時器中斷一次,電動機(jī)就換相一次,從而實現(xiàn)對電動機(jī)的速度控制。
2.2升降度模塊設(shè)計
采用梯形速度曲線,在進(jìn)行速度控制過程中,首先要根據(jù)已知條件判斷出此次運動需要經(jīng)過幾個階段,然后才能求出各段所用的時間,根據(jù)這一時間為判斷條件,為程序提供每個周期內(nèi)的移動速度,以及每個周期的進(jìn)給量。在控制電動機(jī)的升降速過程中,采用離散辦法來逼近理想的升降速曲線。為了減少每步計算裝載時間,把各離散點的速度所需的裝載值固化在存儲器中,在運行中用查表方法查出所需的裝載值,從而大幅度減少占用的時間,提高了系統(tǒng)的晌應(yīng)速度。在執(zhí)行升降逮過程的控制還需準(zhǔn)備下列數(shù)據(jù):(1)升速過程的總步數(shù);(2)恒速運行總步數(shù);(3)降速運行步數(shù);(4 |