蔣 敬,吳本科,高 健,袁自鈞
(合肥工業(yè)大學(xué)電子科學(xué)與應(yīng)用物理學(xué)院,安徽合肥 230009)
虛擬儀器通過(guò)串行接口控制步進(jìn)電機(jī)的設(shè)計(jì)
蔣 敬,吳本科,高 健,袁自鈞
(合肥工業(yè)大學(xué)電子科學(xué)與應(yīng)用物理學(xué)院,安徽合肥 230009)
為了便于為步進(jìn)電機(jī)驅(qū)動(dòng)控制系統(tǒng)提供驅(qū)動(dòng)信號(hào)和控制步進(jìn)電機(jī)精確定位。通過(guò)對(duì)PC機(jī)的串行接口設(shè)備中各個(gè)信號(hào)線的傳輸特點(diǎn)的分析,利用虛擬儀器LabVIEW開(kāi)發(fā)平臺(tái)、編程控制PC機(jī)的RS-232C串行接口、TxD數(shù)據(jù)發(fā)送信號(hào)線和RTS流控制信號(hào)線,提供了步進(jìn)電機(jī)驅(qū)動(dòng)器控制信號(hào)精確控制步進(jìn)電機(jī)的步進(jìn)運(yùn)行。該設(shè)計(jì)避免了復(fù)雜的文本式編程語(yǔ)言、簡(jiǎn)化了程序設(shè)計(jì)過(guò)程、并已成功應(yīng)用于HB型兩相步進(jìn)電機(jī)的定位控制,且運(yùn)行控制效果良好。
LabVIEW;虛擬儀器;串行接口;步進(jìn)電機(jī)
隨著控制電機(jī)在動(dòng)力應(yīng)用機(jī)械加工、精密儀器控制領(lǐng)域的廣泛應(yīng)用,其控制設(shè)計(jì)也在不斷優(yōu)化。尤其是步進(jìn)電機(jī)這種不使用反饋回路,就能進(jìn)行速度控制和定位控制的電機(jī)[1],對(duì)其進(jìn)行優(yōu)化設(shè)計(jì)尤為重要。以往對(duì)步進(jìn)電機(jī)的控制多采用C/C++、VC++、匯編等編程[3-11],而利用 LabVIEW 虛擬儀器平臺(tái)編程較少。文中運(yùn)用LabVIEW編程技術(shù)對(duì)PC機(jī)串行接口控制,為步進(jìn)電機(jī)驅(qū)動(dòng)器發(fā)送行進(jìn)脈沖和正反轉(zhuǎn)的控制信號(hào),從而達(dá)到對(duì)步進(jìn)電機(jī)的靈活控制。在虛擬儀器編程過(guò)程中,運(yùn)用LabVIEW平臺(tái)內(nèi)的VISA串口配置、VISA寫(xiě)入、屬性節(jié)點(diǎn)等控件,采用圖形化編程方式進(jìn)行編程,避免復(fù)雜的文本式語(yǔ)言編程過(guò)程。此方法靈活,且編程簡(jiǎn)單,有利于促進(jìn)步進(jìn)電機(jī)控制系統(tǒng)的廣泛應(yīng)用。該步進(jìn)電機(jī)的控制方法可應(yīng)用于精密切割、精密焊接、云臺(tái)定位等控制系統(tǒng)領(lǐng)域。
采用LabVIEW平臺(tái)設(shè)計(jì)對(duì)RS-232C串行接口的傳輸信號(hào)線進(jìn)行設(shè)置,實(shí)現(xiàn)對(duì)步進(jìn)電機(jī)的行進(jìn)控制。關(guān)鍵涉及到如何按照控制系統(tǒng)和步進(jìn)電機(jī)類型的硬件要求發(fā)送脈沖信號(hào)和控制信號(hào)[2-3]。
串行接口有多個(gè)標(biāo)準(zhǔn),實(shí)驗(yàn)采用RS-232C標(biāo)準(zhǔn),規(guī)定邏輯1的電平為-3~-15 V,邏輯0的電平為3~15 V,RS-232C串行接口設(shè)備通常情況下僅使用數(shù)據(jù)發(fā)送端TxD、數(shù)據(jù)接收端RxD和信號(hào)地GND進(jìn)行串行通信,串口剩余的引腳在通訊過(guò)程中進(jìn)行流控制與檢測(cè)MODEM信號(hào),也可作為I/O端口使用。
通過(guò)分析串行接口通信過(guò)程可知,從TxD端所發(fā)出的脈沖能夠滿足步進(jìn)電機(jī)的控制需要[6],改變RTS信號(hào)線電平輸出可以控制步進(jìn)電機(jī)的方向[6]。具體應(yīng)用設(shè)置方法:
(1)改變發(fā)送的字節(jié)數(shù)及所發(fā)送的字節(jié)內(nèi)容,在TxD端產(chǎn)生一定數(shù)量的脈沖,可用TXD發(fā)送脈沖信號(hào)(Pulse)作為控制步進(jìn)電機(jī)行進(jìn)信號(hào)。
(2)改變波特率可動(dòng)態(tài)改變發(fā)送脈沖的頻率,從而改變步進(jìn)電機(jī)行進(jìn)速度。
(3)以 RTS作為方向控制信號(hào)(Dir),通過(guò)LabVIEW中VISA的屬性節(jié)點(diǎn)來(lái)控制RTS信號(hào)的高低電平輸出,控制步進(jìn)電機(jī)的步進(jìn)方向。
因此在VISA中寫(xiě)入控件控制TxD脈沖輸出數(shù)量和RTS高低電平輸出便可控制步進(jìn)電機(jī)的運(yùn)轉(zhuǎn)。
步進(jìn)電機(jī)控制中的數(shù)據(jù)自動(dòng)采集處理和驅(qū)動(dòng)控制系統(tǒng)由軟件和硬件兩部分組成。硬件部分提供驅(qū)動(dòng)細(xì)分設(shè)置,使步進(jìn)電機(jī)精確平穩(wěn)運(yùn)行。軟件部分提供步進(jìn)電機(jī)控制的行進(jìn)控制信號(hào)和處理系統(tǒng)的運(yùn)行平臺(tái),完成對(duì)虛擬儀器的構(gòu)建和數(shù)據(jù)獲取與處理。下面分別對(duì)設(shè)計(jì)的硬件及軟件進(jìn)行說(shuō)明。
如圖1所示是硬件控制系統(tǒng),串口設(shè)備為RS-232C串行接口,SM為步進(jìn)電機(jī)。數(shù)據(jù)采集設(shè)備采集數(shù)據(jù)通過(guò)串口設(shè)備送到PC機(jī),PC機(jī)對(duì)采集到的數(shù)據(jù)進(jìn)行處理轉(zhuǎn)換成脈沖信號(hào),與其正反轉(zhuǎn)信號(hào)并通過(guò)串口設(shè)備送入驅(qū)動(dòng)器,以完成根據(jù)數(shù)據(jù)采集信號(hào)的要求轉(zhuǎn)換成相應(yīng)數(shù)量的脈沖信號(hào)和對(duì)應(yīng)的正方轉(zhuǎn)控制信號(hào)對(duì)步進(jìn)電機(jī)行進(jìn)進(jìn)行控制。步進(jìn)電機(jī)驅(qū)動(dòng)器的接線端子CP+、CW+、CP-、CW -分別與串口的 GND、GND、TxD、RTS端連接,TxD提供步進(jìn)電機(jī)行進(jìn)脈沖信號(hào),而RTS提供步進(jìn)電機(jī)行進(jìn)方向信號(hào)。
圖1 步進(jìn)電機(jī)驅(qū)動(dòng)硬件連接示意圖
系統(tǒng)選取的步進(jìn)電機(jī)是42BYG系列HB型兩相步進(jìn)電機(jī),其定子相數(shù)P=2,主極mP=4,m=2,n=6,轉(zhuǎn)子極對(duì)數(shù)Nr=25,步距角θs由式θs=(360°/mP)-(360°n/Nr)進(jìn)行計(jì)算,將上述數(shù)據(jù)代入后得步距角θs=3.6°,步距 0.04 mm/步。
所用的驅(qū)動(dòng)器為HB202M型,其能將步進(jìn)電機(jī)步距角θs作進(jìn)一步細(xì)分,從而使轉(zhuǎn)子運(yùn)行效果光滑,保證步進(jìn)電機(jī)平穩(wěn)運(yùn)行。驅(qū)動(dòng)器CP+和CW+接線端子為正輸入端,CP-和CW-接線端子為負(fù)輸入端。細(xì)分設(shè)置有2細(xì)分、4細(xì)分、…、64細(xì)分。文中使用4細(xì)分,即400脈沖數(shù)/圈,此細(xì)分模式下步距角可達(dá)到θs=0.9°,步進(jìn)電機(jī)行進(jìn)定位更精確。
軟件設(shè)計(jì)部分包括數(shù)據(jù)獲取、數(shù)據(jù)處理和數(shù)據(jù)發(fā)送3個(gè)模塊:數(shù)據(jù)獲取模塊是從數(shù)據(jù)采集設(shè)備獲得原始數(shù)據(jù)并簡(jiǎn)單處理;數(shù)據(jù)處理模塊是對(duì)原始數(shù)據(jù)處理得到脈沖數(shù)量和正反轉(zhuǎn)信號(hào);數(shù)據(jù)發(fā)送模塊是通過(guò)串口設(shè)備將脈沖和正反轉(zhuǎn)信號(hào)發(fā)送到細(xì)分驅(qū)動(dòng)器。下面對(duì)各模塊進(jìn)行詳細(xì)說(shuō)明:
(1)數(shù)據(jù)獲取模塊。如圖2所示,由數(shù)據(jù)獲取控件從指定路徑獲得原始數(shù)據(jù),然后經(jīng)過(guò)轉(zhuǎn)換從數(shù)據(jù)輸出端發(fā)出。
圖2 數(shù)據(jù)獲取模塊
(2)數(shù)據(jù)處理模塊。如圖3所示,數(shù)據(jù)讀入控件從前面模塊讀入數(shù)據(jù),經(jīng)過(guò)處理送入“減”控件得到差值,該值一方面送入“>0?”控件比較得到正反轉(zhuǎn)信號(hào)由“方向數(shù)據(jù)輸出端”發(fā)出,另一方面經(jīng)過(guò)計(jì)算處理得到步進(jìn)電機(jī)需要轉(zhuǎn)動(dòng)的脈沖數(shù)量,然后送入“脈沖轉(zhuǎn)換.vi”得到脈沖由脈沖輸出端輸出。
圖3 數(shù)據(jù)處理模塊
表1 實(shí)驗(yàn)數(shù)據(jù)
(3)數(shù)據(jù)發(fā)送模塊。如圖4所示。由數(shù)據(jù)處理模塊得到的脈沖通過(guò)VISA寫(xiě)入控件發(fā)送到TxD端,并用脈沖計(jì)數(shù)控件記下發(fā)送脈沖數(shù)量并和轉(zhuǎn)換得到的脈沖數(shù)量進(jìn)行比較,判斷轉(zhuǎn)換得到的脈沖數(shù)量與發(fā)送的數(shù)量是否一致。同時(shí)由方向數(shù)據(jù)輸入得到的方向信號(hào)對(duì)RTS狀態(tài)進(jìn)行相應(yīng)設(shè)置并發(fā)送至RTS信號(hào)線上。
圖4 數(shù)據(jù)發(fā)送模塊
以上程序設(shè)置完成后,需要再對(duì)前面板的顯示控件適當(dāng)調(diào)整,以方便觀察。
在實(shí)驗(yàn)過(guò)程中提取以下數(shù)據(jù):原數(shù)據(jù)、處理數(shù)據(jù)、理論脈沖數(shù)、發(fā)送脈沖數(shù)和RTS State的10組數(shù)據(jù),如表1所示。表中的原數(shù)據(jù)是數(shù)據(jù)采集設(shè)備得到的位置數(shù)據(jù),其是數(shù)據(jù)獲得模塊的數(shù)據(jù)輸出端數(shù)據(jù);處理數(shù)據(jù)是在數(shù)據(jù)處理模塊中“減”控件輸出端輸出的位置差值;理論脈沖數(shù)是步進(jìn)電機(jī)行進(jìn)到確定位置需要的步進(jìn)脈沖,是數(shù)據(jù)處理模塊中脈沖轉(zhuǎn)換輸出的由“位置差值”轉(zhuǎn)換得到的數(shù)據(jù)(理論脈沖數(shù)=|位置差值|/步距);發(fā)送脈沖數(shù)是串行接口實(shí)際發(fā)送的脈沖數(shù),是由脈沖計(jì)數(shù)控件得到;RTS State是數(shù)據(jù)發(fā)送模塊中對(duì)應(yīng)方向數(shù)據(jù)輸入信號(hào)設(shè)置的RTS狀態(tài),Asserted狀態(tài)正轉(zhuǎn)、Unasserted狀態(tài)反轉(zhuǎn)。
由表1可知,實(shí)驗(yàn)數(shù)據(jù)和實(shí)際觀察步進(jìn)電機(jī)行進(jìn)情況得到的實(shí)際運(yùn)行結(jié)果和實(shí)際數(shù)據(jù)在誤差范圍內(nèi)吻合。實(shí)驗(yàn)結(jié)果表明這種控制的步進(jìn)電機(jī)的方法切實(shí)可行。
使用虛擬儀器開(kāi)發(fā)平臺(tái)編程實(shí)現(xiàn)計(jì)算機(jī)RS-232C串行接口提供控制信號(hào),對(duì)步進(jìn)電機(jī)的控制是可行的。圖形化模塊的編程,特別是VISA屬性節(jié)點(diǎn)控制RTS信號(hào)線的運(yùn)用,從而無(wú)需用CLF調(diào)用dll文件借用其他文本式編程文件調(diào)用Windows API設(shè)置RTS控制線信號(hào),可避免復(fù)雜的文本式編程語(yǔ)言的編程,節(jié)約編程時(shí)間,有利于提高研究人員的工作效率。該控制系統(tǒng)設(shè)計(jì)已成功控制HB型兩相步進(jìn)電機(jī)運(yùn)行,控制效果良好。
[1]坂本正文.步進(jìn)電機(jī)應(yīng)用技術(shù)[M].王自強(qiáng),譯.北京:科學(xué)出版社,2010.
[2]劉樂(lè)善.微型計(jì)算機(jī)接口技術(shù)及應(yīng)用[M].武漢:華中理工大學(xué)出版社,2004.
[3]李景峰,楊麗娜,潘恒,等.串口通信技術(shù)詳解[J].北京:機(jī)械工業(yè)出版社,2010.
[4]謝其德,張?jiān)圃?利用串口實(shí)現(xiàn)步進(jìn)電機(jī)的控制[J].現(xiàn)代電子技術(shù),2004,29(17):9 -11.
[5]陳慧超,陳永明.一種用VB實(shí)現(xiàn)并口控制步進(jìn)電機(jī)的方法[M].科技創(chuàng)新導(dǎo)報(bào),2010(7):23.
[6]王繼業(yè).用串口控制步進(jìn)電機(jī)的兩維運(yùn)動(dòng)系統(tǒng)[J].微計(jì)算機(jī)信息:測(cè)控自動(dòng)化,2007,23(3):131 -148.
[7]陳家鳳,彭其圣.基于V C++的步進(jìn)電機(jī)控制方法探討[J].工控技術(shù),2005(9):52 -55.
[8]周明剛.基于V C++的步進(jìn)電機(jī)控制方法[J].微特電機(jī),2002(6):34-35.
[9]陳滿生,田輝鵬.基于LabVIEW與單片機(jī)的步進(jìn)電機(jī)控制系統(tǒng)[J].企業(yè)科技與發(fā)展,2008(22):72-76.
[10]HANY M H.FPGA implementation of adaptive ANN controller for speed regulationof permanent magnet stepper motor drives[J].Energy Conversion and Management,2011,25(6):1252-1257.
[11]QUY N L,JAE -WOOK J.Neural-network-based Low -speed-damping controller for stepper motor with an FPGA[J].IEEE Transactions on Industrial Electronics,2010,57(9):197-205.
Design of Stepper Motor Control by Virtual Instrumentation via Serial Interface
JIANG Jing,WU Benke,GAO Jian,YUAN Zijun
(School of Electronics and Applied Physics,Hefei University of Technology,Hefei 230009,China)
For convenient supply of driving signal to driving and controlling system of stepper motor and accurate positioning of controlling stepper motor,the paper analyses the signal line of a personal computer serial interface equipment special conveying,using Virtual Instrumentation LabVIEW Development Platform to program control the signal line of TxD and RTS supplying signal of PC serial interface RS-232C This method avoids complicated text programing language,thus simplifying the process of devising program.The design of control system has been used in controlling fixed position of Hybrid two phrase stepper motor with good performance.
LabVIEW;virtual instrumentation;serial interface;stepper motor
TP273
A
1007-7820(2012)08-046-03
2012-02-10
安徽省科技廳基金資助項(xiàng)目(08-111)
蔣敬(1985—),男,碩士研究生。研究方向:激光技術(shù)應(yīng)用。吳本科(1961—),男,副教授,碩士。研究方向:物理學(xué),計(jì)算物理學(xué),激光技術(shù)應(yīng)用。高健(1987—),男,碩士研究生。研究方向:激光應(yīng)用。袁自均(1963—),男,講師,碩士。研究方向:電子科學(xué)。