王廬山
摘? 要:Labview是一款非常優(yōu)秀的圖形編程開放平臺,很容易設計出非常好的上位機軟件,可以在多個平臺上運行。微控制器可以很方便地進行底層驅動的設計。本文將兩者融合,開發(fā)Labview與微控制器步進電機控制系統(tǒng),可以實現Labview上位機對步進電機的轉速、方向進行全方位的控制,從而實現遠程控制。經實際運行,系統(tǒng)能夠較好地控制步進電機,可用于上位機對步進電機控制場合。
關鍵詞:Labview? 步進電機? 微控制器? 遠程控制? 上位機
中圖分類號:TP273.5? ? ? ? ? ? ? ? ? ? ? ? ? 文獻標識碼:A? ? ? ? ? ? ? ? ? ?文章編號:1674-098X(2020)09(c)-0069-03
Abstract: Labview is a very excellent graphic programming open platform. It is easy to design a very good upper computer software, which can run on multiple platforms. The microcontroller can easily design the bottom driver. In this paper, the integration of the two, the development of Labview and microcontroller stepper motor control system, which can achieve the upper computer Labview stepper motor speed, direction of all-round control, so as to achieve remote control. After practical operation, the system can control the stepping motor better, and can be used in the upper computer to control the stepping motor.
Key Words: Labview; Stepper motor; Microcontroller; Telecontrol; Upper monitor
1? 硬件系統(tǒng)設計
1.1 微控制系統(tǒng)設計
微控制部分選用常用的STC89C52RC單片機為步進電機的控制核心,可以更好地滿足步進電機的控制,如果在之后的發(fā)展中對系統(tǒng)進行延伸可以為其提供良好的接口。單片機產發(fā)生控制步進電機運行的數字脈中的信號,將信號送到步進電機驅動電路,從而控制步進電機啟動、停止、加減速等功能,另外還可以用顯示器來顯示步進電機當前的工作狀態(tài)數據。
1.2 步進電機驅動電路設計
步進電機是一種將電脈沖轉化為角位移的執(zhí)行機構。通俗一點講:當步進驅動器接收到一個脈沖信號,它就驅動步進電機按設定的方向轉動一個固定的角度(步進角)??梢酝ㄟ^控制脈沖個數來控制角位移量,從而達到準確定位的目的;同時可以通過控制脈沖頻率來控制電機轉動的速度和加速度,從而達到調速的目的。
本文中用到的步進電機為四相步進電機,在4相電機中有4組線圈,若電流按順序通過線圈則使電機產生轉動。對于四相步進電機而言,把各線圈中一端接在一起,就是步進電機的公共端。各線圈的另一端引出來,就是四根相線,稱這四根相線為A、B、C、D的勵磁相。采用單雙相八拍工作方式既可以保持較高的轉動力矩又可以提高控制精度。
步進電機的驅動電路采用ULN2003,ULN2003是大電流驅動陣列,可直接驅動繼電器等負載。輸入5V TTL電平,輸出可達500mA/50V。ULN2003是高耐壓、大電流達林頓系列,由七個硅NPN達林頓管組成。
采用微控制器來控制步進電機,實現了軟件與硬件相結合的控制方法。用軟件代替環(huán)形分配器,達到了對步進電機的最佳控制。系統(tǒng)中采用51單片機接口線直接去控制步進電機各相驅動線路。微控制器發(fā)出勵磁依賴,實現對步進電機的控制,可以控制電機的正轉、反轉、停止、指定速度運行等功能。
上位機Labview通過串行口與微控制器連接,上位機發(fā)送控制命令給單片機,微控制器接收并解析命令,從而實現對步進機的控制。
2? 軟件系統(tǒng)設計
2.1 微控制器軟件系統(tǒng)設計
在主程序中,當接收到Labview上位機發(fā)出的步進電機控制指令后,當微控制器收到stop命令時,步進電機停止;當微控制器收到forward命令時,步進電機正轉;當微控制器收到back命令時,步進電機反轉;當微控制器收到speed num命令時,步進電機調速;當微控制器收到angle num命令時,步進電機轉動指定的角度后停止。
2.2 步進電機驅動軟件設計
步進電機驅動程序主要有兩個函數,一個是步進電機控制函數,一個是步進電機設定轉動角度的函數,代碼如下:
/***************************************************************
函數功能:步進電機控制
輸入參數:無
輸出參數:無
外部變量:Step_N2ms? BeatCode[]? Step_Drection? beats
相關函數:無
注? ? 意:本函數要用到定時器T0
****************************************************************/
void BJDJ_Control()
{
unsigned char tmp;? //定義一個臨時變量
static unsigned char index = 0;? //定義節(jié)拍輸出索引
if((Step_N2ms==1)&&(beats!=0))//2ms執(zhí)行一拍
{
Step_N2ms=0;
tmp = Motor_Port;? ?//用tmp把P1口當前值暫存
tmp = tmp & 0xF0;? ? ?//用&操作清零低4位
tmp = tmp | BeatCode[index]; //用|操作把節(jié)拍代碼寫到低4位
Motor_Port? = tmp; //把低4位的節(jié)拍代碼和高4位的原值送回P1
if(Step_Drection==1)
{index++; beats--; }
else if(Step_Drection==2)
{index--; beats--; }? ?//節(jié)拍輸出索引遞增
index = index & 0x07;? ?//用&操作實現到8歸零
}
}
2.3 Labview上位機軟件設計
在Labview上位機應用程序中,主要設置步進電機的轉速,啟動與停止,正轉與反轉控制,當按下相關的按鈕后,上位機通過串口線向微控制器發(fā)出相應的指令,速度指令為speed8表示每分鐘轉3圈,dir1表示正轉,dir2表示反轉,start表示啟動步進電機,stop表示停止步進電機。上位機界面如圖1所示。
3? 結語
從系統(tǒng)運行結果分析,本系統(tǒng)采用基于Labview與微控制器步進電機控制系統(tǒng)設計,完成了該系統(tǒng)的硬件和軟件設計部分,硬件部分設計了微控制器系統(tǒng)和步進電機控制系統(tǒng)。軟件部分包括微控制器部分步進電機底層控制程序,上位機前面板設計、控制程序的編寫,實現了可以通過Labview上位機,對步進電機進行轉動方向和指定轉動速度,與傳統(tǒng)的PLC或單片機步進電機控制系統(tǒng)相比,其成本和可維護性、操作性更強更簡單,該系統(tǒng)已經在實際測量系統(tǒng)中得到了應用。
參考文獻
[1] 王敏生.Labview寶典[M].2版.北京:電子工業(yè)出版社,2017.
[2] 董海棠.單片機原理與應用系統(tǒng)設計[M].成都:西南交通大學出版社,2017.
[3] 邢林峰.PCI Express 體系結構導讀[M].北京:機械工業(yè)出版社,2020.
[4] 李曉芳,馬野,蔡暢.基于單片機的交通信號燈控制系統(tǒng)設計與仿真[J].科技創(chuàng)新導報,2019,16(2):89-90.
[5] 楊麗.基于變結構PID控制的兩相混合式步進電機閉環(huán)控制系統(tǒng)設計[D].天津:天津理工大學,2019.
[6] 吳一平.基于51單片機的直流電機PWM調速系統(tǒng)[J].科技創(chuàng)新導報,2018,15(13):108,110.
[7] 焦玉朋.基于51單片機的PWM直流電機調速系統(tǒng)[D].呼和浩特:內蒙古大學,2013.