《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 其他 > 設(shè)計(jì)應(yīng)用 > 基于LabVIEW的步進(jìn)電機(jī)運(yùn)行特性測(cè)試軟件開(kāi)發(fā)
基于LabVIEW的步進(jìn)電機(jī)運(yùn)行特性測(cè)試軟件開(kāi)發(fā)
來(lái)源:微型機(jī)與應(yīng)用2014年第5期
諶娟娟,巨 輝,劉 鵬
成都信息工程學(xué)院,四川 成都 610225
摘要: 針對(duì)目前步進(jìn)電機(jī)運(yùn)行特性測(cè)試系統(tǒng)成本高、無(wú)上位機(jī)對(duì)步進(jìn)電機(jī)進(jìn)行控制和測(cè)試數(shù)據(jù)進(jìn)行處理顯示等問(wèn)題,以LabVIEW及運(yùn)動(dòng)控制卡為核心,設(shè)計(jì)了一種步進(jìn)電機(jī)測(cè)試系統(tǒng),簡(jiǎn)要介紹了測(cè)試系統(tǒng)的硬件組成,詳細(xì)介紹了LabVIEW調(diào)用和設(shè)置運(yùn)動(dòng)控制卡函數(shù)及采集數(shù)據(jù)的方法。
Abstract:
Key words :

摘  要: 針對(duì)目前步進(jìn)電機(jī)運(yùn)行特性測(cè)試系統(tǒng)成本高、無(wú)上位機(jī)對(duì)步進(jìn)電機(jī)進(jìn)行控制和測(cè)試數(shù)據(jù)進(jìn)行處理顯示等問(wèn)題,以LabVIEW運(yùn)動(dòng)控制卡為核心,設(shè)計(jì)了一種步進(jìn)電機(jī)測(cè)試系統(tǒng),簡(jiǎn)要介紹了測(cè)試系統(tǒng)的硬件組成,詳細(xì)介紹了LabVIEW調(diào)用和設(shè)置運(yùn)動(dòng)控制卡函數(shù)及采集數(shù)據(jù)的方法。
關(guān)鍵詞: 步進(jìn)電機(jī);LabVIEW;運(yùn)動(dòng)控制卡;數(shù)據(jù)采集

 步進(jìn)電機(jī)是一種能夠快速啟動(dòng)、可正反轉(zhuǎn)和制動(dòng)的執(zhí)行元件,具有驅(qū)動(dòng)簡(jiǎn)單、控制精度較高、成本低廉等優(yōu)點(diǎn),被廣泛應(yīng)用于生產(chǎn)和生活的各個(gè)場(chǎng)合。通常步進(jìn)電機(jī)在使用之前應(yīng)先了解其準(zhǔn)確的運(yùn)行特性。目前工業(yè)中步進(jìn)電機(jī)的運(yùn)行特性測(cè)試常采用以PLC為控制系統(tǒng)核心的方案,這種方案能自動(dòng)實(shí)現(xiàn)數(shù)據(jù)的采集、顯示和處理[1],但它的成本較高。工業(yè)中需要一款成本較低、使用方便、操作簡(jiǎn)單的運(yùn)行測(cè)試系統(tǒng)。
 LabVIEW是美國(guó)NI公司研發(fā)的一款用于測(cè)控領(lǐng)域的軟件,它允許使用圖形方式編程,摒棄了晦澀難懂的文本代碼,其在硬件驅(qū)動(dòng)、數(shù)據(jù)采集、數(shù)據(jù)分析和數(shù)據(jù)顯示方面有著優(yōu)越的表現(xiàn),使之廣泛的應(yīng)用于工業(yè)自動(dòng)化、測(cè)試測(cè)量、運(yùn)動(dòng)控制、圖像處理等領(lǐng)域[2-3]。利用LabVIEW結(jié)合運(yùn)動(dòng)控制卡實(shí)現(xiàn)步進(jìn)電機(jī)的運(yùn)行特性測(cè)試且也能自動(dòng)實(shí)現(xiàn)數(shù)據(jù)的采集、處理和顯示。LabVIEW結(jié)合運(yùn)動(dòng)控制卡的方案與以PLC為控制系統(tǒng)核心的方案相比成本低、數(shù)據(jù)采集、數(shù)據(jù)分析及顯示簡(jiǎn)單,且LabVIEW編程比PLC編程方便、直觀、具有良好的人機(jī)交互界面。
1 實(shí)現(xiàn)方法
1.1 系統(tǒng)組成

 步進(jìn)電機(jī)測(cè)試系統(tǒng)硬件結(jié)構(gòu)框圖如圖1所示。

 測(cè)試平臺(tái)中步進(jìn)電機(jī)為被測(cè)對(duì)象,磁粉制動(dòng)器利用磁滯原理,通過(guò)控制勵(lì)磁電流的輸入產(chǎn)生一定的力矩來(lái)模擬電機(jī)的加載裝置,扭矩傳感器用于測(cè)試電機(jī)特性時(shí)采集電機(jī)的模擬轉(zhuǎn)矩大小。LabVIEW作為系統(tǒng)的核心,調(diào)用運(yùn)動(dòng)控制卡中的多個(gè)函數(shù)來(lái)控制電機(jī)的轉(zhuǎn)速和轉(zhuǎn)向及采集編碼器反饋的實(shí)際位置值,并將采集到數(shù)據(jù)進(jìn)行快速處理和顯示。
1.2 測(cè)試軟件的關(guān)鍵技術(shù)
 在運(yùn)動(dòng)控制卡函數(shù)庫(kù)中主要包括的函數(shù)有:控制卡和軸設(shè)置函數(shù)、運(yùn)動(dòng)指令函數(shù)、制動(dòng)函數(shù)、位置和狀態(tài)設(shè)置函數(shù)、位置和狀態(tài)查詢(xún)函數(shù)、I/O口操作函數(shù)和一些其他函數(shù)[4]。LabVIEW能否正確的調(diào)用并設(shè)置這些函數(shù)是整個(gè)測(cè)試系統(tǒng)軟件設(shè)計(jì)的關(guān)鍵部分。
 LabVIEW可以通過(guò)調(diào)用函數(shù)庫(kù)節(jié)點(diǎn)(CLN)來(lái)調(diào)用運(yùn)動(dòng)控制卡中的動(dòng)態(tài)鏈接庫(kù)(DDL)中的函數(shù)。調(diào)用步驟為:在程序后面板選擇“函數(shù)”→“互連接口”→“庫(kù)與可執(zhí)行程序”→“調(diào)用庫(kù)函數(shù)節(jié)點(diǎn)”。雙擊庫(kù)函數(shù)節(jié)點(diǎn),在函數(shù)選項(xiàng)卡中輸入庫(kù)名及選擇所需的函數(shù),在參數(shù)選項(xiàng)卡中設(shè)置和增加對(duì)應(yīng)函數(shù)的參數(shù)。參數(shù)的設(shè)置直接關(guān)系到應(yīng)用程序接口(API)函數(shù)調(diào)用的成敗。如果API函數(shù)中參數(shù)原型為基本數(shù)據(jù)類(lèi)型,LabVIEW參數(shù)的設(shè)置則非常簡(jiǎn)單,即選擇對(duì)應(yīng)的數(shù)據(jù)類(lèi)型后將參數(shù)的傳遞方式設(shè)置為“數(shù)值”。
 通常LabVIEW中使用的數(shù)據(jù)類(lèi)型與API函數(shù)中使用的數(shù)據(jù)類(lèi)型不一致。而錯(cuò)誤數(shù)據(jù)類(lèi)型的使用有時(shí)會(huì)造成LabVIEW運(yùn)行崩潰,所以正確理解API函數(shù)的數(shù)據(jù)類(lèi)型與LabVIEW的數(shù)據(jù)類(lèi)型對(duì)程序正常運(yùn)行具有重要意義。表1所示為幾種常用的API函數(shù)數(shù)據(jù)類(lèi)型與LabVIEW數(shù)據(jù)類(lèi)型的對(duì)應(yīng)關(guān)系。

 如果API函數(shù)中參數(shù)原型為指針類(lèi)型,LabVIEW則有兩種傳遞方式。一種方式是選擇參數(shù)類(lèi)型為“數(shù)組”,數(shù)組格式為“數(shù)組數(shù)據(jù)指針”。此種方式的輸入方式為數(shù)組,數(shù)組的長(zhǎng)度可以根據(jù)其需要指定[3]。另一種方式是選擇參數(shù)類(lèi)型為“數(shù)值”,傳遞方式為“指針”。此種方式不需要輸入任何參數(shù),只需要在調(diào)用API函數(shù)后通過(guò)一個(gè)數(shù)字拆分函數(shù)將測(cè)試過(guò)程中反饋回來(lái)的數(shù)據(jù)讀取。例如:讀取編碼器反饋的實(shí)際位置值函數(shù)(get_encoder),其語(yǔ)法為int get_encoder(int ch,long*en_pos),其中ch為軸號(hào),en_pos為一個(gè)指向?qū)嶋H位置的長(zhǎng)整型指針。LabVIEW中函數(shù)選項(xiàng)卡設(shè)置如圖2所示,參數(shù)選項(xiàng)卡設(shè)置如圖3所示。

1.3 數(shù)據(jù)采集
 步進(jìn)電機(jī)運(yùn)行特性測(cè)試程序開(kāi)發(fā)的過(guò)程中除了正確調(diào)用運(yùn)動(dòng)控制卡函數(shù)外,編碼器反饋信號(hào)的采集也尤為重要。
 程序在執(zhí)行過(guò)程中需不斷地讀取編碼器反饋值,并在電機(jī)停止后自動(dòng)地將測(cè)試值進(jìn)行處理并顯示出來(lái)。運(yùn)動(dòng)控制卡中g(shù)et_encoder函數(shù)專(zhuān)門(mén)用于讀取編碼器的反饋值,為了實(shí)現(xiàn)不斷讀取編碼器反饋值,則將get_encoder函數(shù)放入for循環(huán)結(jié)構(gòu)中。雖然控制卡中寄存器的更新速度為1/32 M,但for循環(huán)中的采集程序執(zhí)行速度遠(yuǎn)遠(yuǎn)低于1/32 M且速度未知,則考慮在for循環(huán)中加入定時(shí)結(jié)構(gòu)且定時(shí)時(shí)間必須大于程序執(zhí)行時(shí)間。經(jīng)多次試驗(yàn),假如系統(tǒng)以電機(jī)轉(zhuǎn)速0.01 r/s為最低轉(zhuǎn)速,則將定時(shí)時(shí)間設(shè)置為10 ms。又因?yàn)長(zhǎng)abVIEW中for循環(huán)結(jié)構(gòu)的循環(huán)次數(shù)是固定的,為了實(shí)現(xiàn)電機(jī)停止后程序能自動(dòng)及時(shí)地將測(cè)試結(jié)果顯示出來(lái),則根據(jù)采集到數(shù)據(jù)在for循環(huán)外做判斷以停止采集程序和處理結(jié)果并顯示。數(shù)據(jù)采集程序如圖4所示。

2 程序示例
 本文以步進(jìn)電機(jī)任意加減速曲線測(cè)試為例,展示了LabVIEW調(diào)用運(yùn)動(dòng)控制卡函數(shù)控制步進(jìn)電機(jī)及采集編碼器反饋值的過(guò)程。程序流程圖如圖5所示。

 

 

 程序在調(diào)用初始化函數(shù)init_board后默認(rèn)的將軸的最大速度設(shè)置為板卡允許的最大速度80 000 r/s。因?yàn)榭刂瓶ǖ妮敵雒}沖頻率=脈沖分辨率×倍率,所以為了獲得比較好的速度精度程序初始化之后應(yīng)先調(diào)用set_maxspeed函數(shù)來(lái)設(shè)置需要達(dá)到的最大輸出脈沖頻率,設(shè)置后脈沖分辨率將重新設(shè)置。程序在調(diào)用讀取軸反饋信息函數(shù)get_encoder前應(yīng)先調(diào)用set-getpos_mode函數(shù)和set_encoder_mode函數(shù)來(lái)設(shè)置編碼器反饋信號(hào)的模式及get_encoder函數(shù)獲取的位置值的來(lái)源。以步進(jìn)電機(jī)任意加減速曲線測(cè)試為例的程序后面板如圖6所示,前面板如圖7所示。

 綜上所述,依托于LabVIEW函數(shù)庫(kù)調(diào)用技術(shù)以及運(yùn)動(dòng)控制卡可以實(shí)現(xiàn)步進(jìn)電機(jī)的運(yùn)動(dòng)控制及運(yùn)行特性的測(cè)試,系統(tǒng)人機(jī)交互界面良好,可準(zhǔn)確地對(duì)采集數(shù)據(jù)進(jìn)行計(jì)算處理、顯示及存儲(chǔ),且各項(xiàng)運(yùn)行參數(shù)方便可調(diào)。本文對(duì)步進(jìn)電機(jī)的運(yùn)動(dòng)控制及運(yùn)行特性測(cè)試系統(tǒng)而言,具有成本低、使用方便、操作簡(jiǎn)單等特點(diǎn)。
參考文獻(xiàn)
[1] 蔡祖光,史鐵林.步進(jìn)電動(dòng)機(jī)矩頻特性測(cè)試方法研究[J].電子器件,2012(2):190-193.
[2] 楊樂(lè)平,李海濤.LabVIEW程序設(shè)計(jì)與應(yīng)用[M].北京:電子工業(yè)出版社,2005.
[3] 陳樹(shù)學(xué),劉萱.LabVIEW寶典[M].北京:電子工業(yè)出版社,2011.
[4] 周志明.基于運(yùn)動(dòng)控制卡的步進(jìn)電機(jī)控制系統(tǒng)[J].煤礦機(jī)械,2004(3):95-97.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。