王玉杰,林其斌,汪先兵,丁 健
近年來(lái),隨著現(xiàn)代信息技術(shù)的高速發(fā)展,直接或間接地引發(fā)數(shù)據(jù)采集與處理技術(shù)和方法的革新及變化。實(shí)時(shí)監(jiān)控(遠(yuǎn)程監(jiān)控)與仿真技術(shù)(包括傳感器、數(shù)據(jù)采集、可編程控制器、現(xiàn)場(chǎng)總線處理、曲線與動(dòng)畫顯示、自動(dòng)故障診斷和報(bào)表輸出等)把數(shù)據(jù)采集與處理技術(shù)提高到一個(gè)嶄新的水平。尤其是嵌入式技術(shù)的不斷發(fā)展,使得各種數(shù)據(jù)采集系統(tǒng)應(yīng)用的領(lǐng)域越來(lái)越廣泛。
在各種數(shù)據(jù)采集中,溫度是最為重要的測(cè)控參數(shù)之一,對(duì)溫度的測(cè)控在現(xiàn)代工業(yè)、農(nóng)業(yè)、家居、環(huán)境監(jiān)測(cè)等領(lǐng)域有著重要的意義[1]。因此,如何方便而快捷地對(duì)溫度數(shù)據(jù)進(jìn)行自動(dòng)采集與控制已成為當(dāng)下研究的重要課題之一。本文采用具有強(qiáng)大的數(shù)據(jù)處理能力和良好的用戶交互界面PC機(jī)作為上位機(jī)實(shí)現(xiàn)用戶控制,結(jié)合在圖形用戶界面開(kāi)發(fā)方面具有突出優(yōu)勢(shì)的應(yīng)用程序可視化開(kāi)發(fā)工具 VB 6.0軟件[2,3],采用較強(qiáng)的現(xiàn)場(chǎng)抗干擾能力及良好的性價(jià)比的單片機(jī)作為下位機(jī)進(jìn)行實(shí)時(shí)溫度數(shù)據(jù)采集[4,5],上位機(jī)通過(guò)串口與下位機(jī)之間進(jìn)行聯(lián)絡(luò)。該系統(tǒng)具有結(jié)構(gòu)簡(jiǎn)單、成本低和易于維護(hù)等優(yōu)點(diǎn),對(duì)于提高溫度測(cè)控的效率和測(cè)控結(jié)果的可靠性方面具有較大的優(yōu)勢(shì)。
系統(tǒng)總體結(jié)構(gòu)如圖1所示。數(shù)據(jù)采集單元主要通過(guò)單片機(jī)實(shí)現(xiàn),通過(guò)A/D轉(zhuǎn)換模塊實(shí)現(xiàn)溫度測(cè)量信號(hào)的實(shí)時(shí)采集;采集的數(shù)據(jù)通過(guò)串口通信發(fā)送至上位機(jī)PC機(jī);上位機(jī)采用VB 6.0進(jìn)行人機(jī)交互界面設(shè)計(jì),利用其MSComm控件向下位機(jī)發(fā)送控制命令和接收下位機(jī)上傳的數(shù)據(jù)并實(shí)現(xiàn)進(jìn)行人機(jī)交互,實(shí)現(xiàn)對(duì)數(shù)據(jù)進(jìn)行分析和處理、實(shí)時(shí)顯示、曲線繪制、文件存儲(chǔ)和參數(shù)設(shè)置等操作。由于上位機(jī)和下位機(jī)串口的工作電平不相同,它們之間通過(guò)MAX232芯片實(shí)現(xiàn)電平轉(zhuǎn)換功能。
圖1 系統(tǒng)總體設(shè)計(jì)框圖
圖形化用戶界面開(kāi)發(fā)軟件VB 6.0具有簡(jiǎn)單、易學(xué)、高效的特點(diǎn),該軟件自身含有大量的可視化控件,開(kāi)發(fā)人員只需編寫少量的程序代碼即可實(shí)現(xiàn)測(cè)控功能,已被廣泛應(yīng)用到各種數(shù)據(jù)采集和控制領(lǐng)域[6-8]。上位機(jī)軟件設(shè)計(jì)的最大重難點(diǎn)就在于上位機(jī)如何從下位機(jī)正確接收到采集數(shù)據(jù)并把接受到的數(shù)據(jù)實(shí)時(shí)顯示出來(lái)。上位機(jī)程序總體設(shè)計(jì)流程圖如圖2所示,上位機(jī)程序主要分為四個(gè)部分:界面設(shè)計(jì)、程序初始化、數(shù)據(jù)讀取和數(shù)據(jù)顯示,其中數(shù)據(jù)讀取有兩種模式即瞬時(shí)溫度讀取和連續(xù)溫度讀取,對(duì)于瞬時(shí)溫度讀取模式,信號(hào)燈顯示為綠色,同時(shí)讀取的溫度數(shù)據(jù)顯示在文本框中;而在連續(xù)溫度讀取模式下,信號(hào)燈為綠色藍(lán)色閃爍顯示,同時(shí)讀取的溫度數(shù)據(jù)實(shí)時(shí)顯示在坐標(biāo)系中,以直觀顯示溫度的變化。
圖2 VB 6.0程序流程圖
圖3為本溫度采集系統(tǒng)的實(shí)際運(yùn)行的效果圖。進(jìn)入主界面后,用戶首先進(jìn)行程序初始化和選擇上位機(jī)PC機(jī)的串行端口實(shí)現(xiàn)與單片機(jī)通信,對(duì)于串行端口的參數(shù)設(shè)置可以通過(guò)編寫程序或設(shè)置MSComm控件屬性實(shí)現(xiàn),本程序是通過(guò)修改MSComm控件屬性實(shí)現(xiàn)對(duì)串行端口的參數(shù)設(shè)定;單擊“瞬時(shí)溫度讀取”命令,上位機(jī)向下位機(jī)發(fā)送控制命令和接收下位機(jī)上傳的數(shù)據(jù)并顯示在文本框中,單擊“連續(xù)溫度讀取”命令,上位機(jī)每隔2s向下位機(jī)發(fā)送控制命令和接收下位機(jī)上傳的數(shù)據(jù)并在當(dāng)前界面中按先后順序依次顯示接收到的溫度并利用PictureBox控件繪制溫度實(shí)時(shí)變化曲線。該程序界面簡(jiǎn)單、直觀、友好,實(shí)現(xiàn)對(duì)溫度數(shù)據(jù)的采集和顯示,主要有如下幾方面的軟件設(shè)計(jì)優(yōu)點(diǎn):
圖3 溫度測(cè)控軟件主界面
由于連續(xù)讀取時(shí)可能溫度變化不明顯,為了突出連續(xù)讀取的過(guò)程,設(shè)計(jì)中引入一個(gè)信號(hào)顯示燈,在載入待機(jī)狀態(tài)時(shí)顯示為黃色,單步讀取溫度數(shù)值時(shí)信號(hào)燈顯示綠色,連續(xù)讀取溫度數(shù)值時(shí)信號(hào)燈顯示為綠色藍(lán)色閃爍,停止時(shí)顯示紅色。
溫度讀取頻率為2s,基本滿足大多數(shù)場(chǎng)合的要求;為了方便使用者快捷看出溫度的實(shí)時(shí)變化,采用PictureBox控件實(shí)現(xiàn)實(shí)時(shí)溫度變化曲線的繪制,同時(shí)設(shè)置“溫度讀取次數(shù)統(tǒng)計(jì)”顯示框記錄讀取溫度數(shù)值的次數(shù);為了優(yōu)化圖像坐標(biāo)顯示和數(shù)據(jù)讀取,在縱坐標(biāo)下方通過(guò)對(duì)“溫度起始值”設(shè)定實(shí)現(xiàn)用戶需要的圖像坐標(biāo)顯示范圍;另外,通過(guò)點(diǎn)擊“初始化按鈕”命令,可以初始化圖像上坐標(biāo)與讀取次數(shù)歸零,方便用戶再次檢測(cè)溫度和計(jì)數(shù)。
用戶可根據(jù)自身需要,進(jìn)行對(duì)溫度上下界限的設(shè)定,當(dāng)讀取的溫度數(shù)值大于設(shè)定的最高溫度值時(shí),會(huì)在圖像坐標(biāo)中該數(shù)據(jù)旁邊顯示“↑”,而當(dāng)讀取的溫度數(shù)值低于設(shè)定最低溫度值時(shí)則在數(shù)據(jù)旁邊顯示“↓”,并都實(shí)時(shí)彈出提醒對(duì)話框和發(fā)出蜂鳴聲提醒用戶溫度超出設(shè)定的上下限。
本溫度數(shù)據(jù)采集與控制系統(tǒng)通過(guò)下位機(jī)單片機(jī)將采集到采集到的溫度數(shù)據(jù),并通過(guò)RS-232將溫度數(shù)據(jù)傳送到上位機(jī)PC機(jī);上位機(jī)利用VB 6.0軟件實(shí)現(xiàn)溫度數(shù)據(jù)的讀取與溫度曲線實(shí)時(shí)顯示在界面上,同時(shí)具有溫度上下限設(shè)定與報(bào)警功能。通過(guò)實(shí)際溫度測(cè)試結(jié)果表明,該測(cè)控軟件界面友好,操作簡(jiǎn)單方便,易維護(hù),同時(shí),數(shù)據(jù)傳輸速度較快且較穩(wěn)定,能夠?qū)崟r(shí)地對(duì)模擬信號(hào)進(jìn)行采集和監(jiān)控,具有較高的可靠性。這個(gè)系統(tǒng)設(shè)計(jì)方案可以擴(kuò)展到用于對(duì)其他非電學(xué)信號(hào)如壓力、濕度、位移等的采集與控制,具有較好的應(yīng)用前景。
[1] 沈 斌,楊秀清,占文杰.基于VB和Access的溫度采集系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].電子設(shè)計(jì)工程,2011,19(4):17-23.
[2] 龔沛曾.Visual Basic程序設(shè)計(jì)教程(第3版)[M].北京:高等教育出版社,2007:1-50.
[3] 喬宇鋒.Visual Basic控件設(shè)計(jì)示例導(dǎo)學(xué)[M].北京:北京科海電子出版社,2003:1-30.
[4] 季 華.基于VB與單片機(jī)串行通訊的數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)[J].煤炭工程,2007(12):134-136.
[5] 劉艷美.VB實(shí)現(xiàn)PC機(jī)與單片機(jī)(8051)的串行通訊[J].自動(dòng)化技術(shù)與應(yīng)用,2007,26(2):94-96.
[6] 李長(zhǎng)林.Visual Basic串口通信技術(shù)與典型事例[M].北京:清華大學(xué)出版社,2006.
[7] 陳欣琳,王海峰,金 亮.PC機(jī)和 MCS-51單片機(jī)之間的串行通信[J].中國(guó)科技信息,2009(13):86-87.
[8] 吳愛(ài)萍.基于VB與單片機(jī)的溫度測(cè)控系統(tǒng)設(shè)計(jì)[J].控制與測(cè)試,2010(319):208-210.