<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于VC++的步進(jìn)電機(jī)控制方法探討

          基于VC++的步進(jìn)電機(jī)控制方法探討

          作者: 時(shí)間:2012-07-06 來源:網(wǎng)絡(luò) 收藏

          是一種將電脈沖信號轉(zhuǎn)換為線位移或角位移的電機(jī),但的控制通常都采用匯編語言或C語言進(jìn)行軟件開發(fā),本文結(jié)合SC3控制器及平移臺的控制開發(fā)為例,介紹了一種如何在Windows平臺下利用VisualC++6.0提供的串行通信控件MSComm來實(shí)現(xiàn)PC機(jī)與步進(jìn)電機(jī)控制器之間的數(shù)據(jù)通訊,最終實(shí)現(xiàn)由PC機(jī)直接控制步進(jìn)電機(jī)的方法,并詳細(xì)介紹了編寫串行通信程序的基本步驟和方法。調(diào)試結(jié)果表明:設(shè)計(jì)的控制程序簡單、易懂,工作可靠,且具有友好的人機(jī)交互界面。

          步進(jìn)電機(jī)是一種將電脈沖轉(zhuǎn)化為角位移的機(jī)電式數(shù)模轉(zhuǎn)換器,在控制系統(tǒng)中具有十分廣泛的用途,但傳統(tǒng)的步進(jìn)電機(jī)的控制通常都采用匯編語言或C語言進(jìn)行軟件開發(fā),本文利用提供的串行通信控件MSComm實(shí)現(xiàn)PC機(jī)與步進(jìn)電機(jī)控制器之間的串行通信。與DOS下串行通信程序不同的是,Windows不提倡應(yīng)用程序直接控制硬件,而是通過Windows操作系統(tǒng)提供的設(shè)備驅(qū)動程序來進(jìn)行數(shù)據(jù)傳送。串行口在Win32中是作為文件來進(jìn)行處理的,而不是直接對端口進(jìn)行操作,對于串行通信,Win32提供了相應(yīng)的文件I/O函數(shù)與通信函數(shù),通過了解這些函數(shù)的使用,可以編制出符合不同需要的通信程序。

          實(shí)現(xiàn)串行通信一般有3種方法:使用提供的串行通信控件MSComm;在單線程中實(shí)現(xiàn)自定義的串口通信類;多線程下實(shí)現(xiàn)串行通信。結(jié)合實(shí)際情況,本系統(tǒng)采用提供的串行通信控件MSComm來進(jìn)行軟件編程,可以很方便地管理與控制計(jì)算機(jī)串口。

          1、系統(tǒng)組成

          由PC機(jī)控制步進(jìn)電動機(jī)的系統(tǒng)如圖1所示。

          按此在新窗口瀏覽圖片

          圖1PC機(jī)控制步進(jìn)電機(jī)系統(tǒng)框圖


          本系統(tǒng)的電機(jī)控制采用通用的RS232串口的異步通信。由于RS232早期是為促進(jìn)公用電話網(wǎng)絡(luò)進(jìn)行數(shù)據(jù)通信而制定的標(biāo)準(zhǔn),其邏輯電平對地是對稱的,與TTL、MOS邏輯電平完全不同。邏輯0電平規(guī)定為+5~+15V之間,邏輯1電平規(guī)定為-5~-15V之間,因此,RS232驅(qū)動器與TTL電平連接必須經(jīng)過電平轉(zhuǎn)換。

          2、控制軟硬件的技術(shù)參數(shù)

          本系統(tǒng)采用卓立漢光儀器有限公司生產(chǎn)的SC3步進(jìn)電機(jī)控制器及平移臺,實(shí)現(xiàn)平移臺的三維控制(x,y,z)。利用RS232串口異步通信完成對步進(jìn)電機(jī)的單步和連續(xù)移動控制,并且把電機(jī)的實(shí)際位置數(shù)據(jù)反饋給PC機(jī)處理。

          電控平移臺的機(jī)械指標(biāo)如下:
          (1)精密電控旋轉(zhuǎn)臺:型號RSA200用于x軸。轉(zhuǎn)動范圍>±40°;傳動比180∶1;小步距0.0003125°;臺面直徑Φ200;分辨率0.00125°;重復(fù)定位精度0.005°;最大速度25/s;中心最大負(fù)載60kg。
          (2)重載型電控平移臺:型號TSA300B,用于z軸。最小步距0.00315mm;重復(fù)定位精度0.005mm;加固定平移臺有效行程為150mm。
          (3)超薄型電控平移臺:型號TSA30C,用于y軸。最小步距為0.002mm;重復(fù)定位精度0.005mm;有效行程30mm。SC3步進(jìn)電機(jī)控制器設(shè)有手動和聯(lián)動方式,手動能設(shè)置的操作有:速度設(shè)定、歸零操作、方向設(shè)定、位移量設(shè)定等,聯(lián)機(jī)方式可以使電機(jī)的運(yùn)動直接受應(yīng)用軟件控制。由于是進(jìn)行二次開發(fā),因此應(yīng)用程序必須嵌入原控制器的控制指令及協(xié)議。
          該指令系統(tǒng)主要有以下幾條:
          聯(lián)絡(luò)指令指令格式:“?R"CHR$(13)
          該指令發(fā)出200ms以內(nèi)SC3回送:“OK”CHR$(10),表示聯(lián)絡(luò)成功。
          查詢指令指令格式:“?V”CHR$(13)
          SC3接到該指令后回送:“Vnumber”CHR$(10)。其中number為ASC碼表示的SC3當(dāng)前速度值。范圍0~255。
          坐標(biāo)查詢指令指令格式:“?X”CHR$(13)或“?Y”CHR$(13)或“?Z”CHR$(13)
          SC3接到該指令后回送:“X+number”CHR$(10),或“Xnumber”CHR$(10),其他軸類似。其中number為以ASC碼表示的SC3當(dāng)前坐標(biāo)值,正負(fù)號代表當(dāng)前位置在開機(jī)位置(0位)的正負(fù)方向的位置。
          速度設(shè)置指令指令格式:“V”numberCHR$(13)
          其中number為以ASC碼表示的速度設(shè)置值。范圍0~255。
          歸零指令指令格式:“HX”CHR$(13)或“HY”CHR$(13)或“HZ”CHR$(13)
          SC3接到此類指令后進(jìn)行歸零操作。完成歸零操作后回送:“OK”CHR$(10),表示SC3歸零完畢。
          零狀態(tài)查詢指令指令格式:“?H”CHR$(13)
          SC3接到此類指令后回送:“H000”CHR$(10)
          其中000的含義:
          第一位數(shù)值:1表示z軸歸零成功,0表示z軸未歸零。
          第二位數(shù)值:1表示y軸歸零成功,0表示y軸未歸零。
          第三位數(shù)值:1表示x軸歸零成功,0表示x軸未歸零。
          運(yùn)行指令指令格式:“Xdirectionnumber”CHR$(13)或“Ydirectionnumber”CHR$(13)或“Zdirectionnumber”CHR$(13)

          數(shù)字通信相關(guān)文章:數(shù)字通信原理


          通信相關(guān)文章:通信原理



          上一頁 1 2 下一頁

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();