美女网站一区二区_在线观看日韩毛片_成人在线视频首页_欧美精品一区二区三区久久久_国产精品亚洲一区二区三区在线_日本免费新一区视频_日本美女一区二区三区_精品亚洲成a人_久久不见久久见免费视频1_91首页免费视频_欧美一区二区在线看_91精品91久久久中77777_天堂蜜桃一区二区三区_av在线一区二区_欧美不卡一区二区_欧美影视一区二区三区

產品分類

當前位置: 首頁 > 工業控制產品 > 運動控制 > 步進電機

類型分類:
科普知識
數據分類:
步進電機

基于VC++的步進電機控制方法探討

發布日期:2022-10-09 點擊率:84

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

A Discussion of the Measure on the Controlling of Stepper Motor in VC++
CHEN Jiafeng,PENG Qisheng
(Department of Electronic and Information Engineering,Southcentral University for Nationalities,Wuhan,430074,China)
Abstract:Stepper motor is a kind of motor of translating electrical pulse into displacement Ordinarily,the software of control system for stepper motor is programmedby assemble or C language The paper introduces a method of programming realizing serial communication between PC and stepper motor in VC++6.0 based MSComm control by SC3 stepper motor contoller The basal process and method ofprogramming serial communication are introduced. The result shows that designed program is simple and understandable and higher reliability and friendly manmachine conversation interface
Keywords:stepper motor;Visual C++;serial communication;MSComm control

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

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

1 系統組成

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

本系統的電機控制采用通用的RS 232[5]串口的異步通信。由于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.00125°;重復定位精度<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++[5]的對話框中創建通信控件,若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所示。

運行程序時,視圖執行初始化操作函數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機對步進電機直接控制的應用軟件具有友好的人機交互界面,且編程簡便、工作可靠,是一種切實有效的方法。同時,這種串行控制方法和技術還可運用于相應的工業控制場合。

參考文獻
[1]李朝青.PC機及單片機數據通信技術M].北京:北京航空航天大學出版社,1999.
[2][美]Joe Campbell.串行通信C程序員指南[M].徐國定譯.北京:清華大學出版社,1995.
[3]Herbert Schildt,Schildt′sExpert C++[M].MCGrawHill,1998.
[4][美]Young  Michael J.Visual C++6從入門到精通[M]邱仲潘,等譯.北京:電子工業出版社,1999.
[5]向世明.Visual C++數字圖像與圖形處理[M].北京:電子工業出版社,2002.

下一篇: 斷路器、隔離開關、接

上一篇: 索爾維全系列Solef?PV

美女网站一区二区_在线观看日韩毛片_成人在线视频首页_欧美精品一区二区三区久久久_国产精品亚洲一区二区三区在线_日本免费新一区视频_日本美女一区二区三区_精品亚洲成a人_久久不见久久见免费视频1_91首页免费视频_欧美一区二区在线看_91精品91久久久中77777_天堂蜜桃一区二区三区_av在线一区二区_欧美不卡一区二区_欧美影视一区二区三区


        在线亚洲高清视频| 国产精品视频在线免费观看| 中文字幕一区二区视频| 久久久蜜桃精品| 亚洲精品在线三区| 久久女同精品一区二区| 国产亚洲成年网址在线观看| 欧美tickle裸体挠脚心vk| 91精品国产全国免费观看| 91.成人天堂一区| 91精品欧美一区二区三区综合在| 91精品国产手机| 久久综合九色欧美综合狠狠 | 成人永久免费| 欧美lavv| 91福利精品视频| 日韩欧美的一区| 国产精品免费久久久久| 亚洲综合无码一区二区| 麻豆成人综合网| 国产成人精品免费网站| 91久久偷偷做嫩草影院| 欧美二区在线| 欧美日韩一区二区三区在线| 精品久久久久久久久久久久包黑料 | 超碰97国产在线| 日韩成人av电影在线| 欧美在线播放高清精品| 精品日韩一区二区三区| 亚洲人成精品久久久久| 蜜芽一区二区三区| 91丨九色丨黑人外教| 日韩欧美视频一区二区| 69堂国产成人免费视频| 国产精品夫妻自拍| 奇米影视在线99精品| 99久久精品国产导航| 日本一区二区三区免费观看| 欧美日韩精品欧美日韩精品一综合| 欧美精品一区二区久久久| 亚洲自拍另类综合| 成人午夜电影久久影院| 欧美人与物videos另类| 欧美一区二区三区在线电影 | 一区二区三区四区国产精品| 久久精品国产99国产精品| 操人视频欧美| 欧美日韩中文精品| 综合久久国产九一剧情麻豆| 韩国女主播成人在线观看| 国产伦精品一区| 欧美高清视频在线高清观看mv色露露十八| 日本一二三不卡| 国产精品88av| 亚洲国产精品综合| 久久综合狠狠综合| 久久97超碰色| 深夜福利成人| 国产欧美日韩三区| 国产成人免费视频一区| 亚洲国产精品www| 中文字幕巨乱亚洲| 国产高清精品在线| 91久久免费观看| 一区二区三区国产精品| 91农村精品一区二区在线| 欧美性受xxxx| 一区二区在线免费观看| 99精品视频在线播放观看| 欧美日韩一区不卡| 性久久久久久久久久久久| 国内一区二区三区在线视频| 欧美刺激午夜性久久久久久久| 婷婷激情综合网| 久久99精品久久久久久久久久| 日韩精品专区在线影院重磅| 美女在线观看视频一区二区| 欧美午夜视频在线| 国产精品不卡一区二区三区| 99久久久免费精品国产一区二区| 欧美亚洲日本国产| 手机精品视频在线观看| 日本精品免费| 综合久久综合久久| 国产精品视频免费一区二区三区| 久久综合999| 99久久国产综合精品女不卡| 日韩精品一区二区在线| 国产成人亚洲精品狼色在线| 欧美网站大全在线观看| 日本不卡在线视频| 亚洲一区二区三区加勒比| 亚洲自拍偷拍九九九| 日产精品高清视频免费| 一区二区三区四区在线免费观看 | 欧美一区二区三区在线观看| 蜜臀久久99精品久久久久久9| 色综合电影网| 亚洲高清不卡在线| 亚洲欧美成人一区| 亚洲小说欧美激情另类| 午夜精品区一区二区三| 亚洲福利国产精品| 一区二区三区四区五区精品| 天堂精品中文字幕在线| 日本韩国精品一区二区在线观看| 日本一区中文字幕| 欧美日韩一本到| 国产一区三区三区| 2024国产精品| 国产91精品入口17c| 国产精品水嫩水嫩| 久久一区二区三区av| 亚洲国产视频a| 色8久久人人97超碰香蕉987| 老司机精品视频线观看86| 欧美日韩国产天堂| 丁香啪啪综合成人亚洲小说| 亚洲精品一区二区三区四区高清| 97视频中文字幕| 亚洲精品国产第一综合99久久| 日韩精品不卡| 免费在线观看精品| 在线播放中文字幕一区| 成人一区二区视频| 国产日韩欧美制服另类| 美女一区视频| 免费一级欧美片在线观看| 欧亚洲嫩模精品一区三区| 国产一区二区三区在线观看免费视频| 欧美一级淫片007| 岛国一区二区三区高清视频| 亚洲欧美一区二区三区极速播放| 欧美一区二区视频在线| 麻豆成人av在线| 久久久久久久久久久电影| 欧美日韩电影一区二区| 奇米亚洲午夜久久精品| 欧美xxxx老人做受| 欧美极品视频一区二区三区| 免费成人在线影院| 久久综合久久久久88| 日本一区二区三区视频在线观看| 蜜臀精品一区二区三区在线观看| 日韩三区在线观看| 欧美大香线蕉线伊人久久国产精品| 一区二区三区欧美在线观看| 欧美人xxxx| 久99久视频| 国产精品一区二区无线| 国产精品毛片高清在线完整版| 杨幂一区欧美专区| 99视频热这里只有精品免费| 一区二区三区在线观看网站| 制服丝袜亚洲色图| 麻豆传媒一区| 国产suv精品一区二区6| 亚洲激情欧美激情| 日韩精品中文字幕一区| 日本一区免费观看| eeuss鲁片一区二区三区 | 北条麻妃一区二区三区| 亚洲图片欧美视频| 欧美精品一区二| 日本韩国欧美三级| 精品国产免费久久久久久尖叫| 久久成人免费日本黄色| 亚洲日本乱码在线观看| 日韩欧美一级二级三级久久久| 视频一区亚洲| 99精品国产高清在线观看| 久久精品国产第一区二区三区| 国产精品久久久一本精品| 欧美日韩成人综合| 亚洲欧美国产不卡| 国产伦精品一区二区三区四区免费| 久88久久88久久久| 亚洲高清视频的网址| 国产精品久久久久一区| 日韩一区二区三区在线观看| 在线国产99| 欧美亚洲精品日韩| www.久久艹| 成人美女在线观看| 极品美女销魂一区二区三区免费| 亚洲欧美国产高清| 欧美激情在线看| 日韩免费视频一区二区| 欧美色图12p| 五月天婷亚洲天综合网鲁鲁鲁| 国产福利久久精品| 91蜜桃婷婷狠狠久久综合9色| 国产一区二区三区不卡在线观看 | 国产日韩欧美亚洲| 欧美一二三四在线| 欧美亚洲日本一区| 在线丝袜欧美日韩制服| 欧美日韩一区二区三区在线观看免 | 国产精品电影一区二区| 欧美精品一区二区三区在线播放|