潘玉恒,魯維佳,尹萬疆
(天津城建大學計算機與信息工程學院,天津 300384)
在國民經濟各部門,如電力電子、化工、機械、農業(yè)等,溫度都是一個重要的物理量,因此在各領域的溫度監(jiān)測也十分重要。虛擬儀器是基于計算機的軟硬件測試平臺,已在工業(yè)控制領域具有廣泛應用。LabVIEW是面向虛擬儀器的圖形化編程語言,該設計利用LabVIEW作為開發(fā)平臺,采用DS18B20采集溫度,采集到的數(shù)據送入單片機,通過串口將數(shù)據傳輸至計算機。在LabVIEW環(huán)境下對采集到的溫度數(shù)據進行處理、顯示和存儲,以實現(xiàn)對被測對象周圍溫度的監(jiān)測,并根據需要對被監(jiān)測對象進行控制。
硬件的主控芯片為AT89C52,溫度采集模塊由DS18B20傳感器構成,通過繼電器控制設備通斷。將采集到的溫度由單片機通過串口傳至計算機,利用LabVIEW的串口通信模塊,采集來自單片機傳送的溫度信號,并在LabVIEW上實時顯示溫度和實時溫度曲線。當溫度超過報警溫度時發(fā)出報警信號,當溫度繼續(xù)升高超過設備關閉溫度時,通過繼電器切斷設備。溫度下降至安全范圍重新啟用設備并撤銷報警。系統(tǒng)方案框圖如圖1所示。
圖1 系統(tǒng)方案框圖
2.1主控芯片
主控芯片采用AT89C52,它是一個低電壓,高性能8位單片機,內含8 Kb的Flash只讀程序存儲器和256 b的數(shù)據存儲器(RAM),它兼容MCS-51指令系統(tǒng),AT89C52單片機在電子設計及控制領域有著廣泛的應用[1]。
2.2溫度傳感器DS18B20
DS18B20是由支持“一線總線”接口的數(shù)字溫度傳感器,其原理是溫度的改變引起傳感器輸出的數(shù)字信號變化。DS18B20 的優(yōu)點是可以直接讀出被測對象的溫度數(shù)值,采用單總線與單片機連接,硬件電路設計簡單,開發(fā)率高。
設計中為了增加傳輸距離,在2引腳和3引腳之間加入4.7 kΩ的上拉電阻,確保單片機能有效的遠程讀取數(shù)據。1,3引腳分別接地和電源,數(shù)據口2與單片機的P1.0相接[2]。
2.3其他電路
要通過串口傳輸數(shù)據,需要將單片機的TTL電平轉換為PC機的232電平,采用MAX232電平轉換芯片,為了不影響數(shù)據的傳輸,在MAX232需要加入極性電容,消除電磁效應,電涌的影響。T2IN引腳與單片機的P3.0相連,R2OUT引腳與單片機的P3.1相連[4]。
繼電器采用電磁式繼電器,通過輸入小電流來控制被測設備的導通和切斷,將單片機的P0.0口與繼電器的引腳相連,由P0.0口向繼電器輸入電流從而控制外部設備的導通與切斷[6]。系統(tǒng)的硬件電路圖如圖2所示。
圖2 系統(tǒng)硬件電路圖
3.1主程序設計
系統(tǒng)軟件程序的編寫是在Keil uVision2的集成開發(fā)環(huán)境下,采用C語言編寫,主要包括對各硬件初始化、溫度讀取、控制電路及上下位機的通訊4個模塊。系統(tǒng)的主程序流程圖如圖3所示。
圖3 系統(tǒng)主程序流程圖
3.2讀取溫度子程序
DSl8B20工作過程中的協(xié)議:初始化、ROM操作命令、存儲器操作命令、處理數(shù)據[9]。單片機檢測到DSl8B20的存在,便可以發(fā)出ROM和RAM操作命令代碼[2]。讀取溫度的子程序如圖4所示。
圖4 溫度子程序流程圖
上位機利用LabVIEW軟件進行編程,采用模塊化設計,包括串口通訊模塊、數(shù)據處理模塊、實時溫度及曲線顯示模塊、參數(shù)控制模塊和報警模塊。上位機軟件前面板如圖5所示。
圖5 上位機軟件前面板圖
4.1串口通訊模塊
LabVIEW函數(shù)庫中的VISA(虛擬儀器軟件構架)函數(shù)是用于儀器編程的標準I/O函數(shù)庫,可用來設計單片機與PC機之間的通訊。程序中用到的VISA模塊有:配置串口:配置串口VI是使制定的串口按特定設置初始化,波特率用于設置串口傳輸速率,奇偶端指定傳輸或接收時所使用的奇偶校驗,停止位指定用于表示每幀結束的停止位的數(shù)量;串口寫入:串口配置好后,數(shù)據傳向緩沖區(qū)。為使緩沖區(qū)的數(shù)據不丟失,需要不停地寫入,串口寫入VI完成該功能;串口讀取:數(shù)據寫入完成后,VISA讀取指定設備,讀取寫入的數(shù)據。讀取的數(shù)據為指定數(shù)量字節(jié),并將其返回至讀取緩沖區(qū)[5]。
4.2數(shù)據處理模塊
該模塊將從下位機讀取的數(shù)據進行處理以便進行實時顯示和報警。運用索引數(shù)組,讀出串口發(fā)來的數(shù)據元素。三維數(shù)組表示溫度的地址位、整數(shù)位和小數(shù)位。
4.3顯示、報警和數(shù)據存儲模塊
實時顯示包括數(shù)值顯示和溫度曲線顯示,是通過波形圖表、溫度計和數(shù)字窗口顯示出來;報警是運用了條件結構,當采集到的溫度達到報警溫度時,報警燈亮,低于報警取消溫度時,撤銷報警;溫度高于設備關閉溫度或低于設備開啟溫度時,單片機發(fā)出信號控制繼電器的通斷;數(shù)據存儲是利用數(shù)據類型格式的轉化,然后將溫度值存儲在Excel表中[3]存儲格式如圖6所示,系統(tǒng)總體程序框圖如圖7所示。
該設計是一個閉環(huán)的溫度監(jiān)測系統(tǒng),通過AT89C52單片機采集溫度數(shù)據,利用串口傳至計算機,LabVIEW軟件對傳來的溫度數(shù)據,進行實時的處理、顯示、監(jiān)控和存儲。該設計有效地將計算機技術、測量技術、監(jiān)控技術和虛擬儀器技術結合起來,完成了對設備的高效控制和監(jiān)測。上位機軟件完全是開放式的,方便二次開發(fā)使用,降低了資源,縮短了開發(fā)周期。且價格低廉,應用到工廠、大棚和水站等降低了企業(yè)的設備開支。該系統(tǒng)的設計符合測控技術的發(fā)展趨勢,未來發(fā)展前景廣闊。
圖6 溫度數(shù)據存儲圖
參考文獻:
[1]李朝青.單片機原理及接口技術.北京:北京航空航天大學出版社,1998.
[2]韓靜,王熙.由數(shù)字溫度傳感器DS18B20構成的溫度控制系統(tǒng).大慶師范學院學報,2008,28(2):49-51.
[3]任德齊,譚中華.基于LabVIEW的溫度測試系統(tǒng)的研究.西南師范大學學報:自然科學版,2007,32(5):129-132.
圖7 上位機軟件程序框圖
[4]黃浩,程菲,段三丁,陳光東.常用串行總線數(shù)據操作的C51編程.微型機與應用,2003(5):19-21.
[5]王淑琴,徐振高.通用串行總線及其在虛擬儀器中的應用.計算技術,2003(7):14-16.
[6]李曉波.基于LabVIEW 的汽車水溫傳感器檢測系統(tǒng).儀表技術與傳感器,2013(1):59-61.