?

基于Modbus遠程監控的水質在線監測系統的設計與實現

2014-09-26 03:47韓彥嶺袁國良
電子設計工程 2014年2期
關鍵詞:電臺串口指令

張 飛 , 張 云 , 韓彥嶺 , 袁國良

(1.上海海事大學 信息工程學院,上海 201306;2.上海海洋大學 信息學院,上海 201306)

21世紀以來,隨著國家經濟的發展,工業化進程的推進,面對日益嚴重的水資源短缺、水環境污染等問題,水工業行業迎來了水資源費用上漲、飲用水水質標準提高、廢水排放標準更加嚴格,以及水價上漲等諸多的挑戰和機會[1]。監測江河、湖泊、水庫等飲用水資源的水質成為當前環境保護的熱點。在這樣的背景下,大力推動了水質監測設備的發展。水質監測是及時、準確、全面地反映水環境質量和污染現狀的重要手段,是制定切實可行的污染防治和水環境保護措施的前提和基礎[2]。水質監測在我國已經有一定的時間,當前水質監測的主要方法主要有3種:1)人工定點定時取樣,實驗室離線分析;2)便攜式儀器現場人工取樣檢測;3)由固定監測站點連續取樣,自動在線分析[3]。這3種方法都無法滿足對不同水域水質連續動態變化監測的要求,更難以及時發現由于誤排放或事故性泄露而引起的水質指標的急劇變化。常規的水環境監測手段已難以滿足對水質監測的需要[4]。

文中所述水質監測系統基于無線電臺的通信方式并運用Modbus通信協議優點,將傳感器收集到的水質數據實時傳送給監控中心。實現了遠距離不斷傳輸水質指標數據,實時監測水質變化的目的。

1 系統結構

水質監測系統總體結構設計如圖1所示,左邊的前方監測系統位于監測的水域現場,右邊的監控中心位于遠離監測區的本地控制中心。兩者通過微波電臺進行通信。

圖1 系統結構圖Fig.1 Diagram of the system structure

前方監測部分圍繞著CPU模塊展開設計,外圍由GPS模塊、收集模塊、5個傳感器和一個電臺組成。監控中心的結構非常簡單,只需要由一臺PC機和一個同型號的電臺。CPU模塊采用MS-CPU32,運行著一個精簡版的Linux內核,具有非常高的數據處理速度和運行大型程序能力,該內核已經內建了一個根據Modbus協議編寫的從設備程序,該程序已實現了開機自啟動收集水質數據功能。GPS模塊主要作用是能夠讓監控中心時刻知道監測設備所監測水域的坐標,實現精確定位監測設備的作用。收集模塊主要負責收集傳感器輸出的信號進行模數轉換,存到寄存器,最后通過電臺發送出去。GPS、傳感器模塊和電臺的詳細參數將在實驗驗證部分給出詳細介紹。

下面要設計的主要在監控中心端,用一個電臺和PC機與前方監測系統進行通信。由于CPU模塊內建的程序使用Modbus協議編寫,要求監控中心的PC機程序也必須用Modbus協議編寫。

2 MODBUS協議通信設計

2.1 Modbus協議特點

Modbus協議[5-6]由施耐德電器發起制定,協議在應用層采用Modbus消息定義,在傳輸層和網絡層采用TCP/IP,用于以太網通訊[7]。Modbus協議是應用于電子控制器上的一種語言。通過此協議,控制器相互之間、控制器經由網絡(例如以太網)和其他設備之間可以通信。它已經成為一個工業標準。

控制器通信使用主從技術,即僅一設備(主設備)能進行查詢,其他設備(從設備)根據主設備查詢提供的數據作出相應反應。典型的主設備:主機和可編程儀表。典型的從設備:可編程控制器。主設備可以單獨和從設備通信,也能以廣播方式和所有從設備通信。如果單獨通信,從設備返回一消息作為回應,如果是以廣播方式查詢,則不作任何回應。Modbus協議建立了主設備查詢的格式:設備地址(或廣播)、功能代碼、發送的數據、校驗碼,從設備也以相同的格式回應主設備。Modbus支持RTU和ASCII兩種數據傳輸模式,本文所述水質監測系統中選用RTU模式,消息中的每個8Bit包含代表2個的十六進制字符。這種方式的主要優點是:同樣波特率下,可以比ASCII方式傳送更多的數據。RTU幀如表1所示。

表1 RTU報文幀Tab.1 RTU frame structure

設備地址用來標識不同的從設備,范圍是0~247。地址0在廣播中使用。功能碼主要告之從設備要執行的操作,從設備回傳同樣的功能碼說明已執行正確的操作,反之則回傳不同的功能碼,告知發生的不同錯誤。例如功能碼03H是要求從設備讀保持寄存器并返回其中的內容。常用的功能碼如下表2所示,數據區定義了根據功能碼的要求執行操作所需的信息,與功能碼相關。主機與從機通過信息幀中的校驗碼來判斷信息在傳輸過程中是否出現錯誤[8],有錯則丟棄。無錯才執行相應的操作。

表2 Modbus功能碼Tab.2 Modbus function codes

所述的水質監測系統中,監控中心的PC機作為主設備用來查詢,前方監測系統的CPU模塊作為從設備進行應答。CPU模塊采用默認的01H作為從設備地址。主設備使用03H功能碼對從設備保持寄存器中的數據進行讀取。PC機和CPU模塊采用查詢應答機制,不斷從前方監測系統讀取數據。

2.2 通信設計

1)通信連接

首先兩個電臺要確保在有效的無線傳輸距離范圍內,其次由于無線電臺使用2.4 GHz頻率,此頻段微波繞射能力較差,按直線傳播,所以兩個電臺之間不能有高大遮擋物。在電臺上有一個信號燈顯示為藍色時,說明2個電臺聯通。按照Modbus協議的要求,通信的雙方必須嚴格按照Modbus數據幀的格式進行指令和數據的打包和讀取。主從設備在收到數據幀后都要判斷地址碼是否正確,然后進行CRC校驗,都正確后雙方通信才完全建立。

2)數據傳輸

傳感器采集的數據經過收集模塊的模數轉換后存儲到寄存器中,同時GPS的坐標也被存儲到寄存器中。在監控中心主設備的讀取指令傳送到CPU模塊并進行指令解析后,CPU下達讀指定寄存器數據的指令,數據從寄存器中讀出,通過串口RS-232送達電臺1,數據通過無線傳輸到電臺2后,經由串口RS-232到達PC機中,PC機對數據進行相應的存儲和顯示處理。PC機和CPU模塊之間的數據讀取,按照查詢應答機制,要求PC機不斷的向CPU模塊發送讀取的指令。

3 監控中心軟件設計與驗證

3.1 監控中心軟件設計

監控中心的主設備控制程序是在Window XP系統下使用Qt編寫,Qt是一個跨平臺的C++應用程序開發框架,廣泛用于開發GUI程序。由于主從設備使用串口RS-232將數據送達電臺,而Qt沒有自己的串口通信控制類,這里使用的是開源的第三方開發的qextserialport類,它是繼承自Qt的QIODevice父類。前方監測系統和監控中心的串口參數設置為:波特率19 200 bps、數據位8位、無校驗位、停止位為1。監控中心軟件模塊設計包括5個部分:串口通信模塊、定時發送Modbus指令模塊、數據接收和解析模塊、數據顯示模塊、數據保存模塊。首先對串口參數進行設置,打開串口,程序開始計時,每隔一段時間(這里是10秒),主設備自動向從設備發送Modbus指令,接著主設備開始接收并解析從設備發送來的數據,然后把數據顯示出來,并進行保存。

主程序流程圖如圖2所示,在發送接收指令的過程中,主從設備有一個Modbus指令處理判斷的過程。Modbus指令的判斷過程流程圖如圖3所示,當指令到達從設備時,從設備對發送過來的指令進行分析,首先判斷功能碼是不是支持的功能碼,不支持,則將該指令丟棄,并返回01H異常碼,在支持的情況下會進行判斷是不是在支持的功能碼的范圍之內,不支持則返回03H的異常碼。如果在范圍之內則會進行最后的CRC校驗,判斷指令是否錯誤,如果有錯則返回02H異常碼,在沒有錯誤時,則進入后面的處理的程序,接著判斷寄存器數據的可讀性,在寄存器不能讀時則返回04H異常碼。從設備中處理完這些流程后,從設備會將把這些存儲的數據傳輸出來。

圖2 主程序流程圖Fig.2 Working flow chart of the program

3.2 實驗驗證

1)實驗原件和實驗環境介紹

傳感器監測的水質參數分別為pH、溶解氧、溫度、濁度、電導率,具有符合工業標準的4~19 mA的模擬輸出信號。電臺使用的是FreeWave公司的GXM系列電臺。下面給出監測系統使用的傳感器和電臺等部分原件具體型號,原件型號如表3所示。

圖3 Modbus指令判斷流程圖Fig.3 Flow chart of the Modbus command

表3 設備參數表Tab.3 Specific model of the main components

實驗所選取的地點如圖4所示,A點是上海海洋大學信息學院,B點為上海海洋大學一號門,C點位于橋的下坡上。在A點和C點之間存在大量綠化帶,室外測試在白天進行。

圖4 實驗地點示意圖Fig.4 Experimental places in the map

2)實驗結果

整個系統設計完成后,在經過室內長時間測試成功后,不斷嘗試增加兩個電臺之間的距離??刂浦行能浖\行界面如圖5所示,界面包含了串口參數設置、8個水質參數和GPS坐標的經緯度,其中溶解氧溫度、濁度(50NTU)、電導率溫度是根據另外的5個指標數據計算所得。

圖5 監控中心軟件界面圖Fig.5 Software interface in the monitoring center

實驗結果如表4所示,分為室內、室外兩種實驗,其中室外實驗又根據距離的不同分為實驗2和實驗3。對于室內實驗最為簡單,可以長時間的進行,測試時間大于48小時。實驗結果顯示存儲的數據沒有任何錯誤發生,兩個電臺間距離為10米左右,數據可以實現2秒每次的讀取與存儲,而且可以根據日期不同,每日零時自動更換存儲數據的文件名稱。對于室外實驗2,控制中心在位于B點,監測系統位于A點,兩點間距離約為230 m,天線位于四樓樓頂,經過3個小時的不間斷測試,數據傳輸正常,沒有錯誤和時延,數據讀取間隔設置為10 s一次。實驗3距離最大,約為1 920 s,控制中心位于C點,由于使用車載電源進行測試,測試時間有一定限制,初步測試時間為2小時,電臺天線位于車篷上面,監測系統仍然位于A點,天線位置不變,每15 s對數據進行讀取一次,但依然有3組數據發生錯誤,特別是溶解氧和溶解氧溫度這兩個數據都發生了亂碼,同組中的其他數據發生錯誤概率較小。這里的數據正確率是按發生錯誤的組數與收到數據的總組數相比得出的結果。

表4 實驗結果Tab.4 Experimental results

從表4可以看出,在兩個電臺間距離不斷增大時,數據讀取存儲的時間要變長,而且在距離為1 920 m時,數據傳輸發生錯誤,這是由于電臺通信時,數據傳輸得不到質量保證,A點和C點在一些遮擋物作用下,再加上多徑傳輸特性的影響,發生了錯誤或延時,導致串口讀取的數據發生了錯誤。該監測系統將被用于監測湖泊水質的變化,在距離上要小于實驗2測試時的距離,所以能夠保證數據的有效性和實時性。如今后要傳輸更遠的距離,可以在兩個電臺之間增加一個中繼器,達到數據的有效視距傳輸。

4 結 論

本研究運用Modbus協議在工業上優點,使用電臺傳輸水質監測系統所監測的水質數據,是對Modbus協議在水質監測系統應用上的再一次肯定。無線電臺的使用使得數據傳輸更加方便,具有通信距離遠、設備簡單、成本低廉、抗毀性強、靈活機動等特點。2.4 GHz的微波傳輸按直線傳輸,在距離較遠、遮擋物較多,會造成信號損耗。雖然數據能夠通過電臺進行傳輸,但是有一定的錯誤率,這對實時監測水質的設備來說是不準許的。所以在保證數據有效傳輸的情況下,應該盡量使兩個電臺之間距離在數據不發生錯誤的情況下使用。為了克服距離上、傳輸速度及穩定性問題,水質監測系統應該向綜合3G網絡和衛星通信的復合通信模式方向上發展。

[1]程立.在線水質分析儀器應用技術的發展[J].分析儀器,2011(2):75-76.

CHENG Li.Development of application techniques of on-line water quality analysis instruments[J].Analytical Instrumentation,2011(2):75-76.

[2]李宇航,廖海洋,溫志渝,等.庫區水質在線監測數據采集控制系統設計[J].傳感器與微系統,2011,30(2):61-62.

LI Yu-hang,LIAO Hai-yang,WEN Zhi-yu,et al.Design of online water quality monitoring data acquisition and control system for the reservoir[J].Transducer and Microsystem Technologies,2011,30(2):61-62.

[3]柴小麗,沈博,王青玲.水質監測中的快速傳感技術[J].環境科學與技術,2006,29(5):36-37.

CHAI Xiao-li,SHEN Bo,WANG Qing-ling.Fast sensing technology in water quality monitoring[J].Environmental Science and Technology,2006,29(5):36-37.

[4]呂愛東,宋萬琦,李鎮西.淺論水質監測系統的由來和發展[J].黑龍江水利科技,2002(3):70-71.

LV Ai-dong,SONG Wan-qi,LI Zhen-xi.Discussing about the origin and development of water quality monitoring system[J].Heilongjiang Science and Technology of Water Conservancy,2002(3):70-71.

[5]Modicon Inc.Modicon Modbus Protocol Reference Guide[Z].1996.

[6]MODBUS APPLICATION PROTOCOL SPECIFICATION V1.1b[Z].Modbus-IDA,2006.

[7]孫璐.Modbus/TCP協議在遠程監測中的應用[J].計算技術與自動化,2009,28(4):119-120.

SUN Lu.A application of remote monitoring based Modbus/TCP [J].Computing Technology and Automation,2009,28(4):119-120.

[8]李明偉,郭廣峰,黃鴿.PIC單片機與觸摸屏串行通信的MODBUS協議實現[J].電子技術應用,2005(9):40-42.

LI Ming-wei,GUO Guang-feng,HUANG Ge.PIC microcontroller communicate with touch screen by serial port based on modbus[J].Electronic Technology Application,2005(9):40-42.

猜你喜歡
電臺串口指令
淺談AB PLC串口跟RFID傳感器的通訊應用
ARINC661顯控指令快速驗證方法
鹿先生的年味電臺
殺毒軟件中指令虛擬機的脆弱性分析
數字電源內部數據傳輸的串口通信方法實現
USB接口的多串口數據并行接收方法探索
串口技術的實物調試和虛擬仿真聯合教學模式
老年聽眾需要電臺長篇連播
做好電臺新聞的采訪之我見
中斷與跳轉操作對指令串的影響
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合