基于设备模型对象的调控主站量测分类自动统计功能研究与实现
2019-11-18周耀辉李佳李永宋晓川覃巍
文/周耀辉 李佳 李永 宋晓川 覃巍
调度控制系统是电网调度运行和变电站无人值守集中监控的主要技术手段。为满足调度运行人员实际工作需要,需调度控制系统自动分类统计一些具有特定属性的线路有功或无功量测的总加。例如小水电上网负荷总加、趸售负荷总加、各个县区的用电负荷总加等。
常规的实现方案是自动化运维人员首先在计算值表中定义计算结果记录,再使用公式定义工具添加公式,在公式定义界面定义公式的操作数和公式计算过程、计算周期等信息。公式的操作数就是公式运行结果和参与公式计算的分量,使用检索器工具拖拽设备类记录的指定域或者预先定义的计算值表的结果域。公式计算过程定义界面采用类C语言的语法,支持常规的算术运算和逻辑运算,每行语句用分号结束。例如附图1就是计算XX县区趸售总加负荷的公式,计算过程是对部分特定线路的有功数据在其为正值时作为分量累计到求和结果中,如果为负值或零时则不予累加。
如图1所示,我们需要根据实际的统计规则,使用检索器拖拽每个计算分量。再维护计算公式语句,因运行方式变化或新投馈路会导致统计规则变化,需要通过公式编辑工具逐一对变化后的分量和计算规则进行维护。在人机界面方面,需要采用人工方式定义统计结果计算值和参与统计分量的前景数据关联,在统计规则变化后,需要人工逐一修改画面上遥测数据的关联属性和背景描述文字,维护工作量较大。
1 解决问题的思路
分析现有系统中计算公式的特点,找到计算公式的共性特征,利用程序来代替人工开展的计算公式定义维护工作,提高工作效率。
1.1 分析现有系统计算公式的特点
分析现有计算公式的特点,对XX地调调控主站OPEN3000系统定义的公式进行统计,发现针对一类具有共同属性的设备类记录的有功(无功)量测进行求和统计的公式约3214条,占了公式总数的81%以上。进一步分析求和统计公式的计算过程,可分为三类:直接累加、加正值(只有数值为正才累加,如果为0或负数则忽略,用于统计供电量)、变负加(只有数值为负值才取反后再累加,如果为0或正数则忽略,用于统计购电量)。
1.2 解决问题的思路
对具有特定属性的设备类记录的有功(无功)量测进行求和统计的公式,类似EXCEL软件SUMIF()函数的功能。只是SUMIF()函数仅仅是对特定记录的某些单元格求和,而统计公式的计算类型包括求和、加正值、变负加三种。
如果能对设备对象记录扩充标示不同统计类型的标签域,将设备记录标签作为筛选条件实现对实时库中不同类型的线端或负荷记录的量测数据进行包括求和、加正值、变负加等类型的自动统计,将大大减少在计算公式方面的维护工作量。通过将孤立的计算测点调整至设备模型,以设备为对象进行存储和访问,结合电网模型层次关系实现自动高效计算。可减少日常维护工作量、减少出错的可能性。
此外,设备记录的标签域可用于列表控件展示分类统计数据源记录的筛选条件,减低人机界面维护工作量。
2 解决问题的方案
2.1 定义统计计算类型
针对实际需求,定义“直接累加”、“加正值”、“变负加”三种统计计算过程。假设两个操作数为@1和@2,“直接累加”的计算过程可描述为“@1+@2;”;“加正值”的计算过程可描述为“max(@1,0)+max(@2,0);”;“变负加”的计算过程可描述为“fabs(min(@1,0))+fabs(min(@2,0));”。三类计算过程的示例可用表1、表2描述。
2.2 设备表记录扩充属性域
对常用于统计的设备记录表扩充属性域,包括负荷表(energysummer,412)、交流线路端点表(aclineend,415)、变压器绕组表(transformerwinding,417)。每张表增加英文ID为ak_bak1、ak_bak2、ak_bak3、.....ak_bak42,一共42个整数型的域。这些域的初始状态的值都是0,通过这些属性域等于预先设定的不同数字来表征记录的不同属性。
例如,拟采用负荷表(energysummer,412)、交流线路端点表(aclineend,415)的ak_bak3域标示该负荷、交流线路端点记录属于某一特定轮次低周减载备切线路。在域信息表中将负荷表(energysummer,412)、交流线路端点表(aclineend,415)的ak_bak3域的中文ID修改为“低周减载类型”。如果某一记录的ak_bak3域值为0,表示该线路不属于低周减载备切线路;如果某一记录的ak_bak3域值为1,表示该线路属于低周减载第一轮的备切线路;如果某一记录的ak_bak3域值为2,表示该线路属于低周减载第二轮的备切线路。
图1:公式编辑器定义公式计算过程界面
图2:对“负荷分类统计结果”和“线端分类统计结果”统计求和
为了便于维护和通过列表控件直观展示不同设备记录的属性,可制作自定义菜单描述负荷表(energysummer,412)、交流线路端点表(aclineend,415)的ak_bak3域。例如定义名称为“低周减载类型”的菜单。菜单配置如表3所示。
通过配置ak_bak3域的输入属性为“菜单录入”,菜单名称为“低周减载类型”。可实现在dbi维护记录属性或列表控件展示或者维护相关设备记录的ak_bak3域时,直接显示相应“低周减载类型”的汉字定义,提高人机界面的友好性。此外还可将属性域作为列表展示记录的筛选条件,例如通过“ak_bak3=3”作为筛选查询条件可以列出所有低周减载第三轮的备切馈路。
表1:统计过程描述
表2:统计过程描述
表3:自定义菜单配置示例
表4:统计结果厂站定义
2.3 定义存在统计结果的设备对象
常规的计算公式存放结果分量方案是在计算值表中增加记录,将计算结果存在在计算值记录的计算结果域。如能将负荷、线端不同设备记录类型统计的结果存放在与统计源记录类型一样的特定设备记录中,有功记录域存放有功统计结果,无功记录域存放无功统计结果。不但能够实现按照设备记录对象类型的自定义统计,还能够利用系统的电流负载率计算功能自动统计结果分量的占比等数据。针对常见的统计类型,按照表4所示建立下面三个厂站,用于存在计算结果。
建立统计结果厂站后,我们可以根据统计求和的需要,在上述3个厂站建立了相关的设备记录用于存放不同类型设备记录的自定义统计结果。例如,我们希望存放计412号表负荷表的ak_bak4域分别为1-4的不同负荷记录的有功和无功求和统计结果,需要在“energys_sum”厂站中提前建立负荷记录,这些负荷记录的naming域为ak_bak3_1、ak_bak3_2、ak_bak3_3、ak_bak3_4。统计记录的中文名称可根据实际含义进行修改,我们可根据实际情况将naming域(英文ID)为ak_bak3_1的负荷记录的中文ID修改为“低周减载第一轮负荷统计结果”
2.4 定义量测分类统计功能的系统参数
在系统参数定义中定义下列配置参数,用于相关程序判断是否启动了面向设备模型对象的量测自动统计功能。
(1)sca_common/sca_sum_calc
sca_sum_calc=1,启用面向设备模型对象的量测分类统计功能(sca_sum_calc)
sca_sum_calc=0,启用面向设备模型对象的量测分类统计功能(sca_sum_calc)
默认sca_sum_calc=0
(2)sca_common/sum_calc_cycle
sum_calc_cycle:计算周期,单位为秒
默认sum_calc_cycle=5
2.5 量测分类统计任务定义
配置任务定义文件“sca_sum_calc.ini”用于描述量测分类统计任务,该文件的说明如下。
#sca_sum_calc_task:需要求和计算的任务数量;
任务编号,表号,用于统计筛选的域英文名,筛选条件,计算类型;
#第一列数字表示任务的序号,第二列数字表示需要求和的表号,第三列内容为求和统计时的筛选域,第四列内容为求和统计时的筛选条件,第五列内容为求和计算类型。
量测分类统计的任务可需要根据调度运行的需求添加,例如“sca_sum_calc.ini”的文件内容如下:
该配置文件定义了8条量测分类统计任务,对部分任务的定义描述如下。
第1行任务定义表示对412号表负荷表进行求和统计,筛选条件为ak_bak1=1;将所有ak_bak1=1的记录的有功直接求和,结果放在“energys_sum”厂站下的naming域为ak_bak1_1的负荷表记录的有功域;将所有ak_bak1=1的记录的无功直接求和,结果放在“energys_sum”厂站下面的naming域为ak_bak1_1的负荷表记录的无功域。
第7行任务定义表示对412号表负荷表进行求和统计,筛选条件为ak_bak2=88;将所有ak_bak2=88的记录的有功进行本文描述的“变负加”统计,结果放在“energys_sum”厂站的naming域为ak_bak2_88的负荷表记录的有功域;将所有ak_bak1=1的记录的无功进行本文描述的“变负加”统计,结果放在“energys_sum”厂站的naming域为ak_bak2_88的负荷表记录的无功域。
第8行任务定义表示对415号表交流线路端点表进行求和统计,筛选条件为ak_bak40=7;将所有ak_bak40=7的记录的有功进行本文描述的“加正值”统计,结果放在“lineend_sum”厂站的naming域为ak_bak40_7的交流线路端点表记录的有功域;将所有ak_bak1=1的记录的无功进行本文描述的“加正值”统计,结果放在“lineend_sum”厂站的naming域为ak_bak40_7的交流线路端点表记录的无功域。
3 基于设备模型对象的量测分类自动统计功能实现与应用
3.1 基于设备对象建模的量测分类自动统计功能实现过程
系统管理程序通过扫描“sca_common/sca_sum_calc”参数的内容判断是否启动面向设备模型对象的量测自动统计功能功能。如果启动了面向设备模型对象的量测自动统计功能,则逐条读取“sca_sum_calc_task”文件描述的分类自动统计任务定义,针对每一条统计任务,首先根据任务定义检查是否已建立统计结果记录,然后再按照任务定义开展量测分类统计计算。
3.2 自定义统计结果展示界面
图3:维护设备记录标签属性
图4:调度控制系统公式维护定值单
以“低周减载监视”统计为例,我们在系统建模时,10kV的出线定义为负荷,35kV及以上的出线定义为交流线路端点。在完成针对负荷表(energysummer,412)、交流线路端点表(aclineend,415)的分类型自动统计后,需要将两者的统计结果进行累加。为了便于通过列表控件展示统计结果,可定义名称为“低周减载监视”的厂站,增加名称为“低周减载第一轮”、“低周减载第二轮”等的负荷记录。将“负荷分类统计结果”和“线端分类统计结果”相应的统计结果累加。统计公式如图2所示。针对一种特定的统计仅需要编制1条公式,且该公式不需要随运行方式改造和参数统计的分量多少而变化,减少了维护工作量。
3.3 统计源记录分类属性维护界面
因配置了用户自定义菜单,可通过dbi数据库维护工具或列表控件对统计源记录的属性标签域进行维护,维护界面如图3所示。修改负荷记录的“低周减载类型”属性等字段,不仅仅改变了设备的标签属性,也自动改变了自定义统计程序中相关用户定义统计任务的处理过程。此方案不仅减少了大量人工维护计算公式的工作量,还可以快速响应运行专业提出的统计公式变更需求。将每年例行的“低周低压减载”方案变更维护工作由以前的7个工作日缩短到半天。此外,在设备表记录扩域时,不仅针对目前常见的统计业务扩充了属性字段,还预留了一定的余量,可满足未来8-10年的新增统计业务需求。
图5:统计源记录展示人机界面效果
图6:面向设备模型对象的自定义统计整体人机界面展示效果
为进一步规范调度控制系统中公式等配置参数管理流程,将负荷表(energysummer,412)和交流线路端点表(aclineend,415)等参与统计汇总的设备记录表的厂站名、设备中文名称、设备ID、属性标签域导出成EXCEL表格,提交给运行方式专业编制“公式维护定值单”,如图4所示。运行方式专业完成“公式维护定值单”的编制和审核后,提交给自动化专业进行调度控制系统数据库中设备记录属性的维护。为进一步减少维护工作量,开发了设备记录标签域属性批量维护工具,将“公式维护定值单”中厂站名、设备中文名称、设备ID、属性标签域等信息加工成E格式文件,经过反向隔离安全传输到Ⅰ区,采用批量工具导入该E格式文件,经用户确认后自动修改相应设备记录的相关属性标签域的内容。既规范了调度控制系统中统计公式的变更维护流程,也减少了人工维护工作量。
3.4 统计源记录展示界面
通过设备记录的标签属性域作为列表筛选条件,实现统计源记录的免维护展示功能。如图5所示。“低周减载第一轮负荷监视”界面展示了所有属于“低周减载第一轮”的负荷和线端记录。该人机界面是自适应的,后期调整低周减载的备切方案,只需要在数据库中维护相关负荷和交流线段端点记录的“低周减载类型”等属性标签域的内容,不仅系统会自动改变统计求和方案,还会自动改变该界面显示的设备记录,实现了人机界面的免维护。
3.5 自定义统计整体人机界面展示效果
以“低周减载监视”统计功能为例的整体的人机界面展示效果如图6所示。为提升调度人员使用感受,制作了饼图、棒图等控件多样化展示统计结果数据。点击表格或者棒图上遥测数据右键可查询该遥测数据的历史曲线,点击棒图下面的图例汉字可查询到每个具体轮次的备切馈路信息。
4 结束语
通过在设备类记录扩充标签域,利用标签域作为列表显示和自动统计的筛选条件实现对不同类型的线端或负荷量测的有功或无功数据按照预定义方案进行自动求和运算的方案。减少了近3000条计算公式的人工维护工作量,实现了负荷分类统计功能的免维护自动统计和界面自动更新,实现了统计公式的定值化管理,并预留了扩展新增自定义统计功能的能力,在XX地调新一代调度控制系统的建设过程中开展了研究和应用实践,提高了系统建设和维护工作效率。