朱付保 李曉楠 劉艷云 高政源
摘 要:在監控的很多特殊情況中,由于受到現場條件的種種限制,監測人員很難直接進入監控點進行觀測,這就需要借助能夠適應各種復雜環境的電子設備進行監測工作。針對以上問題,文章設計開發了基于GPRS的設備狀態實時監測系統,通過現場采集設備實時采集設備運行數據,并由網絡傳輸至監測管理中心,經過軟件對數據進行分析處理,實現對設備運行情況實時遠程監測、維護管理、統計分析、故障診斷(預警和報警)、評估等功能。建立了一個集數據采集、數據接收、數據傳輸、數據存儲、后臺定位監測的智能遠程實時監測設備狀態系統。該系統以最少的人力資源配備來加強對設備控制系統的管理,提供較為直觀、清晰、準確、穩定的設備運行狀態監視,充分提高設備控制系統的工作效率和安全性能。
關鍵詞:設備實時監測;數據存儲;地圖數據顯示;后臺管理
“互聯網+”將云計算、大數據和物聯網相結合,利用信息通信技術以及互聯網平臺,讓互聯網與傳統的行業進行深度的融合,創造出新的發展生態。在這樣的背景下,遠程監控技術的研究面臨著新的機遇和挑戰[1-5]。在一些監控條件受限的情況中,監測人員無法對設備進行實地查看,對于一些需要實時監測的設備,由于設備在實際運行過程中會產生大量、高并發、實時的數據,傳統的設備監測系統無法滿足實時性的要求[6-7]。基于GPRS的設備狀態實時監測系統具有快速高效的數據獲取能力、強大的并發實時數據處理分析能力和直觀生動的地圖數據顯示能力,在大量高并發實時狀態信息采集、處理和應用中具有較大的優勢,被廣泛應用于設備的普查、可視化管理、實時定位查詢與分析。
1 系統設計
基于GPRS的設備狀態實時監測系統平臺,首先經由數據采集系統,實時采集設備運行數據,通過GPRS通信將數據傳輸到監測管理中心,通過基于GPRS的設備狀態實時監測系統對數據進行分析處理,實現對設備運行情況實時遠程監測。整體拓撲圖如圖1所示。
1.1 系統設計模塊
基于GPRS的設備狀態實時監測系統分為設備實時監測和設備后臺管理兩大子系統。通過對兩個子系統進行詳細的模塊設計,使得兩個子系統間可以直接通過接口進行數據的交換。該系統的整體設計大致分為5步:(1)數據采集,該部分由采集器完成。(2)數據傳輸,采集器將采集好的數據通過用戶數據報協議(User Datagram Protocol,UDP)進行傳輸。(3)數據接收,數據解析程序通過不停地監聽端口,將傳輸過來的數據進行接收并處理。(4)數據存儲,數據解析程序將接收過來的數據進行解析,在解析過程中,如果發現有故障設備,則將故障信息及時通知相關人員,并將數據存儲至MySQL數據庫中;如果設備正常,則將解析好的數據存儲至NoSQL數據庫中,利用Redis(Redis即為上邊所提到的NoSQL數據庫)讀取的高效性及時緩存接收存儲這些數據。存儲在NoSQL數據庫中的數據,按照存儲時間先后,不斷地將早期存儲的數據移存至MySQL數據中,NoSQL數據庫中只保留最新、最及時的數據。(5)后臺管理,分為兩部分,一部分為滿足設備的實時監測,通過Socket.IO將NoSQL數據庫中的數據實時讀取并顯示到實時監測頁面中,另一部分,在MySQL數據庫中存有大量后臺管理的數據,以滿足工作人員的使用和操作,那些從NoSQL數據庫中轉儲并保存至MySQL數據庫中數據提供設備的歷史查詢,首頁地圖定位顯示可以實現設備實時與歷史查詢。
1.1.1 設備實時監測
設備實時監測包括數據接收、數據處理、數據調用3個部分。通過和設備廠商提供的轉接板進行通信(按照特定的通信協議),采用GPRS技術并配合傳感器來構建一個無線傳感器網絡,采集設備實時運行數據和故障信息。將采集的數據通過網絡實時傳輸到監測管理中心。基于GPRS的設備狀態實時監測系統,通過Socket編程實現對數據接收,按照Socket編程模型,先建立套接字,然后綁定端口號,開辟一個接收線程,專門接收數據。當接收線程讀取有效數據后,發送一個顯示更新消息,然后刷新接收區窗口,更新接收數據。
通過模擬實際應用場景中設備數據傳送與接收的大量測試分析,UDP協議在數據傳輸過程中節約了大量的網絡狀態確認和數據確認的系統資源消耗,更好地滿足了實時接收海量并發數據傳輸的需求。雖然在傳輸過程中存在少量丟包的情況,但相較于實際應用中的需求影響不是很大。因此,本項目最終采用UDP協議進行數據傳輸。結合實際應用中的具體需求,規定了UDP協議格式(見表1)中的具體內容如下:
字節格式,每字節含8位二進制碼,傳輸時加上一個起始位[0],一個校驗位[1]和一個停止位[1],共11位。采用小端模式進行傳輸:先傳低位,后傳高位。
幀格式=前導字節[4]+起始符[1]+數據域長度[1]+品牌代碼[1]+設備地址[12]+命令碼[1]+數據 DATA[n]+狀態 DS[2]+校驗和[2]+結束符[1]。
采用UDP協議發送數據,并且發送到IP為192.168.0.11、端口號為8000,則要發送的命令為:“CONFUDP:”+IP地址(C0A8000B)+端口號(1F40)數據串,將數據串翻譯成16進制為:43 4F 4E 46 55 44 50 3A C0 A8 00 0B 1F 40。如果設置成功則返回數據串{‘S,‘E,‘T,‘S,‘B,‘E,‘O,‘K,0x0d,0x0a},當串口接收到這個數據串時,開始發送數據包,當采集設備得到數據后按照申請到的目標IP和端口發送此數據包。基于GPRS的設備狀態實時監測系統利用UDP協議接收采集器發送的數據,然后利用多線程將數據進行同步解析。其結構如圖3所示。
1.1.2 設備后臺管理
設備后臺管理模塊分為地圖監測、注冊信息、狀態監測、故障信息、遠程控制、歷史數據6個大模塊,其功能模塊劃分如圖4所示。
1.2 數據存儲
基于GPRS的設備狀態實時監測系統對接收和多線程解析的數據進行存儲,采用NoSQL數據庫和MySQL數據庫完成數據存儲,在多線程數據解析過程中,如果設備運行狀態正常,則將解析好的數據存儲至NoSQL數據庫中,利用Redis將設備運行狀態數據實時存儲在所述NoSQL數據庫中,并將NoSQL數據庫中的數據周期性地保存到MySQL數據庫中,如果發現設備有故障,將故障設備的信息存儲至MySQL數據庫中,MySQL數據庫用于永久化存儲設備運行狀態數據。
利用Socket編程開啟UDP數據接收,實時監聽指定端口,接收到數據后,開啟多線程解析數據,而主線程則繼續接收數據。將接收到的數據進行解析,解析數據后保存至map集合中,之后JedisPoolUtil類(此類為Redis連接池)中取出Redis連接,準備保存數據。解析后判斷數據類型為定時心跳還是實時心跳,若為實時心跳,則需要將數據以kv鍵值對形式保存數據至Redis中,其中,k為設備編號,v為解析后的值,若Redis原已保存數據則進行數據更新;若為定時心跳,除需要以kv形式保存數據外,還需要以鏈表形式保存數據作為緩存數據,以便將定時心跳更新至MySQL數據庫,進行歷史數據查詢。將數據保存后判斷接收到的數據類型,以此判斷設備是否有故障,若有故障則開啟處理故障線程,解析數據后的map集合中ecode字段為故障字段,若不為00說明有故障發生,調用Error()方法,開啟新線程處理故障代碼。故障處理:根據設備編號先查找故障設備具體信息,向有關人員發送短信,同時將故障信息保存至故障表fault中,完成故障處理。以上為數據接收并將數據保存至Redis緩存中內容,接下來NoSQL數據庫向MySQL數據庫中移存,在Socket編程模型實時監聽UDP協議傳輸數據的端口時,開啟監聽Redis中鏈表中的數據,當等待10 s或鏈表數滿足100條數據,則將存儲在NoSQL數據庫中的數據移存至MySQL數據庫中,以實現數據永久化的保存。
1.3 數據庫設計
基于GPRS的設備狀態實時監測系統根據需求分析設計了多張數據庫表,下面重點介紹一下設備信息表與工地信息表。
2 功能實現
基于GPRS的設備狀態實時監測系統的主要有以下功能。
(1)首頁可以實現地圖的定位監測,在地圖上單擊對應項目圖標和在導航中點擊項目名稱都可進入該項目對應的設備的狀態監測界面,鼠標放在地圖對應項目的圖標中,顯示出設備的基本信息和實時狀態。
(2)設備信息數據采集、分析、傳輸模塊。通過配合各類傳感器的使用,可將設備運行的信息和數據實時獲取,并可以分析判斷設備的運行狀況,從而對設備的常見故障進行預警、報警,同時將上述信息通過網絡上傳至網絡中心服務器。
(3)顯示單臺設備實時運行詳細情況。
(4)同時顯示多臺設備實時運行情況。
(5)多樣、靈活的設備信息查詢方式。
(6)實現用戶角色以及權限的分配,同時具有增、刪、改、查的功能。
(7)實現設備基本信息的錄入,同時具有增、刪、改、查的功能。
2.1 系統登錄與注冊
用戶進入登錄頁面后,輸入賬號、登錄密碼,經由系統驗證若全部輸入正確則進入系統,若輸入錯誤,則會提示輸入錯誤的信息,并返回登錄界面。為保證用戶權限和設備信息的私密與安全,防止設備信息泄露,基于GPRS的設備狀態實時監測系統加入了登錄權限控制與數據庫密碼加密技術。用戶根據賬號登錄后可查看屬于本賬戶下的設備信息,其中管理員可查看本單位下所有設備信息,管理員可將本單位的設備分配給此單位下普通人員,普通人員只能查看管理員分配的設備信息。用戶在執行登錄操作期間,每次訪問,系統會自動判斷用戶身份是否過期,若過期則自動跳轉回登錄界面。
用戶注冊時,首先要填寫賬號中的一些基本信息,在填寫過程中要確認該用戶是否為管理員,若為管理員,則要重新添加所在單位的相關信息,同時注冊單位與用戶,并將該用戶設置為此單位的管理員;若不為管理員,則選擇其所在單位,注冊為該單位的普通用戶。然后判斷該用戶所在單位是否為使用單位,若為使用單位,則需填寫相關的位置類型信息,隨后完成注冊;若不是使用單位,則完成注冊。系統注冊的流程如圖6所示。
圖6 系統注冊流程
2.2 設備采集信息
設備在添加采集信息時,首先需要判斷所選設備是否已經存在,若存在,則可以進行采集信息的添加,若不存在,則退回選擇界面,無法進行采集信息的添加。其具體流程如圖7所示。
2.3 設備監測
2.3.1 地圖定位顯示
首頁可以實現地圖的定位監測,在地圖上單擊對應項目圖標和在導航中點擊項目名稱都進入到該項目對應的設備的狀態監測界面,鼠標放在地圖對應項目的圖標中,顯示出設備的基本信息和實時狀態。如圖8所示。
2.3.2 遠程指令
遠程控制的前提是設備必須在線右擊設備才會有遠程控制這一功能項,遠程控制指令,包括置零、標定、一鍵還原、最大量程指令。如圖9所示。
3 測試與結果
基于GPRS的設備狀態實時監測系統,可以通過監測頁面的刷新來實現對設備運行狀態的實時監測。在本例中,單臺設備監測頁面打開是發送開啟監測實時心跳指令,頁面關閉是發送關閉心跳指令。打開單臺設備監測界面,會獲取到設備當前最新信息,17 s定時刷新一次(定時心跳是15 s發送一次),有實時采集數據信息過來的設備進行信息實時更新,沒有實時采集數據信息設備信息不進行更新。通過服務器時間與心跳時間的差與45 s比較來定時判斷設備網絡的在線狀態,若服務器時間-心跳時間≤45 s,則判斷為在線;若服務器時間-心跳時間>45 s,則判斷為離線。
4 結語
基于GPRS的設備狀態實時監測系統具有十分重要的現實意義。設備監控的目的是為了以最少的人力資源配備來加強對設備控制系統的管理,提供較為直觀、清晰、準確、穩定的設備運行狀態監視,充分提高設備控制系統的工作效率。
[參考文獻]
[1]凌維業,賈民平,許飛云,等.設備狀態遠程實時監測系統的開發[J].計算機應用研究,2002(6):101-102.
[2]高立龍,陳欣鵬,陳斌,等.基于ARM和GPRS的PLC遠程監控系統設計[J].自動化與儀器儀表,2015(10):137-139.
[3]李偉.基于PLC控制的火電廠化學水處理系統除鹽水泵變頻自動控制的實現[J].自動化與儀器儀表,2013(5):147-149.
[4]朱洪波,楊龍祥,于全.物聯網的技術思想與應用策略研究[J].通信學報,2010(11):1-8.
[5]牛廣文.基于GPRS通信的遠程土壤墑情自動監測系統設計[J].自動化與儀器儀表,2015(2):36-37.
[6]王言莊.基于GPRS的機車狀態遠程實時監測系統的設計[D].成都:西南交通大學,2010.
[7]萬劍.基于GPRS的遠程狀態監測技術研究[D].天津:天津大學,2011.