摘要:目前在智能建筑和工業(yè)控制行業(yè)中,MODBUS/TCP協(xié)議已經被廣泛地應用,實現了對數據的可靠傳輸并已經成為了控制通訊中事實上的標準,但在實際的運行過程中,研究人員發(fā)現由于TCP自身對通信過程的要求,導致在一些對實時數據要求較高的場合,不能完全實現數據的實時傳輸,因此在本文中采用MODBUS/UDP協(xié)議來進行數據的實時性傳輸,以實現對監(jiān)測現場的實時控制。
關鍵詞:MODBUS/UDP協(xié)議;實時性;智能控制;數據傳輸
前言
目前,從工業(yè)控制的發(fā)展趨勢來看、不難發(fā)現以太網將會成為通信領域的主流技術,因其在性能和速度方面都有很大的提高,并且在全球范圍內得到了廣泛的應用。雖然它在工控領域得到了迅猛發(fā)展,但現有的以太網技術不能完全滿足對數據確定實時的要求,因此,現場總線基金會和一些從事工控方面的公司都采用了多種方法來改進以太網。人們設想直接修改以太網MAC協(xié)議方式,但它卻有著自身的不足一一成本太高。另外,還有的研究人員想通過在數據鏈路層增加實時調度層的方式來提高實時性,再有就是采用以太網與TCP/IP相結合的方法,在本文中主要是采用MODBUS/UDp協(xié)議來減少網絡時延的方式來達到對數據實時性的要求。
在智能建筑行業(yè)中有很多監(jiān)控方面的智能儀表,來達到對監(jiān)控對象的實時監(jiān)控,由于各種智能儀表的型號、通訊接口、通訊協(xié)議不同,無法直接進行網聯(lián)。隨著信息化網絡化的需求不斷提升,對監(jiān)控對象數據的實時采集、精確控制和遠程協(xié)調提出了更高的要求。本文介紹了(1)在已有的以太網絡技術基礎上實現現場智能儀表的聯(lián)網,(2)利用MODBUS/UDP協(xié)議來進行對數據的準確可靠的實時傳輸和控制。如何將檢測到的數據上傳到檢測中心,檢測中心又如何將各種控制命令下發(fā)到各現場機,有多種方法,如利用GSM或CDMA等無線傳輸方法、DDNTM等數據專線、IP網絡。在這些傳輸方案中,利用IP網絡無疑是理想的方法。
監(jiān)測系統(tǒng)的組成
該系統(tǒng)基于互聯(lián)網技術,并采用B/S軟件構架,即Browser/Server(瀏覽器/服務器)結構,是隨著Luternet技術的興起,對c/s結構的一種變化后改進的結構,在這種結構下,用戶界面完全通過WWW瀏覽器實現,一部分事物在前端實現,但是主要事物邏輯在服務器端實現,隨著Windows 98/Windows 2000將瀏覽器技術植入操作系統(tǒng)內部,這種結構更成為當今應用軟件的首選體系結構。
設計出了一個基于以太網構架的建筑監(jiān)測系統(tǒng)。如圖1所示。
系統(tǒng)由監(jiān)控中心(服務器PC機)、TCP/IP傳輸網絡、傳輸設備(機頂盒、多串口設備等)、現場機等組成。監(jiān)控中心有權通過傳輸網絡與各監(jiān)控設備連接,采集其檢測數據,或者發(fā)出控制指令。同時還可以分析、處理、查詢、存儲相關數據、是檢測系統(tǒng)的核心。
現場機安裝在需要監(jiān)測的控制點,用于監(jiān)控、監(jiān)測電能使用情況,并完成與上位機的數據通訊。在圖1中所應用的就是一種集RS485總線接口、MODBUS通訊接口和存儲于一體的智能儀表。根據RS485標準,數據傳輸率在100kbit/s時通信距離可達1200米,選擇帶有RS485接口的另一原因就是在目前市場中這種智能儀表的成本較低,而且它完全能滿足在工控中對監(jiān)測和數據傳輸的要求。
機頂盒通過嵌入式網絡監(jiān)控編碼器實現本地數據壓縮并將監(jiān)測數據通過網絡傳送到監(jiān)控中心,提供各種接口與PC機相連,能將RS485口轉換成10/100M口,實現數據的網絡化并上傳監(jiān)控,采用lO/100M接口實現TCP/IP網絡管理和監(jiān)控,更有利于監(jiān)控的IP網絡化管理。
MODBUS/UDP協(xié)議
在目前的建筑控制系統(tǒng)中使用最廣泛的是MODBUS/TCP通訊協(xié)議,但在實際的應用中我們會發(fā)現MODBUS/TCP協(xié)議確實達到了數據傳輸的可靠性要求,在建立網絡連接時首先要進行三次握手,對數據進行封裝、傳輸,當監(jiān)控中心收到信息時再返回一個確認信息,在這一系列過程中,MODBUS/TCP協(xié)議花費了大量的時間,因此也無法達到人們對數據的實時性傳輸的要求。針對建筑環(huán)境通信的特點和以上問題,本文中采用MoDBUS/UDP協(xié)議。MODBUS/UDP協(xié)議,是將MODBUS協(xié)議與以太網UDP協(xié)議結合形成的,UDP協(xié)議是面向非連接的,其實時性高,通信效果好。UDP的實時性主要是在一個完整的周期通訊中,報文總的傳輸延遲減小,網絡的利用率提高,節(jié)點的響應速度也就隨之得到了提升,因此能完成數據的實時傳輸。對于協(xié)議的可靠性、雖然不能從協(xié)議本身進行改進,但通過編寫好上層軟件,依然可以彌補MODBUS/UDP協(xié)議的不足。UDP具有TCP所望塵莫及的速度優(yōu)勢,盡管TCP協(xié)議中有各種安全保障功能,但是在實際執(zhí)行的過程中占用了大量的系統(tǒng)資源,從而對傳輸速度產生嚴重影響。
將一組數據從傳感器傳輸到控制器或從控制器傳輸到執(zhí)行器,導致數據延時的因素主要有數據的封裝等待時延Twsit,從傳感器到控制器的網絡時延Tsc,控制器到執(zhí)行器的網絡時延Tca。也就是總時延T=Twsit+Tsc+Tca,假若在網絡不擁堵的情況下,對比UDP和TCP的數據傳輸時延,我們會發(fā)現TCP所用的時間要比UDP的長,主要是因為在封裝數據時TCP協(xié)議要在數據中添加以太網幀頭和以太網幀尾,這就延長了Twsit的時間。在MODBUS協(xié)議中具有讀寫線圈、讀寫寄存器、讀寫異常等功能,因此我們就可以省去診斷、讀取記錄、編程等設備控制碼,節(jié)省了時間,使得傳輸過程的總時延減小,提高了控制中對實時性的要求。
MODBUS協(xié)議定義了一個與基礎通信層無關的PDU(協(xié)議數據單元)。特定總線或網絡上的MODBUS協(xié)議映射能夠在ADU(應用數據單元)上引入附加域。
標準的MODBUS報文協(xié)議幀的地址域為1字節(jié)大小,為了能在網絡控制總線上采用令牌總線的方式來使得每個站點都有均等的機會來發(fā)送數據,采用隱性令牌的方式來避免介質訪問引發(fā)的沖突,將1字節(jié)的地址域擴大為2字節(jié),地址域分為1字節(jié)的目的地址和1字節(jié)的源地址,1字節(jié)的功能碼變?yōu)?字節(jié)。改進后的幀格式如圖3所示。
目的地址是該幀的接受地址:源地址是發(fā)送幀的地址:狀態(tài)位則用來表示發(fā)送的幀是否被接收。網絡管理者給每個節(jié)點分配一個眭一的地址。每個站點監(jiān)視收到的每個報文幀的源地址,并為接收到的源地址設置一個隱h生令牌寄存器,讓隱性令牌寄存器的值為收到的源地址加1、若隱性令牌寄存器的值與哪個站點的介質訪問控制MAC地址相同時、該站點則發(fā)送數據,若沒有數據可發(fā)送則發(fā)送一個空幀,在網絡中沒有真正的令牌幀在網絡中傳輸,而是將令牌隱含在普通的數據中。UDP上的MODBUS的請求/響應格式如圖4所示。
另外,報文中要加上專業(yè)的MAPH頭(Modbus Application ProtocolHeader),以達到識別MODBUS應用數據單元ADU的目的。報文頭為7個字節(jié)長度、包括:事務處理標識符(Transaction Identifier)、協(xié)議標識符(Protocol Identifier)、長度(Length Field)、單元標識符(UnitIdentifier)。
事務處理標識符:用于事務處理配對。在響應中、MODBUS服務器復制請求的事務處理標識符。
協(xié)議標識符:用于系統(tǒng)內的多路復用。通過值0識別MODBUS協(xié)議。
長度:長度域是下一個域的字節(jié)數,包括單元標識符和數據域。
單元標識符:專門用于以太網TCP/IP網絡和MODBUS串行鏈路之間的網關對MODBUS或MODBUS+串行鏈路從站的通信。
實驗結果分析
在LABVEIW軟件平臺上進行了模擬實驗,對MODBUS/UDP傳輸數據流進行檢測,MODBUS/UDP協(xié)議進行數據傳輸時的數據流量在242Kbps到250Kbps之間。其原理圖與結果如圖5和圖6所示。
當發(fā)送端的連接建立起來后,將正弦信號輸入數據類型轉換器,將轉換后的數據發(fā)送到UDP端口,UDPwrite根據所設置的傳輸端口對數據進行傳輸。在接收端UDP read根據主機端口號讀取數據、在讀取數據過程中為能監(jiān)控到數據的傳輸流量,在接收處的傳輸末端使用框圖來顯示對數據的監(jiān)控情況。
為了進行比較,對同一組隨機數據的傳輸也使用了MODBUS/TCP協(xié)議。流量監(jiān)控數據在236Kbps在245Kbps之間,我們不難發(fā)現MODBUS/TCP的傳輸速率明顯要比MODBUS/UDP低。導致這種現象的原因在第三部分已經給出了分析,在LABVEIW上進行模擬仿真不存在現實中Tsc和Tca時延的問題,因此進一步證明了MODBUS/UDP在封裝部分時間短,占用網絡資源少,能快速對采集到的數據進行傳輸。
結果表明,上位機使用MODBUS/UDP協(xié)議對測控終端進行查詢并讀取終端的數據,MODBUS/UDP具有更好的實時性,因此對于有大量數據進行傳輸時會減少堵塞問題的出現,因此使用MODBUS/UDP能實現數據高效和實時的傳輸。
結語
在本文設計的建筑監(jiān)控系統(tǒng)中使用MODBUS/UDP協(xié)議進行數據傳輸,實現了數據的可靠和實時傳輸。使用UDP來實現實時性無疑是最理想的,因為在實際執(zhí)行過程中它不會占用大量的系統(tǒng)開銷,可進行數據的快速傳輸。在使用LABVIEW進行模擬實驗中也證明了MODBUS/UDP協(xié)議傳輸速度比MODBUS/TCP協(xié)議快。在實際的建筑環(huán)境下,為了實現對現場的實時監(jiān)控,會有大量的數據在控制系統(tǒng)中進行傳輸,如果我們不能對數據進行快速傳輸,也就無法實現對現場機的實時監(jiān)控,因此使用MODBUS/UDP協(xié)議解決了監(jiān)控系統(tǒng)中數據實時快速傳輸的問題,有效利用了網絡帶寬,加強了上位機對現場機的監(jiān)控力度。