激情欧美日韩一区二区,浪货撅高贱屁股求主人调教视频,精品无码成人片一区二区98,国产高清av在线播放,色翁荡息又大又硬又粗视频

基于VC++串行通信的無(wú)刷直流電機監控系統

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

基于VC++串行通信的無(wú)刷直流電機監控系統

  摘要:本文重點(diǎn)介紹了基于PC機和MSP430單片機串行通信的具體實(shí)現過(guò)程。硬件部分解決了通信電平不一致的問(wèn)題,軟件部分給出了PC機和單片機的通信程序,解決了通信過(guò)程中數據傳輸的格式問(wèn)題。實(shí)驗結果表明,該方案操作性強,能成功運用于電機的監控系統。

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

  1、引言

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

  2、電機原理及系統硬件組成

  2.1 無(wú)刷直流電機運行原理

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

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

  2.2 下位機控制系統硬件構成

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

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

  ;

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

  2.3 串行通信的硬件實(shí)現

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

  3、串行通信軟件設計

  3.1 上位機串行通信設計

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

  在上位機進(jìn)行通信之前,在MSComm中,設置通信參數,程序在界面上采用可視化的串口設置方式,提高了軟件的通用性和移植性。[論文網(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:表示以二進(jìn)制方式檢取數據

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

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

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

  m_com.SetInputLen(0); //設置當前接收區數據長(cháng)度為0

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

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

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

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

  …

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

  {

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

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

  }

  else

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

  …

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

  3.2 下位機串行通信設計

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

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

  UCA0CTL1 |= UCSSEL_2; // SMCLK

  UCA0BR0 = 104; // 1MHz 9600

  UCA0BR1 = 0; // 1MHz 9600

  UCA0MCTL = UCBRS0; // Modulation UCBRSx = 1

  UCA0CTL1 &= ~UCSWRST;

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

  3.3 通信數據的格式轉化

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

  4、結語(yǔ)

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

  參考文獻

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

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

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

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

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

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

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

基于VB的分布式監控系統通信設計03-18

視頻監控系統―視頻捕獲和傳輸模塊VC++03-08

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

基于PLC的閘門(mén)監控系統設計03-07

用ST72141實(shí)現無(wú)刷直流電機的控制03-19

基于USB接口的數據采集系統-GSM功率測量VC++03-08

基于激光天線(xiàn)語(yǔ)音通信系統的研制03-18

基于GPRS遠程電機監控系統的設計03-07

激情欧美日韩一区二区,浪货撅高贱屁股求主人调教视频,精品无码成人片一区二区98,国产高清av在线播放,色翁荡息又大又硬又粗视频