摘 要: 針對目前步進電機運行特性測試系統(tǒng)成本高,、無上位機對步進電機進行控制和測試數(shù)據(jù)進行處理顯示等問題,以LabVIEW及運動控制卡為核心,,設(shè)計了一種步進電機測試系統(tǒng),,簡要介紹了測試系統(tǒng)的硬件組成,詳細介紹了LabVIEW調(diào)用和設(shè)置運動控制卡函數(shù)及采集數(shù)據(jù)的方法,。
關(guān)鍵詞: 步進電機,;LabVIEW;運動控制卡,;數(shù)據(jù)采集
步進電機是一種能夠快速啟動,、可正反轉(zhuǎn)和制動的執(zhí)行元件,具有驅(qū)動簡單,、控制精度較高,、成本低廉等優(yōu)點,被廣泛應(yīng)用于生產(chǎn)和生活的各個場合,。通常步進電機在使用之前應(yīng)先了解其準確的運行特性,。目前工業(yè)中步進電機的運行特性測試常采用以PLC為控制系統(tǒng)核心的方案,這種方案能自動實現(xiàn)數(shù)據(jù)的采集,、顯示和處理[1],,但它的成本較高。工業(yè)中需要一款成本較低,、使用方便,、操作簡單的運行測試系統(tǒng)。
LabVIEW是美國NI公司研發(fā)的一款用于測控領(lǐng)域的軟件,,它允許使用圖形方式編程,,摒棄了晦澀難懂的文本代碼,其在硬件驅(qū)動,、數(shù)據(jù)采集,、數(shù)據(jù)分析和數(shù)據(jù)顯示方面有著優(yōu)越的表現(xiàn),使之廣泛的應(yīng)用于工業(yè)自動化,、測試測量,、運動控制,、圖像處理等領(lǐng)域[2-3]。利用LabVIEW結(jié)合運動控制卡實現(xiàn)步進電機的運行特性測試且也能自動實現(xiàn)數(shù)據(jù)的采集,、處理和顯示,。LabVIEW結(jié)合運動控制卡的方案與以PLC為控制系統(tǒng)核心的方案相比成本低、數(shù)據(jù)采集,、數(shù)據(jù)分析及顯示簡單,,且LabVIEW編程比PLC編程方便、直觀,、具有良好的人機交互界面,。
1 實現(xiàn)方法
1.1 系統(tǒng)組成
步進電機測試系統(tǒng)硬件結(jié)構(gòu)框圖如圖1所示。
測試平臺中步進電機為被測對象,,磁粉制動器利用磁滯原理,,通過控制勵磁電流的輸入產(chǎn)生一定的力矩來模擬電機的加載裝置,扭矩傳感器用于測試電機特性時采集電機的模擬轉(zhuǎn)矩大小,。LabVIEW作為系統(tǒng)的核心,,調(diào)用運動控制卡中的多個函數(shù)來控制電機的轉(zhuǎn)速和轉(zhuǎn)向及采集編碼器反饋的實際位置值,并將采集到數(shù)據(jù)進行快速處理和顯示,。
1.2 測試軟件的關(guān)鍵技術(shù)
在運動控制卡函數(shù)庫中主要包括的函數(shù)有:控制卡和軸設(shè)置函數(shù),、運動指令函數(shù)、制動函數(shù),、位置和狀態(tài)設(shè)置函數(shù),、位置和狀態(tài)查詢函數(shù)、I/O口操作函數(shù)和一些其他函數(shù)[4],。LabVIEW能否正確的調(diào)用并設(shè)置這些函數(shù)是整個測試系統(tǒng)軟件設(shè)計的關(guān)鍵部分,。
LabVIEW可以通過調(diào)用函數(shù)庫節(jié)點(CLN)來調(diào)用運動控制卡中的動態(tài)鏈接庫(DDL)中的函數(shù)。調(diào)用步驟為:在程序后面板選擇“函數(shù)”→“互連接口”→“庫與可執(zhí)行程序”→“調(diào)用庫函數(shù)節(jié)點”,。雙擊庫函數(shù)節(jié)點,,在函數(shù)選項卡中輸入庫名及選擇所需的函數(shù),在參數(shù)選項卡中設(shè)置和增加對應(yīng)函數(shù)的參數(shù),。參數(shù)的設(shè)置直接關(guān)系到應(yīng)用程序接口(API)函數(shù)調(diào)用的成敗,。如果API函數(shù)中參數(shù)原型為基本數(shù)據(jù)類型,LabVIEW參數(shù)的設(shè)置則非常簡單,,即選擇對應(yīng)的數(shù)據(jù)類型后將參數(shù)的傳遞方式設(shè)置為“數(shù)值”,。
通常LabVIEW中使用的數(shù)據(jù)類型與API函數(shù)中使用的數(shù)據(jù)類型不一致。而錯誤數(shù)據(jù)類型的使用有時會造成LabVIEW運行崩潰,,所以正確理解API函數(shù)的數(shù)據(jù)類型與LabVIEW的數(shù)據(jù)類型對程序正常運行具有重要意義,。表1所示為幾種常用的API函數(shù)數(shù)據(jù)類型與LabVIEW數(shù)據(jù)類型的對應(yīng)關(guān)系。
如果API函數(shù)中參數(shù)原型為指針類型,LabVIEW則有兩種傳遞方式,。一種方式是選擇參數(shù)類型為“數(shù)組”,數(shù)組格式為“數(shù)組數(shù)據(jù)指針”,。此種方式的輸入方式為數(shù)組,,數(shù)組的長度可以根據(jù)其需要指定[3]。另一種方式是選擇參數(shù)類型為“數(shù)值”,,傳遞方式為“指針”,。此種方式不需要輸入任何參數(shù),只需要在調(diào)用API函數(shù)后通過一個數(shù)字拆分函數(shù)將測試過程中反饋回來的數(shù)據(jù)讀取,。例如:讀取編碼器反饋的實際位置值函數(shù)(get_encoder),,其語法為int get_encoder(int ch,long*en_pos),,其中ch為軸號,,en_pos為一個指向?qū)嶋H位置的長整型指針。LabVIEW中函數(shù)選項卡設(shè)置如圖2所示,,參數(shù)選項卡設(shè)置如圖3所示,。
1.3 數(shù)據(jù)采集
步進電機運行特性測試程序開發(fā)的過程中除了正確調(diào)用運動控制卡函數(shù)外,編碼器反饋信號的采集也尤為重要,。
程序在執(zhí)行過程中需不斷地讀取編碼器反饋值,,并在電機停止后自動地將測試值進行處理并顯示出來。運動控制卡中g(shù)et_encoder函數(shù)專門用于讀取編碼器的反饋值,,為了實現(xiàn)不斷讀取編碼器反饋值,,則將get_encoder函數(shù)放入for循環(huán)結(jié)構(gòu)中。雖然控制卡中寄存器的更新速度為1/32 M,,但for循環(huán)中的采集程序執(zhí)行速度遠遠低于1/32 M且速度未知,,則考慮在for循環(huán)中加入定時結(jié)構(gòu)且定時時間必須大于程序執(zhí)行時間。經(jīng)多次試驗,,假如系統(tǒng)以電機轉(zhuǎn)速0.01 r/s為最低轉(zhuǎn)速,,則將定時時間設(shè)置為10 ms。又因為LabVIEW中for循環(huán)結(jié)構(gòu)的循環(huán)次數(shù)是固定的,,為了實現(xiàn)電機停止后程序能自動及時地將測試結(jié)果顯示出來,,則根據(jù)采集到數(shù)據(jù)在for循環(huán)外做判斷以停止采集程序和處理結(jié)果并顯示。數(shù)據(jù)采集程序如圖4所示,。
2 程序示例
本文以步進電機任意加減速曲線測試為例,,展示了LabVIEW調(diào)用運動控制卡函數(shù)控制步進電機及采集編碼器反饋值的過程。程序流程圖如圖5所示,。
程序在調(diào)用初始化函數(shù)init_board后默認的將軸的最大速度設(shè)置為板卡允許的最大速度80 000 r/s,。因為控制卡的輸出脈沖頻率=脈沖分辨率×倍率,所以為了獲得比較好的速度精度程序初始化之后應(yīng)先調(diào)用set_maxspeed函數(shù)來設(shè)置需要達到的最大輸出脈沖頻率,設(shè)置后脈沖分辨率將重新設(shè)置,。程序在調(diào)用讀取軸反饋信息函數(shù)get_encoder前應(yīng)先調(diào)用set-getpos_mode函數(shù)和set_encoder_mode函數(shù)來設(shè)置編碼器反饋信號的模式及get_encoder函數(shù)獲取的位置值的來源,。以步進電機任意加減速曲線測試為例的程序后面板如圖6所示,前面板如圖7所示,。
綜上所述,,依托于LabVIEW函數(shù)庫調(diào)用技術(shù)以及運動控制卡可以實現(xiàn)步進電機的運動控制及運行特性的測試,系統(tǒng)人機交互界面良好,,可準確地對采集數(shù)據(jù)進行計算處理,、顯示及存儲,且各項運行參數(shù)方便可調(diào),。本文對步進電機的運動控制及運行特性測試系統(tǒng)而言,,具有成本低、使用方便,、操作簡單等特點,。
參考文獻
[1] 蔡祖光,史鐵林.步進電動機矩頻特性測試方法研究[J].電子器件,,2012(2):190-193.
[2] 楊樂平,,李海濤.LabVIEW程序設(shè)計與應(yīng)用[M].北京:電子工業(yè)出版社,2005.
[3] 陳樹學(xué),,劉萱.LabVIEW寶典[M].北京:電子工業(yè)出版社,,2011.
[4] 周志明.基于運動控制卡的步進電機控制系統(tǒng)[J].煤礦機械,2004(3):95-97.