姚諸香,房金彥,桂小強,湯文勝
(國網(wǎng)江西省電力公司,江西 南昌 330077)
為了對重要系統(tǒng)和設(shè)備進行實時在線監(jiān)視,電力行業(yè)建設(shè)了能量管理系統(tǒng)(EMS)、機房環(huán)境監(jiān)控系統(tǒng)、水調(diào)管理系統(tǒng)(WDS)、數(shù)據(jù)網(wǎng)網(wǎng)管系統(tǒng)、通信網(wǎng)網(wǎng)管系統(tǒng)等[1],軌道交通行業(yè)建設(shè)了電力監(jiān)控與數(shù)據(jù)采集(PSCADA)、機電設(shè)備監(jiān)控(EMCS)、火災自動報警(FAS)、閉路電視(CCTV)等系統(tǒng)[1],其它行業(yè)也建設(shè)有許多類似的系統(tǒng)。這些系統(tǒng)大多為特定目的而設(shè)計、體量大、設(shè)備復用差、信息共享不便。為了解決運行值班人員和維護專責面臨的系統(tǒng)多且相對獨立、設(shè)備多且安裝分散、專業(yè)多且跨度大等問題,作者在文獻[2]中提出了“綜合監(jiān)控”的理念,將各個系統(tǒng)(含異構(gòu)系統(tǒng))的數(shù)據(jù)和信息經(jīng)優(yōu)選后采集過來,進行集中展示和監(jiān)控,以便及時發(fā)現(xiàn)異常、準確定位故障。受限于當時的經(jīng)驗和技術(shù)條件,該系統(tǒng)的設(shè)計功能比較單一,經(jīng)過多年的實踐、研究,作者采用軟件工程的方法,對該系統(tǒng)進行了重新設(shè)計,使其功能得到了擴展,性能得到了提升,下面將介紹該系統(tǒng)的設(shè)計原則、結(jié)構(gòu)及功能組成,并展示部分應(yīng)用示例。
一個綜合監(jiān)控系統(tǒng)除了運行穩(wěn)定、安全可靠外,還要考慮以下因素:
1)實用性:功能必須實用,必須能解決實際問題;
2)輕便性:避免新建一套系統(tǒng),添加一套設(shè)備的老路,主要從軟件上著手,充分利用現(xiàn)有設(shè)備資源,免去硬件購置、安裝的工作量;
3)松耦合:各功能模塊既是綜合監(jiān)控系統(tǒng)的組成部分,又可分布式部署,客戶端模塊不依賴特定的環(huán)境(常規(guī)實時監(jiān)控系統(tǒng)的數(shù)據(jù)采集需要實時庫的支持);
4)擴展性:用戶能夠根據(jù)自身需要,靈活地擴展系統(tǒng)的功能,比如設(shè)定告警觸發(fā)的規(guī)則。常規(guī)監(jiān)控系統(tǒng)數(shù)據(jù)正常與否的規(guī)則有的固化在程序中,有的只能做簡單的設(shè)置,用戶無法對其擴展。
5)適應(yīng)性:能適應(yīng)異構(gòu)的操作系統(tǒng)(unix、windows、linux)、不同的應(yīng)用場景(有人值班、無人值守)、多樣的采集和傳輸方式(網(wǎng)絡(luò)端口、文件和串口)。
6)開放性:作為一個公共平臺,能給第三方提供二次開發(fā)接口,也能給其它用戶提供相應(yīng)的服務(wù)(比如給下級機構(gòu)提供查詢的Web服務(wù))。
7)易用性:充分發(fā)揮C/S和B/S設(shè)計模式的優(yōu)點,使系統(tǒng)投運后絕大多數(shù)工作能在網(wǎng)頁上完成,相關(guān)程序在后臺以服務(wù)模式運行,基本做到免維護。
遵照上述設(shè)計原則,本系統(tǒng)構(gòu)架如圖1所示。
圖1 系統(tǒng)功能結(jié)構(gòu)
圖1 中的主機是指各種計算機,如工作站、服務(wù)器、PC 機等;網(wǎng)絡(luò)設(shè)備是指路由器、交換機及連接在網(wǎng)絡(luò)上的智能設(shè)備;系統(tǒng)是指為完成某些任務(wù)的設(shè)備及軟件集合,如EMS系統(tǒng)、通信網(wǎng)管系統(tǒng)等。系統(tǒng)服務(wù)器既指物理上的服務(wù)器(構(gòu)成本系統(tǒng)的硬件),也指出服務(wù)端程序。數(shù)據(jù)采集、信息采集、數(shù)據(jù)接收、信息接收、事件觸發(fā)、短信收發(fā)、事務(wù)處理、信息發(fā)布、網(wǎng)站及服務(wù)、文本轉(zhuǎn)語音是本系統(tǒng)的主要功能模塊。數(shù)據(jù)采集模塊和信息采集模塊作為客戶端運行于相應(yīng)的主機上,文本轉(zhuǎn)語音模塊作為服務(wù)端,運行于有人值班場所的主機上,提供語音服務(wù),這幾個模塊未在圖中示出。數(shù)據(jù)采集模塊和信息采集模塊采集完相關(guān)設(shè)備和系統(tǒng)的數(shù)據(jù)或告警信息后經(jīng)隔離裝置、MOXA(串口轉(zhuǎn)網(wǎng)口設(shè)備)或串口傳送到數(shù)據(jù)接收程序或信息接收程序。經(jīng)隔離裝置傳輸是適應(yīng)電力二次系統(tǒng)安全防護的要求,采用串口傳輸是因為有的通信網(wǎng)管系統(tǒng)不允許連接到別的網(wǎng)絡(luò)上。
數(shù)據(jù)(監(jiān)視對象的值)是判斷設(shè)備運行正常與否的基礎(chǔ)。當有的設(shè)備未接入任何監(jiān)控系統(tǒng)或雖接入了某個監(jiān)控系統(tǒng),但該監(jiān)控系統(tǒng)提供的監(jiān)控手段不完整(無短信告警,滿足不了無人值守要求;語音告警功能不實用;設(shè)備運行工況在值班場所不可見;告警判據(jù)滿足不了用戶要求等)時,需要將用戶關(guān)注的數(shù)據(jù)采集過來,施以用戶設(shè)定的告警規(guī)則,實現(xiàn)對設(shè)備的實時監(jiān)控。監(jiān)視數(shù)據(jù)的來源可以是獨立的設(shè)備(主機、網(wǎng)絡(luò)設(shè)備、智能設(shè)備),也可以是監(jiān)控系統(tǒng)的實時數(shù)據(jù)庫或商用數(shù)據(jù)庫。
數(shù)據(jù)采集模塊采用輕便化設(shè)計,C/C++編程,跨操作系統(tǒng),支持多實例運行,每個實例至少帶兩個必須的參數(shù):一個是配置文件名,一個是資源文件名。配置文件用于指定被采數(shù)據(jù)源的名稱、采集對象的名稱(定位數(shù)據(jù))、類型、頻率;資源文件用于設(shè)置采集數(shù)據(jù)的采集方法、傳送目的地(服務(wù)端地址及監(jiān)聽端口號或目錄名)、以及傳輸方式(TCP 報文、文件、串口等)。
可采集的數(shù)據(jù)類型有:
計算機的CPU負載率、內(nèi)存使用率、虛擬內(nèi)存使用率、磁盤分區(qū)使用率或剩余容量、進程狀態(tài)(是否在運行)、文件狀態(tài)(是否存在)、文件大?。ㄈ鏾racle 的日志文件增長到一定程度時會影響性能)、文件數(shù)目(指定目錄下的文件數(shù)目不能無限增大);監(jiān)控系統(tǒng)實時數(shù)據(jù)庫的遙測量、遙信量、脈沖量、站點通信工況、主備機狀態(tài)等;鏈路狀態(tài)(數(shù)據(jù)采集模塊到網(wǎng)絡(luò)設(shè)備的鏈路是否連通)、數(shù)據(jù)庫連接(數(shù)據(jù)采集模塊是否能打開到指定數(shù)據(jù)庫的連接);通過存儲過程采集的關(guān)系數(shù)據(jù)庫中的數(shù)據(jù)(如調(diào)度技術(shù)支持系統(tǒng)安全III 區(qū)歷史庫中的準實時數(shù)據(jù));通過snmp 協(xié)議獲取的數(shù)據(jù);同一數(shù)據(jù)報文(斷面)的數(shù)據(jù)組合出來的新數(shù)據(jù)。
數(shù)據(jù)報文(文件格式)見文獻[3]。
數(shù)據(jù)接收模塊將數(shù)據(jù)采集模塊發(fā)送過來的數(shù)據(jù)報文或文件進行解析,存儲到數(shù)據(jù)庫,另外,還要根據(jù)用戶設(shè)定的規(guī)則,對各監(jiān)視數(shù)據(jù)進行合理性檢查,滿足條件是按指定模板生成告警信息,保存到數(shù)據(jù)庫或進行語音告警(文本轉(zhuǎn)語音)。
信息采集的功能是采集和傳輸?shù)谌皆O(shè)備和系統(tǒng)中的現(xiàn)成告警信息用以集中展示和處理。有的設(shè)備和系統(tǒng)安裝在機房中,運行值班人員需通過“巡視”的方式來確認其運行狀態(tài);有的系統(tǒng)規(guī)模龐大,產(chǎn)生的告警信息太多,以致不能引起運行值班人員和維護專責的注意;有的系統(tǒng)因為管轄范圍等原因,告警信息不能及時傳送給需要的人員(比如通信專業(yè)的綜合網(wǎng)管系統(tǒng),雖然接入了省、地、縣公司的網(wǎng)管信息,但下級機構(gòu)無法知曉上級機構(gòu)管轄的與本機機構(gòu)關(guān)聯(lián)的設(shè)備告警信息),因此,有必要將運行值班人員和維護專責關(guān)注的告警信息采集過來,集中展示,統(tǒng)一處理。
信息采集的內(nèi)容一般是歷史數(shù)據(jù)庫(關(guān)系數(shù)據(jù)庫)的準實時信息,為了便于功能擴展和增加適應(yīng)性,采集程序采用輪詢的方式實現(xiàn)-逐時段調(diào)用用戶指定的存儲過程以獲取該時段滿足條件的告警信息。存儲過程的名字可由用戶自行指定,輸入?yún)?shù)有開始時間、結(jié)束時間、查詢條件,輸出參數(shù)為這段時間內(nèi)滿足條件的信息。由于查詢條件作為參數(shù)輸入,存儲過程的實現(xiàn)就很靈活,有經(jīng)驗的用戶可自己編寫,亦可委托第三方廠商編寫。
信息采集支持調(diào)用第三方提供的Web Service來采集告警信息,還支持網(wǎng)絡(luò)設(shè)備通過SNMP Trap協(xié)議發(fā)送過來告警信息的采集。
采集信息的傳輸格式和傳輸方式同數(shù)據(jù)采集。
信息接收模塊將信息采集模塊發(fā)送過來的信息報文或文件進行解析,逐條存儲到數(shù)據(jù)庫,需要時也可進行文本轉(zhuǎn)語音告警。對于過長的告警條文要按指定長度分段,一條分成多條寫入數(shù)據(jù)庫。對于相同的告警信息可按照上、下班時間設(shè)置一定的時間間隔,進行“防抖”處理,減少數(shù)據(jù)庫的寫入次數(shù)。
信息接收支持的接口方式與數(shù)據(jù)接收類似,有TCP端口、文件和串口等方式。
當設(shè)備和系統(tǒng)出現(xiàn)故障時,需要將故障信息、故障時間等信息在第一時間通知運行值班人員,甚至維護專責。傳統(tǒng)的告警警示方式有推畫面、語音、文字反相、脫機打印等,隨著手機的普及,短信息也在監(jiān)控系統(tǒng)中得到了廣泛的應(yīng)用[2]。短信告警雖然有其優(yōu)勢,一般的監(jiān)控系統(tǒng)也只是把它作為一個附屬功能,并沒有作為一個系統(tǒng)來整體設(shè)計。
短信收發(fā)功能就是將數(shù)據(jù)庫中的待發(fā)信息(下行)發(fā)給用戶,將接收到的信息(上行)寫入數(shù)據(jù)庫(供其它模塊處理)。
通過采用設(shè)備冗余、流量均衡、事件驅(qū)動、主備切換、失敗重發(fā)、端口重啟等技術(shù)提高了短信收發(fā)的可靠性和效率,有效解決了設(shè)備掉電、故障、死機、SIM卡欠費、SIM被運營商鎖定等問題。
文本轉(zhuǎn)語音(Text to Speech)功能適用于有人值班場所,通過將收到的告警信息由計算機“讀出來”,達到警示運行值班人員的目的。本模塊雖是服務(wù)端,但部署在需要的工作站上,以TCP 端口方式接收、解析、朗讀信息采集模塊發(fā)送的報文。
遵循數(shù)據(jù)訪問層和業(yè)務(wù)層分離的原則,信息接收模塊只是將收到的告警信息寫入數(shù)據(jù)庫,信息和用戶關(guān)聯(lián)的問題由事件觸發(fā)模塊來解決。告警信息按“系統(tǒng).數(shù)據(jù)源.標識符”格式組織,這也是每條告警信息的定位路徑。有別于一般監(jiān)控系統(tǒng)的告警信息該給誰的思路,本系統(tǒng)采用了信息提供者(provider)和訂閱者(subscriber)的機制(我要哪些)-通過將用戶訂閱字符串和告警信息的定位路徑匹配,以確定該用戶要收的信息。訂閱字符串可以是告警信息定位路徑的全部,也可以是其中的一部分(模糊匹配),例如某類告警信息的路徑為“EMS.SCADA.*”,用戶訂閱字符串為“EMS.*”,則EMS系統(tǒng)的所有相關(guān)告警信息將發(fā)送給該用戶;如果訂閱字符串為“EMS.SCADA.*”,則EMS 系統(tǒng)中SCADA子系統(tǒng)相關(guān)的告警信息將發(fā)送給該用戶。
信息發(fā)布模塊的主要功能是在指定的時間、按指定的模板、以指定的頻率生成、發(fā)送信息給指定的用戶。信息模板可以是簡單的文本(如通知專責人員巡視設(shè)備和系統(tǒng)的信息),也可以是靜態(tài)文本和“宏”的組合(如電網(wǎng)運行情況匯報),宏數(shù)據(jù)來自用戶指定的數(shù)據(jù)庫,由SQL語句獲取。
舉個簡單的例子,有一名為“當日信息”的模板:$RDATE$XX 電網(wǎng)最大負荷$MAX_LOAD$萬千瓦($MAX_TIME$)。取最大負荷和出現(xiàn)時間的語句為:select round(cur_002/10,2)As MAX_LOAD,to_char(occur_time,'hh24:mi')as MAX_TIME from yc_hs_500001 Where to_char(occur_time,'yyyy-mm-dd')=to_char(sysdate,'yyyy-mm-dd')Order By cur_002 Desc。
通過“宏”替代,變化的數(shù)據(jù)自動地反映到待發(fā)布信息中,這樣系統(tǒng)的靈活性和可擴展性就大大地提高了。
事務(wù)處理模塊的主要功能處理用戶發(fā)來的短信(上行信息),完成諸如用戶信息查詢、待發(fā)布信息查詢、故障申告、日志歸檔、信息轉(zhuǎn)發(fā)、數(shù)據(jù)接收,還可執(zhí)行用戶發(fā)過來的命令如軟件許可設(shè)置、短信收發(fā)主備通道切換等。
網(wǎng)站及服務(wù)模塊分兩部分:網(wǎng)站是用戶主要的操作界面,包括用戶信息管理和權(quán)限設(shè)置、監(jiān)視對象配置和數(shù)據(jù)采集參數(shù)文件生成、告警規(guī)則設(shè)置和告警信息訂閱、信息發(fā)布配置和發(fā)布信息訂閱、公告牌、短信發(fā)送、各種查詢等功能;服務(wù)指的是以Web Service方式提供與第三方的接口,為第三方提供短信收發(fā)、告警信息查詢和存儲等服務(wù),以便和其它系統(tǒng)集成,形成一體化的系統(tǒng)。
圖2 是監(jiān)視對象舉例,系統(tǒng)根據(jù)監(jiān)視對象定義,生成每個數(shù)據(jù)采集模塊實例所需的配置文件。監(jiān)視對象的名稱被數(shù)據(jù)采集模塊用來定位數(shù)據(jù),刷新時間告訴數(shù)據(jù)采集模塊以何種頻率采集數(shù)據(jù)。
圖2 監(jiān)視對象示例
圖3是告警規(guī)則定義舉例,告警規(guī)則表達式中的$value$是指監(jiān)視對象的值,采樣周期、報警次數(shù)和短信模板用于判斷數(shù)據(jù)是否異常、是否要產(chǎn)生告警、生成怎樣的告警信息。由于采用了比較最近一個時間段的數(shù)據(jù),可以達到類似五取三的效果,從而消除“抖動”。設(shè)備故障后往往不能立即恢復,為了避免頻繁產(chǎn)生相同的告警信息,利用失效時間這個參數(shù)使規(guī)則在隔一段時間后再起作用。規(guī)則范圍指定哪些監(jiān)視對象要用本規(guī)則。
圖3 告警規(guī)則定義示例
圖4是告警信息訂閱頁面,圖中的責任串用于和告警信息的定位路徑匹配,從而確定用戶希望接收的告警信息。
圖4 告警信息訂閱示例
圖5是信息發(fā)布訂閱頁面,系統(tǒng)中有哪些發(fā)布信息,用戶需要哪些信息,只需勾選就可以了。
圖5 信息發(fā)布訂閱頁面
文章介紹了一個輕便型綜合監(jiān)控系統(tǒng),給出了其設(shè)計目的、理念、系統(tǒng)結(jié)構(gòu)及各功能模塊的主要功能,展示了部分應(yīng)用示例。系統(tǒng)具有實用性、易用性和輕便性、松耦合、擴展性、適應(yīng)性、開放性等特點,較好地解決了運行值班人員和維護專責面臨的系統(tǒng)多且相對獨立、設(shè)備多且安裝分散、專業(yè)多且跨度大的問題。
[1]羅利平.城市軌道交通綜合監(jiān)控系統(tǒng)集成方案[J].城市軌道交通研究.2008年11期
[2]姚諸香,何群,郭玉金.利用電信手機短信實現(xiàn)自動化系統(tǒng)綜合監(jiān)控[J].電網(wǎng)技術(shù),2003,27(6):71-72.
[3]姚諸香,金學成,房金彥.一種變電站告警信息直傳的實現(xiàn)方法.江西電力,2014,38(5):60-63.