基于 Labview 的步進電機檢測系統
摘要:步進電機具有控制精確、旋轉穩定和不受條件影響的特點。在檢測系統中采用STM32實現精確的控制,以A3977作為驅動器,實時檢測電機啟動、加速、減速等運動狀態。上位機完成對步進電機控制的命令的發送和將采集到的信息的顯示和保存,上位機采用圖形化語言Labview編寫,下位機通過CAN總線接收上位機的指令,完成對步進電機的驅動控制和實時檢測。
關鍵詞:步進電機;A3977;Labview;CAN總線
引言
步進電機是一種通過脈沖信號控制角位移的直流電機,通過對脈沖信號的控制就可以實現精準的定位。在實際動作中,儀器需要對機械結構進行精確定位,所以對電機的轉動精度要求比較高,采用步進電機并加上儀器的機械細分設計,可以達到所需轉動精度,因而廣泛地應用于數控機床、精密旋轉和線性位移系統中。步進電機能否按照要求運行決定了整個系統能否有效的運行,因而對步進電機的相關檢測至關重要。傳統的步進電機系統用邏輯電路實現控制,由于線路復雜不易調整,存在一定的局限性。采用Labview來實現步進電機的控制,圖形化的編程語言易于掌握,人機交互界面簡潔明了。通過控制STM32發送脈沖的個數來精確控制電機的角位移,同時改變脈沖頻率也可以對步進電機進行調速。上位機與下位機共同控制,實現對電機的精準控制。
一、工作原理
該檢測系統由5部分組成,為電源、上位機、下位機控制電路板、電機驅動電路和電機組成。該系統上位機通過CAN總線向下位機發出通信幀命令,下位機收到通信幀并進行解析后驅動指定的電機,將信號通過串并轉換傳遞到驅動芯片,通過驅動芯片實現對電機運動的控制。系統采用的驅動芯片帶有檢測的功能,將檢測到的模擬信號傳入到STM32,經過數模轉換后,下位機采集到的信息通過 CAN 總線把步進電機的狀態傳給上位機,上位機對檢測的數據進行處理和顯示,實現系統的控制和檢測。
二、硬件實現方案
1、上位機與下位機硬件相連
上位機與下位機通過CAN總線相連,總線通信模型采用單主結構,即主控為主節點,其它節點為從節點。通信方法包括主從命令/響應方式和從站事件觸發方式兩種。上位機通過CAN通信幀向下位機發送不同的指令,幀中包含功能碼,每個動作都對應不同的功能碼,當收到不同功能碼時,把相應的標志位置1,系統任務通過檢測標志位的狀態來判斷是否執行相應的操作,操作成功再向上位機發送成功CAN幀。
2.、步進電機的控制
步進電機是通過脈沖信號進行角位移控制的直流電機,通過對脈沖信號的控制即可實現步進電機的精確定位控制。一般情況下,STM32 產生的信號并不能直接驅動電機轉動,此時需要電機驅動器來帶動步進電機。
本次設計采用的是Allegro公司的A3977芯片。該芯片是雙極性、可細分、用于兩相式步進電機驅動的專用集成芯片,電流輸出2.5A,最大輸出功率可接近90w,其主要功能包括步進細分控制、方向控制、速度控制、電流控制、睡眠控制及功率放大等。由于采用了內置譯碼器技術,A3977可以很容易的使用最少的控制線,對步進電機實施微步進控制。由于 STM32 的GPIO驅動電壓為3.3V,A3977的最佳邏輯電壓為5V,因此使用電平轉換芯片LJ245A來提高GPIO的驅動能力。為了給STM32節省IO控制端,使用了具有8位串行輸入/輸出、并行輸出的移位寄存器芯片74HC595方便對電機的配置。STM32驅動步進電機總電路結構圖如圖1所示。
圖1 STM32驅動步進電機總電路結構圖
3、數據采集模塊
在前面的電機驅動設計中,采用A3977驅動電機,此芯片專門有兩個管腳SENSE用來控制芯片H橋的電流檢測。通過74HCT4051把需要檢測的步進電機驅動芯片 A3977的SENSE 管腳輸出到STM32的相應端口并進行模數轉換,以便實時檢測電機啟動、加速、減速等運動狀。MC0_OUT、MC1_OUT、MC2_OUT分別接STM32的PA6、PA7、PC4引腳,A/D_DJ接STM32的ADC模數轉換引腳PA2。如下圖2所示。
三、軟件實現方案
1、通信設計
(1)通信幀設計
通信采用CAN總線的主從方式,傳輸的數據包括兩種格式:用戶協議報文格式和用戶自定義CAN協議報文格式。數據幀包括SrcID、DestID、Type、subType和FuncID。SrcID為發送數據幀設備的ID編號,DestID為接收數據幀設備的ID編號;FuncID(功能碼)具體定義了系統中數據和命令交換或傳遞的種類;Type和subType表示數據幀的類型。通信中每幀數據需要源設備ID和目的設備ID,以完成網絡數據交換的尋址實現。上位機發送廣播命令幀,下位機識別命令幀并解析,執行上位機的相應動作,并將動作執行的信息通過數據幀發送給上位機,實現上位機與下位機的通信過程。
(2)通信界面設計
Labview是用圖標代替文本代碼創建應用程序,擁有流程圖程序控制設計語言的特點,具有編程直觀、編程速度快的優點。為了實現上位機和下位機通過CAN總線通信,設計了四個VI,CAN接收、CAN發送、通信設置和通信。運行前通過通信設置VI進行設備初始化。CAN發送和CAN接收用于上位機和下位機發送幀數據,并將幀數據解析出所傳遞的信息,執行相應的動作或在界面上顯示相應的數據。通信VI調用CAN接收和CAN發送,實現整個通信過程的運行。
2、步進電機的驅動以及檢測
檢測系統由七個部分組成,電機自動運行設置、電機移動設置、電機狀態查詢、步進電機停止、步進電機速度設置、數據顯示。利用Labview程序模塊化特征,電機自動運行設置,通過設置可以使步進電機按照設置的速度運行,無需手動連續操作;當電機運行過程中,可以通過電機狀態查詢界面,查詢步進電機所在位置的坐標,判斷電機運行是否符合要求;當電機出現故障時,可以通過步進電機移動設置、步進電機停止等界面檢測電機故障,快速查找問題所在。Labview的優勢在于VI可以單獨運行的同時,也可以被其他程序調用。本設計將整個程序分成各個子VI界面,通過主程序對各個子VI的調用完成整個程序的運行,當程序運行出現問題是,運行子VI可快速鎖定問題所在。將主程序分解成各個子程序,使程序易于理解,框圖簡潔,充分發揮了Labview 的優勢。
結 論
檢測電機能否正常運行,設計了基于Labview軟件平臺的檢測系統。系統通過 CAN 通信實現了控制主機與步進電機控制之間的通信,并可以將步進電機在運行過程中的所有參數反映到虛擬面板中,幫助操作人員以及用戶可以通過Labview虛擬儀器的前面板了解到其所有運行參數。這些技術應用到電機檢測系統上,使步進電機控制精度較高,Labview的圖形化語言簡潔并且生動,便于理解且系統運行穩定,用戶可以根據不同要求隨時調整控制方式,因此具有廣泛的應用價值。