国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

電力企業(yè)線損異常統(tǒng)計軟件機(jī)器人研發(fā)及應(yīng)用

2021-10-16 16:01鄭芒英李昀
現(xiàn)代信息科技 2021年7期
關(guān)鍵詞:異常線損自動

鄭芒英 李昀

摘要:線損高低直接影響到電力企業(yè)的經(jīng)營業(yè)績,線損業(yè)務(wù)管理人員需每天關(guān)注線損異常情況,分析原因并根據(jù)線損異常天數(shù)閾值進(jìn)行提級通知,加強(qiáng)線損管理。強(qiáng)化線損管理是“全國最好2021”中的重點(diǎn)工作之一,加強(qiáng)線損異常閉環(huán)管控,通過研發(fā)機(jī)器人改變傳統(tǒng)人工統(tǒng)計模式,實現(xiàn)“機(jī)器代替人”的管理模式;關(guān)鍵技術(shù)自主可控,提高工作效率和質(zhì)量,使得數(shù)字技術(shù)與業(yè)務(wù)深度融合,助力企業(yè)數(shù)字化轉(zhuǎn)型。

關(guān)鍵詞:線損;RPA;異常;自動

中圖分類號:TP391.7? ? 文獻(xiàn)標(biāo)識碼:A ? ?文章編號:2096-4706(2021)07-0110-04

Development and Application of Software Robot for Power Enterprise Line

Loss Abnormal Statistics

ZHENG Mangying,LI Yun

(Zhanjiang Power Supply Bureau of Guangdong Power Grid Corporation,Zhanjiang? 524005,China)

Abstract:The level of line loss has a direct impact on the operating performance of electric power enterprises. Line loss business managers need to pay attention to the line loss abnormal situation every day,analyze reason and provide upgrade notifications based on the abnormal line loss days threshold to strengthen line loss management. Strengthening line loss management is one of the key tasks in the “National best 2021”. We should strengthen the closed-loop management and control of abnormal line loss,change the traditional manual statistical mode through the research and development of robots,and realize the management mode of “machine replacing human”. The key technologies can be controlled independently,improve the work efficiency and quality,make the digital technology and business deeply integrated,and help the enterprise in digital transformation.

Keywords:line loss;RPA;abnormal;automatic

收稿日期:2021-03-13

0? 引? 言

線損異常是指線路、臺區(qū)線損率同比同期值或計劃值偏差過大,數(shù)值偏差超過正負(fù)1個百分點(diǎn)。由于抄表數(shù)據(jù)錯誤、竊電或違約用電電量追補(bǔ)、計量裝置故障、高供低計用戶收變損、基礎(chǔ)檔案錯誤、供電半徑過長或線徑小、三相負(fù)荷不平衡等多種原因造成線損異常。以往的工作模式為員工登錄計量自動化系統(tǒng)下載數(shù)據(jù)通過煩瑣的操作后,統(tǒng)計出異常的線損對象,最后通知相應(yīng)的供電所人員分析原因并進(jìn)行整改。該工作重復(fù)性高且容易出錯,并且需要投入大量的時間。如何將線損業(yè)務(wù)管理人員從這些煩瑣、重復(fù)的工作中解放出來,提高工作效率,降低操作失誤率是目前線損異常管理工作需要思考的一個問題。隨著“云大物移智”技術(shù)的發(fā)展,軟件機(jī)器人已經(jīng)在電力企業(yè)財務(wù)、人資、生產(chǎn)等業(yè)務(wù)領(lǐng)域進(jìn)行應(yīng)用并發(fā)揮作用,成效顯著。本課題通過研發(fā)軟件機(jī)器人進(jìn)行線損異常自動統(tǒng)計、自動告警等工作,采用新的工作模式,讓線損異常統(tǒng)計工作更高效,員工可以將更多的精力投放在線損異常原因分析及問題整改中[1]。

1? 軟件機(jī)器人

RPA(Robotic Process Automation)為機(jī)器人流程自動化軟件的縮寫[2]。軟件機(jī)器人(RPA)是基于計算機(jī)操作系統(tǒng)的工作桌面,自動識別UI、自動完成重復(fù)性工作的機(jī)器人。它是可以處理重復(fù)性工作的軟件程序,可以模擬手工作業(yè),通過模仿人機(jī)交互的方式,執(zhí)行一系列的工作流程。軟件機(jī)器人在用戶界面運(yùn)行而不受制于底層IT基礎(chǔ)設(shè)施全天候的工作,每個動作都可追蹤,可以讓員工專注于更有增值潛力的任務(wù),并且可以跨系統(tǒng)跨應(yīng)用操作;軟件機(jī)器人具備億級數(shù)據(jù)讀取處理能力,可對數(shù)據(jù)表格的數(shù)據(jù)進(jìn)行條件過濾、合并、條件排序、列重命名、計算統(tǒng)計、處理,自動生成數(shù)據(jù)表格等操作。

2? 線損異常統(tǒng)計步驟

根據(jù)計量自動化系統(tǒng)線損報表,按照分區(qū)、分線、分臺區(qū)、日、月報表數(shù)據(jù),自動計算分區(qū)、分線、分臺區(qū)異常線損的異常天數(shù),根據(jù)時間段生成相應(yīng)日、月報表。根據(jù)線損管理人員制定的異常天數(shù)的閾值,研發(fā)軟件機(jī)器人按照上述工作步驟逐項完成,通知相應(yīng)的線損業(yè)務(wù)人員進(jìn)行整改。

3? 設(shè)計思路

通過人工智能圖片識別技術(shù)、Python語言與軟件機(jī)器人自動化技術(shù),研發(fā)線損異常統(tǒng)計軟件機(jī)器人。本課題使用RPA品牌是藝賽旗公司,版本號是10-1。如圖1所示,研發(fā)四個“機(jī)器人”,按照先后順序分工合作完成線損異常統(tǒng)計。首先設(shè)計軟件機(jī)器人的定時自動登錄計量自動化系統(tǒng)功能,根據(jù)指定系統(tǒng)菜單路徑、操作步驟,自動獲取UI,自動執(zhí)行線損管理人員原設(shè)的各項操作步驟;第二步是設(shè)計機(jī)器人的數(shù)據(jù)下載功能,自動下載分區(qū)、分線、分臺區(qū)、日、月報表數(shù)據(jù)到指定存儲路徑;第三步是根據(jù)線損異常計算公式,運(yùn)用Python語言編輯設(shè)計機(jī)器人的自動計算功能,自動計算異常天數(shù)[3];第四步是根據(jù)線損管理人員預(yù)設(shè)異常天數(shù)的閾值,設(shè)計機(jī)器人的自動催辦功能,根據(jù)分區(qū)、分線、分臺區(qū)對應(yīng)的責(zé)任人,自動通過通信軟件發(fā)送固定模板到供電所人員進(jìn)行催辦。同時也可以根據(jù)異常天數(shù)的閾值,自動提級通知到指定人員。

4? 機(jī)器人研發(fā)

在四個機(jī)器人中,自動計算機(jī)器人是核心部分,關(guān)系到線損異常數(shù)據(jù)的準(zhǔn)確率和可信度,也是最為復(fù)雜、關(guān)鍵的環(huán)節(jié)。根據(jù)數(shù)據(jù)下載機(jī)器人獲取到的數(shù)據(jù)庫進(jìn)行讀取,按照分區(qū)、分線、分臺區(qū)線損異常三類數(shù)據(jù)進(jìn)行分類處理。在實際應(yīng)用中,可能會因為計算機(jī)的無計劃停機(jī)、節(jié)假日、操作系統(tǒng)故障、機(jī)器人服務(wù)器故障等原因造成部分時段的機(jī)器人無法正常運(yùn)行,造成部分日期的線損異常數(shù)據(jù)無法自動統(tǒng)計,從而需要在自動計算機(jī)器人中增加一個自檢機(jī)器人來檢查每日數(shù)據(jù)的獲取和統(tǒng)計是否正常,提高整個工作的嚴(yán)謹(jǐn)性和完整性。針對節(jié)假日期間無法遠(yuǎn)程監(jiān)控,程序員不在現(xiàn)場的情況,需要人為根據(jù)機(jī)器人故障原因判斷來執(zhí)行自檢機(jī)器人,從而達(dá)到每日的線損數(shù)據(jù)不缺不漏,這樣在最終計算線損異常天數(shù)才能準(zhǔn)確無誤。

圖2為自動計算機(jī)器人系統(tǒng)截圖界面,其中分區(qū)線損異常數(shù)據(jù)處理部分代碼[4,5]為:

'''def main():

#25- 31、1-4號執(zhí)行月報表,其他時間執(zhí)行日報表

if 5< datetime.datetime.now().day < 25:

rbb()

else:

ybb()

#月報表

def ybb():

#1、打開excel表

#定義excel路徑

exlPath = "D:/Program Files/IS-RPA10/Project/線損分析/分區(qū)線損分析/分區(qū)線損月報表/"

#定義當(dāng)月報表變量time_str

bb_month = datetime.datetime.now().month

if? (datetime.datetime.now().day < 25):

month_str = (datetime.datetime.now()+relativedelta (months=-1)).strftime("%Y-%m")

else:

month_str = str(datetime.datetime.now().year)+"-"+str(bb_month).zfill(2)

time_str = month_str

sheet = openExcel(exlPath,time_str)

print("成功獲取ybb")

#2、數(shù)據(jù)插入至mysql

tabName = "fq_ybb"

uploadExcel(sheet,tabName,time_str)

print("數(shù)據(jù)插入",tabName)

#3、對月報表連續(xù)異常數(shù)據(jù)進(jìn)行統(tǒng)計

#3.1分區(qū)月報表

#3.1.1執(zhí)行sql

sql = '''

select

a.日期,

a.上級單位,

a.供電單位,

a.線損率_含變損,

a.線損參考值

from? fq_ybb a

where? 線損率_含變損 not between(線損參考值 - 2) and (線損參考值+2)

and a.日期 = '%s'

order by a.上級單位,a.供電單位;

'''%(time_str)

ret = conn(sql)

#3.1.2獲取月報表異常區(qū)域

datalist = fqYbbTj(ret)

print("月報表異常區(qū)域:",len(datalist))

#4 保存分臺區(qū)日報表異常明細(xì)

savePath = "D:/Program Files/IS-RPA10/Project/線損分析/分區(qū)線損分析/分區(qū)線損月報表/結(jié)果匯總/分區(qū)月報表匯總"+time_str+".xls"

sheetName = "分區(qū)異常線損明細(xì)"

saveData(datalist,sheetName,savePath)

dirDate = datetime.datetime.now().strftime("%Y%m%d")

desPath = r"\\**\線損異常清單"+"\\"+dirDate

shutil.copy(savePath,desPath)

#5 線損異常明細(xì)上傳至數(shù)據(jù)庫

tabName = "fq_ybb_mx"

insFqMx(datalist,tabName)

print("上傳完成")

#6 excel數(shù)據(jù)轉(zhuǎn)化為SQL

table_name = "***"

resTxtPath = r"D:\Program Files\IS-RPA10\Project\營銷業(yè)務(wù)監(jiān)控\爬蟲數(shù)據(jù)寫入Edata/"+ time_str +".txt"

if datetime.datetime.now().day > 25 or datetime.datetime.now().day <6:

insert_sql= Get_InsetSQLByExcel(savePath,table_name)

writeToTxt(insert_sql,resTxtPath,table_name)

else:

print("執(zhí)行日度報表數(shù)據(jù)")

#日報表

def rbb():

#1、打開excel表

exlPath = "D:/Program Files/IS-RPA10/Project/線損分析/分區(qū)線損分析/分區(qū)線損日報表/"

curr_time = datetime.datetime.now()+datetime.timedelta(days=-3)

time_str = curr_time.strftime("%Y-%m-%d")

sheet = openExcel(exlPath,time_str)

print("成功獲取rbb")

#2、數(shù)據(jù)插入至mysql

tabName = "fq_rbb"

uploadExcel(sheet,tabName,time_str)

print("數(shù)據(jù)插入",time_str,tabName)

#3、對日報表連續(xù)異常數(shù)據(jù)進(jìn)行統(tǒng)計

# 3.1高損數(shù)據(jù)

# 3.1.1執(zhí)行sql

sql = '''

select

a.上級單位,

a.供電單位,

if(線損率_含變損 between (線損參考值 - 2) and (線損參考值+2), 0, 1),

a.線損率_含變損,

a.線損參考值,

a.日期

from fq_rbb a

where date_format(curdate(),'%Y-%m') = date_format(a.日期,'%Y-%m')

order by a.上級單位, a.供電單位,a.日期 desc

'''

ret = conn(sql)

#3.1.2獲取連續(xù)異常臺區(qū)

datalist = fqTj(ret,curr_time)

print("日報表連續(xù)異常臺區(qū)數(shù):",len(datalist))

#4 保存分臺區(qū)日報表異常明細(xì)

savePath = "D:/Program Files/IS-RPA10/Project/線損分析/分區(qū)線損分析/分區(qū)線損日報表/結(jié)果匯總/分區(qū)日報表匯總"+time_str+".xls"

sheetName = "分區(qū)線損異常明細(xì)"

saveData(datalist,sheetName,savePath)

dirDate = datetime.datetime.now().strftime("%Y%m%d")

desPath = r"\線損異常清單"+"\\"+dirDate

shutil.copy(savePath,desPath)

print("保存完成")

#5 線損異常明細(xì)上傳至數(shù)據(jù)庫

tabName = "fq_rbb_mx"

insFqMx(datalist,tabName)

print("上傳明細(xì)完成")

#6 excel數(shù)據(jù)轉(zhuǎn)化為SQL

table_name = "***"

resTxtPath = r"D:\Program Files\IS-RPA10\Project\營銷業(yè)務(wù)監(jiān)控\爬蟲數(shù)據(jù)寫入Edata/"+ datetime.datetime.now().strftime("%Y-%m-%d") +".txt"

if 5< datetime.datetime.now().day < 26:

insert_sql = Get_InsetSQLByExcel(savePath,table_name)

writeToTxt(insert_sql,resTxtPath,table_name)

else:

print("執(zhí)行月度報表數(shù)據(jù)")

# 中間省略 #

# 獲取主體

context = ""

for c in range(1, sheet.nrows):

row = sheet.row(c)

context = context + "("

# 拼接

for r in range(0, len(row)):

if r == (len(row) - 1):

context = context + "'" + str(row[r].value) + "'),\n"

else:

context = context + "'" + str(row[r].value) + "',"

context = context + ")"

context = context[0:-2]

context += "; \n"

insert_sql = "insert into " + table_name + sql_header + " values" + context

insert_sql = insert_sql[0:-4]

insert_sql += "; \n"

print("構(gòu)建SQL完成")

return insert_sql

#sql語句寫入TXT文件

def writeToTxt(insert_sql,resTxtPath,table_name):

file = open(resTxtPath,'a')

file.write("\ndelete from "+ table_name +";\n" + insert_sql )

if __name__ == "__main__":

main()

5? 線損異常統(tǒng)計軟件機(jī)器人的效果分析

從數(shù)據(jù)下載到發(fā)送通知,完全由流程機(jī)器人定時執(zhí)行,無須人工干預(yù),釋放人力,減少多環(huán)節(jié)操作過程中出現(xiàn)的誤操作,確保數(shù)據(jù)準(zhǔn)確性。原模式最少需要人為手工操作每天一個小時,現(xiàn)通過應(yīng)用統(tǒng)計軟件機(jī)器人,系統(tǒng)會在5分鐘之內(nèi)自動完成全部操作,效率提升最少12倍以上。在后期業(yè)務(wù)過程中,可按照業(yè)務(wù)管理要求,自定義閾值獲取異常數(shù)據(jù),對于連續(xù)異常天數(shù)較多的線損異常對象,可以實現(xiàn)提級通知。采用“流程機(jī)器人”和圖片識別等新技術(shù),實現(xiàn)數(shù)字技術(shù)與業(yè)務(wù)深度融合。

6? 結(jié)? 論

通過線損異常統(tǒng)計軟件機(jī)器人研發(fā)及應(yīng)用,不但可以減輕基層人員的工作量,為基層真減負(fù)、減真負(fù),同時提高工作效率,減少因人為原因造成的錯誤,提供數(shù)據(jù)準(zhǔn)確率,營造濃厚的創(chuàng)新氛圍,達(dá)到提質(zhì)增效的目標(biāo),為企業(yè)發(fā)展賦能。并且,通過創(chuàng)新的線損異常統(tǒng)計模式,定位線損異常問題,為用電客戶提供優(yōu)質(zhì)的用電服務(wù),使客戶更快用上電、用好電,讓客戶享受更快速更優(yōu)質(zhì)的服務(wù),提升電力企業(yè)數(shù)字化形象。

參考文獻(xiàn):

[1] 王永平.臺區(qū)線損管理與分析 [M].北京:中國電力出版社,2020:13-40.

[2] 褚瑞,袁志堅.機(jī)器人流程自動化(RPA)UiBot開發(fā)者認(rèn)證教程(上下冊) [M].北京:電子工業(yè)出版社,2020:10-30.

[3] 崔慶才.Python3網(wǎng)絡(luò)爬蟲開發(fā)實戰(zhàn) [M].北京:人民郵電出版社,2019:77-435.

[4] 黃永祥.精通Python自動化編程 [M].北京:機(jī)械工業(yè)出版社,2021:136-478.

[5] 韋世東.Python3網(wǎng)絡(luò)爬蟲寶典 [M].北京:電子工業(yè)出版社,2020:153-175.

作者簡介:鄭芒英(1985—),女,漢族,廣東湛江人,副高級工程師,工程碩士,研究方向:信息系統(tǒng)開發(fā)、數(shù)據(jù)管理;李昀(1985—),男,漢族,廣東湛江人,工程師,本科,研究方向:信息系統(tǒng)開發(fā)、信息系統(tǒng)管理。

猜你喜歡
異常線損自動
讓小鴨子自動轉(zhuǎn)身
電力計量裝置異常的監(jiān)測方法及處理對策
嵌入式系統(tǒng)課程“中斷、異常與事件”教學(xué)實踐及啟示
關(guān)于自動駕駛
探討糖尿病合并促甲狀腺激素、甲狀腺激素異常患者的臨床診斷治療
淺析農(nóng)村電網(wǎng)線損管理存在的問題及降損建議
農(nóng)網(wǎng)配電線路線損成因及降損措施
傍晚,路燈為什么能自動亮起來?
為什么皮膚劃破后血液會自動凝結(jié)
开平市| 京山县| 苗栗市| 泸西县| 广汉市| 临海市| 广河县| 巴彦县| 渝中区| 温州市| 恩平市| 贺州市| 大同县| 潞城市| 沈阳市| 乌兰察布市| 梅州市| 合川市| 永州市| 徐闻县| 湘乡市| 仙游县| 扎兰屯市| 万荣县| 板桥市| 嘉峪关市| 桂东县| 盖州市| 潼关县| 莱西市| 兴隆县| 汕尾市| 武邑县| 东乡县| 新化县| 巴中市| 玉龙| 伊吾县| 阿拉尔市| 大厂| 黔江区|