999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

超聲電機數據采集系統軟件設計與實現

2019-04-04 03:17:40王曉丹姚舜才杜飛
現代電子技術 2019年6期
關鍵詞:數據采集

王曉丹 姚舜才 杜飛

關鍵詞: 超聲電機; 數據采集; 上位機軟件; MFC; 多線程技術; 串口監控

中圖分類號: TN919?34 ? ? ? ? ? ? ? ? ? ?文獻標識碼: A ? ? ? ? ? ? ? ? ? ? ? ? ? ?文章編號: 1004?373X(2019)06?0105?04

Abstract: In order to improve the current situation that the existing ultrasonic motor data acquisition system cannot process large amounts of data and its data acquisition accuracy is not high, a method that the Microsoft Foundation Classes (MFC) and multithreading technology are applied to the data acquisition system of the ultrasonic motor is proposed. The programming method using the multi?threading technology on the Visual Studio 2012 development platform is emphatically introduced, and applied to the design of the upper computer software program that performs real?time data transceiving and serial port monitoring for the ultrasonic motor controller, which can test the real?time variation of the ultrasonic motor′s rotating speed and torque versus with time at different drive voltages and duty ratios. The software can realize real?time monitoring and operation functions of the ultrasonic motor, which has been successfully applied in the ultrasonic motor data acquisition system in the laboratory. The practical results show that the data acquisition software can effectively control the start and stop of the motor, has a fast speed and high accuracy in data processing, can draw clear and accurate curves, and run smoothly and reliably.

Keywords: ultrasonic motor; data acquisition; upper computer software; MFC; multi?threading technology; serial port monitoring

0 ?引 ?言

隨著當今時代電力電子技術的不斷進步,超聲波電動機作為一種新概念的新型電動機于20世紀80 年代中期逐漸走進人們的視野。它集電子學、摩擦力學、波動學等眾多學科技術于一體,擁有比傳統的電磁式電機更小的體積,更快的響應速度,幾乎不受電磁干擾等獨特優勢而被廣泛應用在航空航天和軍事、汽車領域[1]。也正是因為其具有獨一無二且不可替代的優點,深入研究超聲電機的各種性能和應用技術才顯得格外有意義。

文獻[2]提出在Matlab平臺下,應用Matlab內部特有的函數功能實現信號的接收和輸出,該方法雖然編程簡單,易于實現,但其通用性不高,應用范圍小,不能夠靈活;文獻[3]詳細敘述了應用循環緩沖技術與多線程技術共同實現遠程采集數據,該方法很難達到數據的精確度要求,不適用于微型電機的數據采集。目前,國外尤其是日本對超聲電機的研究及應用非常廣泛,處于世界領先地位,我國對于超聲電機的研究比較落后,對超聲電機的應用領域也非常狹隘,在超聲電機數據采集領域更是迄今沒有一套完整的解決方案。

為了推進超聲電機在我國的研究與發展,本文針對超聲電機的數據采集做了詳細的研究與大量的試驗,提出將MFC(Microsoft Foundation Classes)結合多線程技術應用于超聲電機數據采集系統,實現對超聲電機進行實時控制和數據采集。該方法易于實現且能夠處理大量數據,充分利用了Visual Studio 2012豐富的數據庫和支持更多新技術架構的特點。應用多線程能夠避免某任務長時間占用CPU,是個很好的選擇,且MFC與多線程技術在其他領域的應用已較為成熟。

1 ?超聲電機數據采集模塊

數據采集在通信與信息技術領域的地位十分重要。當前對超聲電機的數據采集在精度和采集數據量上提出了更高標準和要求[4]。本文提出將MFC多線程串口通信技術應用于對超聲電機的動態數據采集,從而實現對超聲電機的實時控制、診斷和監測等功能,進而改進電機的性能。超聲電機數據采集模塊設計如圖1所示。

從圖中可以看到,該數據采集軟件可實時控制超聲波電動機的啟動和停止,根據用戶的需要,選擇不同的占空比和超聲電機的工作電壓,測試超聲電機在相同的占空比不同的工作電壓或者相同的工作電壓不同的占空比的條件下超聲電機的工作性能,并將得到的數據存為文件。不僅可以顯示當前采集的數據曲線,還可以選擇以往采集到的數據文件并顯示信號,大大增強了軟件的實用性而且提高了數據采集量。

2 ?多線程技術與串口通信

2.1 ?多線程技術

程序在計算機上的一個運轉實例稱為進程,程序中的一條運行分支稱為線程,同一個程序在相同的時間運行多個任務稱為多線程[5]。而由計算機主動建立的線程稱為主線程,用戶還可以依據自身需求在程序中建立多個線程,它們可以在同一個進程中一起運作。一個進程的虛擬地址空間中存放著該進程的所有線程,這里的系統空間和全局變量等資源被這些線程共同分享[6]。為了實現就緒態線程和執行態線程之間的快速轉換,還需要硬件對多線程的支持,比如:程序計數器PC、程序狀態寄存器SR。本文應用多線程技術實現超聲電機數據采集系統邊接收信號邊發送命令的功能,提高了系統整體運行效率。

Visual Studio 2012中包含了MFC類庫,在MFC中,用AfxBeginThread()來創建并初始化一個線程的運行,工作者線程和用戶界面線程分別由AfxBeginThread()的兩種重載函數來建立[7]。

SuspendThread()和ResumeThread()分別用于掛起線程和恢復使用掛起的線程。當前被停止的線程不會消耗處理器的時間,并且不允許主動調用ResumeThread()來恢復自己,其他未掛起的線程可以為自己也可以為別的線程調用SuspendThread()。

線程同步:多線程提高了程序執行效率,各線程經常在相同的時間內訪問它們共有的資源,這樣就會造成各線程之間競爭資源的問題[8]。Win32API所包含的臨界區域、互斥對象、信號量和事件等可控對象有效地解決了這個問題。如果某一個操作必須要等到另外一個操作執行完之后才可以執行,則建議使用事件對象;如果在相同的時間,同一個應用程序中指定個數的線程需要訪問同一個資源,建議使用信號量對象;不同的應用程序在相同的時間訪問同一個資源,建議使用互斥對象;其他的使用臨界區域[9]。

2.2 ?串口通信技術

Windows下使用下列三種串口通信方法進行編寫程序:

1) MSComm控件設計;

2) 用Windows API函數設計;

3) 采用由第三方供給的串口通信類進行編寫程序。

MSComm是一種Windows下串口通信編寫程序的ActiveX控件[10],其優點是使用簡單方便快捷,缺點是封裝性比較大,容易對程序編寫的可操作性和可控性造成很大的影響。Windows API對程序員的操作技術和編程技術要求非常高,其長處是運行穩定[11]。第三方串口通信類融合了前兩種方法的優點,不僅編程效率高而且可控性強[12],因此第三方串口通信類的應用要比前兩種廣泛。由于本程序用于實際項目工作中,對運行的穩定性要求比較高,所以選用Windows API函數編寫。

3 ?數據采集系統軟件實現

打開Visual Studio 2012,建立一個基于會話框的MFC應用程序并命名,其他步驟保持缺省狀態。在已有的對話框中設置菜單欄,分別有設置、開關、保存數據、清空數據和退出等菜單項,相應的編輯工具欄、接收和發送數據模塊以及串口設置模塊,更改各個控件的ID名稱。根據MFC中的消息循環機制和規則,按照串口通信協議中的要求,就可以完成本串口通信部分的編寫。串口通信流程如圖2所示。

串口通信協議的通信方式為主、從方式,采用串行異步通信協議;數據格式含有起始位:1位;數據位:8位;停止位:1位;偶校驗位:1位;數據傳輸速率為9 600 b/s。通信過程為,當主機發出命令后,等待從機回復命令,從機務必在接收到主機命令后20 ms內響應主機,倘若主機發出命令后在20 ms內沒有收到從機發出的響應信息或收到從機響應信息不正確,則重發該命令;從機收到主機命令后要判斷本次通信是否正確,并設置相應的狀態位給主機應答。

通過對超聲波電動機數據采集系統的分析,將實現程序分成如下幾個線程:

1) 主線程。負責處理用戶界面的消息,同時調度其他線程執行數據處理。

2) 串口監視線程。負責監視線程并采集數據同時將數據保存。

3) 入庫線程。將采集到的數據按規則計算分析并將處理好的數據保存。

4) 顯示線程。在上位機界面顯示出讀取到的數據,這些數據反映了超聲電機轉速大小,便于操作人員依據這些數據來判斷超聲電機的工作狀態,從而實現對超聲電機的控制,實時監控和故障診斷[13]。

下面介紹將多線程技術應用于超聲電機數據采集系統上位機軟件關鍵程序。

1) 初始化串口

m_hComm = NULL;

// 初始化異步操作成員變量

m_ov.Offset = 0;

m_ov.OffsetHigh = 0;

// 創建異步操作的事件成員變量

m_ov.hEvent = NULL;

// 初始化發送及關閉事件

m_hWriteEvent = NULL;

m_hShutdownEvent = NULL;

//初始化發送變量

m_szWriteBuffer = NULL;

m_nWriteSize=1;

// 串口監控線程處于非激活狀態

m_bThreadAlive = FALSE;

2) 啟動監視串口事件的工作線程

boolCMyserial::StartMonitoring()

{

If

(!(m_Thread = AfxBeginThread(CommThread, this)))

return FALSE;

TRACE("Thread started\n");

return TRUE;

}

UINT CMyserial::CommThread(LPVOID pParam)

{

CMyserial *port = (CMyserial*)pParam;

port?>m_bThreadAlive = TRUE;

DWORDBytesTransfered = 0;

DWORD Event = 0;

DWORD CommEvent = 0;

DWORD dwError = 0;

COMSTAT comstat;

BOOL ?bResult = TRUE;

if (port?>m_hComm) ? ? ? ? ? ? ? ? ? ? ? ? //檢查串口是否打開

PurgeComm(port?>m_hComm, PURGE_RXCLEAR | PURGE_

TXCLEAR | PURGE_RXABORT | PURGE_TXABORT);

bResult = WaitCommEvent(port?>m_hComm, &Event, &port?>

m_ov);

3) 發送和接收數據模塊

if (port <= 0 || port > 4)

return ?1;

m_RCount++; ? ? ? ? ? ? ? ? ? ? ? ? ? ?//接收的字節計數

m_ctrlRCount.SetWindowText(strTemp);

//顯示接收計數

//如果選擇了“十六進制顯示”,則顯示十六進制值

CStringstr;

if(m_bRHex)

str.Format("%02X",ch);

else

str.Format("%c",ch);

lpsStr = (LPCTSTR)m_strData;

m_Port.WriteToPort(lpsStr); ? ? ? ? ? ? ? ? ? ? ? ? ?//發送數據

m_SCount+=m_strData.GetLength();

4) 關閉事件線程和串口

// 創建關閉串口事件

if (m_hShutdownEvent != NULL)

ResetEvent(m_hShutdownEvent);

else

m_hShutdownEvent=CreateEvent(NULL, TRUE, FALSE,

NULL);

SetEvent(m_hShutdownEvent); ? ? ? ? ? ? ? ? ? //關閉串口

if(m_hShutdownEvent!=NULL)

CloseHandle(m_hShutdownEvent);

if(m_ov.hEvent!=NULL)

CloseHandle(m_ov.hEvent );

if(m_hWriteEvent!=NULL)

CloseHandle(m_hWriteEvent );

TRACE("Thread ended\n");

delete [] m_szWriteBuffer; ? ? ? ? ? ? ? ? ? ? //刪除發送緩沖區

4 ?結果分析

本設計在超聲電機數據采集主動控制系統的實驗平臺上,對超聲電機進行了數據采集試驗并測試了超聲電機在不同的電壓和占空比的條件下,轉速隨時間變化規律,結果如圖3所示。

實驗結果表明,該方法對超聲電機的數據采集與測試非常有效,且該軟件能達到實時監控超聲電機的目的,運行穩定,能夠實時控制超聲電機的啟動停止,數據處理速度快,繪制曲線清晰、準確。

5 ?結 ?語

超聲電機作為一種新概念的微型電動機,在精密機械儀表、自動化裝備、車輛專用器件、工農業控制系統、計算機、航空航天、智能機器人等領域有著廣闊的應用前景。而將基于MFC的多線程技術應用于超聲電機數據采集系統,大大改善了系統各方面性能,不僅有效地解決了因串口長時間占用CPU導致的線程堵塞問題,而且能夠處理大量數據并且保證了數據的精確度,也使超聲電機在應用過程中更加穩定地發揮性能,滿足了用戶多路數據并發的需求,為超聲電機的應用提供了全方位服務。該數據采集軟件具有實際應用價值,可為相關專業人員進一步研究和應用提供參考。

參考文獻

[1] 李顏鑫.超聲波發電機的發展現狀及應用[J].科技展望,2016,26(28):112.

LI Yanxin. Development and application of ultrasonic generator [J]. Technology outlook, 2016, 26(28): 112.

[2] 吳侃,于明禮,李明.基于Matlab GUI的超聲電機控制系統串口通信研究[J].機電工程,2015,32(11):1471?1476.

WU Kan, YU Mingli, LI Ming. Study on serial communication of ultrasonic motor control system based on Matlab GUI [J]. Journal of mechanical & electrical engineering, 2015, 32(11): 1471?1476.

[3] 艾紅,鄧大偉,鄺野.遠程數據采集與監測系統研究[J].自動化儀表,2012,33(8):31?33.

AI Hong, DENG Dawei, KUANG Ye. Research on remote data acquisition and monitoring system [J]. Process automation instrumentation, 2012, 33(8): 31?33.

[4] 熊飛.高速數據采集系統實現及其應用[D].南京:南京理工大學,2017.

XIONG Fei. Implementation and application of high?speed data acquisition system [D]. Nanjing: Nanjing University of Science and Technology, 2017.

[5] CHANG X C, ZHANG C H, SUN L. A data collecting and caching mechanism for gateway middleware in the web of things [J]. Advanced materials research, 2013, 756: 2157?2162.

[6] 張超.多線程串口通信技術在GPS導航中的應用[J].電子制作,2016(17):38?39.

ZHANG Chao. Application of multithreaded serial communication technology in GPS navigation [J]. Practical electronics, 2016(17): 38?39.

[7] 龔寄,何雅槐.永磁同步電機控制器串口通信上位機軟件設計[J].自動化應用,2016(8):21?23.

GONG Ji, HE Yahuai. Design of serial communication upper computer software for permanent magnet synchronous motor controller [J]. Automation application, 2016(8): 21?23.

[8] KIM J W, PARK C H, JEONG S S, et al. Driving characteristics of a simple square?frame ultrasonic motor [J]. Applied mechanics and materials, 2011, 110: 210?216.

[9] 歐如月.MFC多線程技術在串口通信中的應用[J].信息與電腦(理論版),2017(15):171?172.

OU Ruyue. Application of multi?thread technology in serial communication [J]. China computer & communication (theoretical edition), 2017(15): 171?172.

[10] 趙淳生,朱華.超聲電機技術的發展和應用[J].機械制造與自動化,2008,37(3):1?9.

ZHAO Chunsheng, ZHU Hua. Development and application of ultrasonic motors technologies [J]. Machine building & automation, 2008, 37(3): 1?9.

[11] 范筱朔.多線程技術在數據通信中的應用探究[J].電腦迷,2017(11):81.

FAN Xiaoshuo. Application of multithreading technology in data communication [J]. PC fan, 2017(11): 81.

[12] 陳讓琛.多線程串口通信技術在北斗導航中的運用分析[J].無線互聯科技,2017(15):8?9.

CHEN Rangchen. Analysis on the use of multi?threaded serial communication technology in Beidou navigation [J]. Wireless Internet technology, 2017(15): 8?9.

[13] 劉浩,李榮冰,劉建業,等.基于串口通信的DSP在線燒寫技術研究[J].電子測量技術,2017,40(7):184?187.

LIU Hao, LI Rongbing, LIU Jianye, et al. Research on online programming techniques for DSP based on serial communication [J]. Electronic measurement technology, 2017, 40(7): 184?187.

猜你喜歡
數據采集
Web網絡大數據分類系統的設計與改進
CAN總線通信技術在電梯監控系統中的應用
基于大型嵌入式系統的污水檢測系統設計
社會保障一卡通數據采集與整理技巧
基于AVR單片機的SPI接口設計與實現
CS5463在植栽用電子鎮流器老化監控系統中的應用
大數據時代高校數據管理的思考
科技視界(2016年18期)2016-11-03 22:51:40
鐵路客流時空分布研究綜述
基于廣播模式的數據實時采集與處理系統
軟件工程(2016年8期)2016-10-25 15:54:18
通用Web表單數據采集系統的設計與實現
軟件工程(2016年8期)2016-10-25 15:52:53
主站蜘蛛池模板: 国产精品免费电影| 91精品网站| 青青草原国产精品啪啪视频| 国产91小视频| 蜜桃视频一区二区| 久久青草热| 久久伊人操| 国产不卡在线看| 日韩中文欧美| 狠狠色丁香婷婷| 久久精品人人做人人综合试看| 欧美第二区| 成人看片欧美一区二区| 国产91麻豆视频| 亚洲首页国产精品丝袜| 久久国产香蕉| 亚洲天堂免费观看| 99色亚洲国产精品11p| 91福利免费| 国产丝袜啪啪| 日韩在线第三页| 亚洲中文在线看视频一区| 日韩欧美中文字幕在线韩免费| 日韩成人免费网站| 97成人在线视频| 色综合成人| 无码AV日韩一二三区| 国产原创演绎剧情有字幕的| 免费又爽又刺激高潮网址| 免费看的一级毛片| 亚洲精品自拍区在线观看| 久久永久免费人妻精品| a毛片免费观看| 免费福利视频网站| 国产精品久久久精品三级| 日韩黄色精品| 九色在线观看视频| 国产成人精彩在线视频50| 欧美一级片在线| 久草视频精品| 91精品啪在线观看国产91| 国产日本一线在线观看免费| 中文字幕不卡免费高清视频| 在线中文字幕日韩| 成人免费视频一区| 久久免费精品琪琪| 丁香五月激情图片| 国产视频久久久久| 国产污视频在线观看| 亚洲人成成无码网WWW| 国产无码网站在线观看| 一级毛片在线播放免费| 精品久久久久久成人AV| 91九色视频网| 91小视频在线观看| 波多野结衣一区二区三视频 | 亚洲最猛黑人xxxx黑人猛交| 免费xxxxx在线观看网站| 精品三级网站| a色毛片免费视频| 国产在线精彩视频二区| 在线观看av永久| 亚洲欧美另类中文字幕| 91精品在线视频观看| 亚洲首页国产精品丝袜| 国产在线视频欧美亚综合| 91久久精品国产| 国产一级在线播放| 操美女免费网站| 欧美一区二区三区欧美日韩亚洲 | 欧美精品v| 免费无码在线观看| 四虎影视8848永久精品| 天天色综网| 精品国产成人av免费| 国产欧美专区在线观看| 毛片在线区| 国产97色在线| 91色在线观看| a级毛片免费网站| 国产交换配偶在线视频| 亚洲日韩精品伊甸|