李 金,高 壽
(1.中國(guó)南方電網(wǎng)電力調(diào)度控制中心,廣東 廣州 510663;2. 南瑞集團(tuán)公司(國(guó)網(wǎng)電力科學(xué)研究院),江蘇 南京 210003)
電力系統(tǒng)中二次設(shè)備的檢修以人工進(jìn)行定期檢驗(yàn)為主,容易造成“過剩維修”或者“延后維修”的問題,造成設(shè)備有效利用率降低及人力、物力、財(cái)力的浪費(fèi),檢修效果也不好。而隨著變電站和輸電線路的數(shù)量越來(lái)越多,二次設(shè)備檢驗(yàn)工作量劇烈增加。由于編制限制及人才培養(yǎng)周期等原因二次設(shè)備檢驗(yàn)人員卻并不能相應(yīng)增加,加上許多線路停電難、停電時(shí)間短,造成二次設(shè)備檢驗(yàn)完成率較低,二次設(shè)備技術(shù)人員長(zhǎng)期處于超負(fù)荷工作狀態(tài),既影響了保護(hù)檢驗(yàn)質(zhì)量又容易發(fā)生誤碰、誤接線、誤整定等事故。因此,運(yùn)用先進(jìn)的科技手段,加強(qiáng)電氣二次設(shè)備狀態(tài)監(jiān)測(cè)和狀態(tài)檢修工作的重要性日益突出[1-5]。
二次設(shè)備狀態(tài)評(píng)價(jià)是二次設(shè)備狀態(tài)檢修的基礎(chǔ),基于二次設(shè)備狀態(tài)監(jiān)測(cè)技術(shù),根據(jù)反映二次設(shè)備狀態(tài)的關(guān)鍵指標(biāo)狀態(tài)信息確定二次設(shè)備所處的狀態(tài),然后對(duì)二次設(shè)備的運(yùn)行健康狀態(tài)進(jìn)行整體評(píng)價(jià)。然而隨著電網(wǎng)規(guī)模的擴(kuò)大,二次設(shè)備的數(shù)量也急劇增加,而在主站端針對(duì)每條監(jiān)測(cè)信息進(jìn)行實(shí)時(shí)狀態(tài)評(píng)價(jià)的方法給服務(wù)器造成了巨大的計(jì)算壓力。同時(shí)二次設(shè)備監(jiān)測(cè)指標(biāo)的傳輸方式較為分散,可能發(fā)生某一設(shè)備短時(shí)間內(nèi)向主站端傳輸多條監(jiān)測(cè)指標(biāo)信息,從而出現(xiàn)對(duì)同一設(shè)備多次重復(fù)評(píng)價(jià)的情況[6-9]。本文提出了一種基于數(shù)據(jù)緩沖池技術(shù)的二次設(shè)備狀態(tài)評(píng)價(jià)數(shù)據(jù)處理方案,采用多任務(wù)處理和緩沖池技術(shù),實(shí)現(xiàn)了大量監(jiān)測(cè)數(shù)據(jù)的并行解析;標(biāo)記狀態(tài)評(píng)價(jià)對(duì)象在緩沖池中的任務(wù)狀態(tài),避免了對(duì)同一設(shè)備的重復(fù)評(píng)價(jià)現(xiàn)象。
主站端二次設(shè)備評(píng)價(jià)基于子站傳輸上來(lái)的二次設(shè)備監(jiān)測(cè)數(shù)據(jù),子站端二次設(shè)備監(jiān)測(cè)數(shù)據(jù)通過61850協(xié)議上傳到主站數(shù)據(jù)中心,再由數(shù)據(jù)中心通過JMS傳輸至主站端二次設(shè)備狀態(tài)評(píng)價(jià)功能模塊(以下簡(jiǎn)稱主站端)完成設(shè)備評(píng)價(jià)、設(shè)備檢修等功能應(yīng)用。
當(dāng)子站端設(shè)備的監(jiān)測(cè)指標(biāo)發(fā)生改變時(shí),子站將產(chǎn)生的監(jiān)測(cè)信息上傳到數(shù)據(jù)中心。此時(shí)數(shù)據(jù)中心通過JMS將收到的監(jiān)測(cè)信息傳輸給主站端。主站端監(jiān)聽程序在收到數(shù)據(jù)中心傳來(lái)的監(jiān)測(cè)信息后,經(jīng)過解析處理,啟動(dòng)狀態(tài)評(píng)價(jià)任務(wù)對(duì)該設(shè)備的新狀態(tài)進(jìn)行評(píng)價(jià)。然而在這個(gè)過程中,如果該設(shè)備的其他監(jiān)測(cè)指標(biāo)也發(fā)生變化,或某些模擬量指標(biāo)(如CPU使用率)持續(xù)變化,則會(huì)使子站端將該設(shè)備的這些指標(biāo)不停上傳,而主站端重復(fù)啟動(dòng)狀態(tài)評(píng)價(jià)程序?qū)ν辉O(shè)備進(jìn)行評(píng)價(jià),大大加重了服務(wù)器的負(fù)擔(dān),造成系統(tǒng)資源的浪費(fèi),嚴(yán)重情況下可能出現(xiàn)服務(wù)器卡死等現(xiàn)象[10]。
針對(duì)上述問題,本文提出了設(shè)計(jì)數(shù)據(jù)緩沖池的解決方案,將數(shù)據(jù)中心傳輸?shù)臄?shù)據(jù)和數(shù)據(jù)庫(kù)中相應(yīng)的設(shè)備及狀態(tài)數(shù)據(jù)存入數(shù)據(jù)緩沖池中,其他程序通過該數(shù)據(jù)緩沖池讀取數(shù)據(jù);同時(shí),通過標(biāo)記設(shè)備評(píng)價(jià)狀態(tài)避免了重復(fù)評(píng)價(jià)同一設(shè)備的問題。
為了避免重復(fù)評(píng)價(jià)同一件設(shè)備的運(yùn)行健康狀態(tài),首先必需要將設(shè)備在狀態(tài)評(píng)價(jià)中的各個(gè)狀態(tài)區(qū)分開來(lái)。
本文將二次設(shè)備在整個(gè)狀態(tài)評(píng)價(jià)過程中的狀態(tài)分為3個(gè):待評(píng)價(jià)、評(píng)價(jià)中、已評(píng)價(jià)。當(dāng)主站端接收到JMS信號(hào)時(shí),從JMS信息體中獲取二次設(shè)備的監(jiān)測(cè)數(shù)據(jù)信息,其中包含設(shè)備的唯一編碼、設(shè)備的監(jiān)測(cè)指標(biāo)、監(jiān)測(cè)指標(biāo)的狀態(tài)量值等信息。通過設(shè)備的唯一編碼,可以從系統(tǒng)中獲取需要評(píng)價(jià)的設(shè)備,將該設(shè)備對(duì)象及其評(píng)價(jià)指標(biāo)填入數(shù)據(jù)緩沖池中,此時(shí)可將該設(shè)備狀態(tài)置為“待評(píng)價(jià)”狀態(tài);當(dāng)狀態(tài)評(píng)價(jià)線程掃描到該設(shè)備,開始執(zhí)行狀態(tài)評(píng)價(jià)功能時(shí),將該設(shè)備狀態(tài)置為“評(píng)價(jià)中”;當(dāng)狀態(tài)評(píng)價(jià)線程完成對(duì)該設(shè)備的評(píng)價(jià)任務(wù)時(shí),將該設(shè)備的狀態(tài)置為“已評(píng)價(jià)”。因此,二次設(shè)備在各狀態(tài)下的真實(shí)情況如下。
已評(píng)價(jià):上一評(píng)價(jià)周期的狀態(tài)評(píng)價(jià)工作已完成,至今尚無(wú)新的監(jiān)測(cè)指標(biāo)有變化。
待評(píng)價(jià):上一評(píng)價(jià)周期的狀態(tài)評(píng)價(jià)工作完成后,又有新的監(jiān)測(cè)指標(biāo)變動(dòng),需要重新評(píng)價(jià)設(shè)備狀態(tài);目前設(shè)備對(duì)象及各項(xiàng)指標(biāo)的當(dāng)前值已填入數(shù)據(jù)緩沖池中,但狀態(tài)評(píng)價(jià)線程尚未掃描到該設(shè)備,還處于等待狀態(tài)。
評(píng)價(jià)中:目前狀態(tài)評(píng)價(jià)線程正在對(duì)該設(shè)備的當(dāng)前狀態(tài)進(jìn)行評(píng)價(jià)。
數(shù)據(jù)緩沖池包括兩部分:
(1)待處理的狀態(tài)數(shù)據(jù)隊(duì)列,隊(duì)列中每個(gè)對(duì)象包括設(shè)備的唯一標(biāo)識(shí)、設(shè)備狀態(tài)量名稱、設(shè)備狀態(tài)量監(jiān)測(cè)值,如表1所示。
表1 待處理設(shè)備狀態(tài)隊(duì)列元素結(jié)構(gòu)表
(2)待評(píng)價(jià)的二次設(shè)備隊(duì)列,隊(duì)列中的每個(gè)對(duì)象包括設(shè)備的唯一標(biāo)識(shí)及其當(dāng)前所有狀態(tài)值,如表2所示。
表2 待評(píng)價(jià)設(shè)備隊(duì)列元素結(jié)構(gòu)表
監(jiān)測(cè)數(shù)據(jù)監(jiān)聽任務(wù)是主站端用于監(jiān)聽從數(shù)據(jù)中心傳來(lái)的JMS消息的程序。接收到一條JMS消息后,監(jiān)聽任務(wù)首先從消息體中解析出具體的消息內(nèi)容,然后將這些內(nèi)容填入緩沖池中待處理的設(shè)備狀態(tài)量隊(duì)列中。
監(jiān)測(cè)數(shù)據(jù)處理任務(wù)用于分析處理設(shè)備狀態(tài)量隊(duì)列中的數(shù)據(jù)。監(jiān)測(cè)數(shù)據(jù)處理任務(wù)流程圖如圖1所示。監(jiān)測(cè)數(shù)據(jù)處理任務(wù)啟動(dòng)后,遍歷設(shè)備狀態(tài)量隊(duì)列中的各項(xiàng)數(shù)據(jù),根據(jù)其中的設(shè)備唯一編碼,在數(shù)據(jù)庫(kù)中查看它們的狀態(tài),然后進(jìn)行如下處理:
(1)對(duì)于“已評(píng)價(jià)”狀態(tài)的設(shè)備,將其設(shè)備唯一編碼和當(dāng)前所有的狀態(tài)值取出,填入待評(píng)價(jià)的二次設(shè)備隊(duì)列中,在數(shù)據(jù)庫(kù)表中將該設(shè)備的評(píng)價(jià)狀態(tài)置為“待評(píng)價(jià)”,然后用設(shè)備監(jiān)測(cè)指標(biāo)隊(duì)列中取出的指標(biāo)值更新隊(duì)列中相應(yīng)的狀態(tài)量數(shù)據(jù)。
圖1 監(jiān)測(cè)數(shù)據(jù)處理任務(wù)流程圖
(2)對(duì)于“待評(píng)價(jià)”狀態(tài)的設(shè)備,直接在緩沖池中更新二次設(shè)備隊(duì)列中相應(yīng)的狀態(tài)量數(shù)據(jù)。
(3)對(duì)于“評(píng)價(jià)中”狀態(tài)的設(shè)備,則在評(píng)價(jià)任務(wù)對(duì)該設(shè)備的評(píng)價(jià)完成后,設(shè)備的評(píng)價(jià)狀態(tài)置為“已評(píng)價(jià)”,對(duì)其按第一種方式處理。
上述處理完成后,在處理設(shè)備狀態(tài)量隊(duì)列中將該條記錄清理出隊(duì)列,隊(duì)列為空時(shí)任務(wù)中止。
狀態(tài)評(píng)價(jià)任務(wù)用于對(duì)待評(píng)價(jià)的二次設(shè)備隊(duì)列中的設(shè)備及其狀態(tài)量信息進(jìn)行設(shè)備健康狀態(tài)評(píng)價(jià)。狀態(tài)評(píng)價(jià)任務(wù)啟動(dòng)后,遍歷待評(píng)價(jià)的二次設(shè)備隊(duì)列,先將該設(shè)備的評(píng)價(jià)狀態(tài)置為“評(píng)價(jià)中”,然后根據(jù)每個(gè)設(shè)備及其狀態(tài)量信息執(zhí)行健康狀態(tài)評(píng)價(jià)算法,得到狀態(tài)評(píng)價(jià)結(jié)果后,將隊(duì)列中的設(shè)備狀態(tài)量信息和狀態(tài)評(píng)價(jià)結(jié)果信息更新到數(shù)據(jù)庫(kù)中保存,然后將數(shù)據(jù)庫(kù)中的設(shè)備狀態(tài)信息變更為“已評(píng)價(jià)”狀態(tài)。
完成上述步驟后就將剛才評(píng)價(jià)的數(shù)據(jù)從待評(píng)價(jià)的二次設(shè)備隊(duì)列中清除,繼續(xù)遍歷下面的數(shù)據(jù),直至隊(duì)列為空為止。
如前文所述,監(jiān)測(cè)數(shù)據(jù)處理任務(wù)的監(jiān)聽程序始終保持監(jiān)聽JMS消息,每條消息到達(dá)后將消息體中的信息填入待處理隊(duì)列;監(jiān)測(cè)數(shù)據(jù)處理程序周期性地運(yùn)行,將待處理隊(duì)列的數(shù)據(jù)處理完以后就結(jié)束;狀態(tài)評(píng)價(jià)程序也周期性地啟動(dòng),每次執(zhí)行遍歷處理待評(píng)價(jià)設(shè)備隊(duì)列,到隊(duì)列為空的時(shí)候停止執(zhí)行;同時(shí)考慮到監(jiān)測(cè)數(shù)據(jù)處理程序和狀態(tài)評(píng)價(jià)程序在上一執(zhí)行周期內(nèi)如果沒有處理完所有數(shù)據(jù),在下一執(zhí)行周期會(huì)再次啟動(dòng)一個(gè)新程序,因此這兩個(gè)程序要以單例模式的方式實(shí)現(xiàn)。
為驗(yàn)證上述所提的二次設(shè)備狀態(tài)評(píng)價(jià)數(shù)據(jù)處理方案,基于本文所提的方法,開發(fā)了二次設(shè)備狀態(tài)評(píng)價(jià)功能軟件,并編寫了模擬程序向監(jiān)聽程序發(fā)送二次設(shè)備監(jiān)測(cè)數(shù)據(jù)。
模擬程序隨機(jī)從二次設(shè)備狀態(tài)評(píng)價(jià)系統(tǒng)中抽取二次設(shè)備信息及狀態(tài)量發(fā)送給監(jiān)聽程序,記錄下每個(gè)設(shè)備被重復(fù)抽取以及被評(píng)價(jià)的次數(shù),分別用本文提出的方法和無(wú)緩沖池的處理方法對(duì)收到的監(jiān)測(cè)數(shù)據(jù)進(jìn)行狀態(tài)評(píng)價(jià)。兩種方法部署在同一臺(tái)服務(wù)器上執(zhí)行,每次模擬程序抽取10 000條監(jiān)測(cè)數(shù)據(jù)進(jìn)行測(cè)試,測(cè)試結(jié)果如表3所示。
表3 兩種狀態(tài)評(píng)價(jià)數(shù)據(jù)處理方法對(duì)比
從表3的測(cè)試結(jié)果來(lái)看,當(dāng)同一設(shè)備接收多次監(jiān)測(cè)數(shù)據(jù)的時(shí)候,本文提出的方法能夠有效地減少重復(fù)評(píng)價(jià)的次數(shù),大幅減少程序執(zhí)行時(shí)間。
本文提出了一種針對(duì)大量二次設(shè)備狀態(tài)監(jiān)測(cè)數(shù)據(jù)進(jìn)行分析、處理、評(píng)價(jià)的方法,將待處理數(shù)據(jù)填入緩沖池,靈活配置二次設(shè)備在狀態(tài)評(píng)價(jià)過程中的不同狀態(tài),有效地減少了系統(tǒng)重復(fù)計(jì)算的數(shù)量,提高程序運(yùn)行效率,有助于提高系統(tǒng)的穩(wěn)定性和實(shí)用性。
[1] 王俏文,丁堅(jiān)勇,陶文偉,等. 基于層次分析模型的二次設(shè)備狀態(tài)檢修方法[J]. 南方電網(wǎng)技術(shù), 2013,7(4):97-102.
[2] 吳杰余, 張哲, 尹項(xiàng)根. 電氣二次設(shè)備狀態(tài)檢修研究[J]. 繼電器, 2002,30(2):22-24.
[3] 王師霜. 二次設(shè)備狀態(tài)評(píng)價(jià)數(shù)據(jù)挖掘技術(shù)的研究與應(yīng)用[D]. 北京: 華北電力大學(xué), 2013.
[4] 宮宇, 呂金壯. 大數(shù)據(jù)挖掘分析在電力設(shè)備狀態(tài)評(píng)估中的應(yīng)用[J]. 南方電網(wǎng)技術(shù), 2014,8(6):74-77.
[5] 成永強(qiáng). 基于數(shù)據(jù)挖掘的設(shè)備狀態(tài)檢修[D]. 北京: 華北電力大學(xué), 2005.
[6] 汪權(quán)東, 陳衛(wèi)標(biāo), 李金賢, 等. 大數(shù)據(jù)量、高中斷頻率數(shù)據(jù)接收的軟件設(shè)計(jì)[J]. 計(jì)算機(jī)工程, 2004,30(7):69-72.
[7] 張逸, 楊洪耕. 海量電能質(zhì)量數(shù)據(jù)交換格式文件快速解析方案[J]. 電力自動(dòng)化設(shè)備, 2013,33(12):116-121.
[8] 馮璐, 馮鳳娟. 單例模式在數(shù)據(jù)庫(kù)連接池中的應(yīng)用[J]. 網(wǎng)絡(luò)安全技術(shù)與應(yīng)用, 2008(3):47-50.
[9] 胡澤林, 張?jiān)迫? 高速緩存優(yōu)化的并行連接算法[J]. 計(jì)算機(jī)工程與設(shè)計(jì), 2009, 30(20):4581-4584.
[10] 牟乃夏, 薛重生, 楊亮杰,等. 基于內(nèi)存緩沖池的實(shí)時(shí)配電地理信息系統(tǒng)數(shù)據(jù)集成技術(shù)與功能設(shè)計(jì)[J]. 電氣應(yīng)用, 2005,24(4):24-26.