基于Python的遥信抑制分析系统

2021-01-26 02:27胡东林马润松张中仁
农村电气化 2021年1期
关键词:数据表封锁间隔

胡东林,马润松,张中仁,王 娟

(云南电网有限责任公司昆明供电局,云南 昆明650011)

调控一体化实施后,调控中心收到的遥信量显著增加,监视人员面临的压力随之增大。正常情况下,遥信抑制能够减少大量无关信号的上送,确保监盘质量。同时会在检修工作完工等满足条件要求后,恢复遥信抑制使遥信正常发出;但若未及时恢复,将会导致漏监信号以至于造成设备故障,影响电网的安全稳定运行。

目前防止遥信抑制未及时恢复的途径主要为:途径一,通过监盘系统本身具有的遥信抑制查询功能查看遥信抑制的情况[1-2];途径二,通过管理手段开展,即在遥信抑制时进行相关记录,遥信恢复后对记录闭环,按值移交。通过途径一查询取决于系统开发时的功能完善情况,由于系统本身原因,处于遥信抑制查看界面时,监视系统反应变慢,界面可能会非正常关闭。通过途径二能从本质上杜绝遥信抑制后未及时恢复的情况,具体情况要看执行的刚性,但管理人员依然无法就遥信抑制及恢复情况进行抽查,缺乏分析评估的依据。

1 系统设计

现研究一种基于Python 的遥信抑制分析系统,系统采用Python 语言进行程序编写,使用PyQt5 库进行系统界面开发,首先通过cx_Oracle 库,连接OP_YX、OP_BAY 数据表并读取数据;其次寻找被抑制的厂站、间隔、遥信信号,通过三者之间的逻辑关系处理,从而判断该厂站、间隔、遥信是否被抑制;然后将相应的数据内容通过界面展示或文档下载两种方式进行导出,供使用者查询分析,最终通过PyInstaller 库打包为可执行文件,以便该系统能够快速复制到其他电脑操作使用。系统总体设计如图1所示。

图1 系统设计图

2 实施方案

2.1 程序编写

本系统程序开发时采用的cx_Oracle、PyQt5、PyInstaller库均为Python语言的第三方库,在开发时需要单独安装。采用cx_Oracle库访问Oracle数据库API 来实现数据的查询工作;使用PyQt5库[3],能够将代码指令以人机交互界面的方式呈现,使用者点击软件按钮即可开始查询,降低了使用门槛;同时为了方便使用;通过openpyxl 库将查询得到的文本导出为Excel文档格式,且支持一键导出;为了保证在其他电脑上进行使用时不需要再安装Python 及其相关的第三方库,采用PyInstaller 库将Python 编写后的程序进行封装,打包生成绿色安装包或者单个可执行文件,方便将系统安装到其他办公电脑进行操作。

2.2 数据读取

当前调控一体化系统采用OPEN3000 系统,相关四遥量信息均实时存储于电力自动化系统二次系统安全Ⅰ区中,且根据调控要求会定时下发至安全Ⅲ区。为确保操作及数据安全,只能从安全Ⅲ区读取数据,通过识别,遥信抑制与恢复、厂站抑制与恢复、遥信封锁与解除操作相关数据存储在OP_YX数据表中,间隔抑制与恢复操作相关数据存储在OP_BAY数据表中。

如表1 所示,OP_YX 中存储着大量的其他无关信号,故通过数据表中STATUS 列属性剔除无效数据(遥信确认、光字牌确认、信息不全),只保留有效数据进行读取,提升系统运行速度。

表1 2020年08月OP_YX数据量分析表

如表2 所示,OP_BAY 中数据量相对较少,只涉及到间隔的抑制与恢复、挂牌与摘牌,同样通过数据表中STATUS 列属性剔除无效数据(挂牌、摘牌),只保留有效数据进行读取。

表2 2020年08月OP_BAY数据量分析表

为了能方便地从Oracle数据库中读取相关数据,在安装好Oracle 用户端以及cx_Oracle 库,设置好cx_Oracle.makedsn、cx_Oracle.connect条件后,系统通过Python 调用cx_Oracle 函数,cx_Oracle 动态加载Oracle用户端来读取数据库。

2.3 算法研究

在OP_YX 数据表中,遥信封锁分、遥信封锁合、解除封锁信号分别对应STATUS 列值1、2、3,遥信置数分、遥信置数合信号分别对应STATUS 列值4、5,告警抑制、告警恢复信号均对应STAUS列值7,厂站告警抑制、厂站告警恢复信号分别对应STATUS 列值19、20。在OP_BAY 数据表中,间隔告警抑制、间隔告警恢复信号分别对应STATUS 列值1、2。由于遥信置数分、合信号只会暂时将遥测用某个值代替,实际数据更新后自动解封并恢复,所以不在遥信抑制查找之列。

就信号本身而言,若要信号恢复正常,遥信封锁分、合信号后,须有解除封锁信号,告警抑制信号后须有告警恢复信号,间隔告警抑制信号须有间隔告警恢复信号,厂站告警抑制信号后须有厂站告警恢复锁信号。遥信抑制方面,单条遥信告警抑制、间隔告警抑制、厂站遥信封锁之间也存在从属关系,若厂站告警抑制,则其包含的所有间隔、遥信均无法发出信号,若间隔遥信抑制,则其包含的所有遥信无法发出信号;遥信恢复方面,间隔告警恢复与单条遥信恢复存在一定控制关系,如间隔恢复时间晚于间隔中遥信抑制时间,则遥信将一起恢复,但不会有遥信恢复操作的信号;如间隔恢复时间早于间隔中遥信抑制时间,则遥信仍将处于抑制状态;由于在OPEN3000 系统中,厂站告警恢复与间隔恢复、遥信恢复属于不同的域,故无相关的控制关系。

首先用distinct 函数从Oracle 数据库中取出去重后的列表,即从OP_BAY、OP_YX 中分别取出以BAY_ID、 YX_ID 为 关 键 字 的 列 表bay_id_list、yx_id_list;其次从两个数据表中分别导出间隔操作记录bay_rec、遥信操作记录yx_rec,并按时间从近到远的顺序排列,然后建立op_bay_list、op_yx_list,以分别代表间隔、遥信处于抑制状态的清单,初始状态为空列表,最后开始开关间隔恢复与遥信告警恢复的逻辑关系,用来判断遥信和间隔是否处于抑制状态。

在判断完某个遥信处于抑制状态后,还需要判断之后的时间段内其所属间隔是否有间隔告警恢复的操作,若有则应将此遥信抑制从op_yx_list列表中删除。

通过上述逻辑处理,最终得到的op_yx_list 与op_bay_list 即为符合实际情况的遥信抑制信号与间隔抑制信号列表。

2.4 数据导出

为方便管理人员或监视人员等使用者进行数据的追溯、分析等操作,分析系统提供了文档导出功能,Python处理Excel的第三方库主要有xlwt、xlrd、openpyxl等,xlwt库支持对xls等Excel文件的写入,xlrd库支持对xls等Excel文件的读取,openpyxl库支持对xlsm、xlsx 等Excel 文件的读写。系统采用openpyxl 库,通过建立Workbook,对Excel 进行数据写入操作。反映在系统界面中,用户通过点击“直接生成文档”按钮,可将查询数据直接导出为Excel文档。

2.5 功能模块及界面展示

软件系统运行所需的系统配置:Windows7(32/64 位)或Windows10,电脑需安装Oralce Database Client,以保证驱动正确安装,软件能够正确调用用户端并连接数据库读取数据。

系统主要包含2种抑制查询功能,主界面如图2所示。

“当前抑制查询”功能,此种方式下,只展示查询时间段内,哪些遥信、间隔、厂站处于告警抑制或封锁状态,以及相关的汇总情况,便于监视人员快速查看当前信息,判断是否有误抑制的信号并采取措施。

“恢复与抑制查询”功能,此种方式下,会展示查询时间段内,遥信、间隔、厂站告警抑制与恢复情况、遥信封锁与解封情况,便于管理人员或监视人员进行追溯、统计或分析。

图2 主界面图

系统支持直接导出到文档,选好查询内容后,点击主界面上“直接生成文档”按钮,将直接生成Excel 文档到本地,其内容与界面展示内容完全一致,便于根据分析情况开展下一步的风险管控工作。

3 总结及展望

通过该系统,一是提供了当前处于抑制状态的遥信,提醒监视人员及时进行告警抑制的恢复操作,防止信号无法上传导致的信号漏监视;二是实现了遥信抑制与恢复操作的详情展示,提供了遥信抑制的追溯功能;三是办公区电脑操作,解决了占用生产区监控资源导致系统缓慢或非正常关闭的问题。

遥信抑制是调控工作中的一个正常环节,但如果没有及时恢复抑制或未发现哪些遥信处于抑制状态,则可能导致严重的电网或设备问题,该遥信抑制分析系统应用于调控中心监视人员或管理人员,可防止误抑制遥信,有效降低遥信漏发导致漏监视从而引发的安全风险。

猜你喜欢
数据表封锁间隔
湖北省新冠肺炎疫情数据表(2.26-3.25)
湖北省新冠肺炎疫情数据表
湖北省新冠肺炎疫情数据表
间隔之谜
成语猜猜猜
上楼梯的学问
QH165点焊机器人数据库开发技术
头夹球接力