一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于半虚拟化的电能表自动测试方法与流程

2022-03-23 01:35:19 来源:中国专利 TAG:


1.本发明涉及一种测试电能表的方法,尤其是基于半虚拟化的电能表测试方法。


背景技术:

2.电能表除了计量功能之外,还集成了历史数据保存、供电质量监控、多种通信规约等功能。因为其功能多样且复杂,行业针对电能表的自动化测试方式也提出了更高的要求。
3.传统的电能表自动测试装置一般由pc端上位机、测试台体和通信线缆组成。上位机运行控制软件,控制软件负责解析测试脚本,并通过通信线缆与与测试台体、待测试电能表分别进行通讯。测试时,上位机控制测试台体向电能表输出特定的电压、电流,模拟现场工况,然后上位机采集电能表中的相关数据,通过分析,对事件记录、曲线记录等功能进行测试判断。
4.上述测试方式存在以下缺陷:
5.首先,必须配备测试台体为电能表提供指定的电压与电流,而测试台体设备较为笨重,且硬件成本高,导致测试效率低下,成本高昂。
6.其次,命令延迟高。控制测试台体的命令经由pc端下发到测试台体,测试台体再根据命令发出对应的电信号,最终电信号再被电能表测量到。这个过程中,测试台体接收到命令后需要一段调整稳定的时间才能发出合格的电信号,严重影响上位机的测试脚本对时间的测量,造成误差。


技术实现要素:

7.本发明提出了一种基于半虚拟化的电能表自动测试方法,其目的是:降低测试成本,提高测试效率,减少时间测量误差。
8.本发明技术方案如下:
9.一种基于半虚拟化的电能表自动测试方法,测试时上位机与电能表建立通讯连接,在电能表内部集成虚拟台体程序;测试开始后,上位机向虚拟台体程序发送控制指令,控制虚拟台体程序生成实时采集数据,并通过电能表内部总线将实时采集数据写入到电能表的运行缓存中供电能表自身的采集任务程序读取,从而使电能表运行在设定的工况下;然后上位机读取电能表内部数据进行分析处理,判定测试结果。
10.作为上述电能表自动测试方法的进一步改进:所述实时采集数据包括电压、电流、功率和电能累计值。
11.作为上述电能表自动测试方法的进一步改进:虚拟台体程序管理缓存一和缓存二,缓存一用于存放当前上位机控制指令中的电信号信息,缓存二用于存放当前电能表运行缓存中的采集数据所对应的电信号信息;
12.虚拟台体程序接收到上位机的控制指令后,从控制指令中解析出电信号信息放入缓存一,然后将缓存一和缓存二中的电信号信息相比较:如果不同,则将缓存一中的电信号信息覆盖写入缓存二,并根据缓存一电信号信息中的电压、电流及相角数据计算出功率,再
将此电压、电流和功率写入到电能表的运行缓存中。
13.作为上述电能表自动测试方法的进一步改进:所述虚拟台体程序还包括电能计算计数器e_counter、积分时间缓存t_cache和电能缓存e_cache,以及前台中断程序和后台循环计算程序;
14.所述前台中断程序中,每经过一个预设的时间间隔,将e_counter加1,同时保存实际经过的时间间隔到t_cache;
15.所述后台循环计算程序中,循环做如下操作:查询e_counter,如果e_counter不为0,则以t_cache为积分周期对当前电能表运行缓存中的功率进行积分得到电能积分值,并将该电能积分值累加到e_cache中,再将e_cache中的电能累计值写入到电能表的运行缓存中,并对e_counter减1;如果e_counter为0,则直接进入下一次循环。
16.作为上述电能表自动测试方法的进一步改进:所述功率包括有功功率、无功功率和视在功率。
17.相对于现有技术,本发明具有以下有益效果:
18.(1)通过半虚拟化技术,将测试台体以程序的形式集成到电能表中,上位机不再通过实体的测试台体向电能表输出电压和电流,而是通过控制指令使虚拟台体程序产生预设的采集数据,覆盖到电能表的运行缓存中,不仅省去了测试台体的硬件成本,提高了开发与测试的效率,而且由于采集数据是通过内部总线写入运行缓存的,没有时间延迟,大大提高了时间测量的准确度,消除了测量误差。
19.(2)虚拟台体程序运行过程中需要进行大量的浮点运算,而电能表芯片的运算能力是非常有限的,这会影响电能表的正常运行。针对此问题,本发明使用了特殊的参数更新机制和前后台分离计算策略,前者要求仅在电信号信息发生变更后才计算功率并覆写到运行缓存中,减少计算次数与频率,后者则可以将积分运算按时间间隔分摊开来,避免运算量过于集中,降低了对芯片运算能力的要求,保证电能表的各项功能可以正常运行。
20.(3)虚拟台体程序不仅完成了电压、电流的更新,而且完成了功率和电能累计值的计算,完整地模拟了电能表的采样功能,保证了电能表在测试过程中功能的完整性,使得电能表的其余功能(如事件记录、曲线记录、需量计算、数据存储、显示等)保持正常,为测试提供了良好的条件。
附图说明
21.图1为本发明的架构示意图。
具体实施方式
22.下面结合附图详细说明本发明的技术方案:
23.本发明所提出的一种基于半虚拟化的电能表自动测试方法,主要用于对电能表进行非采集任务功能的测试,如事件记录、曲线记录、需量计算等。
24.如图1,测试方法主要依靠上位机(pc)和集成在电能表内的虚拟台体程序配合完成。上位机内运行控制软件和测试脚本,通过通讯线缆或无线通讯方式与电能表建立连接,既可以对虚拟台体程序、电能表发送控制指令,也可以读取电能表内的相关数据。
25.上位机的主要功能包括:
26.1、编写并解析测试脚本,将测试脚本转换为对虚拟台体程序和电能表的控制指令,例如控制虚拟台体程序输出特定的采集数据,从电能表读取数据等。
27.2、对从电能表读取到的数据进行分析,并判定返回结果是否正确。
28.3、对测试脚本的运行结果进行统计,通知用户测试是否通过。
29.虚拟台体程序作为附加的程序库参与电能表的程序编译,作为嵌入式软件内置于电能表中,其主要功能包括:
30.1、接收从上位机传来的控制指令,提取电信号信息,将其转换为电压、电流的虚拟电信号输出,并据此计算出功率和电能累计值;
31.2、通过内部总线将虚拟的电压、电流、功率、电能累计值写入到运行缓存中供电能的采集任务程序读取,达到模拟采集工况的目的。
32.不失一般性,下面以事件记录中的过压事件测试为例,对本发明方法的过程进行详细说明。
33.过压事件的功能定义为:当电压高于某个特定的值并持续一段时间后,过压事件发生,发生的同时要记录发生时刻的电压值和当前电能值。测试过程中,需要改变电能表采集到的电压,模拟过压工况,然后读取电能表内部的数据,判断电能表的过压事件功能是否正常。注意,如何对过压功能进行分析判断是现有技术,并非本发明的重点,本实施例着重介绍如何通过虚拟技术为电能表模拟特定的工况。
34.测试开始前,完成虚拟台体程序的集成和上位机与电能表的通讯连接。然后执行以下步骤:
35.步骤1、在pc平台编写测试脚本。
36.根据过压事件的常规测试过程,结合本发明的虚拟技术,设计的测试脚本步骤如下:
37.(1)电能表上电,电流保持为0;
38.(2)读取电能表的当前电能e;
39.(3)控制虚拟台体程序发出电压电流信号,其中电压值需要高于过压门限值,并记录当前时间t1和当前虚拟台体程序输出的电压信号值v1,并保持一段时间δt,δt等于过压事件要求的持续时间;
40.(4)停止虚拟台体程序的电流信号输出,读取电能表的过压事件记录,并根据虚拟台体程序输出的虚拟电信号计算δt时间内的电能增量理论值δe,进行如下判定:
41.如果未产生过压事件记录,则测试失败;
42.如果过压事件记录中的发生时间不等于t1 δt,则测试失败;
43.如果过压事件记录中读取到的电压值不等于v1,则测试失败;
44.如果过压事件记录中读取到的当前电能值不等于e δe,则测试失败;
45.如果前面的判定都未生效,则测试通过。
46.测试脚本结束。
47.步骤2、测试脚本将对电能表和虚拟台体程序的控制指令下发至电能表。
48.步骤3、电能表将收到的针对虚拟台体程序的控制指令通过内部总线转发给虚拟台体程序。虚拟台体程序启动步骤4和步骤5,二者同步运行:
49.步骤4、虚拟台体程序对当前的控制指令进行解析,更新部分采集数据(如果未收
到控制指令,则等待接收,本步骤一直运行):
50.步骤4-1、建立虚拟台体参数缓存,用于保存虚拟台体需要输出的电信号信息。缓存分为备份(bkp)和当前(cur)两部分(即缓存一和缓存二),每次接收到控制指令后,将命令中包含的虚拟台体参数(电信号信息)保存到备份缓存(bkp),并将备份缓存(bkp)中的数据与当前缓存(cur)比较:若相同,则等待下一次控制指令的到来,否则继续执行步骤4-2。
51.步骤4-2、将备份缓存(bkp)中的数据覆盖当前缓存(cur),并根据备份缓存(bkp)的电信号信息(电压、电流、相角数据)重新计算有功功率、无功功率和视在功率,再将电压、电流和功率通过内部总线写入到电能表的运行缓存中供采集任务程序读取。
52.说明:计算功率的过程涉及大量的浮点运算,对电能表主控芯片的运算能力有较高要求。本发明采用了台体参数备份策略,只有台体参数(电信号信息)发生变动的时候才需要重新进行功率计算,降低了对主控芯片的运算能力要求。
53.步骤5、本步骤一直循环执行,根据电压、电流、功率进行电能计算。若步骤4-2未执行,则本步骤中实际使用的是旧的电流、电压、功率的数据值(本身不需要更新);否则,使用的是步骤4-2中重新计算的数据值。
54.采用浮点运算前后台分离策略,将电能计算过程放在后台循环计算程序中,前台中断程序中则间断触发后台的计算,并保存需要进行电能计算的次数和每次计算的积分时间:
55.步骤5-1、建立电能计算次数计数器e_counter和对应的积分时间缓存t_cache;建立电能缓存e_cache,用于保存虚拟台体程序发出的电能值。然后,启动前台中断程序和后台循环计算程序。
56.步骤5-2、在前台中断程序中,每到一个时间间隔(时间间隔无需相同,可以每次是不同的值,但是必须准确),就将e_counter加1,同时保存该时间间隔到t_cache。一般情况下,时间间隔为100ms至300ms。
57.步骤5-3、后台循环计算程序循环做如下操作:查询e_counter,如果e_counter不为0,则以t_cache为积分周期对当前电能表运行缓存中的功率进行积分得到电能积分值,并将该电能积分值累加到e_cache中,再将e_cache中的电能累计值写入到电能表的运行缓存中,并对e_counter减1;如果e_counter为0,则直接进入下一次循环。
58.电能积分值具体计算过程为:读取t_cache,根据当前功率参数进行积分:
[0059][0060]
其中,e
p
、eq、es分别表示积分得到的电能,p、q、s分别表示当前的有功功率、无功功率、视在功率,δt表示由t_cache获得的积分周期。
[0061]
通过采用浮点运算前后台分离策略,可以将电能计算过程中的浮点运算在后台循环计算程序中分摊执行,降低了对芯片的算力要求。
[0062]
上述过程中,电能表基于运行缓存中的虚拟数据进行相关任务的处理,并根据上
位机的命令要求返回相应数据。
[0063]
步骤6、上位机根据返回的结果进行分析处理,判定测试结果。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献