<dfn id="w48us"></dfn><ul id="w48us"></ul>
  • <ul id="w48us"></ul>
  • <del id="w48us"></del>
    <ul id="w48us"></ul>
  • 基于VC++串行通信的無刷直流電機監(jiān)控系統(tǒng)

    時間:2024-07-26 16:11:16 自動化畢業(yè)論文 我要投稿
    • 相關(guān)推薦

    基于VC++串行通信的無刷直流電機監(jiān)控系統(tǒng)

      摘要:本文重點介紹了基于PC機和MSP430單片機串行通信的具體實現(xiàn)過程。硬件部分解決了通信電平不一致的問題,軟件部分給出了PC機和單片機的通信程序,解決了通信過程中數(shù)據(jù)傳輸?shù)母袷絾栴}。實驗結(jié)果表明,該方案操作性強,能成功運用于電機的監(jiān)控系統(tǒng)。

      關(guān)鍵詞:無刷直流電機 VC++ MSP430 串行通信

      1、引言

      [1]無刷直流電機調(diào)速性能好,利用單片機MSP430專門的PWM功能、豐富的I/O口、快速運算等優(yōu)點,實現(xiàn)對無刷直流電機的邏輯控制,由于作為下位機的人機交互性不強,難以對電機運行時的關(guān)鍵信息有效處理,本文通過編寫VC++上位機程序,采用PC機和單片機串行通信的主從式結(jié)構(gòu),實現(xiàn)了對電機的監(jiān)控。

      2、電機原理及系統(tǒng)硬件組成

      2.1 無刷直流電機運行原理

      無刷直流電機的電力電子開關(guān)代替有刷電機的換向片,減少了機械磨損及因換向產(chǎn)生的一些危險,系統(tǒng)由電動機本體、位置檢測器、逆變器和控制器組成[2]。

      電機本體同軸上的位置傳感器,根據(jù)轉(zhuǎn)子的不同位置,發(fā)出邏輯信號,根據(jù)實驗所得的邏輯表,控制輸出回路發(fā)出的信號,經(jīng)MOSFET驅(qū)動放大,控制電機電樞電流的導(dǎo)通,以實現(xiàn)“換向”。

      2.2 下位機控制系統(tǒng)硬件構(gòu)成

      下位機以MSP430系列的F2274單片機為控制核心,通過檢測電機轉(zhuǎn)子信號,單片機I/O口發(fā)出相應(yīng)邏輯信號,與控制轉(zhuǎn)速的PWM信號相“與”,經(jīng)信號隔離,到電機專用驅(qū)動芯片IR2130中,繼而導(dǎo)通橋式電路,實現(xiàn)MOSFET的導(dǎo)通。

      同時, MSP430單片機的捕獲比較模塊,捕獲三相傳感器信號輸入的時間,本文試驗采用的無刷直流電機為一個機械周期(20個電周期),通過計算得到電機的轉(zhuǎn)速公式為[3]:

      ;

      表示檢測到第一次位置信號時的時鐘數(shù),表示檢測到第二次位置信號時的時鐘數(shù),為定時器的時鐘主頻,*3則表示轉(zhuǎn)過一個電周期所用的時間。通過串行通信,可將轉(zhuǎn)速、電壓、電流這些參數(shù)傳至上位機。

      2.3 串行通信的硬件實現(xiàn)

      本文采用異步通信模式[4],設(shè)定好波特率及數(shù)據(jù)位和停止位的個數(shù);將PC機的RXD腳與下位機的TXD相連,并共地;利用MAX232芯片實現(xiàn)電壓轉(zhuǎn)換,即通過串口線連到PC機上,加上5個1的電容把RS232電平轉(zhuǎn)化為標準TTL電平,再用兩個電阻分壓,以達到MSP430單片機的電壓標準。

      3、串行通信軟件設(shè)計

      3.1 上位機串行通信設(shè)計

      [5]本文上位機通信模塊采用MFC的編程方式,界面如圖1所示。加入MSComm控件,自動生成CMSComm的類,訪問其內(nèi)部函數(shù),可對PC機串行通信進行控制。

      在上位機進行通信之前,在MSComm中,設(shè)置通信參數(shù),程序在界面上采用可視化的串口設(shè)置方式,提高了軟件的通用性和移植性。[論文網(wǎng)]

      setting=m_botelv+",";

      if (m_testbit == "None")

      parity = "n";

      else if (m_testbit == "Odd")

      parity = "o";

      else if (m_testbit == "Even")

      parity = "e";

      else if (m_testbit == "Mark")

      parity = "m";

      else if (m_testbit == "Space")

      parity = "s";

      setting += parity + ",";

      setting += m_sbitbit + ",";

      setting += m_stopbit;

      if (m_comkou == "COM1")

      m_com.SetCommPort(1);

      else if (m_comkou == "COM2")

      m_com.SetCommPort(2);

      m_com.SetSettings(setting);

      m_com.SetInputMode(1); //1:表示以二進制方式檢取數(shù)據(jù)

      m_com.SetRThreshold(1); //為1表示有一個字符引發(fā)一個事件

      m_com.SetSThreshold(1); //參數(shù)1表示每當串口接收緩沖區(qū)中有

      //多于或等于1個字符時將引發(fā)一個接收數(shù)據(jù)的OnComm事件

      m_com.SetInputLen(0); //設(shè)置當前接收區(qū)數(shù)據(jù)長度為0

      在查詢到CommEvent的值等于2時,表明接收緩存里有了數(shù)據(jù)。數(shù)據(jù)是VARIANT型的,首先轉(zhuǎn)化為ColeSafeArray形式,然后再將數(shù)組元素分離轉(zhuǎn)化為BYTE型數(shù)組,最后再將BYTE里的字符轉(zhuǎn)化為數(shù)字。當上位機按下按鈕發(fā)送數(shù)據(jù)時,也應(yīng)通過函數(shù)COleVariant()進行強制類型轉(zhuǎn)換,以VARINT的形式傳送出去。

      當下位機將電機轉(zhuǎn)速的數(shù)據(jù)上傳后,本軟件加入了圖形顯示和數(shù)據(jù)存儲功能。在繪圖子對話框中,首先通過GetParent函數(shù)調(diào)用父對話框指針,將父對話框中的數(shù)值傳進子對話框,然后通過定時器,以一定頻率繪制網(wǎng)格線并將傳進來的數(shù)據(jù)點在圖上顯示。再次更新時,則重新繪制新曲線,覆蓋原有圖形,并將新點和舊點以直線相連,從而實現(xiàn)圖2所示的速度曲線。

      在數(shù)據(jù)傳到子對話框時,基于VC++的操作,本文采取二進制格式存儲數(shù)據(jù)。首先定義一個fstream的類對象,該類支持從本流類所對應(yīng)的磁盤文件中讀入和寫入數(shù)據(jù)的雙向操作。當主對話框設(shè)置為“采集數(shù)據(jù)”時,對定義的二進制文件進行“寫”操作;當設(shè)置“顯示數(shù)據(jù)”時,則不斷調(diào)用二進制文件里的數(shù)據(jù),并傳遞給圖像控件,顯示存儲的數(shù)據(jù)。關(guān)鍵代碼如下:

      fstream iobin("ob.bin",ios::binary|ios::out |ios::in);//定義類對象,ob為目標數(shù)據(jù)文件

      …

      if(((CQuxian1Dlg*)GetParent())->showmode==0)//0表示采集1表示顯示已有數(shù)據(jù)

      {

      data=((CQuxian1Dlg*)GetParent())->data;//取得父對話框的速度數(shù)據(jù)

      iobin.write((char*)(&data),sizeof(data));//寫人二進制文件

      }

      else

      iobin.read((char*)(&data),sizeof(data));//顯示已有數(shù)據(jù)

      …

      iobin.close();//關(guān)閉二進制文件

      3.2 下位機串行通信設(shè)計

      在下位機控制系統(tǒng)中,采用MSP430系列單片機,其內(nèi)置的USCI模塊通過UCAXRXD和UCAXTXD兩個外部引腳連到單片機外部,實現(xiàn)串行通信[5]。

      首先設(shè)定好系統(tǒng)時鐘,并進行UCAXRXD和UCAXTXD的引腳設(shè)置。然后通過UCA0CTL1選擇串行通信模塊的時鐘源,并通過UCA0BR0、UCA0BR1分頻,從而得到需要的波特率。串行模塊中的控制字UCMSB控制發(fā)送和接受移位寄存器從高位還是低位開始接受,應(yīng)設(shè)置為低位,否則會出現(xiàn)數(shù)據(jù)錯誤。參數(shù)設(shè)置如下:

      UCA0CTL1 |= UCSSEL_2; // SMCLK

      UCA0BR0 = 104; // 1MHz 9600

      UCA0BR1 = 0; // 1MHz 9600

      UCA0MCTL = UCBRS0; // Modulation UCBRSx = 1

      UCA0CTL1 &= ~UCSWRST;

      數(shù)據(jù)的發(fā)送和接收是通過中斷函數(shù)進行的。首先開接收中斷,對接收到的數(shù)據(jù)進行判斷,并根據(jù)相應(yīng)指令對電機的啟動/停止和速度進行控制,當接收到啟動命令后,再開發(fā)送中斷,將每次計算得到的轉(zhuǎn)速數(shù)據(jù)傳到發(fā)送緩存中進行上傳,程序流程如圖3所示。

      3.3 通信數(shù)據(jù)的格式轉(zhuǎn)化

      單片機的接收和發(fā)送緩存是8位,本系統(tǒng)傳輸?shù)臄?shù)據(jù)是float型,在傳輸前需進行數(shù)據(jù)轉(zhuǎn)換。首先,限定傳輸?shù)臄?shù)據(jù)為0.0001~9999,取4位有效數(shù)字;然后將數(shù)據(jù)擴大10的“倍數(shù)”,轉(zhuǎn)化為整數(shù);再將整數(shù)分為高二位和低二位,分別賦到數(shù)組的前兩位元素中,第三位元素賦以“倍數(shù)”;第四位元素賦以標識位,使每個目標數(shù)有唯一的標識符,方便傳輸。

      4、結(jié)語

      本文以MSP430單片機為核心,通過編制上位機可視化程序,采取主從式控制結(jié)構(gòu),使得無刷直流電機的控制和可觀性得到了明顯的改善,實驗結(jié)果表明,該方案能成功用于電機的監(jiān)控系統(tǒng)。

      參考文獻

      [1]孫建忠,白鳳仙.特種電機及其控制[M].北京:中國水利水電出版社,2010.87-105.

      [2]李先詳,斯燕躍.無刷直流電機的單片機監(jiān)控系統(tǒng)的研制[J].電氣傳動自動化,2002(3):3-5.

      [3]王宏華.新型交流電動機及控制技術(shù)系列講座(3)永磁無刷電動機[J].機械制造與自動化,2004(3):105-109.

      [4]徐洋.基于MSP430單片機的無刷直流電機實驗測試平臺設(shè)計[J].電氣技術(shù)與自動化,2010(4):168-171.

      [5]張筠,劉書智.Visual C+ +實踐與提高—串口通信與工程應(yīng)用篇[M].北京:中國鐵道出版社,2006:179-182.

    【基于VC++串行通信的無刷直流電機監(jiān)控系統(tǒng)】相關(guān)文章:

    基于SNMP及串口通信的網(wǎng)絡(luò)監(jiān)控與報警系統(tǒng)03-07

    基于VB的分布式監(jiān)控系統(tǒng)通信設(shè)計03-18

    視頻監(jiān)控系統(tǒng)―視頻捕獲和傳輸模塊VC++03-08

    應(yīng)用于光伏水泵系統(tǒng)中的無位置傳感器無刷直流電機的控制03-19

    基于PLC的閘門監(jiān)控系統(tǒng)設(shè)計03-07

    用ST72141實現(xiàn)無刷直流電機的控制03-19

    基于USB接口的數(shù)據(jù)采集系統(tǒng)-GSM功率測量VC++03-08

    基于激光天線語音通信系統(tǒng)的研制03-18

    基于GPRS遠程電機監(jiān)控系統(tǒng)的設(shè)計03-07

    主站蜘蛛池模板: 精品国产VA久久久久久久冰 | 无码日韩人妻精品久久蜜桃| 国产精品久久久久无码av| 久久国产成人亚洲精品影院 | 国产一区二区三区在线观看精品 | 6080亚洲精品午夜福利| 久久99热只有频精品8| 亚洲精品无码专区在线播放| 国产精品秘入口福利姬网站| 成人国产精品一区二区网站 | 国产精品99精品久久免费| 伊人精品视频在线| 欧美精品亚洲日韩aⅴ| 国产福利精品视频自拍| 国产午夜精品视频| 国产精品igao视频网| 久久青青草原精品国产| 亚洲日韩精品无码专区网址| 免费短视频软件精品一区二区| 国产成人精品在线观看| 欧美精品香蕉在线观看网| 国产精品久久久久无码av| 成人无码精品1区2区3区免费看| 亚洲∧v久久久无码精品| 亚洲午夜精品久久久久久app| 久久久精品人妻无码专区不卡 | 精品福利资源在线| 97久久久精品综合88久久| 精品久久久久香蕉网| 日韩av无码久久精品免费| 午夜精品久久久久久毛片| 日韩精品人妻系列无码专区| 人妻少妇乱子伦精品| 亚洲中文久久精品无码ww16 | 精品国产福利一区二区| 国产中老年妇女精品| 精品国产sm捆绑最大网免费站| 国产精品亚洲片在线观看不卡 | 下载天堂国产AV成人无码精品网站| 国产综合精品久久亚洲| 久久久精品视频免费观看|