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.

主站蜘蛛池模板: 国产精品第一区在线观看| 成人国产精品视频频| 在线欧美一区| 色哟哟色院91精品网站 | 亚洲精品中文字幕无乱码| 一本久道久综合久久鬼色| 亚洲天堂精品在线观看| 99久久精品国产麻豆婷婷| 亚洲一级毛片| 国产成人综合久久精品尤物| 欧美日韩国产精品综合| 国产第四页| 色婷婷狠狠干| 国产精品永久在线| 国产97区一区二区三区无码| 精品视频91| 大乳丰满人妻中文字幕日本| 97青草最新免费精品视频| 婷婷久久综合九色综合88| 国内嫩模私拍精品视频| 潮喷在线无码白浆| 日韩国产无码一区| 国产一区二区三区精品久久呦| 国产无码精品在线播放 | 国产欧美又粗又猛又爽老| 好吊妞欧美视频免费| 香蕉久久国产精品免| 国产精品毛片一区视频播| 久久综合色88| 国产网友愉拍精品视频| 一级毛片免费高清视频| 青青草国产在线视频| 亚洲第一区欧美国产综合| 超清无码熟妇人妻AV在线绿巨人| 92午夜福利影院一区二区三区| 亚洲Av激情网五月天| 91香蕉国产亚洲一二三区| 波多野衣结在线精品二区| 国产欧美日韩精品综合在线| 国产黄色片在线看| 亚洲三级电影在线播放| 伊人成人在线视频| 麻豆精选在线| 欧美亚洲综合免费精品高清在线观看| 亚洲天堂免费观看| 国产欧美日韩视频一区二区三区| 日本一区高清| av在线5g无码天天| 久久久黄色片| 欧洲精品视频在线观看| 天堂亚洲网| 黄色一级视频欧美| 丰满人妻中出白浆| 国产精品网址在线观看你懂的| 欧美中文一区| 凹凸国产熟女精品视频| 91外围女在线观看| 國產尤物AV尤物在線觀看| 国产高清不卡| 91国内在线观看| 中文无码精品A∨在线观看不卡| 欧美日韩精品在线播放| 99re热精品视频国产免费| 免费啪啪网址| 久久久久免费看成人影片| 青青青视频蜜桃一区二区| 免费国产好深啊好涨好硬视频| 日韩精品毛片| 91黄视频在线观看| 日韩精品成人在线| 亚洲综合第一区| 亚洲黄色网站视频| 国产91视频免费观看| 久久综合一个色综合网| 欧美国产三级| 狠狠色丁香婷婷| 亚洲国产成人精品无码区性色| 久久国产高清视频| 国产无人区一区二区三区 | 亚洲伊人久久精品影院| 97视频免费在线观看| 园内精品自拍视频在线播放|