姚諸香,房金彥,桂小強,湯文勝
(國網江西省電力公司,江西 南昌 330077)
為了對重要系統和設備進行實時在線監視,電力行業建設了能量管理系統(EMS)、機房環境監控系統、水調管理系統(WDS)、數據網網管系統、通信網網管系統等[1],軌道交通行業建設了電力監控與數據采集(PSCADA)、機電設備監控(EMCS)、火災自動報警(FAS)、閉路電視(CCTV)等系統[1],其它行業也建設有許多類似的系統。這些系統大多為特定目的而設計、體量大、設備復用差、信息共享不便。為了解決運行值班人員和維護專責面臨的系統多且相對獨立、設備多且安裝分散、專業多且跨度大等問題,作者在文獻[2]中提出了“綜合監控”的理念,將各個系統(含異構系統)的數據和信息經優選后采集過來,進行集中展示和監控,以便及時發現異常、準確定位故障。受限于當時的經驗和技術條件,該系統的設計功能比較單一,經過多年的實踐、研究,作者采用軟件工程的方法,對該系統進行了重新設計,使其功能得到了擴展,性能得到了提升,下面將介紹該系統的設計原則、結構及功能組成,并展示部分應用示例。
一個綜合監控系統除了運行穩定、安全可靠外,還要考慮以下因素:
1)實用性:功能必須實用,必須能解決實際問題;
2)輕便性:避免新建一套系統,添加一套設備的老路,主要從軟件上著手,充分利用現有設備資源,免去硬件購置、安裝的工作量;
3)松耦合:各功能模塊既是綜合監控系統的組成部分,又可分布式部署,客戶端模塊不依賴特定的環境(常規實時監控系統的數據采集需要實時庫的支持);
4)擴展性:用戶能夠根據自身需要,靈活地擴展系統的功能,比如設定告警觸發的規則。常規監控系統數據正常與否的規則有的固化在程序中,有的只能做簡單的設置,用戶無法對其擴展。
5)適應性:能適應異構的操作系統(unix、windows、linux)、不同的應用場景(有人值班、無人值守)、多樣的采集和傳輸方式(網絡端口、文件和串口)。
6)開放性:作為一個公共平臺,能給第三方提供二次開發接口,也能給其它用戶提供相應的服務(比如給下級機構提供查詢的Web服務)。
7)易用性:充分發揮C/S和B/S設計模式的優點,使系統投運后絕大多數工作能在網頁上完成,相關程序在后臺以服務模式運行,基本做到免維護。
遵照上述設計原則,本系統構架如圖1所示。

圖1 系統功能結構
圖1 中的主機是指各種計算機,如工作站、服務器、PC 機等;網絡設備是指路由器、交換機及連接在網絡上的智能設備;系統是指為完成某些任務的設備及軟件集合,如EMS系統、通信網管系統等。系統服務器既指物理上的服務器(構成本系統的硬件),也指出服務端程序。數據采集、信息采集、數據接收、信息接收、事件觸發、短信收發、事務處理、信息發布、網站及服務、文本轉語音是本系統的主要功能模塊。數據采集模塊和信息采集模塊作為客戶端運行于相應的主機上,文本轉語音模塊作為服務端,運行于有人值班場所的主機上,提供語音服務,這幾個模塊未在圖中示出。數據采集模塊和信息采集模塊采集完相關設備和系統的數據或告警信息后經隔離裝置、MOXA(串口轉網口設備)或串口傳送到數據接收程序或信息接收程序。經隔離裝置傳輸是適應電力二次系統安全防護的要求,采用串口傳輸是因為有的通信網管系統不允許連接到別的網絡上。
數據(監視對象的值)是判斷設備運行正常與否的基礎。當有的設備未接入任何監控系統或雖接入了某個監控系統,但該監控系統提供的監控手段不完整(無短信告警,滿足不了無人值守要求;語音告警功能不實用;設備運行工況在值班場所不可見;告警判據滿足不了用戶要求等)時,需要將用戶關注的數據采集過來,施以用戶設定的告警規則,實現對設備的實時監控。監視數據的來源可以是獨立的設備(主機、網絡設備、智能設備),也可以是監控系統的實時數據庫或商用數據庫。
數據采集模塊采用輕便化設計,C/C++編程,跨操作系統,支持多實例運行,每個實例至少帶兩個必須的參數:一個是配置文件名,一個是資源文件名。配置文件用于指定被采數據源的名稱、采集對象的名稱(定位數據)、類型、頻率;資源文件用于設置采集數據的采集方法、傳送目的地(服務端地址及監聽端口號或目錄名)、以及傳輸方式(TCP 報文、文件、串口等)。
可采集的數據類型有:
計算機的CPU負載率、內存使用率、虛擬內存使用率、磁盤分區使用率或剩余容量、進程狀態(是否在運行)、文件狀態(是否存在)、文件大小(如oracle 的日志文件增長到一定程度時會影響性能)、文件數目(指定目錄下的文件數目不能無限增大);監控系統實時數據庫的遙測量、遙信量、脈沖量、站點通信工況、主備機狀態等;鏈路狀態(數據采集模塊到網絡設備的鏈路是否連通)、數據庫連接(數據采集模塊是否能打開到指定數據庫的連接);通過存儲過程采集的關系數據庫中的數據(如調度技術支持系統安全III 區歷史庫中的準實時數據);通過snmp 協議獲取的數據;同一數據報文(斷面)的數據組合出來的新數據。
數據報文(文件格式)見文獻[3]。
數據接收模塊將數據采集模塊發送過來的數據報文或文件進行解析,存儲到數據庫,另外,還要根據用戶設定的規則,對各監視數據進行合理性檢查,滿足條件是按指定模板生成告警信息,保存到數據庫或進行語音告警(文本轉語音)。
信息采集的功能是采集和傳輸第三方設備和系統中的現成告警信息用以集中展示和處理。有的設備和系統安裝在機房中,運行值班人員需通過“巡視”的方式來確認其運行狀態;有的系統規模龐大,產生的告警信息太多,以致不能引起運行值班人員和維護專責的注意;有的系統因為管轄范圍等原因,告警信息不能及時傳送給需要的人員(比如通信專業的綜合網管系統,雖然接入了省、地、縣公司的網管信息,但下級機構無法知曉上級機構管轄的與本機機構關聯的設備告警信息),因此,有必要將運行值班人員和維護專責關注的告警信息采集過來,集中展示,統一處理。
信息采集的內容一般是歷史數據庫(關系數據庫)的準實時信息,為了便于功能擴展和增加適應性,采集程序采用輪詢的方式實現-逐時段調用用戶指定的存儲過程以獲取該時段滿足條件的告警信息。存儲過程的名字可由用戶自行指定,輸入參數有開始時間、結束時間、查詢條件,輸出參數為這段時間內滿足條件的信息。由于查詢條件作為參數輸入,存儲過程的實現就很靈活,有經驗的用戶可自己編寫,亦可委托第三方廠商編寫。
信息采集支持調用第三方提供的Web Service來采集告警信息,還支持網絡設備通過SNMP Trap協議發送過來告警信息的采集。
采集信息的傳輸格式和傳輸方式同數據采集。
信息接收模塊將信息采集模塊發送過來的信息報文或文件進行解析,逐條存儲到數據庫,需要時也可進行文本轉語音告警。對于過長的告警條文要按指定長度分段,一條分成多條寫入數據庫。對于相同的告警信息可按照上、下班時間設置一定的時間間隔,進行“防抖”處理,減少數據庫的寫入次數。
信息接收支持的接口方式與數據接收類似,有TCP端口、文件和串口等方式。
當設備和系統出現故障時,需要將故障信息、故障時間等信息在第一時間通知運行值班人員,甚至維護專責。傳統的告警警示方式有推畫面、語音、文字反相、脫機打印等,隨著手機的普及,短信息也在監控系統中得到了廣泛的應用[2]。短信告警雖然有其優勢,一般的監控系統也只是把它作為一個附屬功能,并沒有作為一個系統來整體設計。
短信收發功能就是將數據庫中的待發信息(下行)發給用戶,將接收到的信息(上行)寫入數據庫(供其它模塊處理)。
通過采用設備冗余、流量均衡、事件驅動、主備切換、失敗重發、端口重啟等技術提高了短信收發的可靠性和效率,有效解決了設備掉電、故障、死機、SIM卡欠費、SIM被運營商鎖定等問題。
文本轉語音(Text to Speech)功能適用于有人值班場所,通過將收到的告警信息由計算機“讀出來”,達到警示運行值班人員的目的。本模塊雖是服務端,但部署在需要的工作站上,以TCP 端口方式接收、解析、朗讀信息采集模塊發送的報文。
遵循數據訪問層和業務層分離的原則,信息接收模塊只是將收到的告警信息寫入數據庫,信息和用戶關聯的問題由事件觸發模塊來解決。告警信息按“系統.數據源.標識符”格式組織,這也是每條告警信息的定位路徑。有別于一般監控系統的告警信息該給誰的思路,本系統采用了信息提供者(provider)和訂閱者(subscriber)的機制(我要哪些)-通過將用戶訂閱字符串和告警信息的定位路徑匹配,以確定該用戶要收的信息。訂閱字符串可以是告警信息定位路徑的全部,也可以是其中的一部分(模糊匹配),例如某類告警信息的路徑為“EMS.SCADA.*”,用戶訂閱字符串為“EMS.*”,則EMS系統的所有相關告警信息將發送給該用戶;如果訂閱字符串為“EMS.SCADA.*”,則EMS 系統中SCADA子系統相關的告警信息將發送給該用戶。
信息發布模塊的主要功能是在指定的時間、按指定的模板、以指定的頻率生成、發送信息給指定的用戶。信息模板可以是簡單的文本(如通知專責人員巡視設備和系統的信息),也可以是靜態文本和“宏”的組合(如電網運行情況匯報),宏數據來自用戶指定的數據庫,由SQL語句獲取。
舉個簡單的例子,有一名為“當日信息”的模板:$RDATE$XX 電網最大負荷$MAX_LOAD$萬千瓦($MAX_TIME$)。取最大負荷和出現時間的語句為: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。
通過“宏”替代,變化的數據自動地反映到待發布信息中,這樣系統的靈活性和可擴展性就大大地提高了。
事務處理模塊的主要功能處理用戶發來的短信(上行信息),完成諸如用戶信息查詢、待發布信息查詢、故障申告、日志歸檔、信息轉發、數據接收,還可執行用戶發過來的命令如軟件許可設置、短信收發主備通道切換等。
網站及服務模塊分兩部分:網站是用戶主要的操作界面,包括用戶信息管理和權限設置、監視對象配置和數據采集參數文件生成、告警規則設置和告警信息訂閱、信息發布配置和發布信息訂閱、公告牌、短信發送、各種查詢等功能;服務指的是以Web Service方式提供與第三方的接口,為第三方提供短信收發、告警信息查詢和存儲等服務,以便和其它系統集成,形成一體化的系統。
圖2 是監視對象舉例,系統根據監視對象定義,生成每個數據采集模塊實例所需的配置文件。監視對象的名稱被數據采集模塊用來定位數據,刷新時間告訴數據采集模塊以何種頻率采集數據。

圖2 監視對象示例
圖3是告警規則定義舉例,告警規則表達式中的$value$是指監視對象的值,采樣周期、報警次數和短信模板用于判斷數據是否異常、是否要產生告警、生成怎樣的告警信息。由于采用了比較最近一個時間段的數據,可以達到類似五取三的效果,從而消除“抖動”。設備故障后往往不能立即恢復,為了避免頻繁產生相同的告警信息,利用失效時間這個參數使規則在隔一段時間后再起作用。規則范圍指定哪些監視對象要用本規則。

圖3 告警規則定義示例
圖4是告警信息訂閱頁面,圖中的責任串用于和告警信息的定位路徑匹配,從而確定用戶希望接收的告警信息。

圖4 告警信息訂閱示例
圖5是信息發布訂閱頁面,系統中有哪些發布信息,用戶需要哪些信息,只需勾選就可以了。

圖5 信息發布訂閱頁面
文章介紹了一個輕便型綜合監控系統,給出了其設計目的、理念、系統結構及各功能模塊的主要功能,展示了部分應用示例。系統具有實用性、易用性和輕便性、松耦合、擴展性、適應性、開放性等特點,較好地解決了運行值班人員和維護專責面臨的系統多且相對獨立、設備多且安裝分散、專業多且跨度大的問題。
[1]羅利平.城市軌道交通綜合監控系統集成方案[J].城市軌道交通研究.2008年11期
[2]姚諸香,何群,郭玉金.利用電信手機短信實現自動化系統綜合監控[J].電網技術,2003,27(6):71-72.
[3]姚諸香,金學成,房金彥.一種變電站告警信息直傳的實現方法.江西電力,2014,38(5):60-63.