基于RS-485總線(xiàn)的溫度監控系統
引言
本文引用地址:http://dyxdggzs.com/article/150049.htm?。遥右唬矗福?a class="contentlabel" href="http://dyxdggzs.com/news/listbylabel/label/總線(xiàn)">總線(xiàn)由于平衡差分傳輸的特性,具有抗干擾能力強,傳輸距離遠、有較強的級連的能力。能實(shí)現多站遠距離通信,組網(wǎng)方便,成本低廉,因此在工業(yè)控制領(lǐng)域得到廣泛應用。
本系統是基于RS一485總線(xiàn)的遠程多路溫度監測、控制系統,上位機是一臺PC,下位機是多個(gè)以AT98S51為控制器的溫度傳感器。工作時(shí),下位機會(huì )向上位機發(fā)出本機地址和詢(xún)問(wèn)預置溫度的請求。上位機獲得下位機地址后,就知道那些地址的下位機已啟動(dòng)并根據請求把相應的預置溫度發(fā)給下位機,此后每隔一定時(shí)間逐一詢(xún)問(wèn)已啟動(dòng)的下位機測定的溫度信息,獲得溫度值后存入數據庫并實(shí)時(shí)顯示當前各路傳感器測定溫度,當溫度過(guò)高時(shí),會(huì )告警提示。下位機獲得預置溫度后,開(kāi)始對傳感器的數據采集和溫度測量。當溫度低于預置溫度時(shí),接通加熱器加熱溫度,溫度過(guò)高時(shí),接通制冷設備加速降溫,同時(shí)把溫度信息傳回上位機,溫度超出范圍后,還會(huì )以蜂鳴器報警。上位機接收下位機的測量溫度后存入數據庫,并實(shí)時(shí)顯示,系統還具備數據庫管理、溫度變化曲線(xiàn)繪制等功能。當下位機掉電重啟后,會(huì )向上位機重新問(wèn)詢(xún)獲得掉電前的預置溫度。溫度監控系統由傳感器電路、信號調整電路、A/D采樣電路、控制電路、監控主機組成?;竟ぷ髟硎牵簜鞲衅麟娐穼⒏惺艿降臏囟刃盘栆噪妷盒问捷敵?,經(jīng)調整電路變換到TTL電平、由A/D采樣后將數字量送給單片機控制電路,單片機根據開(kāi)機時(shí)上位機傳來(lái)的設定溫度判斷作何種控制,如溫度未到設定溫度,經(jīng)驅動(dòng)控制繼電器閉合接通加熱器,如溫度過(guò)高則接通制冷設備加速降溫。單片機還將所測溫度在數碼管上顯示,并在上位機詢(xún)問(wèn)時(shí)把測量溫度送到上位機入庫。系統框圖如下圖1。
系統實(shí)現
硬件設計
?。粒裕福梗樱担笔牵粒裕停牛坦镜目稍诰€(xiàn)編程的單片機,它價(jià)格低廉,且支持在系統編程(ISP),方便設計者開(kāi)發(fā)調試。溫度傳感器選用NS公司生產(chǎn)的L=?。停常?,它具有很高的工作精度和較好的線(xiàn)性工作范圍,測溫范圍為一55℃~+150℃,完全適用于一般的測溫場(chǎng)合。其輸出電壓與攝氏溫度線(xiàn)性成正比,無(wú)需外部校準即可提供1/4℃的測量精度。信號調整電路將傳感器電路輸出的變化范圍為2V左右的直流電壓,調整為TTL電平,以便與A/D兼容。由于單片機?。桑峡谟邢?,在對測溫實(shí)時(shí)性要求不是太高的情況下,A/D變換采用8位串行A/D轉換器ADC0832,它與單片機的IO連線(xiàn)只有三根,減少了IO占用量。四個(gè)數碼管的數據端都接到單片機P1口,控制端由P2[3..0]控制,利用定時(shí)器中斷觸發(fā),每次只接通一個(gè)數碼管,顯示相應數值,利用分時(shí)顯示在數碼管上顯示溫度值。當溫度變化時(shí),A/D采集調整電路輸出電壓值,送單片機,單片機根據采樣值判定溫度,通過(guò)數碼管顯示溫度值并回饋上位機。
原理圖如圖2 所示。
軟件設計
下位機軟件設計
下位機的軟件是在Keil?。酰郑椋螅椋恚欤蚕?,使用C語(yǔ)言開(kāi)發(fā)的。下位機的軟件設計中,主要解決三個(gè)問(wèn)題:一是ADC0832的控制位寫(xiě)入。根據數據手冊,在時(shí)鐘上升沿寫(xiě)入配置字即可,但按此方法始終不能正確讀出數據,后來(lái)經(jīng)過(guò)試驗,在寫(xiě)入配置字的每一位后,還要在負跳變前把數據翻轉,配置字才能正確寫(xiě)入。二是數碼管上溫度值的顯示。最后采用中斷方案,每隔10ms進(jìn)入中斷程序,循環(huán)選通各個(gè)數碼管,分時(shí)顯示對應的數字值。三是A/D采樣數據的處理,為避免因干擾而造成A/D采樣數據不穩定,這里采用軟件濾波的方法以濾除可能的尖峰干擾。方法是連續采樣七次,去掉最高值和最低值,其余五次取平均值來(lái)獲得A/D采樣的數字量。
經(jīng)測量,0V對應的溫度為0℃,,5V時(shí)對應的溫度為1?。玻怠?,則比例因子K=0.04V/℃。每個(gè)數字量對應的電壓值為20mV,則數字量變化與溫度變化比例關(guān)系K1=2數字量/℃,利用此比例因子就可由數字量得到當前溫度。
上位機軟件設計
本系統為主從式監控系統,主機(即上位機)在向下位機發(fā)預置溫度啟動(dòng)下位機后,輪詢(xún)不同地址碼的從機,獲得溫度值,存入數據庫并在主界面顯示。從機接收到主機預置溫度后啟動(dòng),每次主機詢(xún)問(wèn)溫度值時(shí)回送測量溫度值。如出現掉電后重啟的情況,從機向主機發(fā)出重置請求,要求主機重發(fā)預置溫度。上位機的通信軟件開(kāi)發(fā)采用Borland公司的C++Builder5.O,它的集成RAD開(kāi)發(fā)環(huán)境可以幫助開(kāi)發(fā)人員快速高效地開(kāi)發(fā)出高質(zhì)量的程序。在C++Builder中對串口進(jìn)行編程可以使用Mscomm控件加快開(kāi)發(fā)進(jìn)度。它是一個(gè)ActiveX組件,不在C++Builder。安裝中提供,可以在裝有VC6.0的PC 上獲得,拷貝到本機上注冊后,在C++?。隆。酢。椋臁。洹。濉。蛳?,先是在菜單的Compotlent選項中導入ActiveX控件,再Install?。校幔悖耄幔纾澹蠛缶涂梢栽冢粒悖簦椋觯澹孛姘逯锌吹讲⑹褂盟?。
數據庫采用微軟的ACC:ESS數據庫,使用ADO數據引擎;C++Builder在ADO面板中提供了完備的ADO開(kāi)發(fā)控件,實(shí)現了通過(guò)鼠標操作就能實(shí)現連接數據庫、編輯數據內容、顯示數據等一些基本數據庫操作功能。程序還可以繪制溫度變化歷史曲線(xiàn)便于操作員管理。
評論