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