近年來,虛擬儀器技術(shù)在航空、航天、航海、通信、汽車、半導(dǎo)體、生物醫(yī)學(xué)等眾多領(lǐng)域得到了廣泛應(yīng)用,從簡單的儀器控制、數(shù)據(jù)采集到尖端的測控和工業(yè)自動化,從大學(xué)實驗室到工業(yè)現(xiàn)場,從探索研究到技術(shù)集成,可以發(fā)現(xiàn)虛擬儀器技術(shù)應(yīng)用的很多實例。國內(nèi)外學(xué)者對此作了很多的研究工作,也發(fā)表了不少相關(guān)文章或論文,但在運動控制方面,卻探討的不多。因此,筆者想就虛擬儀器技術(shù)在步進電機控制系統(tǒng)中的應(yīng)用,談?wù)勛约旱囊恍┏醪教接懞腕w會。
一、虛擬儀器與運動控制
1. 虛擬儀器與圖形化編程語言-LabVIEW
虛擬儀器(即Virtual Instrument,簡稱NI)是一種基于計算機的儀器,就是在通用計算機上加上軟件和(或)硬件,使得使用者在操作這臺計算機時,就象是在操作一臺他自己設(shè)計的專用的傳統(tǒng)電子儀器。在虛擬儀器系統(tǒng)中,硬件僅僅是為了解決信號的輸入輸出,軟件才是整個儀器系統(tǒng)的關(guān)鍵,任何一個使用者都可以通過修改軟件的方法,很方便地改變、增減儀器系統(tǒng)的功能與規(guī)模,所以有“軟件就是儀器”之說。虛擬儀器技術(shù)的出現(xiàn),徹底打破了傳統(tǒng)儀器由廠家定義,用戶無法改變的模式,虛擬儀器技術(shù)給用戶一個充分發(fā)揮自己的才能、想象力的空間。用戶(而不是廠家)可以隨心所欲地根據(jù)自己的需求,設(shè)計自己的儀器系統(tǒng),滿足多種多樣的應(yīng)用需求。
虛擬儀器系統(tǒng)是計算機系統(tǒng)與儀器系統(tǒng)技術(shù)相結(jié)合的產(chǎn)物。它利用PC計算機強大的圖形編程環(huán)境和在線幫助功能,結(jié)合相應(yīng)的硬件,快速建立人機交互界面的虛擬儀器面板,完成對儀器或設(shè)備的控制、數(shù)據(jù)分析與顯示,提高儀器的功能和使用效率,大幅度降低儀器的價格,使用戶可以根據(jù)自己的需要定義儀器的功能,方便地對其進行維護、擴展、升級等。
LabVIEW是美國NI公司利用虛擬儀器(virtual instnlments)技術(shù)開發(fā)的32位,主要面向計算機測控領(lǐng)域的虛擬儀器軟件開發(fā)平臺。LabVIEW同時也是一一種功能強大的圖形編程語言,但它與傳統(tǒng)的文本編程語言(如c語言)不同,采用了一種基于流程圖的圖形化編程形式,因此也被稱為G語言(graphical language)。這種圖形化的編程形式,方便了非軟件專業(yè)的工程師快速編制程序。LabVIEW也不同于傳統(tǒng)文本式的編程語言的順序執(zhí)行方式,而是采用了數(shù)據(jù)流的執(zhí)行方式,這種方式要求程序僅在各節(jié)點已獲得它的全部數(shù)據(jù)后才執(zhí)行。
多任務(wù)并行處理一般是通過多線程技術(shù)來實現(xiàn)的,不同的任務(wù)實際上通過各自的線程輪流占用CPU時間片來達到“同時”處理的目的。LabVIEW也采用了多線程技術(shù),而且與傳統(tǒng)文本式的編程語言相比,有兩大優(yōu)點:LabVIEW把線程完全抽象出來,編程者不需對線程進行創(chuàng)建、撤銷及同步等操作;LabVIEW使用圖形化的數(shù)據(jù)流的執(zhí)行方式,因此在調(diào)試程序時,可以非常直觀地看到代碼的并行運行狀態(tài),這使編程者很容易理解多任務(wù)的概念。
LabVIEW圖形化編程語言有效地利用了當(dāng)今圖形用戶接口的點擊特性。編寫程序只包含以下的一些簡單步驟:
用鼠標選擇儀器函數(shù)作為對象;
描述測試步驟和對象之間的關(guān)系;
建立初始條件。
2. 運動控制
運動控制卡是一種基于PC機、用于各種運動控制場合(包括位移、速度、加速度等)的上位控制單元。它的出現(xiàn)主要是因為:
為了滿足新型數(shù)控系統(tǒng)的標準化、柔性、開放性等要求;
在各種工業(yè)設(shè)備、國防裝備(如跟蹤定位系統(tǒng)等)、智能醫(yī)療裝置等設(shè)備的自動化控制系統(tǒng)研制和改造中,急需一個運動控制模塊的硬件平臺;
PC機在各種工業(yè)現(xiàn)場的廣泛應(yīng)用,也促使配備相應(yīng)的控制卡以充分發(fā)揮PC機的強大功能。
運動控制卡通常采用專業(yè)運動控制芯片或高速DSP作為運動控制核心,大多用于控制步進電機或伺服電機。一般地,運動控制卡與PC機構(gòu)成主從式控制結(jié)構(gòu):PC機負責(zé)人機交互界面的管理和控制系統(tǒng)的實時監(jiān)控等方面的工作 (例如鍵盤和鼠標的管理、系統(tǒng)狀態(tài)的顯示、運動軌跡規(guī)劃、控制指令的發(fā)送、外部信號的監(jiān)控等等);控制卡完成運動控制的所有細節(jié)(包括脈沖和方向信號的輸出、自動升降速的處理、原點和限位等信號的檢測等等)。運動控制卡都配有開放的函數(shù)庫供用戶在相應(yīng)系統(tǒng)平臺下自行開發(fā)、構(gòu)造所需的控制系統(tǒng)。因而這種結(jié)構(gòu)開放的運動控制卡能夠廣泛地應(yīng)用于制造業(yè)中設(shè)備自動化的各個領(lǐng)域。
步進電機是一種將電脈沖轉(zhuǎn)化為角位移的執(zhí)行機構(gòu)。當(dāng)步進驅(qū)動器接收到一個脈沖信號,它就驅(qū)動步進電機按設(shè)定的方向轉(zhuǎn)動一個固定的角度(稱為“步距角”),它的旋轉(zhuǎn)是以固定的角度一步一步運行的。可以通過控制脈沖個數(shù)來控制角位移量,從而達到準確定位的目的;同時可以通過控制脈沖頻率來控制電機轉(zhuǎn)動的速度和加速度,從而達到調(diào)速的目的。步進電機可以作為一種控制用的特種電機,步進電機由于具有轉(zhuǎn)子慣量低、定位精度高、無累積誤差、控制簡單等特點,成了控制系統(tǒng)的主要執(zhí)行元件之一。步進電機的控制方法包括開環(huán)控制和閉環(huán)控制兩種。
二、基于虛擬儀器的步進電機控制系統(tǒng)整體結(jié)構(gòu)與原理
一般運動控制系統(tǒng)主要由五部分構(gòu)成:被移動的機械設(shè)備、運動I/O的馬達(伺服或步進)、馬達驅(qū)動單元、智能運動控制器、以及編程/操作接口軟件。
本系統(tǒng)的目標是利用筆者實驗室已有美國國家儀器公司(NI)的NI PCI 7354伺服/步進運動控制卡及其配套軟件、NI 7604伺服/步進驅(qū)動器及其配套軟件、兩相步進電機、LabVIEW軟件、多軸精密電移臺(負載)、PC機等構(gòu)建一套步進電機運動控制系統(tǒng),分別實現(xiàn)單軸、兩軸、三軸和四軸的運動控制,要求系統(tǒng)具有數(shù)控系統(tǒng)的基本功能,能實現(xiàn)不同坐標系下的直線、圓弧插補、速度控制、電子傳動等功能,以供實驗教學(xué)應(yīng)用。系統(tǒng)整體結(jié)構(gòu)框圖如圖1示。
圖1 系統(tǒng)整體結(jié)構(gòu)框圖
1. NI PCI 7354運動控制卡
NI PCI 7354控制卡可同時控制包括交流和步進電機的4軸運動,能實現(xiàn)諸如點到點位置控制、速度控制、三維直線、圓弧、螺旋型和球形運動、電子傳動、混合運動、回程和限位控制、Trigger輸入和Breakpoint輸出等功能。NI PCI 7354的嵌入式固件是基于RT0S(實時操作系統(tǒng))內(nèi)核的,實時性強,通過簡單易用的運動控制器、軟件、以及外設(shè)提供集成方案的功能與能力,為一般伺服與步進應(yīng)用提供精確、高性能的運動功能。該運動控制器可以使用支持Windows 2000/NT/Me/xp操作系統(tǒng)的LabVIEW、Measurement Studio(LabWindows/CVI、Visual Basic)以及C/C++進行編程。