亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于VB 6.0串口通信的氣壓測高系統(tǒng)數(shù)據(jù)采集實現(xiàn)

        2010-04-12 00:00:00王曉嵐
        現(xiàn)代電子技術(shù) 2010年3期

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

        關(guān)鍵詞: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

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

        1 氣壓測高測試系統(tǒng)的基本構(gòu)成

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

        采集到的數(shù)據(jù)主要用于以下分析:

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

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

        圖1 氣壓測高系統(tǒng)基本構(gòu)成方框圖

        2 氣壓測高接收機的簡介

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

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

        3 VB 6.0中MSComm通信控件

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

        利用MSComm控件實現(xiàn)計算機通信的關(guān)鍵是理解并正確設(shè)置MSComm控件眾多屬性和方法。以下是MSComm控件的常用屬性和方法:

        Commport:設(shè)置或返回串口號,類型short。

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

        Portopen:設(shè)置或返回串口狀態(tài)。

        InputMode:設(shè)置或返回接收數(shù)據(jù)的類型。

        Inputlen:設(shè)置或返回一次從接收緩沖區(qū)中讀取字節(jié)數(shù),類型short。

        Input:從接收緩沖區(qū)中讀取數(shù)據(jù)并清空該緩沖區(qū),該屬性設(shè)計時無效,運行時只讀。

        Output:向發(fā)送緩沖區(qū)發(fā)送數(shù)據(jù),該屬性設(shè)計時無效,運行時只讀。

        Rthreshold:當接收緩沖區(qū)中字符數(shù)達到該值時,MSComm控件設(shè)置Commevent屬性為ComEvReceive,并產(chǎn)生OnComm事件。

        Sthreshold:當發(fā)送緩沖區(qū)中字符數(shù)小于該值時,MSComm控件設(shè)置Commevent屬性為ComEvSend,并產(chǎn)生OnComm事件。若Sthreshold屬性設(shè)置為0,則不產(chǎn)生OnComm事件。

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

        4 利用VB 6.0實現(xiàn)數(shù)據(jù)采集的串行通信

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

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

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

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

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

        (5) 用于數(shù)據(jù)接收數(shù)據(jù)和發(fā)送數(shù)據(jù)的文本框。

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

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

        MSComm1.OutBufferSize=1024//設(shè)置發(fā)送緩沖區(qū)為1 024 B

        MSComm1.InBufferSize=1024//設(shè)置接收緩沖區(qū)為1 024 B

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

        MSComm1.InBufferCount=0//清除發(fā)送區(qū)的數(shù)據(jù)

        MSComm1.SThreshold=1//觸發(fā)事件

        MSComm1.RThreshold=1//每一個字符到接收緩沖區(qū)都觸發(fā)接收事件

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

        //設(shè)置通信參數(shù):波特率9 600 b/s,無校驗,8位數(shù)據(jù),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 //循環(huán)接收

        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 //文本方式接收字節(jié)

        End If

        End Select

        End Sub

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

        5 結(jié) 語

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

        參考文獻

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

        [2]Steven Holzner.Visual Basic 6.0技術(shù)內(nèi)幕[M].北京:機械工程出版社,1999.

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

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

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

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

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

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

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

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

        亚洲乱码中文字幕第一页| 欧美亚洲日韩国产区| 99热这里只有精品国产66| av天堂一区二区三区精品| 开心五月天第四色婷婷| 精品久久久久久无码中文字幕| 欲妇荡岳丰满少妇岳| 日本少妇被爽到高潮的免费| 蜜桃视频网址在线观看| av区无码字幕中文色| 国产精品久久久久久52avav| 亚洲亚洲网站三级片在线| 亚洲一区二区丝袜美腿| 伊人久久精品亚洲午夜| 俺去俺来也在线www色官网| 亚洲Av午夜精品a区| 日韩字幕无线乱码免费| 国模gogo无码人体啪啪| 国产国语熟妇视频在线观看| 熟女人妻丰满熟妇啪啪| 久久久精品国产三级精品| 国产激情无码视频在线播放性色| 欧美粗大无套gay| 噜噜噜色97| 日本视频一区二区三区观看| av鲁丝一区鲁丝二区鲁丝三区| 亚欧AV无码乱码在线观看性色| 成人国产自拍在线播放| 丝袜美腿国产一区精品| 日韩激情无码免费毛片| 久久精品国产亚洲AV无码不| 午夜视频一区二区在线观看| 日韩午夜福利无码专区a| 精品国产制服丝袜高跟| 国产颜射视频在线播放| 蜜桃一区二区三区视频| 人妻少妇久久中文字幕一区二区 | 国产人妖一区二区av| 日韩精品综合一本久道在线视频| 日本做受高潮好舒服视频| 亚洲欧洲AV综合色无码|