近年來,虛擬儀器技術(shù)在航空、航天、航海、通信、汽車、半導(dǎo)體、生物醫(yī)學(xué)等眾多領(lǐng)域得到了廣泛應(yīng)用,從簡單的儀器控制、數(shù)據(jù)采集到尖端的測控和工業(yè)自動化,從大學(xué)實(shí)驗(yàn)室到工業(yè)現(xiàn)場,從探索研究到技術(shù)集成,可以發(fā)現(xiàn)虛擬儀器技術(shù)應(yīng)用的很多實(shí)例。國內(nèi)外學(xué)者對此作了很多的研究工作,也發(fā)表了不少相關(guān)文章或論文,但在運(yùn)動控制方面,卻探討的不多。因此,筆者想就虛擬儀器技術(shù)在
步進(jìn)電機(jī)控制系統(tǒng)中的應(yīng)用,談?wù)勛约旱囊恍┏醪教接懞腕w會。
一、虛擬儀器與運(yùn)動控制
1. 虛擬儀器與圖形化編程語言-LabVIEW
虛擬儀器(即Virtual Instrument,簡稱NI)是一種基于計(jì)算機(jī)的儀器,就是在通用計(jì)算機(jī)上加上軟件和(或)硬件,使得使用者在操作這臺計(jì)算機(jī)時(shí),就象是在操作一臺他自己設(shè)計(jì)的專用的傳統(tǒng)電子儀器。在虛擬儀器系統(tǒng)中,硬件僅僅是為了解決信號的輸入輸出,軟件才是整個(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公司利用虛擬儀器(virtual instnlments)技術(shù)開發(fā)的32位,主要面向計(jì)算機(jī)測控領(lǐng)域的虛擬儀器軟件開發(fā)平臺。LabVIEW同時(shí)也是一一種功能強(qiáng)大的圖形編程語言,但它與傳統(tǒng)的文本編程語言(如c語言)不同,采用了一種基于流程圖的圖形化編程形式,因此也被稱為G語言(graphical language)。這種圖形化的編程形式,方便了非軟件專業(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ù)作為對象;
描述測試步驟和對象之間的關(guān)系;
建立初始條件。
2. 運(yùn)動控制
運(yùn)動控制卡是一種基于PC機(jī)、用于各種運(yùn)動控制場合(包括位移、速度、加速度等)的上位控制單元。它的出現(xiàn)主要是因?yàn)椋?
為了滿足新型數(shù)控系統(tǒng)的標(biāo)準(zhǔn)化、柔性、開放性等要求;
在各種工業(yè)設(shè)備、國防裝備(如跟蹤定位系統(tǒng)等)、智能醫(yī)療裝置等設(shè)備的自動化控制系統(tǒng)研制和改造中,急需一個(gè)運(yùn)動控制模塊的硬件平臺;
PC機(jī)在各種工業(yè)現(xiàn)場的廣泛應(yīng)用,也促使配備相應(yīng)的控制卡以充分發(fā)揮PC機(jī)的強(qiáng)大功能。
運(yùn)動控制卡通常采用專業(yè)運(yùn)動控制芯片或高速DSP作為運(yùn)動控制核心,大多用于控制步進(jìn)電機(jī)或伺服電機(jī)。一般地,運(yùn)動控制卡與PC機(jī)構(gòu)成主從式控制結(jié)構(gòu):PC機(jī)負(fù)責(zé)人機(jī)交互界面的管理和控制系統(tǒng)的實(shí)時(shí)監(jiān)控等方面的工作 (例如鍵盤和鼠標(biāo)的管理、系統(tǒng)狀態(tài)的顯示、運(yùn)動軌跡規(guī)劃、控制指令的發(fā)送、外部信號的監(jiān)控等等);控制卡完成運(yùn)動控制的所有細(xì)節(jié)(包括脈沖和方向信號的輸出、自動升降速的處理、原點(diǎn)和限位等信號的檢測等等)。運(yùn)動控制卡都配有開放的函數(shù)庫供用戶在相應(yīng)系統(tǒng)平臺下自行開發(fā)、構(gòu)造所需的控制系統(tǒng)。因而這種結(jié)構(gòu)開放的運(yùn)動控制卡能夠廣泛地應(yīng)用于制造業(yè)中設(shè)備自動化的各個(gè)領(lǐng)域。
步進(jìn)電機(jī)是一種將電脈沖轉(zhuǎn)化為角位移的執(zhí)行機(jī)構(gòu)。當(dāng)步進(jìn)驅(qū)動器接收到一個(gè)脈沖信號,它就驅(qū)動步進(jìn)電機(jī)按設(shè)定的方向轉(zhuǎn)動一個(gè)固定的角度(稱為“步距角”),它的旋轉(zhuǎn)是以固定的角度一步一步運(yùn)行的??梢酝ㄟ^控制脈沖個(gè)數(shù)來控制角位移量,從而達(dá)到準(zhǔn)確定位的目的;同時(shí)可以通過控制脈沖頻率來控制電機(jī)轉(zhuǎn)動的速度和加速度,從而達(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)動控制系統(tǒng)主要由五部分構(gòu)成:被移動的機(jī)械設(shè)備、運(yùn)動I/O的馬達(dá)(伺服或步進(jìn))、馬達(dá)驅(qū)動單元、智能運(yùn)動控制器、以及編程/操作接口軟件。
本系統(tǒng)的目標(biāo)是利用筆者實(shí)驗(yàn)室已有美國國家儀器公司(NI)的NI PCI 7354伺服/步進(jìn)運(yùn)動控制卡及其配套軟件、NI 7604伺服/步進(jìn)驅(qū)動器及其配套軟件、兩相步進(jìn)電機(jī)、LabVIEW軟件、多軸精密電移臺(負(fù)載)、PC機(jī)等構(gòu)建一套步進(jìn)電機(jī)運(yùn)動控制系統(tǒng),分別實(shí)現(xiàn)單軸、兩軸、三軸和四軸的運(yùn)動控制,要求系統(tǒng)具有數(shù)控系統(tǒng)的基本功能,能實(shí)現(xiàn)不同坐標(biāo)系下的直線、圓弧插補(bǔ)、速度控制、電子傳動等功能,以供實(shí)驗(yàn)教學(xué)應(yīng)用。系統(tǒng)整體結(jié)構(gòu)框圖如圖1示。
圖1 系統(tǒng)整體結(jié)構(gòu)框圖
1. NI PCI 7354運(yùn)動控制卡
NI PCI 7354控制卡可同時(shí)控制包括交流和步進(jìn)電機(jī)的4軸運(yùn)動,能實(shí)現(xiàn)諸如點(diǎn)到點(diǎn)位置控制、速度控制、三維直線、圓弧、螺旋型和球形運(yùn)動、電子傳動、混合運(yùn)動、回程和限位控制、Trigger輸入和Breakpoint輸出等功能。NI PCI 7354的嵌入式固件是基于RT0S(實(shí)時(shí)操作系統(tǒng))內(nèi)核的,實(shí)時(shí)性強(qiáng),通過簡單易用的運(yùn)動控制器、軟件、以及外設(shè)提供集成方案的功能與能力,為一般伺服與步進(jìn)應(yīng)用提供精確、高性能的運(yùn)動功能。該運(yùn)動控制器可以使用支持Windows 2000/NT/Me/xp操作系統(tǒng)的LabVIEW、Measurement Studio(LabWindows/CVI、Visual Basic)以及C/C++進(jìn)行編程。
NI PCI 7354運(yùn)動控制卡是高性能PCI步進(jìn)/伺服控制器,可用于所有運(yùn)動控制系統(tǒng)中,控制器采用先進(jìn)的技術(shù),在嵌入式實(shí)時(shí)運(yùn)動或者以主機(jī)為中心的編程環(huán)境中提供混合運(yùn)動軌跡控制和完全協(xié)同的圓形、線性、點(diǎn)到點(diǎn)、齒輪和空間矢量控制。其豐富的功能可以滿足最為嚴(yán)格的要求。
NI PCI 7354運(yùn)動控制卡的主要特點(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)動控制軟件
利用NI LabVIEW圖形化編程語言以及各種應(yīng)用軟件可以開發(fā)功能強(qiáng)大的運(yùn)動控制程序,運(yùn)動控制器配備NI-Motion驅(qū)動軟件提供的LabVIEW VI、固件更新程序、DLL程序,可以利用其它開發(fā)工具(比如Measurement Studio, LabWindows CVI)或其它編程語言開發(fā)運(yùn)動控制應(yīng)用。NI運(yùn)動助手(Motion Assistant)是一個(gè)采用LabVIEW代碼生成方法的附加工具,運(yùn)用該工具您只需進(jìn)行極少編程甚至無需編程即可開發(fā)LabVIEW運(yùn)動控制應(yīng)用。
3. NI 7604 驅(qū)動器
NI 7604驅(qū)動器將NI 7354提供的四軸運(yùn)動控制信號放大,以驅(qū)動兩相步進(jìn)電機(jī)運(yùn)轉(zhuǎn),帶動精密電移臺運(yùn)動。該驅(qū)動器將運(yùn)動控制器與特定應(yīng)用馬達(dá)、編碼器、限位器、用戶I/O連接在一起。一根
控制電纜連接運(yùn)動控制器與驅(qū)動器,為全部的命令集與反饋信號提供一個(gè)通道。
NI 7604的主要特點(diǎn):輸入電壓:115V/23V,2/1A,60/50Hz; 步進(jìn)放大器:IM481H;每相電流:0.2—1.4A;電源連續(xù)輸出容量:80W;輸入電纜:68芯VHDCI型;輸出電壓:24V DC;+5V輸出:1A。
4. 運(yùn)動控制外設(shè)
兩相步進(jìn)電機(jī)4臺,四軸精密電移臺一套,電移臺是滾珠絲杠/螺母驅(qū)動結(jié)構(gòu)。系統(tǒng)原理圖如圖2示。
圖2 系統(tǒng)原理圖
三、系統(tǒng)工作原理
通過上位機(jī)(PC機(jī))的數(shù)據(jù)終端設(shè)備設(shè)置步進(jìn)電機(jī)的目標(biāo)位置、加速度、速度和減速度(即發(fā)出運(yùn)動控制任務(wù)),NI PCI7354
運(yùn)動控制卡根據(jù)設(shè)置信息控制電機(jī)的運(yùn)動時(shí)間(輸出脈沖個(gè)數(shù))和方向,即控制卡完成實(shí)時(shí)運(yùn)動規(guī)劃,NI 7604驅(qū)動器放大脈沖信號以驅(qū)動電機(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ī)起動及停止階段每發(fā)送一個(gè)字節(jié)調(diào)整一次波特率,以使電機(jī)起停得盡量平滑。
四、軟件研究與實(shí)現(xiàn)
在系統(tǒng)硬件環(huán)節(jié)構(gòu)建完成后,先后逐步完成了單軸直線運(yùn)動控制、兩軸平面運(yùn)動控制、三軸空間運(yùn)動控制系統(tǒng)的軟件研究與開發(fā)。
圖3 兩軸平面螺旋運(yùn)動控制前面板
控制軟件利用LabVIEW 7這種
虛擬儀器軟件開發(fā)平臺設(shè)計(jì),每個(gè)程序分為前面板和框圖程序兩部分。前面板用于設(shè)置控制參數(shù)和顯示控制過程及結(jié)果,框圖程序是程序的代碼。兩軸平面螺旋運(yùn)動前面板如圖3示,兩軸平面螺旋運(yùn)動框圖程序(局部)如圖4示。
圖4 兩軸平面螺旋運(yùn)動控制框圖程序(局部)
三軸空間運(yùn)動的前面板和框圖程序(局部)分別如圖5、圖6所示。
圖5 三軸運(yùn)動控制前面板
圖6 三軸運(yùn)動控制框圖程序(局部)
五、結(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)動控制系統(tǒng)。