孫毅剛+何進+李岐
摘 要: 針對多點溫度測量的需求,設(shè)計一款基于LabVIEW的多通道溫度監(jiān)測系統(tǒng)。當(dāng)下位機串口關(guān)閉時,即是一個由AT89C51單片機、DS18B20溫度傳感器以及LM041L顯示器組成的嵌入式多通道溫度采集系統(tǒng)。當(dāng)串口打開時,下位機便可將各通道溫度數(shù)據(jù)上傳至上位機LabVIEW溫度監(jiān)測系統(tǒng),實現(xiàn)PC端的多通道溫度在線監(jiān)測。仿真實驗表明,系統(tǒng)設(shè)計方案切實可行,能夠方便有效地實現(xiàn)多點溫度實時監(jiān)測。
關(guān)鍵詞: 多點溫度測量; AT89C51; DS18B20; LabVIEW; 溫度監(jiān)測
中圖分類號: TN31+.3?34; TP212.9 文獻標(biāo)識碼: A 文章編號: 1004?373X(2017)08?0183?04
Design of multi?channel temperature monitoring system based on LabVIEW
SUN Yigang1, HE Jin2, LI Qi2
(1. College of Aeronautical Engineering, Civil Aviation University of China, Tianjin 300300, China;
2. College of Electronic Information and Automation, Civil Aviation University of China, Tianjin 300300, China)
Abstract: To satisfy the demand of the multi?point temperature measurement, a multi?channel temperature monitoring system based on LabVIEW was designed. When the serial port of lower computer is closed, the multi?channel temperature monitoring system is an embedded one composed of the SCM AT89C51, temperature sensor DS18B20 and displayer LM041L. When the serial port is opened, the lower computer uploads the temperature data of each channel to the LabVIEW?based temperature monitoring system of the upper computer to achieve online monitoring of the multi?channel temperature at the PC side. The simulation experiment results show that the system design scheme is feasible, and can expediently and effectively monitor the multipoint temperature in real time.
Keywords: multi?point temperature measurement; AT89C51; DS18B20; LabVIEW; temperature monitoring
溫度在日常生活、工業(yè)生產(chǎn)和科學(xué)研究中都是一個極其普遍又非常重要的物理量,許多設(shè)備運行、工農(nóng)生產(chǎn)和科學(xué)實驗都必須保證在一定的溫度條件下進行,因此需要對溫度進行監(jiān)測的場合十分廣泛[1]。傳統(tǒng)的測溫儀器功能比較單一,大多只能測量某一點的溫度值[2],可視性不好,不能長久保存溫度數(shù)據(jù)以進行后續(xù)統(tǒng)計和分析。為滿足現(xiàn)代工業(yè)多點溫度監(jiān)測的需求,設(shè)計了一種基于LabVIEW的多通道溫度監(jiān)測系統(tǒng),能夠?qū)崿F(xiàn)在-55~99 ℃范圍內(nèi)6通道的溫度實時監(jiān)測,具有多點溫度同步采集、顯示、報警、繪圖及數(shù)據(jù)保存等功能,可用于智能樓宇、溫室大棚、汽車空調(diào)、倉庫儲存等場合[3]。
1 系統(tǒng)總體結(jié)構(gòu)設(shè)計
本文設(shè)計的基于LabVIEW的多通道溫度監(jiān)測系統(tǒng)由下位機多通道溫度采集系統(tǒng)和上位機LabVIEW溫度監(jiān)測系統(tǒng)兩部分構(gòu)成。系統(tǒng)整體結(jié)構(gòu)框圖如圖1所示。
下位機采用AT89C51單片機為主控芯片,將6路DS18B20溫度傳感器測量的數(shù)據(jù)處理后,計算出各通道的實際溫度值,并按要求在LM041L液晶屏上同步顯示。當(dāng)串口開關(guān)處于開啟狀態(tài)時,若檢測到上位機要求發(fā)送溫度數(shù)據(jù)的請求,下位機立即依次將6通道溫度數(shù)據(jù)的高位和低位通過串口發(fā)送至上位機。LabVIEW溫度監(jiān)測系統(tǒng)隨即讀取串口緩沖區(qū)的內(nèi)容,經(jīng)過數(shù)據(jù)提取、處理、計算等操作,解析各通道的實際溫度后,首先在監(jiān)測系統(tǒng)前面板上實時顯示,然后將得到的溫度數(shù)據(jù)與各通道設(shè)置的的溫度上下限值進行比較,若當(dāng)前溫度超過設(shè)定的溫度下限或者上限,則對應(yīng)的藍色或紅色溫度超限報警燈點亮。最后,系統(tǒng)將各通道溫度數(shù)據(jù)送入波形圖表,繪制六通道溫度變化曲線,并將所有采集的溫度數(shù)據(jù)寫入TXT文檔保存。系統(tǒng)整體程序流程圖如圖2所示。
2 多通道溫度采集系統(tǒng)設(shè)計
多通道溫度采集系統(tǒng)主要包括溫度測量模塊、溫度顯示模塊以及串口通信模塊等部分。
2.1 溫度測量模塊
溫度測量模塊采用6個數(shù)字溫度傳感器DS18B20作為測溫元件,組成溫度傳感器網(wǎng)絡(luò)。DS18B20具有精度高、體積小、抗干擾能力強等優(yōu)點,其測溫范圍為-55~125 ℃,在-10~85 ℃范圍內(nèi)測溫精度[4]達
±0.5 ℃。因為每一個DS18B20溫度傳感器內(nèi)部都配有一個惟一的64位ROM編號,因此可將多個DS18B20掛在同一根總線上,實現(xiàn)多點分布式溫度測量。經(jīng)DS18B20序列號讀取程序測得,本設(shè)計仿真時所用六路DS18B20溫度傳感器的ROM編號如表1所示。
由于DS18B20一線式結(jié)構(gòu)的特點,它與微處理器之間只能采用串行數(shù)據(jù)傳輸。因此,在對DS18B20進行讀寫編程時,除了匹配每通道溫度傳感器的序列號,確保操作正確指向?qū)?yīng)傳感器,還必須嚴(yán)格地保證讀寫的時序,否則將無法讀取測溫結(jié)果。本系統(tǒng)中DS18B20溫度測量模塊程序流程圖如圖3所示。
2.2 溫度顯示模塊
溫度顯示模塊選用的是LM041L字符型LCD液晶顯示器,該模塊由64個字符點陣組成。LM041L的工作原理及使用方法與常用的LCD1602顯示器類似,但需要注意的是,LM041L為4行×16列顯示,每行顯示的字符個數(shù)與LCD1602一致,但顯示的行數(shù)是LCD1602的2倍。液晶顯示模塊是一個慢顯示器件,所以在執(zhí)行每條指令之前一定要確認模塊的忙標(biāo)志位為低電平,表示不忙,否則該指令失效。要顯示字符時,首先需要輸入顯示字符的地址,因為LM041L寫入顯示地址時要求最高位D7恒為高電平1,所以實際寫入的數(shù)據(jù)應(yīng)該是:地址碼+80H。表2是LM041L的內(nèi)部顯示地址碼。
多通道溫度采集系統(tǒng)運行時,LM041L第1行第5列(地址碼為0x84)開始顯示標(biāo)題字符——6通道溫度數(shù)據(jù)采集系統(tǒng)英文首字母縮寫“6CH TDCS”;第2~4行的第1列(地址碼分別為0x40,0x10,0x50)分別開始顯示第1~3通道的溫度數(shù)據(jù);第2~4行的第10列(地址碼分別為0x49,0x19,0x59)開始顯示第4~6通道的溫度數(shù)據(jù),具體顯示格式參見圖4。
2.3 串口通信模塊
AT89C51單片機設(shè)有串口通信端口,只需一個專用芯片MAX232進行電平轉(zhuǎn)換即可方便地實現(xiàn)下位機與上位機的串口通信[5?6]。當(dāng)上位機通過LabVIEW溫度監(jiān)測程序向串口發(fā)送請求溫度數(shù)據(jù)字符串AA時,下位機檢測到中斷請求,立即將發(fā)送標(biāo)志置1,然后依次發(fā)送溫度數(shù)據(jù)的高位和低位;發(fā)送完畢后,自動清除中斷標(biāo)志并返回,等待下次發(fā)送的請求指令。串口通信模塊具體程序流程圖如圖5所示。
3 LabVIEW溫度監(jiān)測系統(tǒng)設(shè)計
LabVIEW是美國NI公司開發(fā)的一款功能強大的圖形化編程語言軟件,在測試測量、儀器控制、教學(xué)仿真等領(lǐng)域獲得了廣泛應(yīng)用[7]。LabVIEW作為虛擬儀器軟件開發(fā)工具,在數(shù)據(jù)采集和人機交互方面有著十分明顯的優(yōu)勢[8?10]。利用LabVIEW自帶的VISA驅(qū)動函數(shù),能夠方面地實現(xiàn)與下位機的串口通信;而且其前面板豐富美觀的控件,很適合設(shè)計界面友好、操作簡單的上位機監(jiān)控系統(tǒng)界面。因此,本設(shè)計采用LabVIEW開發(fā)平臺編寫上位機溫度監(jiān)測系統(tǒng)程序,主要包括溫度數(shù)據(jù)的提取與計算、溫度超限報警、溫度變化曲線與數(shù)據(jù)保存等部分。
3.1 溫度數(shù)據(jù)的提取與計算
LabVIEW溫度監(jiān)測程序運行時,首先配置串口參數(shù),使之與下位機保持一致,然后通過VISA寫入函數(shù)向單片機發(fā)送請求字符串AA,下位機檢測到發(fā)送請求后隨即通過串口發(fā)送程序向上位機依次發(fā)送六通道溫度數(shù)據(jù)的高8位和低8位。當(dāng)開始采集按鈕打開時,VISA讀取函數(shù)立刻讀取串口緩沖區(qū)的所有內(nèi)容,并通過字符串至字節(jié)數(shù)字轉(zhuǎn)換函數(shù)將所有串口數(shù)據(jù)轉(zhuǎn)換為字節(jié)數(shù)組,然后由索引數(shù)組提取各通道溫度數(shù)據(jù)的高位和低位,送至溫度計算子VI計算實際溫度值。
溫度計算子VI首先將溫度數(shù)據(jù)高位和低位拼接,然后進行溫度符號判斷:當(dāng)最高位為1時,說明溫度為負,4位十六進制的溫度數(shù)據(jù)取補碼并乘以0.062 5再取反得到負的溫度值;若最高位為0,表示溫度為正,則將拼接的溫度數(shù)據(jù)直接乘以0.062 5得到正的溫度值。
3.2 溫度超限報警
為了更好地實現(xiàn)實時監(jiān)測功能,系統(tǒng)加入了超限報警機制。各通道溫度數(shù)據(jù)經(jīng)提取和計算得到最終實際溫度值后,與各通道設(shè)定的溫度上限值和下限值分別進行比較。當(dāng)某通道當(dāng)前溫度超過設(shè)定的溫度上限時,對應(yīng)通道的紅色高溫報警指示燈亮起;當(dāng)某通道當(dāng)前溫度低于設(shè)定的溫度下限時,該通道對應(yīng)的藍色低溫報警指示燈點亮。各通道溫度上下限值設(shè)置界面如圖6所示。
3.3 溫度變化曲線與數(shù)據(jù)保存
LabVIEW溫度監(jiān)測系統(tǒng)主要功能之一就是繪制各通道的的溫度變化曲線,使觀測者能夠方便地對每一時刻各通道溫度值進行比較的同時,還可以對各通道的溫度變化情況一目了然。LabVIEW溫度監(jiān)測系統(tǒng)除了可以實時監(jiān)測各通道溫度變化情況以外,還可以將每一時刻的所有溫度數(shù)據(jù)同步寫入TXT文檔保存,方便進行后續(xù)的統(tǒng)計和分析。溫度數(shù)據(jù)以當(dāng)前日期命名保存在程序當(dāng)前所在路徑,其存儲格式為:第1列為數(shù)據(jù)采集序號,第2列為當(dāng)前時間,第3~8列依次為第1~6通道的溫度值,各列相隔一個制表符(具體格式見圖7)。溫度數(shù)據(jù)保存部分的程序框圖如圖8所示。
4 系統(tǒng)仿真實驗
完成下位機多通道溫度采集系統(tǒng)與上位機LabVIEW溫度監(jiān)測系統(tǒng)的設(shè)計后,用虛擬串口軟件Virtual Serial Port Drive虛擬出一對相連的串口COM2和COM3,代替連接單片機與PC機的串口線。配置好串口參數(shù)及各通道溫度上下限值后,設(shè)置采樣周期為1 000 ms。依次運行下位機和上位機系統(tǒng),打開串口開關(guān),按下數(shù)據(jù)采集按鈕,多通道溫度采集系統(tǒng)和LabVIEW溫度監(jiān)測系統(tǒng)程序運行結(jié)果分別如圖4和圖7所示,保存的部分溫度數(shù)據(jù)如圖9所示。
分析仿真實驗結(jié)果可知,系統(tǒng)運行整體符合設(shè)計預(yù)期。下位機能同時采集各通道實際溫度并按格式要求正確顯示;上位機監(jiān)測界面中各通道溫度數(shù)值、溫度變化曲線、超限報警指示、數(shù)據(jù)采集量、開始與運行時間均準(zhǔn)確無誤;保存的溫度數(shù)據(jù)與設(shè)置的采樣周期及設(shè)計的格式要求均相符。
5 結(jié) 語
本文設(shè)計的基于LabVIEW的多通道溫度監(jiān)測系統(tǒng)能夠方便有效地測量6點的溫度數(shù)據(jù),并實現(xiàn)在PC端的實時監(jiān)測。當(dāng)下位機串口關(guān)閉時,即是一個嵌入式多通道溫度采集系統(tǒng);串口打開時,便可與上位機通信,實現(xiàn)在PC機上的多通道溫度實時監(jiān)測。系統(tǒng)下位機結(jié)構(gòu)簡單、成本低廉,上位機監(jiān)測界面清晰直觀、一目了然,很好地滿足了多點溫度監(jiān)測的目的,具有較強的實用性。
參考文獻
[1] 薛清華.高精度多通道溫度測量技術(shù)研究[D].武漢:華中科技大學(xué),2007.
[2] 付立華,張曉玫,潘龍飛.基于LabVIEW的多通道溫度實時監(jiān)測系統(tǒng)[J].儀表技術(shù),2012(12):38?40.
[3] 湯鍇杰,栗燦,王迪,等.基于DS18B20的數(shù)字式溫度采集報警系統(tǒng)設(shè)計[J].傳感器與微系統(tǒng),2014,33(3):99?102.
[4] 張拓.無線多點溫度采集系統(tǒng)的設(shè)計[D].武漢:武漢理工大學(xué),2009.
[5] 任志華,李永紅.基于DS18B20的多路溫度檢測系統(tǒng)設(shè)計[J].電子測試,2012(7):39?42.
[6] 潘方.RS 232串口通信在PC機與單片機通信中的應(yīng)用[J].現(xiàn)代電子技術(shù),2012,35(13):69?71.
[7] 李菲,江世明.基于LabVIEW的溫度測量系統(tǒng)設(shè)計[J].現(xiàn)代電子技術(shù),2014,37(6):114?116.
[8] 楊高科.LabVIEW虛擬儀器項目開發(fā)與管理[M].北京:機械工業(yè)出版社,2012.
[9] 阮奇楨.我和LabVIEW[M].北京:北京航空航天大學(xué)出版社,2012.
[10] 姜崇.基于LabVIEW的多通道實時在線監(jiān)測系統(tǒng)研究[D].上海:華東理工大學(xué),2011.