大家好,我是一名研二的在校學(xué)生,自學(xué)labview快一個(gè)學(xué)期了,這次實(shí)驗(yàn)室項(xiàng)目需要控制步進(jìn)電機(jī),于是我就用labview來(lái)實(shí)現(xiàn)這個(gè)實(shí)驗(yàn)。這個(gè)步進(jìn)電機(jī)控制程序是我目前得學(xué)習(xí)成果,程序有些簡(jiǎn)單,今天就分享給大家,希望對(duì)有需要的同學(xué)有所幫助。
一、步進(jìn)電機(jī)工作原理
步進(jìn)電機(jī)按其力矩產(chǎn)生原理可以分為反應(yīng)式、永磁式和混合式幾種。本文采用的是反應(yīng)式二相四線步進(jìn)電機(jī),定子有兩個(gè)線圈繞組,設(shè)其中一個(gè)線圈繞組為A相,另一個(gè)線圈繞組為B相。當(dāng)給A相繞組通電時(shí),該繞組即產(chǎn)生磁場(chǎng),轉(zhuǎn)子齒與A相繞組各齒對(duì)齊;當(dāng)給B相繞組通電時(shí),轉(zhuǎn)子齒與B相繞組各齒對(duì)齊。
這樣,轉(zhuǎn)子就旋轉(zhuǎn)了一個(gè)角度。依次給A相,B相繞組通電,就可以實(shí)現(xiàn)步進(jìn)電機(jī)的旋轉(zhuǎn),改變通電的順序(即先給B相繞組通電,再給A相繞組通電)就可以改變電機(jī)旋轉(zhuǎn)的方向。另外,由于步進(jìn)電機(jī)是由脈沖信號(hào)進(jìn)行控制的,給電機(jī)發(fā)一個(gè)控制脈沖,它就轉(zhuǎn)一步,再發(fā)一個(gè)脈沖,它會(huì)再轉(zhuǎn)一步。兩個(gè)脈沖的時(shí)間間隔越短,步進(jìn)電機(jī)就轉(zhuǎn)得越快。調(diào)整單片機(jī)發(fā)出的脈沖頻率,就可以對(duì)步進(jìn)電機(jī)進(jìn)行調(diào)速[1]。
二、步進(jìn)電機(jī)控制硬件
本次實(shí)驗(yàn)采用VSMD113-045T微型一體化步進(jìn)電機(jī)控制驅(qū)動(dòng)器對(duì)步進(jìn)電機(jī)進(jìn)行運(yùn)動(dòng)控制。輸入電壓為12-30VDC,最大輸入電流為4.5A,支持最高256微步細(xì)分,通訊方式為RS485。
三、步進(jìn)電機(jī)控制程序設(shè)計(jì)
1.VSMD113-045T驅(qū)動(dòng)器動(dòng)態(tài)鏈接庫(kù)的調(diào)用
采用labview調(diào)用VSMD113-045T驅(qū)動(dòng)器動(dòng)態(tài)鏈接庫(kù)的方式來(lái)編寫控制程序。若要在labview中調(diào)用DLL,首先需要確定庫(kù)的種類是C/C++ DLL還是Microsoft.NET程序集。.NET DLL也被稱作.NET程序集,在.NET程序編寫中被廣泛地使用。.NET DLL使用公共語(yǔ)言運(yùn)行庫(kù)(Common Language Runtime,CLR)和.NET框架(.NET Framework)對(duì)DLL中的功能函數(shù)進(jìn)行組織和管理。
(1)使用C/C++ DLL
1)找到頭文件(* .h)或功能函數(shù)原型定義。
2)確定需要調(diào)用的功能函數(shù)。注意函數(shù)所使用的參數(shù)是否僅包含原始數(shù)據(jù)類型(如整型,字符型,雙精度浮點(diǎn)型等)還是包含有其他復(fù)雜數(shù)據(jù)類型(如結(jié)構(gòu),數(shù)組或向量)。
3)如果功能函數(shù)的參數(shù)中不包含任何復(fù)雜數(shù)據(jù)類型且您有相應(yīng)的頭文件(* .h),那么可以使用導(dǎo)入共享庫(kù)向?qū)?chuàng)建包含該頭文件中功能函數(shù)的LabVIEW庫(kù)。你可以在"工具→導(dǎo)入→共享庫(kù)"中找到該工具。
4)如果沒有頭文件,那么需要使用調(diào)用庫(kù)函數(shù)節(jié)點(diǎn)(Call Library Function Node)以及正確的.DLL文檔以調(diào)用DLL中的功能函數(shù)。
5)雙擊調(diào)用庫(kù)函數(shù)節(jié)點(diǎn)打開節(jié)點(diǎn)的配置窗口。在配置窗口的功能選項(xiàng)卡上,輸入DLL的路徑并選擇需要調(diào)用的功能。
6)如果要調(diào)用的函數(shù)包含復(fù)雜數(shù)據(jù)類型的參數(shù),那么需要在調(diào)用庫(kù)函數(shù)節(jié)點(diǎn)的配置對(duì)話框中手動(dòng)定義函數(shù)原型(如果當(dāng)前DLL已使用類型庫(kù)編譯,參數(shù)數(shù)據(jù)和返回類型將被自動(dòng)定義)。選擇配置窗口中的參數(shù)選項(xiàng)卡,需要在該選項(xiàng)卡中添加相應(yīng)的參數(shù)并修改返回值類型,直到窗口底部的函數(shù)原型與DLL中的函數(shù)定義相匹配。
(2)使用.NET程序集
1)若要在LabVIEW中使用.NET程序集,只需使用.NET功能選板即可找到所有可用的功能函數(shù)。(在程序框面板,函數(shù)→互聯(lián)接口→.NET)
2)首先,需要使用構(gòu)造器節(jié)點(diǎn)將.NET程序集中的類實(shí)例化。雙擊構(gòu)造器節(jié)點(diǎn)以顯示選擇.NET構(gòu)造器對(duì)話框。
3)只需將類的引用從構(gòu)造器節(jié)點(diǎn)連接到屬性節(jié)點(diǎn)或調(diào)用節(jié)點(diǎn),便可以通過屬性節(jié)點(diǎn)或調(diào)用節(jié)點(diǎn)簡(jiǎn)便地訪問該類的屬性和方法。
2.Labview程序設(shè)計(jì)
本文動(dòng)態(tài)鏈接庫(kù)為.NET程序集,因此采用.NET的構(gòu)造器節(jié)點(diǎn)對(duì)運(yùn)動(dòng)控制驅(qū)動(dòng)器的動(dòng)態(tài)鏈接庫(kù)進(jìn)行調(diào)用。
(1)參數(shù)設(shè)置程序
首先在庫(kù)中選擇類creatvsmdinfo設(shè)置設(shè)備ID,即cid=1,然后選擇類openseriaport設(shè)置串口和波特率,之后再次選擇類creatvsmdinfo,調(diào)用里面的各類屬性函數(shù)設(shè)置使能端、加速電流、勻速電流、加速度、減速度、速度和移動(dòng)距離。參數(shù)設(shè)置程序流程圖和程序框圖如圖1所示。動(dòng)態(tài)鏈接庫(kù)函數(shù)含義如表1所示。
(a)參數(shù)設(shè)置程序流程圖
(b)參數(shù)設(shè)置程序框圖
圖1參數(shù)設(shè)置程序示意圖
(2)運(yùn)動(dòng)控制程序
運(yùn)動(dòng)控制程序采用while循環(huán)結(jié)構(gòu)。流程圖和程序框圖如圖2所示,前面板框圖如圖3所示。
(a)while循環(huán)流程圖
(b)程序框圖
圖2運(yùn)動(dòng)控制程序示意圖
圖3前面板框圖
圖4 完整程序框圖
責(zé)任編輯:xj
原文標(biāo)題:基于LabVIEW的步進(jìn)電機(jī)控制方法設(shè)計(jì)
文章出處:【微信公眾號(hào):labview學(xué)習(xí)日記】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
-
電機(jī)控制
+關(guān)注
關(guān)注
3534文章
1876瀏覽量
268739 -
LabVIEW
+關(guān)注
關(guān)注
1970文章
3654瀏覽量
323305 -
步進(jìn)電機(jī)
+關(guān)注
關(guān)注
150文章
3109瀏覽量
147443
原文標(biāo)題:基于LabVIEW的步進(jìn)電機(jī)控制方法設(shè)計(jì)
文章出處:【微信號(hào):gh_15eff9efd85b,微信公眾號(hào):漫談labview學(xué)習(xí)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論