遲海龍,陳小松
(北京中水科水電科技開發有限公司,北京100086)
目前的水電站生產控制系統里都配置生產數據的存儲系統。如何充分利用這些歷史數據并找到和分析數據的內在涵義是現代水電廠生產和管理要探索的問題。隨著計算機圖形學技術和數據可視化技術的迅速發展,現代的各個領域的數據可視化方案層出不窮。本文立足于水電站機電主要設備運行狀態和工況數據,提出一種基于當下比較流行的NoSQL文檔式數據庫的設備狀態分析可視化方案,該方案對數據進行采集、存儲,建立可復用的知識體系數據庫,為水電站的運維的智能化提供數據支持保障。
通過對水電站設備狀態檢修數據平臺深入的需求分析,我們認為本平臺應滿足以下技術要求:
(1)數據采集軟件能滿足各類自動化系統接口的要求:支持多種數據傳輸規約,格式文件動態分析,格式文件導入,人工錄入等數據采集方式。同時,應具備數據的合理性校驗功能。
(2)滿足海量數據存取的要求:采用MongoDB或其他支持分布式存儲的高效數據庫,利用分片技術、數據壓縮技術,ETL數據抽取等技術實現海量數據的高效存儲,并且分析結果的展現時間滿足人機功能學的要求。
(3)人機交互功能友好、全面:能快速調取運維人員需要的分析對象或原始數據點,支持曲線等表現形式,外觀自定義,自由縮放、平移,添加標注等。
(4)表現形式應多樣、直觀、易懂:可提供表格、分析報告、多種常見曲線圖形表現形式等可視化手段。
按照需求分析該系統平臺功能可分為7大塊,23個小塊功能。其中與業務有關的有5部分,系統平臺自身管理配置2部分。各個子功能模塊如圖1所示。

圖1 狀態監測分析系統功能結構示意圖
系統軟件從邏輯上可分為UI界面層、數據處理層、數據寫入層、持久化數據層、業務數據接入層和業務模型層等6個大的分層。系統應用軟件由若干子系統組成,這些子系統可部署在不同的服務器上,以兼顧負載均衡和系統可維護性。具體描述如下:
(1)UI界面層
負責處理客戶端數據查詢等數據操作請求,并將數據操作結果返回給用戶。
(2)數據處理子系統
主要處理系統維護數據、前端數據請求轉發、及后臺數據周期計算等數據處理工作。
(3)數據寫入
主要作為系統數據寫入數據庫的操作,該層的功能應對具體的數據寫入讀取操作做業務抽象并作為其他模塊系統的數據寫入代理,功能上應該不局限于某一單一數據庫的使用。
(4)持久數據層
該層負責數據的持久化保存,將系統本身配置信息或者業務模型等接入的業務信息,及自身周期運算處理的結果信息進行持久化保存以備數據分析展示用。
(5)業務接入層
負責各個數據系統數據采集轉發通信等處理。一方面通過對各個業務子系統的通信將數據進行接入。同時也需要對安全分區網絡邊界隔離的數據進行處理,在保證分區的分割和安全性的約束下將有用數據進行轉發和接入操作。
(6)系統業務模型層
該子系統接收監控系統、在線監測系統、保護系統、故障診斷系統、機組振動監測系統等系統的各種數據并進行相應處理。主要為各系統的實時值更新、實時/歷史數據壓縮存儲、數據周期計算、趨勢預警、事件數據記錄,數據備份及刪除等功能。
設備診斷分析平臺可以按照之前的架構層次劃分為若干個軟件包,這些軟件包相互依賴配合完成整個系統的數據采集、存儲、分析、展示、消息推送等各項工作。
主要的軟件包由UI客戶端、數據處理、數據訪問控制、消息組件、數據庫驅動、模型管理、公共、日志、文件操作及操作系統等數個軟件包構成。
2.2.1 MongoDB分布式文檔存儲數據庫
MongoDB是一個介于關系數據庫和非關系數據庫之間的產品,是非關系數據庫當中功能最豐富,最像關系數據庫的。他支持的數據結構非常松散,是類似json的bson格式,因此可以存儲比較復雜的數據類型。Mongo最大的特點是它支持的查詢語言非常強大。
2.2.2 數據庫規劃
MongoDB是一種可以水平擴展的模式,在數據量很大時特給力,實際大規模應用一般會采用這種架構去構建monodb系統。要構建一個MongoDB Sharding Cluster,需要3種角色:
(1)分片服務器:用于存儲實際的數據塊,實際生產環境中一個shard server角色可由幾臺機器組個一個復制集承擔,防止主機單點故障。
(2)配置服務器:存儲了整個集群元數據,其中包括chunk信息。
(3)服務路由服務器:前端路由,客戶端由此接入,且讓整個集群看上去像單一數據庫,前端應用可以透明使用。
2.2.3 歷史數據存儲
設備狀態分析平臺的實時歷史數據保存在MongoDB數據庫中,以單個對象的某一時段歷史數據作為文檔單元進行存儲,比如1 min的歷史數據形成一個文檔,一個對象的所有歷史數據形成一個集合。對象存儲歷史數據時只保存易變字段的值。
采用MongoDB數據庫進行歷史數據保存的好處在于不用事先設計文檔的字段(相當于關系型數據庫的Table結構),可以自由存儲,可以適應不同的對象數據。
實時系統產生的告警和事件記錄可按單條記錄作為一個文檔進行存儲,不同類型的事件歸入不同的集合。
3.1.1 數據點選擇功能
該功能方便用戶自主選擇需要分析或展示的數據點,界面靈活多樣,操作簡便,功能強大,支持任意數據點智能查詢,并可選分組記錄保存服務,以便用戶快速調用。用戶可自由選擇需要分析的數據時間范圍,并可根據需要選擇數據采樣間隔及特征值。
3.1.2 數據輸出功能
本功能提供數據及配置文件保存服務,可將歷史數據保存至本地(XML格式與EXCEL格式)脫離服務器進行數據分析。
3.1.3 圖形展示功能
本功能提供分析或展示結果的圖形輸出服務,可將分析結果(曲線圖、散點圖、表格等)保存為圖形文件或輸出到打印機。
本系統支持的數據展示方式包括:曲線、散點圖、柱狀圖、餅圖、表格等。
3.1.4 數據報警、預警功能
當任何一個對象出現故障或運行趨勢異常時,系統將自動發送報警信息,支持的發送方式包括:發送至運行本軟件的客戶端,發送至監控系統,發送至訂閱者郵箱。
設備資產信息是平臺數據的核心管理元素,是所有模塊的基本的、重要的輸入參考。資產信息主要應包括資產編號、所屬廠站、所屬系統、所屬設備、設備組件等基本字段。本系統將設備按照不同的所屬分層次的組織成設備樹。方便系統對設備管理和查詢。
3.2.1 設備樹組織及定義
根據電站、系統、設備、部件等4級層次關系定義設備部件,將設備部件作為最小的分析、評估單元。比如:二灘/1號機變單元/發電機/定子、二灘/1號機變單元/振擺系統/上導擺度元件等。
3.2.2 設備樹維護
建立設備部件與所有可采集的特征參數的關聯關系,便于瀏覽、查詢,同時應對同一設備的特征參數進行分類,特征參數與數據查詢、圖表展示功能關聯。針對不同類型的特征參數,可選擇不同的圖表展示方式。
3.3.1 數據有效性檢驗(數據清洗)
按照實際工程量范圍檢驗數據的有效性,按照統計規律對離群值進行辨識,對無效數據、離群數據應加以標記、提示,并允許用戶進行修改刪除等操作。
本功能操作部署在后端數據處理模塊里。通過對數據的周期掃描,將數據中明顯偏離期望水平的數據進行標識,可通過自動方式或者人工干預的方式進行篩除。
3.3.2 實時預警
該模塊對設備在同工況下的特征參數(如:啟動次數、等時間間隔內的運行小時數、模擬量值)的變化趨勢進行連續監視,當其出現明顯的趨勢變化時進行預警和提示。對數據庫中的數據定時進行背景掃描和比對,當其出現明顯的趨勢變化時進行預警和提示。預警信息可向客戶端主動推送。
3.3.3 數據展示及導出
支持多條件(工況)查詢,例如:在某水頭下、某負荷下、某時段進行數據篩選查詢,對設備特征數據進行多種圖表展示,提供散點圖、折線圖、堆疊圖、棒圖、股票圖、蠟燭圖、等高線圖等。曲線的線型顏色訂制,自由縮放,添加標注,選取區域最大最小平均值等特征值動態提取并顯示。
可統計計算特征參數的最大值、最小值、平均值,并可進行圖表展示。
支持統計查詢,可通過事件列表或開關量,實現自動統計設備的啟動次數和運行小時數功能(分別統計日、月、年周期)。
支持數據導出(CSV格式)及打印、圖形導出及打印、自動根據用定義生產html、ms-word格式、pdf分析報告(報告含文字、圖表、表格)等功能。
支持公式計算功能(加減乘除四則運算),可派生出新的中間特征變量。支持以上功能,并優化了設備的啟動次數和運行小時功能,可高效在線統計任意時段、任意數據點的啟動次數和運行小時數。
本文從水電站運維的歷史數據出發,提出了一整套數據分析和可視化展示方案,有助于電廠運維人員對生產主設備的運行狀態數據掌握。該方案中采用的是文檔式數據庫MongoDB,為了便于以后項目的訂制和實施,在后續開發中也計劃支持多數據庫類型,例如增加對MYSQL、Oralcel等傳統關系型數據庫支持。