《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于VC++的步進電機控制系統研究
基于VC++的步進電機控制系統研究
摘要: 在Windows平臺下利用VisualC++6.0提供的串行通信控件MSComm來實現PC機與步進電機控制器之間的數據通訊,最終實現由PC機直接控制步進電機的方法。
關鍵詞: 軟件 VC++ 步進電機
Abstract:
Key words :

  步進電機是一種將電脈沖信號轉換為線位移或角位移的電機,但步進電機的控制通常都采用匯編語言或C語言進行軟件開發,本文結合SC3步進電機控制器及平移臺的控制開發為例,介紹了一種如何在Windows平臺下利用Visual C++6.0提供的串行通信控件MSComm來實現PC機與步進電機控制器之間的數據通訊,最終實現由PC機直接控制步進電機的方法,并詳細介紹了編寫串行通信程序的基本步驟和方法。調試結果表明:設計的控制程序簡單、易懂,工作可靠,且具有友好的人機交互界面。
 
     步進電機是一種將電脈沖轉化為角位移的機電式數模轉換器,在控制系統中具有十分廣泛的用途,但傳統的步進電機的控制通常都采用匯編語言或C語言進行軟件開發,本文利用VC++提供的串行通信控件MSComm實現PC機與步進電機控制器之間的串行通信。與 DOS下串行通信程序不同的是,Windows不提倡應用程序直接控制硬件,而是通過Windows操作系統提供的設備驅動程序來進行數據傳送。串行口在Win32中是作為文件來進行處理的,而不是直接對端口進行操作,對于串行通信,Win32提供了相應的文件I/O函數與通信函數,通過了解這些函數的使用,可以編制出符合不同需要的通信程序。

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

      1、系統組成

     由PC機控制步進電動機的系統如圖1所示。

圖1 PC機控制步進電機系統框圖

     本系統的電機控制采用通用的RS 232串口的異步通信。由于RS 232早期是為促進公用電話網絡進行數據通信而制定的標準,其邏輯電平對地是對稱的,與TTL、MOS邏輯電平完全不同。邏輯0電平規定為+5~+15 V之間,邏輯1電平規定為-5~-15 V之間,因此,RS 232驅動器與TTL電平連接必須經過電平轉換。

     2、控制軟硬件的技術參數

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

  電控平移臺的機械指標如下:

     (1) 精密電控旋轉臺:型號RSA200用于x軸。轉動范圍>±40°;傳動比180∶1;小步距0.000 312 5°;臺面直徑Φ200;分辨率0.001 25°;重復定位精度<0.005°;最大速度25/s;中心最大負載60 kg。

     (2) 重載型電控平移臺:型號TSA300B,用于z軸。最小步距0.003 15 mm;重復定位精度<0.005 mm;加固定平移臺有效行程為150 mm。

     (3) 超薄型電控平移臺:型號TSA30C,用于y軸。最小步距為0.002 mm;重復定位精度<0.005 mm;有效行程30 mm。SC3步進電機控制器設有手動和聯動方式,手動能設置的操作有:速度設定、歸零操作、方向設定、位移量設定等,聯機方式可以使電機的運動直接受應用軟件控制。由于是進行二次開發,因此應用程序必須嵌入原控制器的控制指令及協議。

  步進電機是一種將電脈沖信號轉換為線位移或角位移的電機,但步進電機的控制通常都采用匯編語言或C語言進行軟件開發,本文結合SC3步進電機控制器及平移臺的控制開發為例,介紹了一種如何在Windows平臺下利用Visual C++6.0提供的串行通信控件MSComm來實現PC機與步進電機控制器之間的數據通訊,最終實現由PC機直接控制步進電機的方法,并詳細介紹了編寫串行通信程序的基本步驟和方法。調試結果表明:設計的控制程序簡單、易懂,工作可靠,且具有友好的人機交互界面。
 
     步進電機是一種將電脈沖轉化為角位移的機電式數模轉換器,在控制系統中具有十分廣泛的用途,但傳統的步進電機的控制通常都采用匯編語言或C語言進行軟件開發,本文利用VC++提供的串行通信控件MSComm實現PC機與步進電機控制器之間的串行通信。與 DOS下串行通信程序不同的是,Windows不提倡應用程序直接控制硬件,而是通過Windows操作系統提供的設備驅動程序來進行數據傳送。串行口在Win32中是作為文件來進行處理的,而不是直接對端口進行操作,對于串行通信,Win32提供了相應的文件I/O函數與通信函數,通過了解這些函數的使用,可以編制出符合不同需要的通信程序。

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

      1、系統組成

     由PC機控制步進電動機的系統如圖1所示。

圖1 PC機控制步進電機系統框圖

     本系統的電機控制采用通用的RS 232串口的異步通信。由于RS 232早期是為促進公用電話網絡進行數據通信而制定的標準,其邏輯電平對地是對稱的,與TTL、MOS邏輯電平完全不同。邏輯0電平規定為+5~+15 V之間,邏輯1電平規定為-5~-15 V之間,因此,RS 232驅動器與TTL電平連接必須經過電平轉換。

     2、控制軟硬件的技術參數

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

  電控平移臺的機械指標如下:

     (1) 精密電控旋轉臺:型號RSA200用于x軸。轉動范圍>±40°;傳動比180∶1;小步距0.000 312 5°;臺面直徑Φ200;分辨率0.001 25°;重復定位精度<0.005°;最大速度25/s;中心最大負載60 kg。

     (2) 重載型電控平移臺:型號TSA300B,用于z軸。最小步距0.003 15 mm;重復定位精度<0.005 mm;加固定平移臺有效行程為150 mm。

     (3) 超薄型電控平移臺:型號TSA30C,用于y軸。最小步距為0.002 mm;重復定位精度<0.005 mm;有效行程30 mm。SC3步進電機控制器設有手動和聯動方式,手動能設置的操作有:速度設定、歸零操作、方向設定、位移量設定等,聯機方式可以使電機的運動直接受應用軟件控制。由于是進行二次開發,因此應用程序必須嵌入原控制器的控制指令及協議。

     該指令系統主要有以下幾條:

  聯絡指令指令格式:“?R" & CHR$(13)

     該指令發出200 ms以內SC3回送:“OK”& CHR$(10),表示聯絡成功。

  查詢指令指令格式:“?V”& CHR$(13)

    SC3接到該指令后回送:“V number” & CHR$(10)。其中number為ASC碼表示的SC3當前速度值。范圍0~255。

  坐標查詢指令指令格式:“?X”& CHR$(13) 或“?Y”& CHR$(13)或“?Z”& CHR$(13)

    SC3接到該指令后回送:“X+number” & CHR$(10),或“Xnumber” & CHR$(10),其他軸類似。其中number為以ASC碼表示的SC3當前坐標值,正負號代表當前位置在開機位置(0位)的正負方向的位置。

  速度設置指令指令格式:“V”& number & CHR$(13)

    其中number為以ASC碼表示的速度設置值。范圍0~255。

  歸零指令指令格式:“HX”& CHR$(13) 或“HY”& CHR$(13) 或“HZ”& CHR$(13)

     SC3接到此類指令后進行歸零操作。完成歸零操作后回送:“OK”& CHR$(10),表示SC3歸零完畢。

  零狀態查詢指令指令格式:“?H”& CHR$(13)

     SC3接到此類指令后回送:“H000” & CHR$(10)

     其中000的含義:

     第一位數值:1表示z軸歸零成功,0表示z軸未歸零。

     第二位數值:1表示y軸歸零成功,0表示y軸未歸零。

     第三位數值:1表示x軸歸零成功,0表示x軸未歸零。

  運行指令指令格式:“Xdirectionnumber”& CHR$(13)或“Y directionnumber”& CHR$(13)或“Z directionnumber”& CHR$(13)

  3、軟件實現

     3.1 利用VC++提供的串行通信控件MSComm實現串行通信

     首先,在VC++的對話框中創建通信控件,若Control工具欄中缺少該控件,可通過菜單Project→Add toProject→Components and Control插入即可,再將該控件從工具箱拉到對話框中。此時,你只需要關心控件提供的對Windows通信驅動程序的API函數的接口,即只需要設置和監視MSComm控件的屬性和事件。

     在ClassWizard中為新建的通信控件定義成員對象(CMSComm m_Serial),通過該對象便可以對串口屬性進行設置,MSComm控件共有27個屬性,其中主要包括:

     Commport:設置并返回通信端口號,缺省為COM1。
     Settings:以字符串的形式設置并返回波特率、奇偶校驗、數據位、停止位。
     PortOpen:設置并返回通信端口的狀態,也可以打開和關閉端口。
     Input:從接收緩沖區返回和刪除字符。
     Output:向發送緩沖區寫入字符串。
     InputLen:每次設置Input讀入的字符個數,缺省值為0,表明讀取接收緩沖區中的全部內容。
     InBufferCount:返回接收緩沖區中已接收到的字符數,將其置0可以清除接收緩沖區。
     InputMode:定義Input屬性獲取數據的方式(為0:文本方式;為1:二進制方式)。
     RThreshold和SThreshold屬性,表示在OnComm事件發生之前,接收緩沖區或發送緩沖區中可接收的字符數。

     以下是通過設置控件屬性對串口進行初始化的實例:
   
     打開所需串口后,需要考慮串口通信的時機。在接收或發送數據過程中,可能需要監視并響應一些事件和錯誤,所以事件驅動是處理串行端口交互作用的一種非常有效的方法。使用OnComm事件和CommEvent屬性捕捉并檢查通信事件和錯誤的值。發生通信事件或錯誤時,將觸發OnComm事件,CommEvent屬性的值將被改變,應用程序檢查CommEvent屬性值并作出相應的反應。在程序中用ClassWizard為CMSComm控件添加OnComm消息處理函數:
   
     3.2 系統初始化

     在執行應用程序時首先必須進行初始化,其初始化程序框圖如圖2所示。

圖2 初始化程序框圖

     運行程序時,視圖執行初始化操作函數OnInitialUpdate(),該函數內要先打開串口1,通過設置對象m_ContrCom各成員函數,設置好各通信參數:
   
     然后經過一個位置選擇對話框,通常選“保持原來的位置”,然后就發出詢問各軸的坐標值的指令。流程如圖2所示。除x軸是直接發送坐標詢問指令獲得坐標數據外,其他2個軸都是通過連續的2個定時器來詢問坐標的,定時器響應后執行圖3的程序。此后就進入待操作畫面。

     3.3 運行操作的編程

     在電機運動操作區的各文本框內輸入某一軸向的位移值、速度值,按下“運行”按鈕,則程序會把位移值轉化為字符型的實際要運行的步數,通過串口送到SC3步進電機控制器,控制對應的軸的電機運行相應的步數。運行結束后,SC3會返回一個“OK”字符至串口,PC機接受到這個字符后,就知道電機運行結束,然后向串口發送坐標詢問指令,SC3會回送有關坐標數據,PC機接到這些數據后進行處理運算并在文本框中顯示出來。這樣就結束了一個完整的運行操作。

     所有主要的PC機和SC3控制器的有關數據通信程序都在MSComm控件內。包括所有的接受、識別返回字符,各軸向坐標的運算和顯示。

     當步進運動完畢后,返回到PC機的數據為步進電機已經運行的步數,根據這個步數要計算相應的坐標,必須知道各軸的脈沖當量。步進電機每走一步,電移臺的位移等于脈沖當量,即分辨率。

     坐標值=初始坐標+運行步數*脈沖當量
     平移臺脈沖當量=絲杠導程mm*步距角/(360*細分數)
     旋轉臺(x軸)的脈沖當量(度)=步進電機步距角/(傳動比*細分數)

     其中細分數是由控制器后面板撥碼開關設置的。

     步進電機的步距角都為1.8°,縱軸的絲杠導程為1 mm,橫軸為4 mm,旋轉軸傳動比為180∶1,細分數為2,則根據以上公式可得出:

     縱軸(z)脈沖當量=1/100
     橫軸(y)脈沖當量=1/400
     旋轉軸(x)脈沖當量=1/200

     4、結語

     在PC機和單片機之間實現串行通信控制是近幾年很受歡迎、較為流行的方法。本文介紹的運用MSComm控件來編制的由PC機對步進電機直接控制的應用軟件具有友好的人機交互界面,且編程簡便、工作可靠,是一種切實有效的方法。同時,這種串行控制方法和技術還可運用于相應的工業控制場合。

此內容為AET網站原創,未經授權禁止轉載。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          鲁大师影院一区二区三区| 国内在线观看一区二区三区| 国产精品日韩二区| 久久久噜噜噜久久狠狠50岁| 在线色欧美三级视频| 国产精品99久久久久久宅男| 欧美日韩在线观看一区二区| 亚洲麻豆国产自偷在线| 欧美不卡三区| 国产精品日产欧美久久久久| 久久久久国产一区二区三区| 在线观看视频免费一区二区三区| 国产精品一区在线播放| 国产精品欧美日韩久久| 久久久亚洲一区| 99re6这里只有精品视频在线观看| 久久天天躁夜夜躁狠狠躁2022| 国产一区高清视频| 99国产精品私拍| 亚洲免费观看在线观看| 国产精品分类| 国产亚洲欧洲| 久久精品国产亚洲aⅴ| 欧美一区1区三区3区公司| 91久久精品美女| 久久国产免费| 欧美精品激情| 欧美亚洲在线播放| 欧美性猛交一区二区三区精品| 欧美午夜电影在线观看| 夜色激情一区二区| 亚洲尤物在线视频观看| 亚洲午夜精品久久久久久app| 国产精品日韩欧美一区二区| 欧美四级电影网站| 亚洲综合色自拍一区| 亚洲视频在线看| 久久夜色精品国产欧美乱极品| 国产欧美一区二区三区久久人妖| 亚洲伊人色欲综合网| 久久久久久久一区| 99精品视频网| 久久久久久午夜| 欧美在线视频网站| 欧美视频在线免费看| 亚洲国产日韩欧美一区二区三区| 美女诱惑黄网站一区| 国产欧美日韩在线视频| 国产喷白浆一区二区三区| 国产精品va在线播放我和闺蜜| 久热精品在线视频| 亚洲精品日本| 欧美日本精品一区二区三区| 国产精品亚洲网站| 欧美视频四区| 久久久水蜜桃| 在线精品一区二区| 黄色av成人| 亚洲网站在线看| 欧美一区永久视频免费观看| 欧美日一区二区三区在线观看国产免| 国产日韩欧美三区| 欧美日本国产| 亚洲狠狠婷婷| 好吊色欧美一区二区三区四区| 久久偷看各类wc女厕嘘嘘偷窃| 狠狠久久亚洲欧美专区| 黑人极品videos精品欧美裸| 国产精品免费观看在线| 亚洲丶国产丶欧美一区二区三区| 欧美绝品在线观看成人午夜影视| 亚洲自拍高清| 久久精品首页| 国产欧美欧洲在线观看| 欧美乱大交xxxxx| 亚洲一区二区视频在线观看| 这里只有精品电影| 亚洲精品国产欧美| 亚洲东热激情| 欧美色大人视频| 亚洲国产天堂网精品网站| 亚洲理论在线| 欧美华人在线视频| 蜜臀av在线播放一区二区三区| 国产日韩欧美在线视频观看| 国产农村妇女精品| 国产精品成人一区二区| 精品动漫3d一区二区三区免费版| 亚洲激情在线播放| 亚洲国产精品久久久久| 亚洲美女网站| 亚洲人成在线观看网站高清| 国产精品久久久久久久午夜片| 影音先锋日韩有码| 亚洲高清av在线| 免费亚洲网站| 中文av字幕一区| 久久精品论坛| 蜜臀a∨国产成人精品| 国产亚洲精品成人av久久ww| 激情久久婷婷| 正在播放欧美一区| 欧美日韩综合| 国产精品专区h在线观看| 久久综合久久久久88| 国产亚洲欧美日韩精品| 最新亚洲电影| 一本色道**综合亚洲精品蜜桃冫| 亚洲激情国产| 欧美日韩调教| 国产日韩一级二级三级| 日韩亚洲精品在线| 国产手机视频精品| 91久久精品国产91久久性色| 欧美精品日韩www.p站| 欧美视频三区在线播放| 久久久亚洲一区| 亚洲精品日产精品乱码不卡| 亚洲精品久久视频| 久久av二区| 国产精品美女一区二区在线观看| 欧美日本乱大交xxxxx| 国产综合视频| 亚洲黄色一区二区三区| 亚洲一区二区综合| 久久久久久久久岛国免费| 国产精品制服诱惑| 一区二区三区成人精品| 久久久久久久网站| 欧美色综合天天久久综合精品| 久久激情婷婷| 国产欧美日韩视频一区二区三区| 亚洲精品精选| 国产女人精品视频| 韩国一区二区三区美女美女秀| 亚洲狠狠丁香婷婷综合久久久| 欧美三级电影大全| 欧美色欧美亚洲另类七区| 国产欧美一区二区白浆黑人| 欧美香蕉视频| 久久中文字幕导航| 国产噜噜噜噜噜久久久久久久久| 老司机成人网| 欧美人成在线视频| 午夜免费电影一区在线观看| 99re66热这里只有精品4| 国产精品久久久久9999| 每日更新成人在线视频| 欧美精品成人91久久久久久久| 亚洲国产婷婷香蕉久久久久久| 亚洲第一区中文99精品| 久久综合99re88久久爱| 亚洲毛片一区二区| 欧美日韩的一区二区| 欧美成年人网| 一区二区不卡在线视频 午夜欧美不卡'| 在线亚洲一区二区| 亚洲女人天堂av| 亚洲国产一区二区三区青草影视| 欧美一级黄色录像| 国产美女精品视频免费观看| 宅男噜噜噜66一区二区66| 欧美日韩一级黄| 一区二区三区在线观看国产| 久久精品99国产精品日本| 国产亚洲一区二区三区在线观看| 国产在线国偷精品产拍免费yy| 影音先锋亚洲精品| 美女日韩欧美| 日韩一区二区免费高清| 国产视频一区在线观看| 欧美私人网站| 亚洲第一页中文字幕| 狠狠v欧美v日韩v亚洲ⅴ| 欧美夫妇交换俱乐部在线观看| 欧美国产精品久久| 欧美日韩大片| 欧美日韩精品在线视频| 一区二区免费在线播放| 欧美片网站免费| 久久久亚洲国产天美传媒修理工| 国产精品视频网站| 亚洲成人在线视频网站| 国产一区二区三区精品久久久| 久久成人久久爱| 国产精品久久久久毛片大屁完整版| 亚洲精品国产精品久久清纯直播| 黄色另类av| 欧美片在线播放| 国产欧美视频一区二区三区| 国产午夜亚洲精品理论片色戒| 夜夜精品视频一区二区| 国产日韩高清一区二区三区在线| 玖玖综合伊人| 在线日韩成人| 欧美在线电影| 久久久久久久999精品视频| 国产精品系列在线| 久久久国产成人精品| 欧美日韩国产成人精品| 9久草视频在线视频精品| 亚洲动漫精品| 欧美一区二区三区在线观看视频| 好男人免费精品视频| 亚洲精品国产精品乱码不99按摩| 国产精品人人做人人爽| 欧美一二三区精品| 欧美日韩一区在线观看视频| 亚洲麻豆视频| 在线一区二区三区做爰视频网站| 欧美日本一区二区视频在线观看| 精品成人一区二区三区| 午夜亚洲影视| 久久精彩免费视频| 欧美日本乱大交xxxxx| 美日韩精品免费| 亚洲国产精品国自产拍av秋霞| 亚洲精品人人| 一道本一区二区| 国产在线播放一区二区三区| 亚洲免费不卡| 亚洲国产毛片完整版| 欧美国产日本在线| 免费视频亚洲| 国产日产欧美a一级在线| 亚洲精品123区| 久久男女视频| 蜜臀99久久精品久久久久久软件| 久久久久国色av免费看影院| 亚洲尤物视频网| 亚洲激情在线视频| 中日韩美女免费视频网站在线观看| 午夜在线视频一区二区区别| 国产精品久久一区主播| 亚洲国产欧洲综合997久久| 国产精品一区二区久久久久| 制服丝袜激情欧洲亚洲| 久久爱www久久做| 韩日精品在线| 国产综合自拍| 欧美精品一区二区三区一线天视频| 国产欧美成人| 国产网站欧美日韩免费精品在线观看| 午夜伦理片一区| 国产精品区免费视频| 国产亚洲精品高潮| 裸体丰满少妇做受久久99精品| 国产综合激情| 亚洲欧美另类久久久精品2019| 欧美99久久| 国产精品另类一区| 91久久在线| 一区二区在线观看av| 久久精品综合| 久久精品国产亚洲一区二区| 欧美视频一区二区在线观看| 国产精品久久久久久久午夜片| 欧美视频在线观看一区二区| 久久久亚洲国产美女国产盗摄| 欧美激情在线观看| 欧美精品久久久久久| 欧美精品在线观看一区二区| 久久成人人人人精品欧| 欧美四级剧情无删版影片| 国产精品三级久久久久久电影| 久久激情视频免费观看| 91久久线看在观草草青青| 久久精品五月婷婷| 亚洲一区不卡| 欧美日本在线一区| 91久久在线播放| 麻豆九一精品爱看视频在线观看免费| 亚洲欧洲日本mm| 日韩亚洲一区二区| 久久久精品动漫| 一本一本久久a久久精品综合麻豆| 免费日韩av| 亚洲人成人一区二区在线观看| 欧美精品自拍| 一区二区三区中文在线观看| 欧美一区二区日韩| 久久精品欧洲| 韩国av一区二区三区在线观看| 欧美a级片一区| 亚洲视频播放| 好吊妞这里只有精品| 欧美片网站免费| 一区二区三区国产在线观看| 久久午夜av| 精品51国产黑色丝袜高跟鞋| 国产精品初高中精品久久| 亚洲成在线观看| 国产精品国产福利国产秒拍| 国产伦理一区| 亚洲精品综合精品自拍| 欧美丰满少妇xxxbbb| 国产亚洲美州欧州综合国| 欧美高清视频在线观看| 国产一区二区精品| 亚洲欧美综合| 亚洲黄色小视频| 日韩亚洲欧美一区| 亚洲美女精品成人在线视频| 国产精品国产馆在线真实露脸| 国产日韩在线亚洲字幕中文| 欧美在线免费观看视频| 欧美一区二区三区四区夜夜大片| 免费观看在线综合| 国产精品二区影院| 在线观看日韩欧美| 国产欧美一区二区三区在线老狼| 国产欧美在线观看| 亚洲电影免费观看高清完整版在线| 欧美国产在线视频| 国产日韩欧美日韩大片| 国产精品一区二区三区免费观看| 欧美日韩免费观看一区=区三区| 国产精品久久波多野结衣| 亚洲一区二三| 久久久999| 欧美日韩成人免费| 国产亚洲va综合人人澡精品| 亚洲一区在线观看视频| 欧美精品不卡| 欧美午夜精品一区二区三区| 牛夜精品久久久久久久99黑人| 久久夜色精品一区| 一本色道久久综合亚洲精品按摩|