新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于VC++的步進電機控制系統研究

        基于VC++的步進電機控制系統研究

        作者: 時間:2013-10-21 來源:網絡 收藏


        3、軟件實現

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

        首先,在的對話框中創建通信控件,若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機對步進電機直接控制的應用軟件具有友好的人機交互界面,且編程簡便、工作可靠,是一種切實有效的方法。同時,這種串行控制方法和技術還可運用于相應的工業控制場合。

        陀螺儀相關文章:陀螺儀原理



        上一頁 1 2 3 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 萝北县| 乐陵市| 儋州市| 会泽县| 垫江县| 深圳市| 六安市| 双牌县| 时尚| 漳州市| 上蔡县| 红安县| 钟祥市| 乐都县| 大名县| 洛浦县| 长白| 喀喇| 叶城县| 宜君县| 义马市| 文登市| 沁水县| 荥经县| 沁阳市| 平定县| 张家界市| 抚松县| 安西县| 孝感市| 房山区| 临朐县| 扎囊县| 东乌珠穆沁旗| 德安县| 合江县| 泸州市| 泾川县| 武威市| 专栏| 肃南|