基于虛擬儀器技術(shù)的多軸步進(jìn)電機(jī)控制系統(tǒng)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
近年來,虛擬儀器技術(shù)在航空、航天、航海、通信、汽車、半導(dǎo)體、生物醫(yī)學(xué)等眾多領(lǐng)域得到了廣泛應(yīng)用,從簡單的儀器控制、數(shù)據(jù)采集到尖端的測控和工業(yè)自動(dòng)化,從大學(xué)實(shí)驗(yàn)室到工業(yè)現(xiàn)場,從探索研究到技術(shù)集成,可以發(fā)現(xiàn)虛擬儀器技術(shù)應(yīng)用的很多實(shí)例。國內(nèi)外學(xué)者對此作了很多的研究工作,也發(fā)表了不少相關(guān)文章或論文,但在運(yùn)動(dòng)控制方面,卻探討的不多。因此,筆者想就虛擬儀器技術(shù)在步進(jìn)電機(jī)控制系統(tǒng)中的應(yīng)用,談?wù)勛约旱囊恍┏醪教接懞腕w會(huì)。
一、虛擬儀器與運(yùn)動(dòng)控制
1.虛擬儀器與圖形化編程語言-LabVIEW
虛擬儀器(即VirtualInstrument,簡稱NI)是一種基于計(jì)算機(jī)的儀器,就是在通用計(jì)算機(jī)上加上軟件和(或)硬件,使得使用者在操作這臺(tái)計(jì)算機(jī)時(shí),就象是在操作一臺(tái)他自己設(shè)計(jì)的專用的傳統(tǒng)電子儀器。在虛擬儀器系統(tǒng)中,硬件僅僅是為了解決信號(hào)的輸入輸出,軟件才是整個(gè)儀器系統(tǒng)的關(guān)鍵,任何一個(gè)使用者都可以通過修改軟件的方法,很方便地改變、增減儀器系統(tǒng)的功能與規(guī)模,所以有“軟件就是儀器”之說。虛擬儀器技術(shù)的出現(xiàn),徹底打破了傳統(tǒng)儀器由廠家定義,用戶無法改變的模式,虛擬儀器技術(shù)給用戶一個(gè)充分發(fā)揮自己的才能、想象力的空間。用戶(而不是廠家)可以隨心所欲地根據(jù)自己的需求,設(shè)計(jì)自己的儀器系統(tǒng),滿足多種多樣的應(yīng)用需求。
虛擬儀器系統(tǒng)是計(jì)算機(jī)系統(tǒng)與儀器系統(tǒng)技術(shù)相結(jié)合的產(chǎn)物。它利用PC計(jì)算機(jī)強(qiáng)大的圖形編程環(huán)境和在線幫助功能,結(jié)合相應(yīng)的硬件,快速建立人機(jī)交互界面的虛擬儀器面板,完成對儀器或設(shè)備的控制、數(shù)據(jù)分析與顯示,提高儀器的功能和使用效率,大幅度降低儀器的價(jià)格,使用戶可以根據(jù)自己的需要定義儀器的功能,方便地對其進(jìn)行維護(hù)、擴(kuò)展、升級等。
LabVIEW是美國NI公司利用虛擬儀器(virtualinstnlments)技術(shù)開發(fā)的32位,主要面向計(jì)算機(jī)測控領(lǐng)域的虛擬儀器軟件開發(fā)平臺(tái)。LabVIEW同時(shí)也是一一種功能強(qiáng)大的圖形編程語言,但它與傳統(tǒng)的文本編程語言(如c語言)不同,采用了一種基于流程圖的圖形化編程形式,因此也被稱為G語言(graphicallanguage)。這種圖形化的編程形式,方便了非軟件專業(yè)的工程師快速編制程序。LabVIEW也不同于傳統(tǒng)文本式的編程語言的順序執(zhí)行方式,而是采用了數(shù)據(jù)流的執(zhí)行方式,這種方式要求程序僅在各節(jié)點(diǎn)已獲得它的全部數(shù)據(jù)后才執(zhí)行。
多任務(wù)并行處理一般是通過多線程技術(shù)來實(shí)現(xiàn)的,不同的任務(wù)實(shí)際上通過各自的線程輪流占用CPU時(shí)間片來達(dá)到“同時(shí)”處理的目的。LabVIEW也采用了多線程技術(shù),而且與傳統(tǒng)文本式的編程語言相比,有兩大優(yōu)點(diǎn):LabVIEW把線程完全抽象出來,編程者不需對線程進(jìn)行創(chuàng)建、撤銷及同步等操作;LabVIEW使用圖形化的數(shù)據(jù)流的執(zhí)行方式,因此在調(diào)試程序時(shí),可以非常直觀地看到代碼的并行運(yùn)行狀態(tài),這使編程者很容易理解多任務(wù)的概念。
LabVIEW圖形化編程語言有效地利用了當(dāng)今圖形用戶接口的點(diǎn)擊特性。編寫程序只包含以下的一些簡單步驟:
?。?)用鼠標(biāo)選擇儀器函數(shù)作為對象;收到一個(gè)脈沖信號(hào),它就驅(qū)動(dòng)步進(jìn)電機(jī)按設(shè)定的方向轉(zhuǎn)動(dòng)一個(gè)固定的角度(稱為“步距角”),它的旋轉(zhuǎn)是以固定的角度一步一步運(yùn)行的??梢酝ㄟ^控制脈沖個(gè)數(shù)來控制角位移量,從而達(dá)到準(zhǔn)確定位的目的;同時(shí)可以通過控制脈沖頻率來控制電機(jī)轉(zhuǎn)動(dòng)的速度和加速度,從而達(dá)到調(diào)速的目的。步進(jìn)電機(jī)可以作為一種控制用的特種電機(jī),步進(jìn)電機(jī)由于具有轉(zhuǎn)子慣量低、定位精度高、無累積誤差、控制簡單等特點(diǎn),成了控制系統(tǒng)的主要執(zhí)行元件之一。步進(jìn)電機(jī)的控制方法包括開環(huán)控制和閉環(huán)控制兩種。
二、基于虛擬儀器的步進(jìn)電機(jī)控制系統(tǒng)整體結(jié)構(gòu)與原理
一般運(yùn)動(dòng)控制系統(tǒng)主要由五部分構(gòu)成:被移動(dòng)的機(jī)械設(shè)備、運(yùn)動(dòng)I/O的馬達(dá)(伺服或步進(jìn))、馬達(dá)驅(qū)動(dòng)單元、智能運(yùn)動(dòng)控制器、以及編程/操作接口軟件。
本系統(tǒng)的目標(biāo)是利用筆者實(shí)驗(yàn)室已有美國國家儀器公司(NI)的NIPCI7354伺服/步進(jìn)運(yùn)動(dòng)控制卡及其配套軟件、NI7604伺服/步進(jìn)驅(qū)動(dòng)器及其配套軟件、兩相步進(jìn)電機(jī)、LabVIEW軟件、多軸精密電移臺(tái)(負(fù)載)、PC機(jī)等構(gòu)建一套步進(jìn)電機(jī)運(yùn)動(dòng)控制系統(tǒng),分別實(shí)現(xiàn)單軸、兩軸、三軸和
四軸的運(yùn)動(dòng)控制,要求系統(tǒng)具有數(shù)控系統(tǒng)的基本功能,能實(shí)現(xiàn)不同坐標(biāo)系下的直線、圓弧插補(bǔ)、速度控制、電子傳動(dòng)等功能,以供實(shí)驗(yàn)教學(xué)應(yīng)用。系統(tǒng)整體結(jié)構(gòu)框圖如圖1示。
1.NIPCI7354運(yùn)動(dòng)控制卡
NIPCI7354控制卡可同時(shí)控制包括交流和步進(jìn)電機(jī)的4軸運(yùn)動(dòng),能實(shí)現(xiàn)諸如點(diǎn)到點(diǎn)位置控制、速度控制、三維直線、圓弧、螺旋型和球形運(yùn)動(dòng)、電子傳動(dòng)、混合運(yùn)動(dòng)、回程和限位控制、Trigger輸入和Breakpoint輸出等功能。NIPCI7354的嵌入式固件是基于RT0S(實(shí)時(shí)操作系統(tǒng))內(nèi)核的,實(shí)時(shí)性強(qiáng),通過簡單易用的運(yùn)動(dòng)控制器、軟件、以及外設(shè)提供集成方案的功能與能力,為一般伺服與步進(jìn)應(yīng)用提供精確、高性能的運(yùn)動(dòng)功能。該運(yùn)動(dòng)控制器可以使用支持Windows2000/NT/Me/xp操作系統(tǒng)的LabVIEW、MeasurementStudio(LabWindows/CVI、VisualBasic)以及C/C++進(jìn)行編程。
NIPCI7354運(yùn)動(dòng)控制卡是高性能PCI步進(jìn)/伺服控制器,可用于所有運(yùn)動(dòng)控制系統(tǒng)中,控制器采用先進(jìn)的技術(shù),在嵌入式實(shí)時(shí)運(yùn)動(dòng)或者以主機(jī)為中心的編程環(huán)境中提供混合運(yùn)動(dòng)軌跡控制和完全協(xié)同的圓形、線性、點(diǎn)到點(diǎn)、齒輪和空間矢量控制。其豐富的功能可以滿足最為嚴(yán)格的要求。
NIPCI7354運(yùn)動(dòng)控制卡的主要特點(diǎn):通過PCI總線與主機(jī)(上位機(jī))通信;68芯VHDCI輸出電纜;普通數(shù)字輸出電壓:0-32V;高電平3.5——30V,低電平0—2V;最大脈沖速率:100KHZ;運(yùn)行電流:3-14mA;觸發(fā)輸出最大脈沖速率:1MHz;
2.運(yùn)動(dòng)控制軟件
利用NILabVIEW圖形化編程語言以及各種應(yīng)用軟件可以開發(fā)功能強(qiáng)大的運(yùn)動(dòng)控制程序,運(yùn)動(dòng)控制器配備NI-Motion驅(qū)動(dòng)軟件提供的LabVIEWVI、固件更新程序、DLL程序,可以利用其它開發(fā)工具(比如MeasurementStudio,LabWindowsCVI)或其它編程語言開發(fā)運(yùn)動(dòng)控制應(yīng)用。NI運(yùn)動(dòng)助手(MotionAssistant)是一個(gè)采用LabVIEW代碼生成方法的附加工具,運(yùn)用該工具您只需進(jìn)行極少編程甚至無需編程即可開發(fā)LabVIEW運(yùn)動(dòng)控制應(yīng)用。
3.NI7604驅(qū)動(dòng)器
NI7604驅(qū)動(dòng)器將NI7354提供的四軸運(yùn)動(dòng)控制信號(hào)放大,以驅(qū)動(dòng)兩相步進(jìn)電機(jī)運(yùn)轉(zhuǎn),帶動(dòng)精密電移臺(tái)運(yùn)動(dòng)。該驅(qū)動(dòng)器將運(yùn)動(dòng)控制器與特定應(yīng)用馬達(dá)、編碼器、限位器、用戶I/O連接在一起。一根控制電纜連接運(yùn)動(dòng)控制器與驅(qū)動(dòng)器,為全部的命令集與反饋信號(hào)提供一個(gè)通道。
NI7604的主要特點(diǎn):輸入電壓:115V/23V,2/1A,60/50Hz;步進(jìn)放大器:IM481H;每相電流:0.2—1.4A;電源連續(xù)輸出容量:80W;輸入電纜:68芯VHDCI型;輸出電壓:24VDC;+5V輸出:1A。
4.運(yùn)動(dòng)控制外設(shè)
兩相步進(jìn)電機(jī)4臺(tái),四軸精密電移臺(tái)一套,電移臺(tái)是滾珠絲杠/螺母驅(qū)動(dòng)結(jié)構(gòu)。系統(tǒng)原理圖如圖2示。
三、系統(tǒng)工作原理
通過上位機(jī)(PC機(jī))的數(shù)據(jù)終端設(shè)備設(shè)置步進(jìn)電機(jī)的目標(biāo)位置、加速度、速度和減速度(即發(fā)出運(yùn)動(dòng)控制任務(wù)),NIPCI7354運(yùn)動(dòng)控制卡根據(jù)設(shè)置信息控制電機(jī)的運(yùn)動(dòng)時(shí)間(輸出脈沖個(gè)數(shù))和方向,即控制卡完成實(shí)時(shí)運(yùn)動(dòng)規(guī)劃,NI7604驅(qū)動(dòng)器放大脈沖信號(hào)以驅(qū)動(dòng)電機(jī)運(yùn)轉(zhuǎn)。
在電機(jī)運(yùn)行過程中,控制脈沖的頻率f應(yīng)隨時(shí)變化以滿足電機(jī)低速起停及高速運(yùn)行的需要。脈沖頻率由發(fā)送數(shù)據(jù)的波特率(B)決定,每發(fā)出一個(gè)脈沖需用兩個(gè)二進(jìn)制位1和0來構(gòu)成其高、低電平,所以f=B/2,通過調(diào)整發(fā)送數(shù)據(jù)的波特率可改變所發(fā)出的控制脈沖的頻率。按常規(guī)波特率系列發(fā)送數(shù)據(jù)時(shí)所產(chǎn)生的控制脈沖頻率變化較大,不能滿足電機(jī)正常起停及調(diào)速的要求,為此計(jì)算機(jī)需按非標(biāo)準(zhǔn)的波特率發(fā)送數(shù)據(jù)以產(chǎn)生任意頻率的控制脈沖。一般在電機(jī)起動(dòng)及停止階段每發(fā)送一個(gè)字節(jié)調(diào)整一次波特率,以使電機(jī)起停得盡量平滑。
四、軟件研究與實(shí)現(xiàn)
在系統(tǒng)硬件環(huán)節(jié)構(gòu)建完成后,先后逐步完成了單軸直線運(yùn)動(dòng)控制、兩軸平面運(yùn)動(dòng)控制、三軸空間運(yùn)動(dòng)控制系統(tǒng)的軟件研究與開發(fā)。
控制軟件利用LabVIEW7這種虛擬儀器軟件開發(fā)平臺(tái)設(shè)計(jì),每個(gè)程序分為前面板和框圖程序兩部分。前面板用于設(shè)置控制參數(shù)和顯示控制過程及結(jié)果,框圖程序是程序的代碼。兩軸平面螺旋運(yùn)動(dòng)前面板如圖3示,兩軸平面螺旋運(yùn)動(dòng)框圖程序(局部)如圖4示。
三軸空間運(yùn)動(dòng)的前面板和框圖程序(局部)分別如圖5、圖6所示。
五、結(jié)語
實(shí)驗(yàn)效果表明,該步進(jìn)電機(jī)控制系統(tǒng)性能良好,工作可靠。配上多種功能的人機(jī)界面后可以實(shí)現(xiàn)位置(起點(diǎn)和目標(biāo)點(diǎn))、速度、加速度、減速度等的可視化操作和控制,通過改變在線改變負(fù)載的目標(biāo)位置,可以實(shí)現(xiàn)位置的精確定位控制,通過在線調(diào)整速度和加/減速度的值,可以達(dá)到快速調(diào)速的目的。目前實(shí)現(xiàn)了開環(huán)多軸控制,鑒于步進(jìn)電機(jī)的閉環(huán)控制,筆者計(jì)劃進(jìn)一步研究步進(jìn)電機(jī)閉環(huán)控制的多軸運(yùn)動(dòng)控制系統(tǒng)。