楊美程+楊益鈞+丁寧
摘 要:AVR單片機(jī)為核心的嵌入式系統(tǒng),配備專用步進(jìn)電機(jī)驅(qū)動(dòng)器實(shí)現(xiàn)對(duì)絲桿步進(jìn)電機(jī)運(yùn)動(dòng)的控制工作,LabVIEW軟件構(gòu)建虛擬儀器系統(tǒng)并創(chuàng)建友好交互界面。單片機(jī)和LabVIEW之間確定串口通信規(guī)則,使LabVIEW能夠發(fā)送相應(yīng)字符串到單片機(jī)從而實(shí)現(xiàn)對(duì)絲桿步進(jìn)電機(jī)啟停、運(yùn)動(dòng)方向、運(yùn)動(dòng)步數(shù)的直接控制,并能夠讀取電機(jī)相關(guān)運(yùn)動(dòng)狀態(tài)。文章設(shè)計(jì)的絲桿電機(jī)運(yùn)動(dòng)控制系統(tǒng)具有工作穩(wěn)定,易于操作和可移植性強(qiáng)的特點(diǎn)。
關(guān)鍵詞:?jiǎn)纹瑱C(jī);LabVIEW;步進(jìn)電機(jī);串口通信
中圖分類號(hào):TM383.6 文獻(xiàn)標(biāo)志碼:A 文章編號(hào):2095-2945(2017)23-0011-02
1 概述
絲桿步進(jìn)電機(jī),又稱線性步進(jìn)電機(jī),由于其特殊的機(jī)械機(jī)構(gòu)和工作機(jī)理,在日常實(shí)驗(yàn)研究及工業(yè)生產(chǎn)等相關(guān)領(lǐng)域發(fā)揮著越來(lái)越大的作用。隨著技術(shù)的不斷發(fā)展創(chuàng)新,對(duì)于絲桿步進(jìn)電機(jī)運(yùn)動(dòng)的控制方法已經(jīng)不僅僅只限于單種技術(shù)的使用,而是多技術(shù)混合,結(jié)合各自的獨(dú)特優(yōu)勢(shì)來(lái)實(shí)現(xiàn)最優(yōu)化的系統(tǒng)設(shè)計(jì)。本系統(tǒng)以AVR單片機(jī)為核心搭建硬件工作電路,LabVIEW軟件創(chuàng)建虛擬儀器系統(tǒng),解決了步進(jìn)電機(jī)工作噪聲較大,控制操作不便等問(wèn)題。
2 系統(tǒng)組成
系統(tǒng)主要由裝有LabVIEW軟件的計(jì)算機(jī),AVR單片機(jī)、電機(jī)驅(qū)動(dòng)器和絲桿步進(jìn)電機(jī)組成,系統(tǒng)組成框圖如圖1所示。
其中本系統(tǒng)中選用美國(guó)國(guó)家儀器(NI)公司研制開(kāi)發(fā)的2014版LabVIEW軟件,LabVIEW是一種圖形化的編程語(yǔ)言的開(kāi)發(fā)環(huán)境,可以方便地建立自己的虛擬儀器,利用其編寫的上位機(jī)程序控制下位機(jī);下位機(jī)選用ATMEL公司 中8位系列單片機(jī)的ATmega128系列單片機(jī),該款單片機(jī)穩(wěn)定性極高,功耗也很低,單片機(jī)與計(jì)算機(jī)之間通過(guò)USB線連接;電機(jī)驅(qū)動(dòng)器選用TB6600型號(hào)的兩相式步進(jìn)電機(jī)驅(qū)動(dòng)器,可實(shí)現(xiàn)正反轉(zhuǎn)控制,通過(guò)3位撥碼開(kāi)關(guān)選擇7檔細(xì)分控制,3位撥碼快關(guān)選擇8檔電流控制,能達(dá)到低振動(dòng)、小噪聲、高速度的效果;絲桿步進(jìn)電機(jī)選用機(jī)身長(zhǎng)度40mm,相電流1.7A,保持轉(zhuǎn)矩43N·cm,導(dǎo)程8mm的42絲桿步進(jìn)電機(jī)。
3 系統(tǒng)功能實(shí)現(xiàn)
本系統(tǒng)是一種絲桿步進(jìn)電機(jī)運(yùn)動(dòng)控制系統(tǒng),最終可通過(guò)LabVIEW直接發(fā)送控制絲桿步進(jìn)電機(jī)啟停、運(yùn)動(dòng)方向以及運(yùn)動(dòng)步數(shù)的命令,并能讀取電機(jī)相關(guān)運(yùn)動(dòng)狀態(tài)。要完成上述功能需要單片機(jī)硬件控制電機(jī)、單片機(jī)與LabVIEW串口通信和LabVIEW狀態(tài)機(jī)三個(gè)基本功能的實(shí)現(xiàn)。
3.1 單片機(jī)硬件控制電機(jī)
步進(jìn)電機(jī)的運(yùn)動(dòng)離不開(kāi)PWM波的使用,因此將AVR單片機(jī)中定時(shí)器T0處于8位快速PWM工作模式,可產(chǎn)生高頻的PWM波形。根據(jù)本系統(tǒng)中絲桿電機(jī)的結(jié)構(gòu)參數(shù)及實(shí)際應(yīng)用情況,經(jīng)過(guò)一系列的測(cè)試,定時(shí)器T0工作在系統(tǒng)8分頻頻率下,初值TCNT0設(shè)為0,輸出比較寄存器值OCR0設(shè)定為0x7F,此時(shí)相應(yīng)引腳能夠輸出占空比50%,頻率5.68KHz的PWM方波。將PWM方波輸入到驅(qū)動(dòng)器PUL+脈沖信號(hào)輸入端,驅(qū)動(dòng)器電機(jī)繞組連接端子與電機(jī)兩相相連,通過(guò)細(xì)分控制和電流控制撥碼開(kāi)關(guān)的選擇,使絲桿步進(jìn)電機(jī)在細(xì)分工作方式下運(yùn)動(dòng),本系統(tǒng)中選擇32細(xì)分可達(dá)到6400脈沖/轉(zhuǎn),單步螺桿螺距相對(duì)運(yùn)動(dòng)0.025mm,此時(shí)電機(jī)運(yùn)動(dòng)平滑,穩(wěn)定,噪聲小。對(duì)于電機(jī)運(yùn)動(dòng)方向的控制,單片機(jī)通過(guò)直接控制電機(jī)驅(qū)動(dòng)器DIR電機(jī)正反轉(zhuǎn)控制端的電平變化即可實(shí)現(xiàn)。單片機(jī)、電機(jī)驅(qū)動(dòng)器和絲桿步進(jìn)電機(jī)連接如圖2所示。
AVR單片機(jī)嵌入式系統(tǒng)根據(jù)收到的步數(shù)指令使電機(jī)運(yùn)動(dòng)相應(yīng)的步數(shù),且能夠?qū)?dāng)前運(yùn)動(dòng)步數(shù)發(fā)送出去。本系統(tǒng)設(shè)置定時(shí)器T1定時(shí)間隔8.25ms,定時(shí)到來(lái)記一次步數(shù)且根據(jù)方向標(biāo)志位確定步數(shù)的加或減。單片機(jī)收到步數(shù)指令后先判斷該指令步數(shù)與當(dāng)前電機(jī)運(yùn)動(dòng)步數(shù)的大小來(lái)確定電機(jī)運(yùn)動(dòng)方向,隨后使電機(jī)運(yùn)動(dòng)相應(yīng)步數(shù),并在收到讀取步數(shù)指令后將當(dāng)前步數(shù)發(fā)送出去。
3.2 單片機(jī)與LabVIEW串口通信
首先確定單片機(jī)與LabVIEW異步串口通信基本規(guī)則,本系統(tǒng)中波特率設(shè)置2400bps,數(shù)據(jù)位8位,停止位1位,無(wú)奇偶校驗(yàn)位、停止位和終止符。編寫單片機(jī)串口通信初始化,發(fā)送字符串,接收字符串以及中斷服務(wù)函數(shù),使單片機(jī)能接收到相應(yīng)指令字符串執(zhí)行相應(yīng)動(dòng)作,并發(fā)送相關(guān)數(shù)據(jù)。
LabVIEW中使用儀器I/O工具包中串口相關(guān)函數(shù)完成串口通信。其中使用VISA配置串口函數(shù)連接單片機(jī)設(shè)備并配置相關(guān)通信參數(shù);VISA寫入函數(shù)寫入緩沖區(qū)接線端連接需要寫入的命令字符串;利用Byte at Port屬性節(jié)點(diǎn)返回輸入緩沖區(qū)已存在的字節(jié)數(shù),并連接到VISA讀取函數(shù)字節(jié)總數(shù)接線端,避免讀函數(shù)一直處于等待狀態(tài),阻塞讀進(jìn)程,導(dǎo)致線程中的其他操作無(wú)法進(jìn)行;VISA讀取函數(shù)讀取緩沖區(qū)接線端能輸出從指定設(shè)備中讀取到的字符串?dāng)?shù)據(jù);最后使用VISA關(guān)閉函數(shù)釋放設(shè)備會(huì)話空間從而完成設(shè)備間的通信。
3.3 LabVIEW狀態(tài)機(jī)
LabVIEW狀態(tài)機(jī)對(duì)于不同事件的動(dòng)作是通過(guò)在循環(huán)結(jié)構(gòu)中放置事件結(jié)構(gòu)實(shí)現(xiàn)的,本系統(tǒng)所用LabVIEW狀態(tài)機(jī)的程序框圖如圖3所示。在本系統(tǒng)中要實(shí)現(xiàn)對(duì)絲桿步進(jìn)電機(jī)啟停、運(yùn)動(dòng)方向、運(yùn)動(dòng)步數(shù)的直接控制,并讀取相關(guān)運(yùn)動(dòng)狀態(tài),則共需要?jiǎng)?chuàng)建五個(gè)事件結(jié)構(gòu),分別為“上升”值改變結(jié)構(gòu),內(nèi)有上升布爾控件及“U”字符串;“下降”值改變結(jié)構(gòu),內(nèi)有下降布爾控件及“D”字符串;“讀取步數(shù)”值改變結(jié)構(gòu),內(nèi)有讀取步數(shù)布爾控件及“A”字符串;“寫入步數(shù)”值改變結(jié)構(gòu),內(nèi)有寫入步數(shù)布爾控件及步數(shù)值字符串;“停止”值改變結(jié)構(gòu),內(nèi)有停止布爾控件及“S”字符串。
4 系統(tǒng)工作調(diào)試
計(jì)算機(jī)、單片機(jī)、電機(jī)驅(qū)動(dòng)器和絲桿步進(jìn)電機(jī)等設(shè)備組裝完整系統(tǒng),以AVR單片機(jī)為核心的嵌入式系統(tǒng)及LabVIEW狀態(tài)機(jī)設(shè)計(jì)完成后,對(duì)系統(tǒng)進(jìn)行工作調(diào)試。運(yùn)行程序后,點(diǎn)擊上升控件則步進(jìn)電機(jī)以每步螺桿螺距相對(duì)運(yùn)動(dòng)0.025mm的速度正轉(zhuǎn)運(yùn)動(dòng),點(diǎn)擊下降控件則以相同速度反轉(zhuǎn),當(dāng)前狀態(tài)顯示控件能夠顯示當(dāng)前運(yùn)動(dòng)狀態(tài),點(diǎn)擊讀取步數(shù)控件能夠顯示當(dāng)前運(yùn)動(dòng)的步數(shù),而點(diǎn)擊寫入步數(shù)控件并給定步數(shù)值后電機(jī)也會(huì)工作相應(yīng)狀態(tài),選擇停止控件電機(jī)停止運(yùn)動(dòng)。程序運(yùn)行過(guò)程中通訊指示燈都會(huì)處于點(diǎn)亮狀態(tài)。
5 結(jié)束語(yǔ)
本文提出的一種基于AVR單片機(jī)和LabVIEW的絲桿步進(jìn)電機(jī)運(yùn)動(dòng)控制系統(tǒng),以AVR單片機(jī)為核心的嵌入式系統(tǒng)結(jié)合電機(jī)驅(qū)動(dòng)器完成對(duì)步進(jìn)電機(jī)的硬件控制,LabVIEW創(chuàng)建的虛擬儀器系統(tǒng)通過(guò)和嵌入式系統(tǒng)間的串口通信完成對(duì)絲桿步進(jìn)電機(jī)的直接控制,且LabVIEW操作界面交互性強(qiáng),操作簡(jiǎn)單。此系統(tǒng)是絲桿步進(jìn)電機(jī)運(yùn)動(dòng)的基本操作系統(tǒng),因此具有很強(qiáng)的移植性,可直接應(yīng)用于基于絲杠步進(jìn)電機(jī)的工件檢測(cè)臺(tái)等裝置或其他相關(guān)研究領(lǐng)域。
參考文獻(xiàn):
[1]范志華,劉楓,董潤(rùn)堅(jiān),等.基于labview的步進(jìn)電機(jī)控制系統(tǒng)設(shè)計(jì)[J].農(nóng)業(yè)與技術(shù),2016,36(13):16-18.
[2]劉星辰,劉東斌,杜鵬.步進(jìn)電機(jī)控制系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].微計(jì)算機(jī)信息,2009,25(8):26-28.
[3]楊輝,周強(qiáng).基于LabVIEW和AVR單片機(jī)的壓力數(shù)據(jù)采集處理系統(tǒng)[J].化工自動(dòng)化及儀表,2010,37(11):92-94.