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