《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 模擬設(shè)計 > 設(shè)計應(yīng)用 > 基于485總線的溫度監(jiān)控系統(tǒng)
基于485總線的溫度監(jiān)控系統(tǒng)
摘要: 設(shè)計了一種基于RS485總線的溫控系統(tǒng),。此系統(tǒng)投資少,,架設(shè)簡單、可擴展性強,,大大減輕管理者的負擔(dān),,實現(xiàn)了工業(yè)控制自動化,。目前在多個場所得到了具體應(yīng)用,其測溫精度在0.5℃以內(nèi),,系統(tǒng)工作可靠穩(wěn)定,,無通信故障。
Abstract:
Key words :

關(guān)鍵字:485總線 溫度監(jiān)控

    引言   

    RS一485總線由于平衡差分傳輸?shù)奶匦?,具有抗干擾能力強,,傳輸距離遠、有較強的級連的能力,。能實現(xiàn)多站遠距離通信,,組網(wǎng)方便,成本低廉,,因此在工業(yè)控制領(lǐng)域得到廣泛應(yīng)用,。

 

本系統(tǒng)是基于RS一485總線的遠程多路溫度監(jiān)測、控制系統(tǒng),,上位機是一臺PC,,下位機是多個以AT98S51為控制器的溫度傳感器。工作時,,下位機會向上位機發(fā)出本機地址和詢問預(yù)置溫度的請求,。上位機獲得下位機地址后,就知道那些地址的下位機已啟動并根據(jù)請求把相應(yīng)的預(yù)置溫度發(fā)給下位機,,此后每隔一定時間逐一詢問已啟動的下位機測定的溫度信息,,獲得溫度值后存入數(shù)據(jù)庫并實時顯示當前各路傳感器測定溫度,,當溫度過高時,會告警提示,。下位機獲得預(yù)置溫度后,,開始對傳感器的數(shù)據(jù)采集和溫度測量。當溫度低于預(yù)置溫度時,,接通加熱器加熱溫度,,溫度過高時,接通制冷設(shè)備加速降溫,,同時把溫度信息傳回上位機,,溫度超出范圍后,還會以蜂鳴器報警,。上位機接收下位機的測量溫度后存入數(shù)據(jù)庫,,并實時顯示,系統(tǒng)還具備數(shù)據(jù)庫管理,、溫度變化曲線繪制等功能,。當下位機掉電重啟后,會向上位機重新問詢獲得掉電前的預(yù)置溫度,。溫度監(jiān)控系統(tǒng)由傳感器電路,、信號調(diào)整電路、A/D采樣電路,、控制電路,、監(jiān)控主機組成?;竟ぷ髟硎牵簜鞲衅麟娐穼⒏惺艿降臏囟刃盘栆噪妷盒问捷敵?,經(jīng)調(diào)整電路變換到TTL電平、由A/D采樣后將數(shù)字量送給單片機控制電路,,單片機根據(jù)開機時上位機傳來的設(shè)定溫度判斷作何種控制,,如溫度未到設(shè)定溫度,經(jīng)驅(qū)動控制繼電器閉合接通加熱器,,如溫度過高則接通制冷設(shè)備加速降溫,。單片機還將所測溫度在數(shù)碼管上顯示,并在上位機詢問時把測量溫度送到上位機入庫,。系統(tǒng)框圖如下圖1,。

  

系統(tǒng)實現(xiàn)  

硬件設(shè)計   

AT89S51是ATMEL公司的可在線編程的單片機,它價格低廉,,且支持在系統(tǒng)編程(ISP),,方便設(shè)計者開發(fā)調(diào)試。溫度傳感器選用NS公司生產(chǎn)的L= M35,,它具有很高的工作精度和較好的線性工作范圍,,測溫范圍為一55℃~+150℃,完全適用于一般的測溫場合,。其輸出電壓與攝氏溫度線性成正比,,無需外部校準即可提供1/4℃的測量精度。信號調(diào)整電路將傳感器電路輸出的變化范圍為2V左右的直流電壓,,調(diào)整為TTL電平,,以便與A/D兼容。由于單片機?。桑峡谟邢?,在對測溫實時性要求不是太高的情況下,A/D變換采用8位串行A/D轉(zhuǎn)換器ADC0832,,它與單片機的IO連線只有三根,,減少了IO占用量,。四個數(shù)碼管的數(shù)據(jù)端都接到單片機P1口,,控制端由P2[3..0]控制,利用定時器中斷觸發(fā),,每次只接通一個數(shù)碼管,,顯示相應(yīng)數(shù)值,利用分時顯示在數(shù)碼管上顯示溫度值,。當溫度變化時,,A/D采集調(diào)整電路輸出電壓值,送單片機,,單片機根據(jù)采樣值判定溫度,,通過數(shù)碼管顯示溫度值并回饋上位機。

原理圖如圖2 所示,。

軟件設(shè)計   

下位機軟件設(shè)計   

下位機的軟件是在Keil?。酰郑椋螅椋恚欤蚕拢褂茫谜Z言開發(fā)的,。下位機的軟件設(shè)計中,,主要解決三個問題:一是ADC0832的控制位寫入。根據(jù)數(shù)據(jù)手冊,,在時鐘上升沿寫入配置字即可,,但按此方法始終不能正確讀出數(shù)據(jù),后來經(jīng)過試驗,,在寫入配置字的每一位后,,還要在負跳變前把數(shù)據(jù)翻轉(zhuǎn),配置字才能正確寫入。二是數(shù)碼管上溫度值的顯示,。最后采用中斷方案,,每隔10ms進入中斷程序,循環(huán)選通各個數(shù)碼管,,分時顯示對應(yīng)的數(shù)字值,。三是A/D采樣數(shù)據(jù)的處理,為避免因干擾而造成A/D采樣數(shù)據(jù)不穩(wěn)定,,這里采用軟件濾波的方法以濾除可能的尖峰干擾,。方法是連續(xù)采樣七次,去掉最高值和最低值,,其余五次取平均值來獲得A/D采樣的數(shù)字量,。

經(jīng)測量,0V對應(yīng)的溫度為0℃,,,,5V時對應(yīng)的溫度為1 25℃,,則比例因子K=0.04V/℃,。每個數(shù)字量對應(yīng)的電壓值為20mV,則數(shù)字量變化與溫度變化比例關(guān)系K1=2數(shù)字量/℃,,利用此比例因子就可由數(shù)字量得到當前溫度,。

上位機軟件設(shè)計   

本系統(tǒng)為主從式監(jiān)控系統(tǒng),主機(即上位機)在向下位機發(fā)預(yù)置溫度啟動下位機后,,輪詢不同地址碼的從機,,獲得溫度值,存入數(shù)據(jù)庫并在主界面顯示,。從機接收到主機預(yù)置溫度后啟動,,每次主機詢問溫度值時回送測量溫度值。如出現(xiàn)掉電后重啟的情況,,從機向主機發(fā)出重置請求,,要求主機重發(fā)預(yù)置溫度。上位機的通信軟件開發(fā)采用Borland公司的C++Builder5.O,,它的集成RAD開發(fā)環(huán)境可以幫助開發(fā)人員快速高效地開發(fā)出高質(zhì)量的程序,。在C++Builder中對串口進行編程可以使用Mscomm控件加快開發(fā)進度。它是一個ActiveX組件,,不在C++Builder,。安裝中提供,可以在裝有VC6.0的PC 上獲得,,拷貝到本機上注冊后,,在C++?。隆。酢,。椋臁,。洹。濉,。蛳?,先是在菜單的Compotlent選項中導(dǎo)入ActiveX控件,再Install?。校幔悖耄幔纾澹蠛缶涂梢栽冢粒悖簦椋觯澹孛姘逯锌吹讲⑹褂盟?。

數(shù)據(jù)庫采用微軟的ACC:ESS數(shù)據(jù)庫,使用ADO數(shù)據(jù)引擎,;C++Builder在ADO面板中提供了完備的ADO開發(fā)控件,,實現(xiàn)了通過鼠標操作就能實現(xiàn)連接數(shù)據(jù)庫、編輯數(shù)據(jù)內(nèi)容,、顯示數(shù)據(jù)等一些基本數(shù)據(jù)庫操作功能,。程序還可以繪制溫度變化歷史曲線便于操作員管理。

總線通信格式設(shè)置   

上位機和下位機之間的串行通信采用RS一485標準接口,,PC端接一個RS232/    ?。矗福档霓D(zhuǎn)換器,就實現(xiàn)RS485總線控制了,。在通信頻率1200bps 的情況下,,有效通信距離為1.2km。由于有多個從設(shè)備并聯(lián)在485總線上,,所以要制定嚴格的通信格式,表1是用到的通信協(xié)議,。

 

結(jié)語   

筆者設(shè)計了一種基于RS485總線的溫控系統(tǒng),。此系統(tǒng)投資少,架設(shè)簡單,、可擴展性強,,大大減輕管理者的負擔(dān),實現(xiàn)了工業(yè)控制自動化,。目前在多個場所得到了具體應(yīng)用,,其測溫精度在0.5℃以內(nèi),系統(tǒng)工作可靠穩(wěn)定,,無通信故障,。

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載,。