摘要:為了實現(xiàn)PC機對步進電機的自動調(diào)節(jié),設(shè)計了基于虛擬儀器技術(shù)的步進電機控制方案。系統(tǒng)采用L298N芯片進行驅(qū)動,以LabVIEW作為開發(fā)平臺,并通過串口實現(xiàn)數(shù)據(jù)通信。結(jié)果顯示,該系統(tǒng)能夠很方便地實現(xiàn)步進電機的轉(zhuǎn)速轉(zhuǎn)向控制,而且利用虛擬儀器開發(fā)平臺LabVIEW編寫上位機程序,具有編程簡單,控制界面友好,程序可移植性強的特點。
關(guān)鍵詞:步進電機;串口;LabVIEW;VISA
步進電機是一種將電脈沖信號轉(zhuǎn)換成角位移或線位移的機電元件。它在在工業(yè)自動化控制、數(shù)控機床、機器人等領(lǐng)域有著廣泛的應(yīng)用。在遠程實驗系統(tǒng)中,經(jīng)常有需要利用步進電機對一些旋鈕、位置等進行自動調(diào)節(jié)。本文設(shè)計了基于虛擬儀器技術(shù)的步進電機控制方案。該方案采用虛擬儀器控制步進電機,編程簡單,界面友好,易于更改程序功能,控制靈活性得到了提高。
1 步進電機工作原理
步進電機按其力矩產(chǎn)生原理可以分為反應(yīng)式、永磁式和混合式幾種。本文采用的是反應(yīng)式二相四線步進電機,定子有兩個線圈繞組,設(shè)其中一個線圈繞組為A相,另一個線圈繞組為B相。當(dāng)給A相繞組通電時,該繞組即產(chǎn)生磁場,轉(zhuǎn)子齒與A相繞組各齒對齊;當(dāng)給B相繞組通電時,轉(zhuǎn)子齒將與B相繞組各齒對齊,這樣,轉(zhuǎn)子就旋轉(zhuǎn)了一個角度。依次給A相、B相繞組通電,就可以實現(xiàn)步進電機的旋轉(zhuǎn),改變通電的順序(即先給B相繞組通電,再給A相繞組通電)就可以改變電機旋轉(zhuǎn)的方向。另外,由于步進電機是由脈沖信號進行控制的,給電機發(fā)一個控制脈沖,它就轉(zhuǎn)一步,再發(fā)一個脈沖,它會再轉(zhuǎn)一步。兩個脈沖的時間間隔越短,步進電機就轉(zhuǎn)得越快。調(diào)整單片機發(fā)出的脈沖頻率,就可以對步進電機進行調(diào)速。
2 步進電機控制硬件電路
2.1 串行接口電路
串行接口電路由RS 232串行接口、MAX232芯片和AT89S51單片機三部分構(gòu)成。其中,RS 232串行接口用于連接PC的RS 232串行接口,MAX 232芯片用于銜接RS 232串行接口與AT89S51單片機,實現(xiàn)單片機輸入/輸出的串口信息到PC的串行接口信息的轉(zhuǎn)換,即AT89S51單片機信號的TTL電平到RS 232電平的轉(zhuǎn)換,從而實現(xiàn)二者之間電氣特性上的兼容。具體串行接口硬件電路如圖1所示。
2.2 驅(qū)動電路
步進電機的驅(qū)動電路有多種方案,本文采用芯片L298N進行驅(qū)動。該芯片是專用驅(qū)動集成電路,輸出電流大,輸出功率強。其輸出電流為2 A,最高電流4 A,最高工作電壓50 V,可以驅(qū)動感性負(fù)載,如大功率直流電機、步進電機、電磁閥等,特別是其輸入端可以與單片機直接相連,從而很方便地受單片機控制。
采用L298N芯片可以直接控制步進電機,并可以實現(xiàn)電機正轉(zhuǎn)與反轉(zhuǎn),實現(xiàn)此功能只需改變輸入端的邏輯電平。同時,為了避免電機對單片機的干擾,在驅(qū)動電路中加入光耦TPL-521,進行光電隔離,從而使系統(tǒng)能穩(wěn)定可靠的工作。具體驅(qū)動電路如圖2所示。
3 步進電機控制程序設(shè)計
3.1 下位機程序設(shè)計
單片機接口程序采用C51語言編寫。程序中,定義了數(shù)組table1和table2,用來存儲脈沖信號對應(yīng)的數(shù)據(jù);并定義了一個控制轉(zhuǎn)向的指針control mode,為該指針賦予不同的值,電機便實現(xiàn)正反轉(zhuǎn)功能。另外,程序中還定義一個速度控制變量mode,通過PC機發(fā)送命令字改變速度控制變量的值便可以實現(xiàn)轉(zhuǎn)速的控制。在main函數(shù)部分,先調(diào)用“串口初始化程序”,再調(diào)用“控制命令字判斷程序”以實現(xiàn)電機的速度和轉(zhuǎn)向控制。main函數(shù)的最后部分將單片機收到的命令字返回給PC機,方便觀察者查看通信的情況。下面給出main函數(shù)及控制變量的程序段。
3.2 上位機程序設(shè)計
單片機PC的通信是通過單片機的串口和PC串口之間的硬件連接實現(xiàn)的。由于LabVIEW軟件簡潔直觀,功能強大靈活,該設(shè)計采用LabVIEW編寫上位機的控制程序。程序編寫涉及VISA,它的實質(zhì)是一個標(biāo)準(zhǔn)的I/O函數(shù)庫。這些庫函數(shù)用于編寫儀器的驅(qū)動程序,完成計算機與儀器間的命令和數(shù)據(jù)傳輸,以實現(xiàn)對儀器的程控。
在LabVIEW里使用VISA,必須安裝NI-VISA程序包,安裝后,與串口通信相關(guān)的VISA函數(shù)位于Functions→ALL Functions→Instrurnent I/O→Serial子模板上,其中,VISA配置串口函數(shù)用于設(shè)定一些參數(shù),并將指定的串口按特定設(shè)置初始化;VISA寫入函數(shù)將“寫入緩沖區(qū)”的數(shù)據(jù)寫入指定的串口;VISA讀取函數(shù)從指定的串口中讀取指定字節(jié)的數(shù)據(jù),并將數(shù)據(jù)返回至“讀取緩沖區(qū)”;VISA關(guān)閉函數(shù)關(guān)閉指定串口的會話句柄或事件對象。
本文設(shè)計的步進電機控制程序采用上述的通信函數(shù)結(jié)合事件結(jié)構(gòu)進行編寫,并通過程序調(diào)試,實現(xiàn)了步進電機的轉(zhuǎn)向和轉(zhuǎn)速控制。程序前面板與程序框圖分別如圖3和圖4所示。
4 結(jié)語
本文利用圖形化編程語言LabVIEW編寫程序?qū)崿F(xiàn)了PC與單片機的串口通信,并結(jié)合單片機外圍電路對步進電機進行了轉(zhuǎn)速和轉(zhuǎn)向的控制。實驗證明采用LabvIEW編寫的程序?qū)Σ竭M電機進行控制具有人機交互界面友好、編程簡單、效率高等特點,并且采用LabVIEW編寫的控制程序移植性較強,可以很方便地被其他程序凋用以構(gòu)成功能更齊全的程序。