WEB語音告警軟件的設(shè)計與實現(xiàn)
1系統(tǒng)設(shè)計
1.1當(dāng)前現(xiàn)狀
1.1.1缺乏基本的用戶定制功能
傳統(tǒng)的流水式事件報警方式會造成大量非重要信息把一些重要信息淹沒,從而給值班員監(jiān)控系統(tǒng)造成很多麻煩。E8000調(diào)度員界面(MMI)的實時告警模塊,能提供豐富的界面配置選項,來定制實時告警的展示內(nèi)容。而E8000WEB系統(tǒng)的告警模塊設(shè)計過于簡單,缺乏基本的用戶定制能力,只是簡單地把所有事項全部發(fā)送到WEB客戶端,這就導(dǎo)致WEB系統(tǒng)的告警模塊實用價值不高。
1.1.2不能產(chǎn)生語音告警
E8000WEB系統(tǒng)的使用對象主要為非調(diào)度值班人員,如系統(tǒng)部自動化等專業(yè)的專責(zé)、技術(shù)員。工作性質(zhì)決定了使用對象不會一直注視瀏覽器窗口,這樣本專業(yè)關(guān)注的告警信息就無法方便地獲得。而如果能提供語音告警功能,則能有效解決這個問題。由于實現(xiàn)技術(shù)等原因,E8000WEB系統(tǒng)沒有提供語音告警功能。
1.1.3可能存在事項遺漏
E8000WEB系統(tǒng)跟調(diào)度員界面的實現(xiàn)不同,采用定時請求數(shù)據(jù)的方式,并且每個周期只讀取指定數(shù)量的告警,超出該數(shù)量,則會被丟失。
1.2總體目標(biāo)
1.2.1提供靈活方便的定制功能
實現(xiàn)配置選項對話框,為用戶提供豐富的本節(jié)點關(guān)注事項的定制能力。只有配置的告警等級、告警來源、告警類型、告警動作等事項,才會被推送到本節(jié)點的事項窗口,這樣就大大提高了告警的使用價值。
1.2.2提供語音告警
實現(xiàn)類似語音告警功能。不需配置特別的語音卡,充分利用辦公電腦的媒體設(shè)備,采用通用技術(shù),提供效果良好、成本低廉的實現(xiàn)技術(shù)方案,提供用戶具有較高可用性的告警語音播報功能。
1.2.3采用告警推送機(jī)制
摒棄WEB傳統(tǒng)的定時請求方式,采用WEB平臺的實時信
息推送框架,提供告警信息高效實時的推送功能,大大提高了WEB告警的實時性。另外,采用有效的緩沖機(jī)制,徹底避免了WEB系統(tǒng)實時告警信息遺漏問題。
1.3總體架構(gòu)
采用JNI/JNA技術(shù)與E8000實時系統(tǒng)告警服務(wù)器通信,實時獲取EMS系統(tǒng)的告警事項信息:采用循環(huán)隊列等內(nèi)存處理技術(shù),緩存并發(fā)的告警數(shù)據(jù),同時為大量WEB在線用戶提供告警服務(wù),從而大大減少對EMS實時系統(tǒng)的服務(wù)請求,避免出現(xiàn)由于增加本系統(tǒng)而導(dǎo)致EMS實時系統(tǒng)負(fù)荷過重的異常情況(圖1)。
采用Dojo的Cometd技術(shù),實現(xiàn)告警事項的WEB推動功能(圖2)。
2系統(tǒng)功能
2.1E8000告警基本概念
(l)告警定義:電力系統(tǒng)的實時信息和系統(tǒng)本身的重要運行信息。
(2)告警類型:事故、遙信變位、廠站工況、保護(hù)動作、網(wǎng)絡(luò)工況、系統(tǒng)資源等:事項:用戶登錄和退出、數(shù)據(jù)庫修改、圖形編輯、確認(rèn)等操作。
(3)告警動作:指一些最具體的告警表現(xiàn),例如語音告警、推畫面告警、打印告警、中文短消息告警。
(4)告警來源:電網(wǎng)實時穩(wěn)態(tài)的告警信息、電網(wǎng)分析應(yīng)用的告警信息、系統(tǒng)運行監(jiān)控的告警信息。
(5)告警分級:一級事故、二級異常、三級越限、四級變位、五級告知。
(6)告警狀態(tài):報警/確認(rèn)/返回。
2.2服務(wù)器設(shè)計
服務(wù)器端分兩大部分:實時事項客戶端、Tomcat服務(wù)器。
實時事項客戶端采用C++編寫,調(diào)用E8000平臺ALM模塊,該模塊采用類似訂閱/推送方式,參數(shù)為4ALMA一一plUsl一date函數(shù),負(fù)責(zé)接收ALMD服務(wù)器實時推送來的告警。該方法將接收的事項保存到一個循環(huán)隊列中(長度為1萬條記錄)
Tomcat服務(wù)器包括s一srng/DwR/IbatrU框架,相關(guān)Uesvrce(JAVA語言編寫)通過JNA/JNI和實時事項客戶端交互,獲得C++語言負(fù)責(zé)維護(hù)的實時事項隊列。
瀏覽器前端將本節(jié)點關(guān)注的事項配置信息,通過DwR發(fā)給后臺Uesvrce,該Uesvrce負(fù)責(zé)實時將告警信息推送到各前端瀏覽器。
2.3語音告警設(shè)計
不同于E8000系統(tǒng)的設(shè)計思想,本項目采用微軟的語音API,該API由wrndowUs一eechsDK提供。E8000系統(tǒng)調(diào)度員界面的語音告警采用訊飛語音引擎,若WEB系統(tǒng)采用該引擎,則需要在所有的WEB用戶端下載安裝訊飛語音包,不僅導(dǎo)致了使用不便利,同時也大大增加了項目成本。本項目利用該SAPI采用VC語言實現(xiàn)一個Actrvex控件,而微軟SAPI是xP/wIN7及以上版本預(yù)裝的語音處理模塊,這樣就大大簡化了本項目實現(xiàn)語音告警功能的難度。
2.4告警語音的改善與定制
SAPI提供輸出當(dāng)前常用的語音處理引擎有訊飛語音TTSl.0、sV0x、三星TTS等,這些引擎各有特點,都能較好地滿足我們的需要,但這些sDK都需要安裝。若用于電力調(diào)度值班臺,我們可以采用以上語音引擎,若用在WEB場景,則不適合。所以如上所述,我們采用了微軟的TTS語音引擎(The Microsoft Speech API)。在使用過程中,我們發(fā)現(xiàn)該TTS對有些字符、數(shù)字、單詞、字符串等語言單位的發(fā)音處理不夠完美,和人工發(fā)音有些差異,我們通過引入語音處理轉(zhuǎn)換規(guī)則,來改善TTS的發(fā)音效果,使之更接近于人工發(fā)音。
2.5告警推送設(shè)計
本項目在服務(wù)器及前端2處采用了訂閱/推送機(jī)制。實時告警的獲取采用E8000平臺的ALM包,它采用訂閱/推送模式實現(xiàn)。前臺告警以往都采用前端定時請求的方式,這種方式簡單易行,但大多性能不夠理想。我們采用DojoCometd及JETTY框架,實現(xiàn)了一個高效的前臺實時信息推送應(yīng)用。
3結(jié)語
本軟件采用JNI/JNA技術(shù)與E8000實時系統(tǒng)告警服務(wù)器通信,實時獲取EMS系統(tǒng)的告警事項信息:采用循環(huán)隊列等內(nèi)存處理技術(shù),緩存并發(fā)的告警數(shù)據(jù),同時為大量WEB在線用戶提供告警服務(wù),大大減少了對EMS實時系統(tǒng)的服務(wù)請求,實現(xiàn)了告警事項的WEB推送功能。