0 引言
目前,大型基地(比如倉(cāng)庫(kù))對(duì)其空間內(nèi)部的溫度和濕度參數(shù)非常關(guān)注,因?yàn)檫@直接關(guān)系到其中儲(chǔ)存的設(shè)備是否能夠無(wú)腐蝕、完好的被保存。因此,能夠自動(dòng)測(cè)量空間內(nèi)的溫濕度并在需要的時(shí)候開啟風(fēng)機(jī)以控制溫濕度是很有必要的。本文提出用分布式系統(tǒng)結(jié)合Modbus協(xié)議來(lái)高穩(wěn)定高可靠地收集數(shù)據(jù),同時(shí)在PC機(jī)上利用ACCESS的強(qiáng)大功能分析和處理數(shù)據(jù)并發(fā)出風(fēng)機(jī)指令,從而實(shí)現(xiàn)溫濕度的自動(dòng)測(cè)控。
1 系統(tǒng)構(gòu)成
該溫濕度測(cè)量控制系統(tǒng)屬于傳感器空間立體分布式測(cè)控系統(tǒng),采用PC主機(jī)和一臺(tái)上位機(jī)、以及若干臺(tái)下位機(jī)來(lái)實(shí)現(xiàn)主從式通信,同時(shí)使用RS485通信方式并采用Modbus協(xié)議組成工業(yè)級(jí)485網(wǎng)絡(luò),然后再加上風(fēng)機(jī)、打印機(jī)等。從而構(gòu)成一套完整的系統(tǒng)來(lái)實(shí)現(xiàn)對(duì)基地的溫度濕度參數(shù)進(jìn)行監(jiān)測(cè)和控制。下位機(jī)采用一線總線(12wireinter2face)溫度傳感器來(lái)和shtll濕度傳感器精確地采集溫濕度信號(hào),并應(yīng)用PIC16單片機(jī)來(lái)把處理的信號(hào)通過(guò)RS-485總線發(fā)送給上位機(jī)。上位機(jī)是采用AT89S52的中央控制單元,可進(jìn)行數(shù)據(jù)處理和數(shù)據(jù)儲(chǔ)存,并可與PC機(jī)實(shí)現(xiàn)數(shù)據(jù)交互,進(jìn)而通過(guò)該網(wǎng)絡(luò)驅(qū)動(dòng)風(fēng)機(jī)控制開關(guān)的通斷。圖1所示為系統(tǒng)總體框圖。
2 Modbus協(xié)議
Modbus協(xié)議適用于半雙工的RS-485總線。該總線上一般可有一個(gè)主機(jī)和多個(gè)從機(jī),每個(gè)從機(jī)分配唯一的地址。工作時(shí)采用命令——應(yīng)答的通訊方式,每一種命令幀都對(duì)應(yīng)著一種應(yīng)答幀,主機(jī)可以向要訪問(wèn)的從機(jī)發(fā)出命令幀,然后由地址匹配的從機(jī)進(jìn)行響應(yīng),再向主機(jī)發(fā)出與命令幀對(duì)應(yīng)的應(yīng)答幀;地址不匹配的從機(jī)不響應(yīng)命令幀。這種一問(wèn)一答的通信方式可以大大提高數(shù)據(jù)傳輸?shù)恼_性。
標(biāo)準(zhǔn)的Modbus協(xié)議為命令幀定義了許多功能代碼,不同的功能代碼要求從機(jī)進(jìn)行不同的響應(yīng)。Modbus協(xié)議分為ASC碼模式和RTU模式,一般應(yīng)用都希望在較短的時(shí)間內(nèi)盡可能擴(kuò)大數(shù)據(jù)的傳輸量,因此,大多采用RTU方式。
無(wú)論是命令幀還是應(yīng)答幀,消息幀的起始和結(jié)束必須有至少可發(fā)送3.5個(gè)字符時(shí)間的停頓作為標(biāo)志。命令幀中,從機(jī)地址表明該命令幀由總線上哪個(gè)從機(jī)接收。功能碼則指明主機(jī)要從機(jī)作出何種響應(yīng)。寄存器起始地址主要告訴從機(jī),主機(jī)所要讀取從機(jī)內(nèi)部寄存器的起始地址。寄存器數(shù)是指主機(jī)要從該地址開始,連續(xù)讀取多少個(gè)寄存器的值。CRC校驗(yàn)是對(duì)由從機(jī)地址開始的幀的所有字節(jié)進(jìn)行CRC-16校驗(yàn)的校驗(yàn)碼。CRC校驗(yàn)的糾錯(cuò)能力極強(qiáng),它的應(yīng)用使得數(shù)據(jù)傳輸?shù)臏?zhǔn)確率可達(dá)94%以上。在應(yīng)答幀中,從機(jī)地址、功能碼、CRC校驗(yàn)與命令幀中的含義相同。字節(jié)數(shù)為從機(jī)應(yīng)主機(jī)要求所發(fā)送的內(nèi)部寄存器數(shù)據(jù)的字節(jié)數(shù),寄存器1、2、…n是發(fā)送的各寄存器的內(nèi)容。
3 系統(tǒng)硬件實(shí)現(xiàn)
該系統(tǒng)硬件采用一臺(tái)上位機(jī)和若干臺(tái)下位機(jī)的方式來(lái)構(gòu)成通信網(wǎng)絡(luò),從而完成數(shù)據(jù)的收集和存儲(chǔ)。
上位機(jī)主要由AT89S52單片機(jī)、通訊模塊、存儲(chǔ)模塊、狀態(tài)指示模塊組成,圖2所示是其上位機(jī)的結(jié)構(gòu)組成。
下位機(jī)主要由PIC16單片機(jī)、溫度傳感器、濕度傳感器、風(fēng)機(jī)控制單元、狀態(tài)指示模塊和通訊模塊組成,其結(jié)構(gòu)如圖3所示。
圖4所示是基于Modbus協(xié)議的485通訊網(wǎng)絡(luò)的組網(wǎng)方式示意圖。
4 系統(tǒng)軟件設(shè)計(jì)
本系統(tǒng)中的溫濕度監(jiān)測(cè)系統(tǒng)軟件可采用VB語(yǔ)言來(lái)開發(fā),并基于Access數(shù)據(jù)庫(kù)來(lái)進(jìn)行管理。本軟件的特點(diǎn)類似于Windows的圖形界面和操作方法,因而十分簡(jiǎn)單,易操作。其完成的主要功能是數(shù)據(jù)收集、系統(tǒng)設(shè)置、用戶管理、數(shù)據(jù)處理、數(shù)據(jù)顯示、系統(tǒng)設(shè)置,歷史數(shù)據(jù)分析、報(bào)警設(shè)置、設(shè)備管理、輸出報(bào)表和圖形顯示等。圖5所示是本系統(tǒng)的軟件結(jié)構(gòu)框圖。
在圖5中,用戶管理主要是對(duì)操作軟件的用戶進(jìn)行管理,包括用戶的添加刪除,密碼管理,用戶權(quán)限管理等等;系統(tǒng)設(shè)置則是對(duì)監(jiān)控系統(tǒng)軟件溫濕度參數(shù)的設(shè)置,例如溫度、濕度傳感器的地址參數(shù)的設(shè)置;數(shù)據(jù)交互主要完成軟件讀取上位機(jī)中存儲(chǔ)的數(shù)據(jù);數(shù)據(jù)處理主要負(fù)責(zé)數(shù)據(jù)存儲(chǔ)備份、溫濕度報(bào)警值的設(shè)定、對(duì)讀取的數(shù)據(jù)進(jìn)行處理,并判斷是否需要開關(guān)風(fēng)機(jī);數(shù)據(jù)顯示主要
是對(duì)采集的溫濕度按照具體需要進(jìn)行顯示;歷史數(shù)據(jù)的主要功能是對(duì)以往溫濕度記錄的查看、分析、統(tǒng)計(jì),可以通過(guò)軟件針對(duì)每一年、每一月、每一天的平均溫度或者某一天某一時(shí)刻的溫度和濕度進(jìn)行查詢,包括對(duì)歷史數(shù)據(jù)溫度和濕度曲線的觀測(cè),以及各個(gè)時(shí)段的溫度/濕度報(bào)表的打印等。
5 結(jié)束語(yǔ)
本文主要討論通過(guò)基于Modbus協(xié)議的485網(wǎng)絡(luò)來(lái)實(shí)現(xiàn)溫濕度的采集與控制的具體方法。文章根據(jù)項(xiàng)目中的具體操作,給出了系統(tǒng)硬件、嵌入式軟件、PC機(jī)軟件等各個(gè)環(huán)節(jié)的具體實(shí)現(xiàn)方法,以便于設(shè)計(jì)者在開發(fā)應(yīng)用中作為參考。