楊仁利 吳淑思
摘 要:目前配網(wǎng)自動(dòng)化系統(tǒng)大量接入配網(wǎng)自動(dòng)化終端,由于終端與主站是以無(wú)線公網(wǎng)方式連接,存在一定的掉線可能,掉線后需要人工去確認(rèn)排查。隨著終端大量的接入,需要排查的工作量也將不斷增大,在排查的過(guò)程中還需考慮系統(tǒng)進(jìn)程異常影響終端掉線等情況。本文通過(guò)獲取運(yùn)行庫(kù)終端信息、利用shell腳本進(jìn)行數(shù)據(jù)整合分析,生成詳細(xì)終端掉線原因的分析報(bào)告,并可得到目前終端在線率情況。
關(guān)鍵詞:配網(wǎng)自動(dòng)化終端;在線率;shell腳本;運(yùn)行庫(kù)
中圖分類號(hào):TP277 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1671-2064(2019)05-0022-02
0 引言
隨著配網(wǎng)自動(dòng)化終端數(shù)量成規(guī)??焖僭龆?,自動(dòng)化終端在線率面臨嚴(yán)峻偏低問(wèn)題。配網(wǎng)自動(dòng)化終端作為配網(wǎng)系統(tǒng)重要組成部分,在故障處理和電網(wǎng)監(jiān)控中有著至關(guān)重要作用,提高其在線率有利于故障隔離和快速?gòu)?fù)電,對(duì)電網(wǎng)安全穩(wěn)定運(yùn)行有著十分重要意義。
隨著計(jì)算機(jī)技術(shù)快速發(fā)展,配網(wǎng)自動(dòng)化終端在線率統(tǒng)計(jì)監(jiān)視功能日益強(qiáng)大,實(shí)現(xiàn)終端在線率自動(dòng)統(tǒng)計(jì),并能分地區(qū)分類型展示,可按不同時(shí)間查詢等。如文獻(xiàn)[1]提到了在配網(wǎng)自動(dòng)化系統(tǒng)(DMS)中的在線率自動(dòng)化統(tǒng)計(jì)方法,可以獲取到相關(guān)終端信息并能根據(jù)掛牌情況進(jìn)行區(qū)分統(tǒng)計(jì);文獻(xiàn)[2-3]主要提供了終端在線監(jiān)控及出現(xiàn)異常時(shí)處理方法;文獻(xiàn)[4]給出了提高配網(wǎng)自動(dòng)化終端在線率的方法。以上文獻(xiàn)均未能結(jié)合終端運(yùn)行情況,系統(tǒng)進(jìn)程情況進(jìn)行分析統(tǒng)計(jì),給出終端不在線具體原因,運(yùn)行人員在分析處理終端不在線時(shí)存在一定困難。
目前大多數(shù)終端在線率監(jiān)視,只是單純的在線率統(tǒng)計(jì)功能,并不能對(duì)出現(xiàn)掉線的終端進(jìn)行進(jìn)一步分析,運(yùn)行人員無(wú)法判斷是DMS系統(tǒng)原因或是終端本身原因造成不在線。本文從實(shí)際出發(fā),提出一種監(jiān)視系統(tǒng)中的總在線率及端口在線率,通過(guò)統(tǒng)計(jì)數(shù)據(jù),使用關(guān)聯(lián)性分析,分析出系統(tǒng)可以出問(wèn)題的進(jìn)程,進(jìn)行短信通知,對(duì)不在線終端進(jìn)行網(wǎng)絡(luò)分析,并生成統(tǒng)一的分析報(bào)告方法。
1 linux系統(tǒng)中shell腳本
目前DMS系統(tǒng)所有服務(wù)器或是工作站操作系統(tǒng)都是基于linux,shell腳本(shell script)具有批處理功能,整合了許多指令,提供了數(shù)組,循環(huán),條件以及邏輯判斷等重要功能[5]。
2 實(shí)現(xiàn)技術(shù)原理
2.1 實(shí)施步驟
通過(guò)kcda接口調(diào)用配網(wǎng)自動(dòng)化系統(tǒng)內(nèi)存庫(kù)配網(wǎng)自動(dòng)化終端數(shù)據(jù)及運(yùn)行狀態(tài),包括終端通信、RTU、串行路徑和運(yùn)行狀態(tài)信息,對(duì)找到的不在線終端個(gè)數(shù)進(jìn)行端口歸類統(tǒng)計(jì),可以得到每個(gè)端口下掉線終端個(gè)數(shù)和在線率。主要實(shí)現(xiàn)流程如下:
(1)通過(guò)kcad調(diào)用內(nèi)存庫(kù)統(tǒng)計(jì)所有已投運(yùn)終端總在線率,并判斷終端當(dāng)前運(yùn)行狀態(tài),如果終端屬于掉線狀態(tài),則獲取不在線終端列表,對(duì)不在線終端進(jìn)行RTU號(hào)羅列。終端運(yùn)行狀態(tài)由RTU判斷;(2)通過(guò)kcda內(nèi)存庫(kù)找到串行路徑、RTU和通道關(guān)系表,內(nèi)存庫(kù)通過(guò)串行路徑對(duì)RTU和通道進(jìn)行關(guān)聯(lián);(3)通過(guò)kcda在通道列表找到所有終端信息,包括終端描述、端口號(hào)、進(jìn)程和IP等字段;(4)對(duì)RTU和通道信息表進(jìn)行整合,給RTU號(hào)賦予相關(guān)描述等字段;(5)由步驟獲取的不在線終端列表,遍歷RTU不在線列表,在步驟4找到RTU號(hào)相應(yīng)終端信息;(6)通過(guò)包涵形式遍歷統(tǒng)計(jì)同一端口下終端不在線個(gè)數(shù),歸類到同一端口和同一進(jìn)程;(7)對(duì)找到的數(shù)據(jù)進(jìn)行展示輸出結(jié)果;(8)對(duì)不在線的終端進(jìn)行在線分析,對(duì)找不到通道或是RTU的終端進(jìn)行輸出,方便運(yùn)維人員判斷該終端在數(shù)據(jù)庫(kù)情況;(9)如果某一端口或是總在線率低于某個(gè)限值則發(fā)短信通知相關(guān)人員。
2.2 主要shell腳本程序
(1)調(diào)用接口,查詢RTU和通道的關(guān)聯(lián)
getroutelen()
{kcda << EOF //select Rt_RtuNo Rt_ChanNo from Route //select Rt_RtuNo Rt_ChanNo from Route //q //EOF}
(2)查詢某個(gè)端口的通道參數(shù)
music()
{icda << EOF // select Chn_Name Chn_ComSrvName Chn_Desc Chn_PortName Chn_PortNo where Chn_PortName = $1 //quit //EOF}
(3)通過(guò)RTU號(hào)查詢RTU描述
get_rtu()
{if [ $1 ];then//icda << EOF //select Rtu_Desc where Rtu_No = $1 //quit //EOF //fi}
(4)查詢運(yùn)行RTU中,指定狀態(tài)的RTU個(gè)數(shù)
kcdagetall()
{kcda <
(5)統(tǒng)計(jì)各端口掉線個(gè)數(shù)
analyze()
{echo -e "\nin analyze" //date //for key in $(echo ${!RtuErrorList[*]})
do
ComSrv_port=`echo ${RtuErrorList[$key]}|awk -F ':' '{print $2":"$5}'`
flage=`echo $ComSrv_port ${!templist[*]}|tr ' ' '\n'|sort |uniq -d`
if [ -z $flage ];then
templist+=([$ComSrv_port]=1)
continue
fi
templist[$ComSrv_port]=$[ ${templist[$ComSrv_port]} + 1 ]
done
z=0
for key in $(echo ${!templist[*]})
do
errorlist+=([$z]="$key:${templist[$key]}")
z=$[ $z + 1 ]
done
echo "結(jié)束list: ${errorlist[@]}"
echo ""
date
}
(6)統(tǒng)計(jì)總在線率
all()
{
AllErrorRtu=`kcdagetall 1 2|awk -F ' ' '{print $1}'|sort |uniq -d|sed '/rows/d'|sed '/>>>/d'`
ErrorLen=`Len $AllErrorRtu`
AllNormalRtu=`kcdagetall 4 2|awk -F ' ' '{print $1}'|sort |uniq -d|sed '/rows/d'|sed '/>>>/d'`
NormalLen=`Len $AllNormalRtu`
AllLen=$[ $NormalLen + $ErrorLen ]
ANormalLen=$[ $NormalLen ]
consult=`awk 'BEGIN{printf "%.2f%\n",('$ANormalLen'/'$AllLen')*100}'`
sult=`awk 'BEGIN{printf "%.2f\n",('$ANormalLen'/'$AllLen')*100}'`
echo -e "\n\033[31m終端在線率為: $consult\033[0m\n"
2.3 運(yùn)行結(jié)果分析
在相應(yīng)目錄下輸入命令,可輸出結(jié)果,如表1所示,通過(guò)分析可看到dcs1\2兩臺(tái)前置服務(wù)器上scanner進(jìn)程和相應(yīng)的端口號(hào),端口上終端掛載的個(gè)數(shù),當(dāng)前掉線終端個(gè)數(shù)、總個(gè)數(shù)和在線率情況。如果某一端口掉線個(gè)數(shù)特別多,或是端口在線率低于某一個(gè)數(shù)值,可以假設(shè)該端口對(duì)應(yīng)scanner進(jìn)程存在問(wèn)題。假如總在線值低于95%,或是某一端口(進(jìn)程)中終端在線率低于95%則發(fā)送短信通道運(yùn)維人員。
在不在線終端進(jìn)行分析輸出結(jié)果,如表2所示。通道RTU號(hào)找不到通道或串行路徑參數(shù)列表,這個(gè)種因參數(shù)錯(cuò)誤導(dǎo)致終端不在線情況以前都通過(guò)手工對(duì)每個(gè)終端進(jìn)行排查,效率低且無(wú)法遍歷所有參數(shù)。對(duì)每個(gè)端口下掉線終端進(jìn)行分析,可以看到每臺(tái)終端是否可正常ping或是鏈路建立情況,分析結(jié)果一目了然。
3 結(jié)語(yǔ)
本文通過(guò)DMS系統(tǒng)提供kcda、icda接口獲取內(nèi)存庫(kù)終端數(shù)據(jù),自動(dòng)判斷配網(wǎng)自動(dòng)化終端在線率異常方法可有效減輕運(yùn)維人員工作時(shí)間,提高工作效率,并能針對(duì)每一臺(tái)不在線終端進(jìn)行詳細(xì)分析,對(duì)現(xiàn)場(chǎng)運(yùn)維人員。針對(duì)某一進(jìn)程存在問(wèn)題導(dǎo)致終端掉線無(wú)法判別情況,本文分析結(jié)果可有效解決該問(wèn)題,假如某端口終端掉線個(gè)數(shù)偏多,則該端口對(duì)應(yīng)進(jìn)程可能存在問(wèn)題。本文通過(guò)對(duì)不在線終端進(jìn)行遍歷,對(duì)掉線終端進(jìn)行批量分析并得出結(jié)果,提高了運(yùn)維效率,把人從繁重重復(fù)的工作中解放出來(lái)。
參考文獻(xiàn)
[1] 廣東電網(wǎng)有限責(zé)任公司佛山供電局.基于DMS系統(tǒng)的配網(wǎng)終端在線率自動(dòng)統(tǒng)計(jì)方法:中國(guó),CN20151008 3349.0[P].2015-06-24.
[2] 國(guó)網(wǎng)技術(shù)學(xué)院,國(guó)家電網(wǎng)公司,珠海許繼芝電網(wǎng)自動(dòng)化有限公司,等.一種配網(wǎng)一體化配電自動(dòng)化終端在線監(jiān)控系統(tǒng)及方法:中國(guó),CN201510738277.9[P].2016-03-02.
[3] 國(guó)家電網(wǎng)公司,國(guó)網(wǎng)天津市電力公司,天津市三源電力設(shè)備制造有限公司.一種配電自動(dòng)化終端單元離線故障快速自愈控制方法:中國(guó),CN201410106551.6[P].2014-06-18.
[4] 李逢帥,黃山蓬.提高配電自動(dòng)化終端在線率的幾種方法[J].廣西電業(yè),2017(6):68-71.
[5] 羅書田. SHELL腳本編程在監(jiān)控系統(tǒng)故障分析中的應(yīng)用[A].江西省電機(jī)工程學(xué)會(huì).2012年江西省電機(jī)工程學(xué)會(huì)年會(huì)論文集[C].江西省電機(jī)工程學(xué)會(huì):江西省電機(jī)工程學(xué)會(huì),2012:234-237.