中文字幕 另类精品,亚洲欧美一区二区蜜桃,日本在线精品视频免费,孩交精品乱子片免费

<sup id="3hn2b"></sup>

    1. <sub id="3hn2b"><ol id="3hn2b"></ol></sub><legend id="3hn2b"></legend>

      1. <xmp id="3hn2b"></xmp>

      2. 新聞中心

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

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

        作者: 時間:2012-07-06 來源:網絡 收藏

        3、軟件實現

        3.1利用提供的串行通信控件MSComm實現串行通信
        首先,在[5]的對話框中創(chuàng)建通信控件,若Control工具欄中缺少該控件,可通過菜單Project→AddtoProject→ComponentsandControl插入即可,再將該控件從工具箱拉到對話框中。此時,你只需要關心控件提供的對Windows通信驅動程序的API函數的接口,即只需要設置和監(jiān)視MSComm控件的屬性和事件。
        在ClassWizard中為新建的通信控件定義成員對象(CMSCommm_Serial),通過該對象便可以對串口屬性進行設置,MSComm控件共有27個屬性,其中主要包括:
        Commport:設置并返回通信端口號,缺省為COM1。
        Settings:以字符串的形式設置并返回波特率、奇偶校驗、數據位、停止位。
        PortOpen:設置并返回通信端口的狀態(tài),也可以打開和關閉端口。
        Input:從接收緩沖區(qū)返回和刪除字符。
        Output:向發(fā)送緩沖區(qū)寫入字符串。
        InputLen:每次設置Input讀入的字符個數,缺省值為0,表明讀取接收緩沖區(qū)中的全部內容。
        InBufferCount:返回接收緩沖區(qū)中已接收到的字符數,將其置0可以清除接收緩沖區(qū)。
        InputMode:定義Input屬性獲取數據的方式(為0:文本方式;為1:二進制方式)。
        RThreshold和SThreshold屬性,表示在OnComm事件發(fā)生之前,接收緩沖區(qū)或發(fā)送緩沖區(qū)中可接收的字符數。
        以下是通過設置控件屬性對串口進行初始化的實例:
        打開所需串口后,需要考慮串口通信的時機。在接收或發(fā)送數據過程中,可能需要監(jiān)視并響應一些事件和錯誤,所以事件驅動是處理串行端口交互作用的一種非常有效的方法。使用OnComm事件和CommEvent屬性捕捉并檢查通信事件和錯誤的值。發(fā)生通信事件或錯誤時,將觸發(fā)OnComm事件,CommEvent屬性的值將被改變,應用程序檢查CommEvent屬性值并作出相應的反應。在程序中用ClassWizard為CMSComm控件添加OnComm消息處理函數:
        3.2系統(tǒng)初始化
        在執(zhí)行應用程序時首先必須進行初始化,其初始化程序框圖如圖2所示。


        按此在新窗口瀏覽圖片
        圖2初始化程序框圖


        運行程序時,視圖執(zhí)行初始化操作函數OnInitialUpdate(),該函數內要先打開串口1,通過設置對象m_ContrCom各成員函數,設置好各通信參數:
        然后經過一個位置選擇對話框,通常選“保持原來的位置”,然后就發(fā)出詢問各軸的坐標值的指令。流程如圖2所示。除x軸是直接發(fā)送坐標詢問指令獲得坐標數據外,其他2個軸都是通過連續(xù)的2個定時器來詢問坐標的,定時器響應后執(zhí)行圖3的程序。此后就進入待操作畫面。
        3.3運行操作的編程
        在電機運動操作區(qū)的各文本框內輸入某一軸向的位移值、速度值,按下“運行”按鈕,則程序會把位移值轉化為字符型的實際要運行的步數,通過串口送到SC3控制器,控制對應的軸的電機運行相應的步數。運行結束后,SC3會返回一個“OK”字符至串口,PC機接受到這個字符后,就知道電機運行結束,然后向串口發(fā)送坐標詢問指令,SC3會回送有關坐標數據,PC機接到這些數據后進行處理運算并在文本框中顯示出來。這樣就結束了一個完整的運行操作。
        所有主要的PC機和SC3控制器的有關數據通信程序都在MSComm控件內。包括所有的接受、識別返回字符,各軸向坐標的運算和顯示。
        當步進運動完畢后,返回到PC機的數據為已經運行的步數,根據這個步數要計算相應的坐標,必須知道各軸的脈沖當量。每走一步,電移臺的位移等于脈沖當量,即分辨率。
        坐標值=初始坐標+運行步數*脈沖當量
        平移臺脈沖當量=絲杠導程mm*步距角/(360*細分數)
        旋轉臺(x軸)的脈沖當量(度)=步進電機步距角/(傳動比*細分數)
        其中細分數是由控制器后面板撥碼開關設置的。
        步進電機的步距角都為1.8°,縱軸的絲杠導程為1mm,橫軸為4mm,旋轉軸傳動比為180∶1,細分數為2,則根據以上公式可得出:
        縱軸(z)脈沖當量=1/100
        橫軸(y)脈沖當量=1/400
        旋轉軸(x)脈沖當量=1/200
        4、結語
        在PC機和單片機之間實現串行通信控制是近幾年很受歡迎、較為流行的方法。本文介紹的運用MSComm控件來編制的由PC機對步進電機直接控制的應用軟件具有友好的人機交互界面,且編程簡便、工作可靠,是一種切實有效的方法。同時,這種串行和技術還可運用于相應的工業(yè)控制場合。

        數字通信相關文章:數字通信原理


        通信相關文章:通信原理



        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區(qū)

        關閉