<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

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

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

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

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

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

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

1、系統組成

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

按此在新窗口瀏覽圖片

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


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

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

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

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

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


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



上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: VC++ 步進(jìn)電機 控制方法

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>