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