刘 诗,崔海涛,李焕奇
(国网吉林供电公司,吉林 吉林 132011)
目前地区电网调度工作中的信息化壁垒过于严重,各应用系统之间的数据没有打通,很难将数据进行硬连接整合。机器人流程自动化(robotic process automation,RPA)作为数字化转型的1个连接器[1],可以实现非侵入式,在不更改系统的前提下模拟人的操作,将不同系统的数据进行提取与整合,把多个系统连接起来。以UiBot为代表的RPA开发软件适用于规则和逻辑非常明确的日常重复性工作[2]。地区电网调度在对电网进行技术经济分析工作中,需要从多个不同厂家开发的独立应用系统中提取数据,然后将这些数据录入WPS表格中进行计算得出结论。这种情况用RPA软件代替人工操作能非常容易进行跨系统数据集成[3],即不需要修改应用系统程序,无需各系统间提供硬连接的数据接口,只需模拟人的操作[4],用软连接的方式通过界面元素抓取和自动化操作就能实现无接口的数据获取和写入[5]。
本程序是在Win7操作系统下,用UiBot5.3模块化操控FTP、IE、Chrome浏览器和WPS2019表格等应用软件,自动获取能量管理系统(energy management system,EMS)、电能量采集系统(以下简称电采)、用户用电信息采集系统(以下简称用采)等应用系统的数据后,通过链接或写入等方式进行有效融合和计算,并运用多种形式的数据可视化图表,实现了对地区电网调度运行中多个技术经济指标数据的自动分析与评价。
地区电网技术经济分析RPA程序的整体结构如图1所示。整个程序由设置与控制模块控制下的数据采集模块、数据格式化模块和数据融合与计算模块等构成,在电脑上分为2个文件夹存放。1个是程序文件夹,用于存放UiBot的flow、task和came格式的程序代码、res资源子文件夹和extend扩展插件子文件夹;另1个是数据文件夹,用于存放WPS表格格式的各原始数据、格式化数据和数据融合与计算模板文件,其中config.cfg设置文件和原始数据文件存于data数据子文件夹,格式化数据和数据融合与计算模板文件存于work工作子文件夹。
图1 地区电网技术经济分析RPA程序结构
a.设置与控制模块
设置与控制模块由1个名为config.cfg的文本文件和1个自定义对话框构成,config.cfg文件里面存放1个数据字典,用于存储采集模块所抓取数据的各个系统网站的链接地址、FTP地址,用户名、密码以及生成结果文件的存储位置与程序每日定时启动时间及手动自动选择等设置内容,各项设置内容以键值对的形式存于数据字典中,被保存于设置文件里;自定义对话框用于人机交互录入、修改和查看具体配置内容,两者之间通过文本框和多选框相关联,从而方便用户自由设置与查看。
设置与控制模块用于控制整个系统的数据流走向及诸多设置内容,有权限的用户可以通过对话框界面自由修改,当在自定义对话框中修改了某项内容,就可以保存到设置文件中,从而实现设置文件和自定义对话框之间的人机交互。程序默认为手动启动运行,当定时自动运行复选框被选中后,则程序运行后一直处于待命中,直到整定时间一到,才正式启动运行。
b.数据采集模块
数据采集模块由EMS数据抓取、用采数据抓取、地调电采数据抓取和省调电采数据抓取4个子模块构成,主要完成EMS、电采、用采系统数据抓取任务。各自由1个UiBot模块化程序构成,通过RPA程序模拟人工浏览WEB的形式全自动下载事先在上述4个系统服务器中定义好的原始数据格式,然后保存到本地data文件夹中。
设置与控制模块控制其手动或定时自动执行抓取数据的任务,通过非侵入式操作能够自动获取各自应用系统的原始数据,并具备自我判断功能,若数据没有抓取成功,程序经稍加延时后重复运行,直到数据抓取成功或达到预定的抓取次数。
c.数据格式化模块
数据格式化模块链接数据采集模块和数据融合与计算模块。数据格式化模块是由与数据采集模块一一对应的4个WPS表工作簿构成,每个工作簿均有输入和输出2个工作表,输入工作表与原始数据格式完全相同,输出工作表与数据融合与计算模块中与其对应的子模块格式完全相同。输入和输出工作表之间通过相应的计算公式和函数链接,这就保证了只要将原始数据写入数据格式化模块的输入工作表,那么输出工作表就会产生数据融合与计算模块所需要的固定格式数据。
在设置与控制模块控制下,程序先将原始数据表中的数据区域读入数组,再将该数组写入数据格式化模块的输入工作表中,可实现数据的去链接传递。输出工作表与数据融合与计算模块对应系统的输入数据表格式完全一致,且一一链接同步更新。
d.数据融合与计算模块
数据融合与计算模块由1个WPS表工作簿模板文件和1个报表自动生成程序构成。WPS表工作簿模板文件包括电量数据工作表和功率数据工作表以及由此计算和衍生而出的各采集点电量、各元件负载率、功率因数、各母线平衡率、各主变压器变损、各线路线损、电网分区分层损失统计、峰谷差、负荷率等工作表。各表之间的数据及分析结果均由函数和公式引用电量数据工作表和功率数据工作表而来,只要电量数据工作表和功率数据工作表中的数据被更新,则整个数据融合与计算过程自动完成,这时只要把模板文件复制成文件名标有具体日期的最终结果文件,再把结果文件中电量数据工作表和功率数据工作表中与各格式化文件之间的数据引用和链接替换成数值,就可以得到独立的结果文件。报表自动生成程序用UiBot编制实现上述功能代码,通过软件自动化指令,先读取含有数据引用和链接的区域到数组,再将该数组写回到原区域,可实现将数据引用和链接替换成数值的效果。
图2 变电站主变压器负载率可视化图
e.数据可视化图表制作
因为变电站配置2台主变压器,所以用两极旋风图来可视化负载率。利用REPT函数根据指定次数重复显示文本的功能,通过多次重复显示字符“|”来形成形状的不同长度对单元格进行填充,最后使用Haettenschweiler字体将符号变成条形图,效果如图2所示。为方便分析,首先将电量、负载率等数据用LARGE函数排序,再用INDEX函数索引相关站名或设备名称,然后利用上述方法生成各输电线路和主变压器等设备的各种运行数据的可视化图表。
地区电网技术经济分析RPA程序的开发应用[6],实现了原有各应用系统之间数据的自动迁移与融合,程序可定时自动生成调度需要统计的全部电网技术经济指标、当日及月累计数据报表,使得调度数据统计分析工作由原来的每次10多个小时缩短为3 min[7]。该系统能自动对线路、主变压器等元件负载率、损耗率、功率因数等各种指标进行计算与排序,同时生成可视化图表,迅速为应用人员从多角度提供生动形象的对比图表,从而快速得出对电网运行分析与评价的结论。该 RPA程序不但可代替人工执行电脑上批量繁琐重复的操作[8-9],跨系统搜集电网技术经济原始数据,还能有效避免人为失误,提高工作效率和数据精度[10],实现调度技术经济数据统计分析工作由每月1次改为每日1次,为电网调度对系统细化分析和随时分析提供有力的技术支撑。