当前位置:首页 期刊杂志

基于QT的电能表仿真系统的研究实现

时间:2024-07-28

周崇亮,潘云嵩,万晓冬

(南京航空航天大学 自动化学院,江苏 南京 211106)

0 引言

随着国家“智能电网”和高级测量体系的建设以及相关技术的推进,智能电表作为基础元件和核心设备发挥着举足轻重的作用[1-3]。随着科技的发展,对电表的数据采集要求越来越快速和稳定[4]。但最重要的是对电表的测试越来越关键,而这些测试都是围绕电表进行的,在实际实验中需要大量的实物电表作为依据的。由于实物电表的客观性,电表本身存在一定的电子元器件老化,环境等不确定因素影响,并且实物电表在资产管理、接线上电等工序上会增加大量的成本,造成额外的投入。而且在对智能电表进行检测时,需要做一些故障性实验,比如过电压、过电流等,若在实物上进行会对电表造成损伤,一定程度上也增加了实验成本,并且也无法得到预期的结果[5]。

鉴于上述问题,为保障电表测试的安全可靠性和测试的连续性以及减少成本,亟需设计一款虚拟智能电表仿真系统,实现对电表的实时检测。

1 系统研究现状

目前,国内外的虚拟电表一般只是用于电能表及电能量采集的开发过程中的仿真环节,部分用于检测目的的虚拟电表也只是设备测试软件的模块,无法独立运行。同时当前市场上的虚拟电表多数都是只对单个电表进行模拟仿真,没有考虑到当多个电表同时测试或者仿真电表数量可变以及不同电表的协议不同时如何调整的情况。例如,威胜的IEC 62056的电表模型,是依据IEC 62056规约实现的一块虚拟电表,其中包括逻辑设备单元、管理逻辑设备,每个管理逻辑设备又由若干个COSEM接口类对象组成;所谓通讯协议就是虚拟电表对外部设备单元与通信协议栈之间的交通通道,发送命令通过协议传送到虚拟电表完成功能的实现,是虚拟电表与功能实现之间的重要交流保障。

武汉大学的多功能多协议仿真电表[6-7],将仿真电表系统分为数据存储模块、底层通信模块和高层管理模块,并且实现了一条链路上的多种协议电表的仿真。系统中虽然考虑到了多种协议,但没有考虑到当仿真电表数量动态可变时或者在仿真系统运行同时想加入其他电表进行仿真,该如何调节,如何添加等情况。

针对目前的虚拟电表仿真系统的实际情况,结合上述存在的问题,依据实际智能电表的功能要求[8],本文利用QT视图、XML文件与数据库相结合的技术实现电表动态配置仿真与报警提示功能仿真系统[9]。

2 系统方案设计

虚拟智能电表仿真系统包括用户界面(user interface, UI)、信号发生器、XML(extensible markup language,可扩展标记语言)文件数据库、MySQL数据库、规约解析单元和通信单元。其系统总体结构设计框图如图1所示。

在虚拟智能电表仿真系统运行时首先通过XML文件将所存储的电表通信协议和规约参数加载到虚拟智能电表中,以便于后期的数据采集和故障监测等一系列操作;然后模拟信号发生器给虚拟智能电表发送一系列特定的指令,用来采集电表的基本参数数据,产生通信协议中所要求的各项数据项,并将采集的数据保存到数据库中。同时还可以发送一些错误的指令用来采集电表故障事件的数据,便于后期对电表进行预测,将由于错误指令产生的事件记录到XML文件中;最后通过通信层和协议解析,让虚拟电表通过RS-485转接口将实物与电脑相连接,以备实验室测试以及实际应用[10]。

图1 系统总体框图

3 系统具体功能模块设计与实现

考虑到目前市面上的电能表仿真测试系统已经无法满足现实需求,同时基于上述总体系统的设计,本文主要介绍在电能表系统仿真时,智能电表数量和种类能够实时添加,做到电表与参数的对应匹配并在仿真界面上能够直接看到当前仿真电表所有参数的性能指标,以及数据的实时采集等功能。简洁、强大、合理的界面操作提供是仿真系统质量的保证,而界面的功能需求是实现友好界面的基础[11-12],各个功能层次的模块单元框图如图2所示。

图2 系统具体功能模块框图

1) 通信管理是实现对串口有效的控制,并对数据通信状况进行监控。

2) 电表动态设定是用于实现多个电表的仿真和实现电能表数量种类的添加、修改、删除等操作的管理。

3) 电表数据配置是实现各个电能表的参数数据显示、添加、删除、设置等操作的管理以及电能表参数数据的查询等。

电表动态设定模块和电表数据配置模块结合数据库与XML文档技术,可实现电表动态可配置的功能。当仿真时动态添加电能表数量或增加电能表种类时,并将其独有的参数一同添加到数据库中,此时在数据库内部会自动将电能表与参数进行匹配操作。当仿真时调用电能表与之对应的参数也会一并显示在仿真界面上,实时动态可配置的同时确保仿真电能表的准确性。

4) 协议管理是为了查看协议的数据帧格式和属性,并实现协议的添加、修改、删除的管理。不同种类的电能表通信协议会有差异,此模块用来实现电能表仿真系统的通用性。

5) 动态电表数据管理实现了多个电能表多个数据的同时变化。根据实际情况的需要,在界面上用户能够自定义电能表和参数数据变化的方式,同时通过分析数据,以图像的形式呈现在界面上,便于更直观地查看变化。

6) 附加功能主要是对用户错误操作时弹出相应的提示信息,以及对电能错误信息的反馈显示。便于用户直观地观察当前仿真系统出现的错误信息。

3.1 整体功能界面

功能界面是用来实现系统与人工操作的完美结合,也称人机交互。包括用户登录界面、模拟电能表主体界面和仿真图像显示界面。其中最主要也是最关键的是模拟电表中电表事件单元。

3.2 系统登陆界面

用户界面作为程序启动后的初始化界面,主要实现仿真系统与主体界面的连接以及系统与数据库的连接。主要实现系统与数据库的实时数据共享,便于后续对系统的一系列操作所产生的数据进行保存或读取。是实现人机交互的接入口。用户登录界面如图3所示。

首先数据库驱动里QT自带的QSQLITE和QMYSQL、QMYSQL3和QODBC等一系列数据库驱动可供选择。数据库名、用户名和密码都是用户提前设定好的,但是主机名和端口号必须是用户本身主机的名字和端口,不可以随意更改,否则无法正确地连接数据库。

图3 用户登录界面

3.3 系统主体界面

登录界面之后就进入主体界面,大体分为通信层、模拟电表和协议解析3部分,共同组成系统的具体功能配置界面。其中模拟电表部分尤为重要,主要包括电表数据管理、通信协议、规约参数和电表事件4个单元。

1) 模拟电表单元

电表数据管理单元主要是用来对采集到的数据进行处理并显示到界面上,并且随着时间的推移过程中,界面上的数据也随之实时变化,同时在需要时能够对数据进行添加删除等操作,体现数据操作的灵活性。

通信协议单元的最终框架是形成一个用户根据需要手动配置的界面。在需要某种协议的时候,用户直接通过界面添加所需要的协议数据项,并同时对添加的协议进行解析和封装,在使用时从数据库中直接调用,而不需要修改程序。

规约解析单元主要用来对电表的各个参数类型进行限制规定,使其在限定范围内活动,一旦超出界限就会报警。

电表事件包括两个方面,一个是电表与参数的匹配配置单元;另一个是电表对故障事件的报警和记录单元。其中电表与参数匹配单元是关键。实现以界面化的方式观察到仿真电表个数种类添加的情况。可以通过手动设置表号、表地址、采用的协议和所需要匹配的参数类型,并在提交后自动添加到数据库中保存。此时在数据库中会自动给电表项和参数项各添加一个主键用来对于两者之间进行匹配,实现电表与参数的实时准确添加显示,以便随时调用。电能表实时添加界面实现如图4所示。

在添加完电表和相对应的参数后,即可在电表和参数匹配单元中看到刚添加的电表类型和对应的所有参数类型。在此单元界面上,初始时电表和参数单元格显示的是数据库中所保存的所有电表和参数类型。当单击其中一个电表类型时,系统会自动锁定电表在数据库中的主键,并用此主键在数据库参数表中索引与之电表相匹配的参数,并显示到参数单元格中,而与之不相匹配的参数则会自动隐藏,实现了电表与对应参数实时匹配的性能。在电表与参数匹配的同时在另一个区域内可以更直观地看到当前所选择的电表类型和与之相对应参数数量及当前所观察的具体参数类型,并可以通过加载XML的方式将各个参数的性能指标显示出来。通过此主从视图实现系统仿真电表数量的实时添加,参数匹配和参数性能指标的灵活性,也更加的人性化,充分达到人机交互的目的。

图4 电能表实时添加界面

其中系统仿真电表事件的主从视图模块界面,主要包括4个单元格,分别是电表、参数、详细信息和XML文档显示,每个单元格的功能在上述都已介绍。电表、参数实时操作界面如图5所示。

图5 电表、参数实时操作界面

此界面主要用来实现电能表和参数的动态可配置。结合数据库XML,不仅可以实现仿真时电能表动态配置,还能够实时观察对应电能表参数的性能指标。

综合上述的介绍,主体界面上电表事件的工作流程图如图6所示。

刚开始程序运行时,先连接数据库,再进行数据库检索,将符合要求的电表和参数一次性都显示到界面相应的单元格内。当点击其中一个电表类型时,会获取此电表对应的主键,并在数据库中搜索与此主键相匹配的参数,最终显示到界面上,并将不相关的参数全部隐藏。

最后可以通过加载XML的形式,将选择的参数性能指标显示出来。在系统仿真的时候,可以在任意时刻点击添加电表按钮,在出现的界面上,将需要添加新电表的信息一一输入,最后将电表和参数类型保存到数据库,参数的性能指标保存到XML文件中。最终实现电表的动态添加及实时仿真的效果。

图6 电表事件操作流程图

2) 通信单元和协议解析单元

通常通信单元和协议解析单元是联系在一起的,只有在协议解析的基础上才能进行正常的通信。其中通信单元包括串口设置和数据通信两部分,而协议解析单元包括协议显示和协议帧的接收响应两部分。这两部分主要用在系统仿真的前期对数据的采集和后期对数据进行处理两个阶段。具体的实现流程如图7所示。

在前期,首先利用串口工具对智能电表发送请求帧命令,此时对协议的帧命令进行解析,并响应帧,则可以将电表中的数据进行读取并保存到数据库中。在后期操作过程中,只要对存储在数据库中的数据进行读取即可。

图7 通信与协议的工作流程图

4 结语

针对目前市面上对仿真电能表系统的不够完善,并分析对仿真电能表系统的需求,提出基于QT界面设计完成的仿真电能表和参数在线实时匹配系统。结合MySQL数据库与XML文件管理技术实现系统数据处理与参数性能指标的设定。该系统的建立相对于其他的仿真系统具有如下几个优势:

1)有效改善了仿真时电能表的实时操作性,更加灵活。

2)大大提高了对电能表仿真的效率。

3)理论上虚拟智能电表仿真系统还可以促进协议测试的创新。

4)该系统还可以为用电信息采集系统的建立奠定坚实基础。

[1] 张文亮, 刘壮志, 王明俊,等. 智能电网的研究进展及发展趋势[J]. 电网技术, 2009,33(13):1-11.

[2] 陈树勇, 宋书芳, 李兰欣,等. 智能电网技术综述[J]. 电网技术, 2009, 33(8):1-7.

[3] 张东霞, 苗新, 刘丽平,等. 智能电网大数据技术发展研究[J]. 中国电机工程学报, 2015(1):2-12.

[4] 王臻. 多功能多协议仿真电能表的设计与实现[D]. 武汉:武汉理工大学, 2008.

[5] 苏慧玲, 王忠东, 蔡奇新,等. 大规模智能电能表自动化检定的关键技术[J]. 中国电力, 2016, 49(6):126-131.

[6] 曾维, 罗粟, 黄宏,等. 封装串口数据通信协议的设计[J]. 微型机与应用, 2014(18):56-57.

[7] 赵兵, 翟峰, 李涛永,等. 适用于智能电表双向互动系统的安全通信协议[J]. 电力系统自动化, 2016,40(17):93-98.

[8] 广泽晶, 王坤乾. 虚拟智能电表仿真系统的研究[J]. 电力系统通信, 2011, 32(9):83-86.

[9] Bayindir R, Hossain E, Vadi S. The path of the smart grid -the new and improved power grid[C]// International Smart Grid Workshop and Certificate Program, 2016(4):138-141.

[10] 张志, 李琮琮, 王平欣,等. 智能电能表RS485接口设计方案综述[J]. 电测与仪表, 2016, 53(5):124-128.

[11] Tang H. Study on Influence Evaluation of Big Data and Cloud Computing Technologies for Intelligent Distribution Power Grid[J]. Electric Power Science & Engineering, 2016.

[12] Mahmood K, Chaudhry S A, Naqvi H, et al. A lightweight message authentication scheme for Smart Grid communications in power sector [J]. Computers & Electrical Engineering, 2016, 52(6):114-124.

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!