焦運良,邢計元,岳 洋
(華北計算機系統工程研究所,北京 100083)
溫度是表示物理冷熱的物理量,溫度監控的重要性體現在日常生活、醫療生物、工業生產、軍事應用、科學研究等各個行業。課題利用虛擬儀器技術靈活高效的特點,以監控電腦機箱溫度作為背景,并使用電機驅動風扇的方式來調控溫度。區別于傳統的溫度檢測系統,課題使用NI-myRIO 1900作為核心控制器,使用LabVIEW清晰流暢的圖形化編程語言[1]編寫上位機的程序,使用戶可以直觀監測到實時溫度;并根據實際環境與具體需求,實時調整溫度閾值,從而實現對溫度準確、實時和平穩的控制。
溫度監控系統的總體結構如圖1所示。課題所設計的系統采用NI-myRIO 1900作為主要控制處理模塊,LabVIEW平臺作為核心開發環境,使用單片機對傳感器進行初始化設置和溫度數據的處理。由LabVIEW編寫系統控制程序并將其加載至核心控制設備中[2]。核心控制設備完成與單片機溫度采集系統的數據交互、控制降溫執行器的運行并將實時數據傳輸至PC。

圖1 溫度監控系統總體結構圖
系統的具體工作流程為:
(1)單片機對傳感器做初始化驅動,采集傳感器溫度數據,并做初步的數據處理。
(2)單片機完成處理后將數據通過串口發送到核心控制模塊(即嵌入式硬件開發平臺)。
(3)核心控制模塊對數據進行最終處理,并且將處理結果發送至PC,呈現給用戶,使用戶可以調整系統的設置。
(4)核心控制模塊根據預先設定的程序算法對系統被控部分(執行器)發出指令。
(5)執行器收到指令后開始運行,使系統完成對溫度的檢測和控制。
系統的硬件部分由溫度采集模塊、核心控制模塊和降溫執行模塊三部分組成。
課題研究的是基于虛擬儀器的溫度監控系統,所以核心控制模塊使用NI公司研發的NI-myRIO 1900嵌入式硬件開發平臺進行搭建。
NI-myRIO 1900功能強大,其內嵌FPGA和ARM?CortexTM-A9處理器[3],可以幫助用戶快速完成復雜工程的處理;內嵌板載WiFi,支持無線網遠程通信;具有豐富的外設資源,包括10個模擬輸出通道、6個模擬輸入通道、音頻I/O通道和高達40條數字輸入輸出線;此外,LabVIEW包含很多集成的函數,其針對NI-myRIO 1900上的各種I/O接口提供經過優化設計的現成驅動函數,方便快速調用。
溫度采集模塊是由DS18B20溫度傳感器和89C52單片機進行搭建。
DS18B20是一款單總線數字溫度傳感器,它最小測量精度為0.062 5 ℃,具有極高的精度;數字量輸出,操作簡單,易與單片機通信[4]。測溫范圍是-55 ℃~ + 125 ℃,測量溫度的分辨率為9位~12位,用戶可以根據具體需要自己進行選擇設定;采用特殊的單總線接口結構,只需要一條接線就可以實現與微控制器的雙向通信;具有負壓特性,即電源正負極反接雖然不能正常工作,但也不會損毀芯片。
89C52單片機在溫度采集模塊中的作用是對DS18B20溫度傳感器進行初始化設置,使其能正常工作;并且將傳感器讀到的溫度數據換算成十進制的溫度數值,然后將其發送到核心控制模塊,以便核心控制模塊對整個系統進行調控操作。
降溫執行模塊由步進電機驅動風扇來完成。核心控制模塊通過驅動模塊與電機相連,通過NI-MyRIO 1900的PWM端口控制電機。
核心控制設備采集機箱溫度,上傳至上位機控制平臺,用戶能通過上位機控制平臺全程監控系統的運行并對必要參數進行修改。上位機程序流程圖如圖2所示。

圖2 上位機程序流程圖
在監控系統中軟件需要完成的功能是:控制溫度采集模塊將測得的溫度發送至NI-myRIO 1900、控制NI-myRIO 1900完成測量溫度與預設溫度的對比、控制NI-myRIO 1900對溫度對比結果產生響應。所以上位機控制程序由溫度傳輸部分、溫度對比部分、電機驅動和報警部分組成。
通過UART串口將單片機讀出并轉換成ASCII碼[5]的溫度量值以字符串的形式讀入NI-myRIO 1900;調用“連接字符串”的函數,將每次讀入的字符串反饋,使每個字符串可以被保存和顯示;調用“截取字符串”函數,將每次讀取的字符串進行截取,根據用戶自行設定的截取起始位和截取長度,提取出用戶需求的字符串內容并將其顯示;調用“十進制數字字符串至數字轉換”函數,將提取出的字符串轉換為8字節長的雙精度實數,即溫度數值。這部分函數被嵌套在一個“while循環”函數中,且循環終止條件為手動按鈕,故用戶可以根據實際情況自己選擇開啟或終止程序的運行。
溫度對比部分是系統軟件設計的核心部分,用戶根據具體需求自行設定系統啟動溫度、系統安全溫度上限和系統高危溫度三個溫度線,然后將讀取的實時溫度分別與三個溫度線做比較。如果實測溫度高于啟動溫度,系統會驅動降溫執行器開始運行;如果低于啟動溫度,則不會執行與后續溫度線的比較,轉而繼續比較下一個實時溫度與啟動溫度的大小。如果實測溫度高于溫度上限時,系統的危險指示燈會由綠變紅,直到實測溫度降低至低于溫度上限;若實測溫度高于系統高危溫度,除了危險指示燈繼續呈現紅色之外,系統還會調用報警程序,產生報警鈴聲,直到溫度降至低于系統高危溫度。這部分函數被嵌套在平鋪式順序結構之中[6],以便實時溫度按三個溫度線的順序分別做比較并運行相應的響應程序。
電機驅動和報警部分是系統的執行模塊。
通過調用LabVIEW內部的PWM模塊,設定頻率、占空比和接口[7];程序運行時,指定接口所接的電機就會啟動運行。電機的驅動程序嵌套在“條件結構”函數下運行,當溫度比較結果為真,即實測溫度大于某一溫度線時,相應的電機就會開始工作。電機驅動部分共由四個電機組成,第一個電機當實測溫度高于啟動溫度就立刻開始運行;第二個電機在實測溫度達到溫度上限與啟動溫度的中間點時開始運行;第三個電機將在實測溫度達到溫度上線時開始運行,第四個電機將在實測溫度達到系統高危溫度時開始運行。
聲音報警程序將在實測溫度高于系統高危溫度時被調用,播放報警鈴聲,其程序如圖3所示。將此程序的地址和預設音頻文件的地址融合成一個新地址,再與設備ID融合,調用系統“聲音播放程序”的模塊,警報鈴聲便會被播出;同樣聲音播出程序被嵌套在“while循環”函數中,循環條件是布爾量按鈕,用戶可以自行選擇關閉此程序。
課題以計算機機箱溫度的監控為背景,以虛擬儀器技術作為核心技術,以LabVIEW作為核心程序開發環境,以NI-myRIO 1900作為核心控制平臺,以單片機和DS18B20溫度傳感器作為溫度采集模塊,以電機驅動風扇作為執行模塊,利用電機運行帶動風扇降低溫度且溫度降低會反作用于電機運行形成反饋控制[8],使整個系統的溫度被時刻監控且被控制在用戶設定的溫度上下浮動,實現了以下功能:
(1)由單片機控制溫度采集裝置,能夠準確地

圖3 聲音報警程序
采集電腦機箱內的溫度。
(2)通過串口通信,把采集到的溫度傳輸到核心控制設備。
(3)上位機可以接收下位機發送來的溫度數據并顯示給用戶,用戶可以根據需求修改溫度閾值。
(4)智能識別系統啟動溫度,只在溫度高于正常溫度時才運行控制器件,減少能源損耗。
(5)具有報警功能,在實測溫度高于危險值時系統能對外發出警報,提醒用戶采取其他措施降溫。
(6)能夠實現對溫度較為準確、平穩的控制。
虛擬儀器是測控技術領域新出現的一項具有劃時代意義的技術,它將計算機技術與電子測量技術完美地融合在了一起,是一項具有廣闊前景的電子儀器技術。隨著微型計算機技術的發展程度日益深入,功能作用日益強大,虛擬儀器技術必將逐步取代以傳統儀器為基點的測量與控制技術,成為主流的儀器儀表技術。