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

基于VB 6.0串口通信的氣壓測高系統數據采集實現

2010-04-12 00:00:00王曉嵐
現代電子技術 2010年3期

摘 要:隨著串行通信的使用越來越普遍,Microsoft公司在Visual Basic中設計了MSComm控件,可以很好地完成串行通信的設計。介紹基于VB 6.0 ActiveX控件的MSComm通信控件,實現了PC機對氣壓測高系統數據采集的串行通信。結果表明,其能夠達到同時對多臺氣壓測高接收機進行數據采集,并為后期數據處理提供了原始數據。

關鍵詞:VB 6.0;串口通信;MSComm控件;氣壓測高

中圖分類號:TP311.1 文獻標識碼:A

文章編號:1004-373X(2010)03-116-03

Implementation of Barometric Altimeter System for Data Acquisition

Based on VB 6.0 Serial Communication

WANG Xiaolan

(National Astronomical Observatory,Chinese Academy of Sciences,Beijing,100012,China)

Abstract:With the increasingly common use of serial communication,MSComm Control is designed in Visual Basic by Microsoft Corporation,it is well completed the design of serial communication.How to achieve serial communication between PC and barometric altimeter system of data acquisition based on VB 6.0 ActiveX control MSComm communication control is introduced.The results show that the function of data acquisition with multiple barometric altimeter receivers can be reached at the same time,and the raw data is provided for post-data processing.

Keywords:Visual Basic 6.0;serial communication;MSComm control;barometric altimeter

串口通信在系統控制的范疇中一直占據著極其重要的地位,在規格上越來越完善,應用也越來越廣泛,使用串行通信的方式可以達到系統控制的目的。以往,要實現計算機的串口通信需要做大量復雜的工作,如今,Visual Basic 6.0(VB 6.0)在開發可視化環境下的監控系統時有其獨特的優勢,VB 6.0提供了串行通信控件,可以輕松實現串口數據的交換[1]。本文介紹了基于VB 6.0的ActiveX控件——Microsoft Communication(MSComm)通信控件,實現了PC機對氣壓測高系統的串行通訊功能,完成了對多臺氣壓測高設備進行數據采集[2]。

1 氣壓測高測試系統的基本構成

氣壓測高系統的基本構成如圖1所示,由PC機、氣壓測高基準站以及氣壓測高接收機三部分組成。PC機通過RS 232接口以及USB-RS 232接口與一個氣壓測高基準站和多個氣壓測高接收機相連接。氣壓測高基準站和每個氣壓測高接收機通過選用不同的串口端口來區分,這樣PC機就可以對基準站和每個接收機進行通信,實現對氣壓測高基準站以及接收機的數據采集。

采集到的數據主要用于以下分析:

(1) 分析不同地點的氣壓值、溫度值以及大地高度值。

(2) 比較同一地點不同氣壓測高接收機測量的氣壓值、溫度值以及大地高度值。

圖1 氣壓測高系統基本構成方框圖

2 氣壓測高接收機的簡介

氣壓測高接收機采用主要器件為:瑞士Intersema公司生產的集成壓阻式壓力傳感器和ADC接口的SMD混合集成模塊——MS5534C[3],微控制器選用ATmega8L單片機。氣壓測高接收機的硬件示意圖如圖2所示。其工作流程為:氣壓測高基準站將氣象資料(基準站的氣壓、溫度和高度)發送給ATmega8L,同時,ATmega8L采集MS5534C測得的接收機所在位置的氣壓和溫度,利用相關的公式,解算出當地的大地高度,并發送給PC機[4]。

圖2 氣壓測高接收機的硬件示意圖

3 VB 6.0中MSComm通信控件

VB 6.0增加了面向對象程序設計功能,它不僅可以方便快捷地編制適用于數據處理、多媒體等方面的程序,并且提供了一個ActiveX控件——Microsoft Communication Control,Version 6.0,稱為MSComm控件,可以方便地開發出使用計算機串口的計算機通信程序。MSComm控件提供了兩種處理通信的方式:一種為事件驅動方式,該方式相當于一般程序設計中的中斷方式。當串口發生事件或錯誤時,MSComm控件會產生OnComm事件,用戶程序可以捕獲該事件進行相應處理。另一種為查詢方式,在用戶程序中設計定時或不定時查詢MSComm控件的某些屬性是否發生變化,從而確定相應處理[1]。

利用MSComm控件實現計算機通信的關鍵是理解并正確設置MSComm控件眾多屬性和方法。以下是MSComm控件的常用屬性和方法:

Commport:設置或返回串口號,類型short。

Settings:以字符串的形式設置或返回串口通信參數。

Portopen:設置或返回串口狀態。

InputMode:設置或返回接收數據的類型。

Inputlen:設置或返回一次從接收緩沖區中讀取字節數,類型short。

Input:從接收緩沖區中讀取數據并清空該緩沖區,該屬性設計時無效,運行時只讀。

Output:向發送緩沖區發送數據,該屬性設計時無效,運行時只讀。

Rthreshold:當接收緩沖區中字符數達到該值時,MSComm控件設置Commevent屬性為ComEvReceive,并產生OnComm事件。

Sthreshold:當發送緩沖區中字符數小于該值時,MSComm控件設置Commevent屬性為ComEvSend,并產生OnComm事件。若Sthreshold屬性設置為0,則不產生OnComm事件。

CommEvent:串口事件,該屬性設計時無效,運行時只讀。一旦串口發生通信事件或產生錯誤,依據產生的事件和錯誤,MSComm控件為CommEvent屬性賦不同的代碼,同時產生OnComm事件。用戶程序就可在OnComm事件處理程序中針對不同的代碼,進行相應的處理。

4 利用VB 6.0實現數據采集的串行通信

在VB 6.0編程環境下,新建工程并引用MSComm控件,在窗體中添加所需控件,構建一個合理的收發界面。 在窗體中還需要添加以下幾個基本控件[4]:

(1) MSComm控件,主要用于軟件對串口的訪問。由于需要實現多臺氣壓測高接收機的測試,需要添加多個控件。

(2) 定時器控件,用于使PC機定時向各氣壓測高接收機發送命令,使其定時回傳實時數據。

(3) 非周期命令發送按鈕,用于非周期性指令的傳送啟動。

(4) 數據保存按鈕,用于將采集到數據保存為文本文件,便于數據后處理。

(5) 用于數據接收數據和發送數據的文本框。

首先,應對窗體中MSComm控件初始化設置:

MSComm1.CommPort=com_num//用于選擇通信端口

MSComm1.OutBufferSize=1024//設置發送緩沖區為1 024 B

MSComm1.InBufferSize=1024//設置接收緩沖區為1 024 B

MSComm1.InputLen=0//讀取接收緩沖區的所有字符

MSComm1.InBufferCount=0//清除發送區的數據

MSComm1.SThreshold=1//觸發事件

MSComm1.RThreshold=1//每一個字符到接收緩沖區都觸發接收事件

MSComm1.Settings=″9600,n,8,1″

//設置通信參數:波特率9 600 b/s,無校驗,8位數據,1位停止位

MSComm1.PortOpen=True //打開通信端口

其次,窗體中接收部分主程序如下:

Private Sub MSComm1_OnComm()

Select Case MSComm1.CommEvent

Case comEvReceive

If Option1.Value=True Then//文本方式接收

MSComm1.InputMode=1//0:文本方式,1:二進制方式

Else

MSComm1.InputMode=0//0:文本方式,1:二進制方式

End If

If Option1.Value=True Then

For n=0 To intInputLen-1 //循環接收

Text1.Text=Trim(Text1.Text) ″ ″ IIf(Len(Hex$(bytInput(n))) > 1,Hex$(bytInput(n)),″0″ Hex$(bytInput(n)))

Next n

Else

teststring=bytInput

Text1.Text=Text1.Text + teststring //文本方式接收字節

End If

End Select

End Sub

每個氣壓測高接收機回傳數據時即可以在PC機上引發各自的OnComm()事件,相互之間不存在數據干擾問題,數據采集后分別保存為文本文件,為后期數據處理提供原始數據。

5 結 語

本文介紹了VB 6.0的串行通信控件,分析了串口通信系統硬件構成和主要程序解決過程,有效提高了氣壓測高系統的測試效率,確保了數據采集的實時性和正確性。通過應用表明,數據采集準確,系統性能穩定,數據后處理方便。

參考文獻

[1]范逸文,陳立元.Visual Basic與RS 232串行通信控制[M].北京:清華大學出版社,2002.

[2]Steven Holzner.Visual Basic 6.0技術內幕[M].北京:機械工程出版社,1999.

[3]王偉.新型氣壓計模塊MS5534的原理及應用[J].電子元器件應用,2006,8(11):4-8.

[4]喻維鋼.用VB 6.0實現PC機對多臺流量計遠程數據采集與監控[J].儀器儀表標準化與計量,2002(6):5-8.

[5]馬潮,詹衛前,耿德根.ATmega8原理及應用手冊[M].北京:清華大學出版社,2003.

[6]高杰,張玉.基于VB的串口通信在虛擬現實系統中的應用[J].電子測試,2009(2):21-23.

[7]James W Cooper.Visual Basic設計模式[M].趙會群,譯.北京:清華大學出版社,2003.

[8]張崇智.基于VB的串口實時數據采集[J].機電工程技術,2005,34(10):79-81.

[9]王小茹,吳財軍,蘇振剛,等.Visual Basic 6.0實例解析[M].北京:北京大學出版社,2000.

[10]潘天堂,陳熔.基于VB串口通信的空氣分析分布式監控系統實現[J].工業控制計算機,2006,19(12):83-90.

主站蜘蛛池模板: 久久a级片| 亚洲欧美精品一中文字幕| 亚洲天堂网视频| 国产菊爆视频在线观看| 久久精品国产精品青草app| 欧美日本一区二区三区免费| 国产成人麻豆精品| 久久无码高潮喷水| 无码电影在线观看| 少妇露出福利视频| 精品国产免费观看一区| 国产人人乐人人爱| 午夜在线不卡| 噜噜噜综合亚洲| 国产乱人免费视频| 免费a在线观看播放| 黑人巨大精品欧美一区二区区| 日韩中文精品亚洲第三区| 久久黄色小视频| 国产精品香蕉在线| 国产性精品| 日韩av在线直播| 老司机久久精品视频| vvvv98国产成人综合青青| 精品欧美视频| 91在线精品麻豆欧美在线| 2022国产91精品久久久久久| 亚洲中文无码av永久伊人| 无码AV高清毛片中国一级毛片| 国产真实自在自线免费精品| AV不卡无码免费一区二区三区| 国产女人爽到高潮的免费视频 | 国产精品私拍99pans大尺度| 亚洲精品无码在线播放网站| 欧美午夜视频| 在线免费亚洲无码视频| 精品国产成人国产在线| 好吊色妇女免费视频免费| 福利小视频在线播放| 国产美女免费网站| 亚洲第一视频免费在线| 2021无码专区人妻系列日韩| 欧美日本一区二区三区免费| 久久久受www免费人成| 一区二区欧美日韩高清免费| 婷婷六月色| 久久99精品国产麻豆宅宅| 国产簧片免费在线播放| 波多野结衣一二三| 国内精品自在欧美一区| 五月天在线网站| 99精品伊人久久久大香线蕉| 在线观看免费黄色网址| 亚洲国产精品无码AV| 伊人成人在线| 国产成人久视频免费| 福利视频久久| 欧美一级视频免费| 老司机午夜精品网站在线观看 | 国产精品任我爽爆在线播放6080 | 激情综合图区| 女人天堂av免费| 国产精品女熟高潮视频| 久久情精品国产品免费| 狠狠色噜噜狠狠狠狠色综合久| 伊人91在线| 久久精品这里只有国产中文精品| 好吊色国产欧美日韩免费观看| 午夜精品一区二区蜜桃| 人妻91无码色偷偷色噜噜噜| 免费中文字幕一级毛片| 在线国产综合一区二区三区| 91久久偷偷做嫩草影院精品| 中文字幕欧美日韩高清| 最新国产麻豆aⅴ精品无| 朝桐光一区二区| 精品欧美一区二区三区久久久| 国产成人一区在线播放| 国产在线观看第二页| 欧美亚洲欧美区| 天堂亚洲网| 91无码国产视频|