基于modbus協(xié)議的空間分布式溫濕度測控系統(tǒng)設(shè)計
0 引言
目前,大型基地(比如倉庫)對其空間內(nèi)部的溫度和濕度參數(shù)非常關(guān)注,因為這直接關(guān)系到其中儲存的設(shè)備是否能夠無腐蝕、完好的被保存。因此,能夠自動測量空間內(nèi)的溫濕度并在需要的時候開啟風(fēng)機以控制溫濕度是很有必要的。本文提出用分布式系統(tǒng)結(jié)合Modbus協(xié)議來高穩(wěn)定高可靠地收集數(shù)據(jù),同時在PC機上利用ACCESS的強大功能分析和處理數(shù)據(jù)并發(fā)出風(fēng)機指令,從而實現(xiàn)溫濕度的自動測控。
1 系統(tǒng)構(gòu)成
該溫濕度測量控制系統(tǒng)屬于傳感器空間立體分布式測控系統(tǒng),采用PC主機和一臺上位機、以及若干臺下位機來實現(xiàn)主從式通信,同時使用RS485通信方式并采用Modbus協(xié)議組成工業(yè)級485網(wǎng)絡(luò),然后再加上風(fēng)機、打印機等。從而構(gòu)成一套完整的系統(tǒng)來實現(xiàn)對基地的溫度濕度參數(shù)進行監(jiān)測和控制。下位機采用一線總線(12wireinter2face)溫度傳感器來和shtll濕度傳感器精確地采集溫濕度信號,并應(yīng)用PIC16單片機來把處理的信號通過RS-485總線發(fā)送給上位機。上位機是采用AT89S52的中央控制單元,可進行數(shù)據(jù)處理和數(shù)據(jù)儲存,并可與PC機實現(xiàn)數(shù)據(jù)交互,進而通過該網(wǎng)絡(luò)驅(qū)動風(fēng)機控制開關(guān)的通斷。圖1所示為系統(tǒng)總體框圖。
2 Modbus協(xié)議
Modbus協(xié)議適用于半雙工的RS-485總線。該總線上一般可有一個主機和多個從機,每個從機分配唯一的地址。工作時采用命令――應(yīng)答的通訊方式,每一種命令幀都對應(yīng)著一種應(yīng)答幀,主機可以向要訪問的從機發(fā)出命令幀,然后由地址匹配的從機進行響應(yīng),再向主機發(fā)出與命令幀對應(yīng)的應(yīng)答幀;地址不匹配的從機不響應(yīng)命令幀。這種一問一答的通信方式可以大大提高數(shù)據(jù)傳輸?shù)恼_性。
標準的Modbus協(xié)議為命令幀定義了許多功能代碼,不同的功能代碼要求從機進行不同的響應(yīng)。Modbus協(xié)議分為ASC碼模式和RTU模式,一般應(yīng)用都希望在較短的時間內(nèi)盡可能擴大數(shù)據(jù)的傳輸量,因此,大多采用RTU方式。
無論是命令幀還是應(yīng)答幀,消息幀的起始和結(jié)束必須有至少可發(fā)送3.5個字符時間的停頓作為標志。命令幀中,從機地址表明該命令幀由總線上哪個從機接收。功能碼則指明主機要從機作出何種響應(yīng)。寄存器起始地址主要告訴從機,主機所要讀取從機內(nèi)部寄存器的起始地址。寄存器數(shù)是指主機要從該地址開始,連續(xù)讀取多少個寄存器的值。CRC校驗是對由從機地址開始的幀的所有字節(jié)進行CRC-16校驗的校驗碼。CRC校驗的糾錯能力極強,它的應(yīng)用使得數(shù)據(jù)傳輸?shù)臏蚀_率可達94%以上。在應(yīng)答幀中,從機地址、功能碼、CRC校驗與命令幀中的含義相同。字節(jié)數(shù)為從機應(yīng)主機要求所發(fā)送的內(nèi)部寄存器數(shù)據(jù)的字節(jié)數(shù),寄存器1、2、…n是發(fā)送的各寄存器的內(nèi)容。
3 系統(tǒng)硬件實現(xiàn)
該系統(tǒng)硬件采用一臺上位機和若干臺下位機的方式來構(gòu)成通信網(wǎng)絡(luò),從而完成數(shù)據(jù)的收集和存儲。
評論