袁志遠(yuǎn) 穆圣廣 韋超旺 陳國(guó)林
【摘要】本文介紹了MSComm控件,然后介紹了利用MSCoom控件編寫(xiě)的基于Visual Basic某企業(yè)精密實(shí)驗(yàn)室空調(diào)監(jiān)控系統(tǒng),證明充分利用Windows環(huán)境下已有的串行通信控件MSComm可以很好地進(jìn)行監(jiān)控軟件的開(kāi)發(fā)和設(shè)計(jì)。
【關(guān)鍵詞】MSCoom控件;Visual Basic;監(jiān)控系統(tǒng)
引言
企業(yè)的精密實(shí)驗(yàn)室的對(duì)溫度和濕度的要求異??量?,一般都需要恒溫恒濕環(huán)境,所以此類實(shí)驗(yàn)室的空調(diào)設(shè)備較為復(fù)雜且并且需要長(zhǎng)期運(yùn)行,因此,空調(diào)設(shè)備運(yùn)行的效率高低和可靠性問(wèn)題是精密實(shí)驗(yàn)室設(shè)備管理的首要問(wèn)題。空調(diào)監(jiān)控系統(tǒng)的研制,直接關(guān)系到空調(diào)設(shè)備能否滿足溫濕度要求,同時(shí)也有助于提高空調(diào)設(shè)備管理的信息化。
由于目前Windows操作系統(tǒng)處于主流地位,大多數(shù)監(jiān)控軟件是在Windows環(huán)境下開(kāi)發(fā)。Visual Basic作為一種可視化編程工具,支持面向?qū)ο蟮某绦蛟O(shè)計(jì),在開(kāi)發(fā)監(jiān)控系統(tǒng)中具有其獨(dú)特的優(yōu)勢(shì),更為重要的是其可以利用Windows環(huán)境下的串行通信控件MSCoom控件,可以利用其開(kāi)發(fā)串行通訊的系統(tǒng)程序,用戶無(wú)需深入進(jìn)行串行通信編程,只需設(shè)置幾個(gè)參數(shù)就可按查詢或事件驅(qū)動(dòng)方式實(shí)現(xiàn)串行通訊,使通訊編程大為簡(jiǎn)化,因此非常適合編寫(xiě)Windows環(huán)境下的監(jiān)控程序。本文以本人設(shè)計(jì)的某企業(yè)的精密實(shí)驗(yàn)室空調(diào)監(jiān)控系統(tǒng)為例,說(shuō)明MCScomm控件在基于Visual Basic的空調(diào)監(jiān)控系統(tǒng)中的應(yīng)用。
1.MSComm控件介紹
MSComm控件(Microsoft Communications Control)是美國(guó)Microsoft公司開(kāi)發(fā)的Windows環(huán)境下串行通信編程的ActiveX控件,它為應(yīng)用程序提供了通過(guò)串行接口收發(fā)數(shù)據(jù)的簡(jiǎn)便方法。MSComm控件包裝在MSComm32.OCX文件中,是串口通信常用的控件之一,其功能是通過(guò)串行端口傳輸和接收數(shù)據(jù),為應(yīng)用程序提供串行通訊功能。MSComm控件提供兩種數(shù)據(jù)處理方式,第一種是事件驅(qū)動(dòng)方式,由MSComm的Oncomm事件自動(dòng)捕獲并處理數(shù)據(jù)或者通信錯(cuò)誤;第二種是查詢方式,通過(guò)定時(shí)查詢MSComm控件CommEvent屬性的值來(lái)判斷事件和錯(cuò)誤。每個(gè)被使用的MSComm控件對(duì)應(yīng)著一個(gè)串行端口,如有多個(gè)串行端口,則必須設(shè)置多個(gè)MSComm控件。MSComm控件提供了很多重要的屬性,主要屬性和功能如下表所示:
2.系統(tǒng)組成
本系統(tǒng)通過(guò)RS-485通訊將中央空調(diào)控制器上的數(shù)據(jù)傳輸給監(jiān)控計(jì)算機(jī),監(jiān)控計(jì)算機(jī)端采用RS-485與RS-232通訊轉(zhuǎn)換,將采集回來(lái)的參數(shù)值顯示并存儲(chǔ)監(jiān)控計(jì)算機(jī),同時(shí)可以在監(jiān)控計(jì)算機(jī)端遠(yuǎn)程對(duì)空調(diào)進(jìn)行開(kāi)關(guān)機(jī)操作和參數(shù)設(shè)置
3.程序設(shè)計(jì)
在設(shè)計(jì)通信程序時(shí),采用了事件驅(qū)動(dòng)法,主要是在comEvReceive(接收到數(shù)據(jù))事件發(fā)生時(shí)響應(yīng)并獲取緩沖區(qū)中的數(shù)據(jù).以下是在PC機(jī)上開(kāi)發(fā)串口通信的程序的一般步驟及部分程序。
MSCoom控件的設(shè)置如下:
(1)在窗體上設(shè)置一個(gè)MSComm控件,作為串行通訊的通道。
(2)設(shè)計(jì)MSComm控件屬性。
在窗體onload事件中加入以下代碼設(shè)置控件屬性:MSComml.CommPort=1‘設(shè)置端口號(hào),端口號(hào)不能和計(jì)算機(jī)上的端口發(fā)生沖突;
MSComml.Settings=“1200,N,8,l”‘設(shè)置波特率,必須和通訊設(shè)備的波特率相同
MSComml.InputMode=comlnputModeBinary‘傳輸模式為二進(jìn)制形式;MSComml.PortOpen=True‘在使用串口前必須先打開(kāi)通訊端口;
MSComml.RThreshold=1‘設(shè)置接收1個(gè)字節(jié)產(chǎn)生OnComm事件。
(3) 建立響應(yīng)Mscomm事件的處理函數(shù)。
接收部分需要準(zhǔn)確采集現(xiàn)場(chǎng)上傳的適時(shí)參數(shù),如溫度濕度等,是通訊程序設(shè)計(jì)的重點(diǎn),通過(guò)VB中MSComm控件的OnComm事件來(lái)完成。碼示例如下:
4.結(jié)束語(yǔ)
這套Visual Basic的空調(diào)監(jiān)控系統(tǒng)已經(jīng)安全運(yùn)行半年,在此期間,空調(diào)完美地達(dá)到業(yè)主方對(duì)于精密實(shí)驗(yàn)室苛刻的溫濕度要求,實(shí)踐證明該系統(tǒng)設(shè)計(jì)合理,運(yùn)行穩(wěn)定可靠,同時(shí)也證明通過(guò)MSComm控件實(shí)現(xiàn)串行通信控制效果良好。
參考文獻(xiàn)
[1]田添.利用控件MSComm實(shí)現(xiàn)計(jì)算機(jī)的串口通信[J].數(shù)字通信.2012(25):95-97
[2]王春香,翁新華,楊汝清,李光布.基于VB的遠(yuǎn)程監(jiān)控系統(tǒng)設(shè)計(jì)[J].計(jì)算機(jī)應(yīng)用研究. 2012(9):110-111,157
[3]王建川,馬立元,馬劍.利用MSComm控件實(shí)現(xiàn)與GPS接收器的串口通訊.科學(xué)技術(shù)與工程.2006(6):3204-3206.