CN114217262B - 一种基于半虚拟化的电能表自动测试方法 - Google Patents
一种基于半虚拟化的电能表自动测试方法 Download PDFInfo
- Publication number
- CN114217262B CN114217262B CN202111540445.5A CN202111540445A CN114217262B CN 114217262 B CN114217262 B CN 114217262B CN 202111540445 A CN202111540445 A CN 202111540445A CN 114217262 B CN114217262 B CN 114217262B
- Authority
- CN
- China
- Prior art keywords
- electric energy
- energy meter
- cache
- program
- virtual platform
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R35/00—Testing or calibrating of apparatus covered by the other groups of this subclass
- G01R35/04—Testing or calibrating of apparatus covered by the other groups of this subclass of instruments for measuring time integral of power or current
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R11/00—Electromechanical arrangements for measuring time integral of electric power or current, e.g. of consumption
- G01R11/02—Constructional details
- G01R11/04—Housings; Supporting racks; Arrangements of terminals
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Remote Monitoring And Control Of Power-Distribution Networks (AREA)
Abstract
本发明公开了一种基于半虚拟化的电能表自动测试方法。测试时上位机与电能表建立通讯连接;并且,在电能表内部集成虚拟台体程序;测试开始后,上位机向虚拟台体程序发送控制指令,控制虚拟台体程序生成实时采集数据,并通过电能表内部总线将实时采集数据写入到电能表的运行缓存中供电能表自身的采集任务程序读取,从而使电能表运行在设定的工况下;然后上位机读取电能表内部数据进行分析处理,判定测试结果。本发明通过半虚拟化技术,利用虚拟台体程序代替物理测试台体,不仅降低了成本,提高了测试效率,同时也减少了时间测量误差,并通过备份机制和前后台分离策略降低了对运算芯片的要求。
Description
技术领域
本发明涉及一种测试电能表的方法,尤其是基于半虚拟化的电能表测试方法。
背景技术
电能表除了计量功能之外,还集成了历史数据保存、供电质量监控、多种通信规约等功能。因为其功能多样且复杂,行业针对电能表的自动化测试方式也提出了更高的要求。
传统的电能表自动测试装置一般由PC端上位机、测试台体和通信线缆组成。上位机运行控制软件,控制软件负责解析测试脚本,并通过通信线缆与与测试台体、待测试电能表分别进行通讯。测试时,上位机控制测试台体向电能表输出特定的电压、电流,模拟现场工况,然后上位机采集电能表中的相关数据,通过分析,对事件记录、曲线记录等功能进行测试判断。
上述测试方式存在以下缺陷:
首先,必须配备测试台体为电能表提供指定的电压与电流,而测试台体设备较为笨重,且硬件成本高,导致测试效率低下,成本高昂。
其次,命令延迟高。控制测试台体的命令经由PC端下发到测试台体,测试台体再根据命令发出对应的电信号,最终电信号再被电能表测量到。这个过程中,测试台体接收到命令后需要一段调整稳定的时间才能发出合格的电信号,严重影响上位机的测试脚本对时间的测量,造成误差。
发明内容
本发明提出了一种基于半虚拟化的电能表自动测试方法,其目的是:降低测试成本,提高测试效率,减少时间测量误差。
本发明技术方案如下:
一种基于半虚拟化的电能表自动测试方法,测试时上位机与电能表建立通讯连接,在电能表内部集成虚拟台体程序;测试开始后,上位机向虚拟台体程序发送控制指令,控制虚拟台体程序生成实时采集数据,并通过电能表内部总线将实时采集数据写入到电能表的运行缓存中供电能表自身的采集任务程序读取,从而使电能表运行在设定的工况下;然后上位机读取电能表内部数据进行分析处理,判定测试结果。
作为上述电能表自动测试方法的进一步改进:所述实时采集数据包括电压、电流、功率和电能累计值。
作为上述电能表自动测试方法的进一步改进:虚拟台体程序管理缓存一和缓存二,缓存一用于存放当前上位机控制指令中的电信号信息,缓存二用于存放当前电能表运行缓存中的采集数据所对应的电信号信息;
虚拟台体程序接收到上位机的控制指令后,从控制指令中解析出电信号信息放入缓存一,然后将缓存一和缓存二中的电信号信息相比较:如果不同,则将缓存一中的电信号信息覆盖写入缓存二,并根据缓存一电信号信息中的电压、电流及相角数据计算出功率,再将此电压、电流和功率写入到电能表的运行缓存中。
作为上述电能表自动测试方法的进一步改进:所述虚拟台体程序还包括电能计算计数器e_counter、积分时间缓存t_cache和电能缓存e_cache,以及前台中断程序和后台循环计算程序;
所述前台中断程序中,每经过一个预设的时间间隔,将e_counter加1,同时保存实际经过的时间间隔到t_cache;
所述后台循环计算程序中,循环做如下操作:查询e_counter,如果e_counter不为0,则以t_cache为积分周期对当前电能表运行缓存中的功率进行积分得到电能积分值,并将该电能积分值累加到e_cache中,再将e_cache中的电能累计值写入到电能表的运行缓存中,并对e_counter减1;如果e_counter为0,则直接进入下一次循环。
作为上述电能表自动测试方法的进一步改进:所述功率包括有功功率、无功功率和视在功率。
相对于现有技术,本发明具有以下有益效果:
(1)通过半虚拟化技术,将测试台体以程序的形式集成到电能表中,上位机不再通过实体的测试台体向电能表输出电压和电流,而是通过控制指令使虚拟台体程序产生预设的采集数据,覆盖到电能表的运行缓存中,不仅省去了测试台体的硬件成本,提高了开发与测试的效率,而且由于采集数据是通过内部总线写入运行缓存的,没有时间延迟,大大提高了时间测量的准确度,消除了测量误差。
(2)虚拟台体程序运行过程中需要进行大量的浮点运算,而电能表芯片的运算能力是非常有限的,这会影响电能表的正常运行。针对此问题,本发明使用了特殊的参数更新机制和前后台分离计算策略,前者要求仅在电信号信息发生变更后才计算功率并覆写到运行缓存中,减少计算次数与频率,后者则可以将积分运算按时间间隔分摊开来,避免运算量过于集中,降低了对芯片运算能力的要求,保证电能表的各项功能可以正常运行。
(3)虚拟台体程序不仅完成了电压、电流的更新,而且完成了功率和电能累计值的计算,完整地模拟了电能表的采样功能,保证了电能表在测试过程中功能的完整性,使得电能表的其余功能(如事件记录、曲线记录、需量计算、数据存储、显示等)保持正常,为测试提供了良好的条件。
附图说明
图1为本发明的架构示意图。
具体实施方式
下面结合附图详细说明本发明的技术方案:
本发明所提出的一种基于半虚拟化的电能表自动测试方法,主要用于对电能表进行非采集任务功能的测试,如事件记录、曲线记录、需量计算等。
如图1,测试方法主要依靠上位机(PC)和集成在电能表内的虚拟台体程序配合完成。上位机内运行控制软件和测试脚本,通过通讯线缆或无线通讯方式与电能表建立连接,既可以对虚拟台体程序、电能表发送控制指令,也可以读取电能表内的相关数据。
上位机的主要功能包括:
1、编写并解析测试脚本,将测试脚本转换为对虚拟台体程序和电能表的控制指令,例如控制虚拟台体程序输出特定的采集数据,从电能表读取数据等。
2、对从电能表读取到的数据进行分析,并判定返回结果是否正确。
3、对测试脚本的运行结果进行统计,通知用户测试是否通过。
虚拟台体程序作为附加的程序库参与电能表的程序编译,作为嵌入式软件内置于电能表中,其主要功能包括:
1、接收从上位机传来的控制指令,提取电信号信息,将其转换为电压、电流的虚拟电信号输出,并据此计算出功率和电能累计值;
2、通过内部总线将虚拟的电压、电流、功率、电能累计值写入到运行缓存中供电能的采集任务程序读取,达到模拟采集工况的目的。
不失一般性,下面以事件记录中的过压事件测试为例,对本发明方法的过程进行详细说明。
过压事件的功能定义为:当电压高于某个特定的值并持续一段时间后,过压事件发生,发生的同时要记录发生时刻的电压值和当前电能值。测试过程中,需要改变电能表采集到的电压,模拟过压工况,然后读取电能表内部的数据,判断电能表的过压事件功能是否正常。注意,如何对过压功能进行分析判断是现有技术,并非本发明的重点,本实施例着重介绍如何通过虚拟技术为电能表模拟特定的工况。
测试开始前,完成虚拟台体程序的集成和上位机与电能表的通讯连接。然后执行以下步骤:
步骤1、在PC平台编写测试脚本。
根据过压事件的常规测试过程,结合本发明的虚拟技术,设计的测试脚本步骤如下:
(1)电能表上电,电流保持为0;
(2)读取电能表的当前电能E;
(3)控制虚拟台体程序发出电压电流信号,其中电压值需要高于过压门限值,并记录当前时间t1和当前虚拟台体程序输出的电压信号值V1,并保持一段时间Δt,Δt等于过压事件要求的持续时间;
(4)停止虚拟台体程序的电流信号输出,读取电能表的过压事件记录,并根据虚拟台体程序输出的虚拟电信号计算Δt时间内的电能增量理论值ΔE,进行如下判定:
如果未产生过压事件记录,则测试失败;
如果过压事件记录中的发生时间不等于t1+Δt,则测试失败;
如果过压事件记录中读取到的电压值不等于V1,则测试失败;
如果过压事件记录中读取到的当前电能值不等于E+ΔE,则测试失败;
如果前面的判定都未生效,则测试通过。
测试脚本结束。
步骤2、测试脚本将对电能表和虚拟台体程序的控制指令下发至电能表。
步骤3、电能表将收到的针对虚拟台体程序的控制指令通过内部总线转发给虚拟台体程序。虚拟台体程序启动步骤4和步骤5,二者同步运行:
步骤4、虚拟台体程序对当前的控制指令进行解析,更新部分采集数据(如果未收到控制指令,则等待接收,本步骤一直运行):
步骤4-1、建立虚拟台体参数缓存,用于保存虚拟台体需要输出的电信号信息。缓存分为备份(Bkp)和当前(Cur)两部分(即缓存一和缓存二),每次接收到控制指令后,将命令中包含的虚拟台体参数(电信号信息)保存到备份缓存(Bkp),并将备份缓存(Bkp)中的数据与当前缓存(Cur)比较:若相同,则等待下一次控制指令的到来,否则继续执行步骤4-2。
步骤4-2、将备份缓存(Bkp)中的数据覆盖当前缓存(Cur),并根据备份缓存(Bkp)的电信号信息(电压、电流、相角数据)重新计算有功功率、无功功率和视在功率,再将电压、电流和功率通过内部总线写入到电能表的运行缓存中供采集任务程序读取。
说明:计算功率的过程涉及大量的浮点运算,对电能表主控芯片的运算能力有较高要求。本发明采用了台体参数备份策略,只有台体参数(电信号信息)发生变动的时候才需要重新进行功率计算,降低了对主控芯片的运算能力要求。
步骤5、本步骤一直循环执行,根据电压、电流、功率进行电能计算。若步骤4-2未执行,则本步骤中实际使用的是旧的电流、电压、功率的数据值(本身不需要更新);否则,使用的是步骤4-2中重新计算的数据值。
采用浮点运算前后台分离策略,将电能计算过程放在后台循环计算程序中,前台中断程序中则间断触发后台的计算,并保存需要进行电能计算的次数和每次计算的积分时间:
步骤5-1、建立电能计算次数计数器e_counter和对应的积分时间缓存t_cache;建立电能缓存e_cache,用于保存虚拟台体程序发出的电能值。然后,启动前台中断程序和后台循环计算程序。
步骤5-2、在前台中断程序中,每到一个时间间隔(时间间隔无需相同,可以每次是不同的值,但是必须准确),就将e_counter加1,同时保存该时间间隔到t_cache。一般情况下,时间间隔为100ms至300ms。
步骤5-3、后台循环计算程序循环做如下操作:查询e_counter,如果e_counter不为0,则以t_cache为积分周期对当前电能表运行缓存中的功率进行积分得到电能积分值,并将该电能积分值累加到e_cache中,再将e_cache中的电能累计值写入到电能表的运行缓存中,并对e_counter减1;如果e_counter为0,则直接进入下一次循环。
电能积分值具体计算过程为:读取t_cache,根据当前功率参数进行积分:
其中,EP、EQ、ES分别表示积分得到的电能,P、Q、S分别表示当前的有功功率、无功功率、视在功率,Δt表示由t_cache获得的积分周期。
通过采用浮点运算前后台分离策略,可以将电能计算过程中的浮点运算在后台循环计算程序中分摊执行,降低了对芯片的算力要求。
上述过程中,电能表基于运行缓存中的虚拟数据进行相关任务的处理,并根据上位机的命令要求返回相应数据。
步骤6、上位机根据返回的结果进行分析处理,判定测试结果。
Claims (3)
1.一种基于半虚拟化的电能表自动测试方法,测试时上位机与电能表建立通讯连接,其特征在于:在电能表内部集成虚拟台体程序;测试开始后,上位机向虚拟台体程序发送控制指令,控制虚拟台体程序生成实时采集数据,并通过电能表内部总线将实时采集数据写入到电能表的运行缓存中供电能表自身的采集任务程序读取,从而使电能表运行在设定的工况下;然后上位机读取电能表内部数据进行分析处理,判定测试结果;
所述实时采集数据包括电压、电流、功率和电能累计值;
虚拟台体程序管理缓存一和缓存二,缓存一用于存放当前上位机控制指令中的电信号信息,缓存二用于存放当前电能表运行缓存中的采集数据所对应的电信号信息;
虚拟台体程序接收到上位机的控制指令后,从控制指令中解析出电信号信息放入缓存一,然后将缓存一和缓存二中的电信号信息相比较:如果不同,则将缓存一中的电信号信息覆盖写入缓存二,并根据缓存一电信号信息中的电压、电流及相角数据计算出功率,再将此电压、电流和功率写入到电能表的运行缓存中。
2.如权利要求1所述的基于半虚拟化的电能表自动测试方法,其特征在于:所述虚拟台体程序还包括电能计算计数器e_counter、积分时间缓存t_cache和电能缓存e_cache,以及前台中断程序和后台循环计算程序;
所述前台中断程序中,每经过一个预设的时间间隔,将e_counter加1,同时保存实际经过的时间间隔到t_cache;
所述后台循环计算程序中,循环做如下操作:查询e_counter,如果e_counter不为0,则以t_cache为积分周期对当前电能表运行缓存中的功率进行积分得到电能积分值,并将该电能积分值累加到e_cache中,再将e_cache中的电能累计值写入到电能表的运行缓存中,并对e_counter减1;如果e_counter为0,则直接进入下一次循环。
3.如权利要求1或2所述的基于半虚拟化的电能表自动测试方法,其特征在于:所述功率包括有功功率、无功功率和视在功率。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111540445.5A CN114217262B (zh) | 2021-12-16 | 2021-12-16 | 一种基于半虚拟化的电能表自动测试方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111540445.5A CN114217262B (zh) | 2021-12-16 | 2021-12-16 | 一种基于半虚拟化的电能表自动测试方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114217262A CN114217262A (zh) | 2022-03-22 |
CN114217262B true CN114217262B (zh) | 2023-07-07 |
Family
ID=80702761
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111540445.5A Active CN114217262B (zh) | 2021-12-16 | 2021-12-16 | 一种基于半虚拟化的电能表自动测试方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114217262B (zh) |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103019940B (zh) * | 2012-12-26 | 2016-10-05 | 中国计量学院 | 一种电能表嵌入式软件半仿真测试装置 |
CN203204144U (zh) * | 2013-04-16 | 2013-09-18 | 海盐新跃电器有限公司 | 一种带虚拟电流源的现场检验装置 |
CN105044450A (zh) * | 2015-03-25 | 2015-11-11 | 深圳供电局有限公司 | 一种计量误差分析装置及方法 |
CN205450248U (zh) * | 2016-02-19 | 2016-08-10 | 云南电网有限责任公司电力科学研究院 | 一种智能变电站数字化电能计量平衡整站测试系统 |
US11038362B1 (en) * | 2017-09-29 | 2021-06-15 | Technology For Energy Corporation | Self-contained power signal generation system for electricity meter testing |
CN110376408A (zh) * | 2019-07-29 | 2019-10-25 | 苏州和欣致远节能科技有限公司 | 一种带BACnet控制器功能的电表 |
-
2021
- 2021-12-16 CN CN202111540445.5A patent/CN114217262B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN114217262A (zh) | 2022-03-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6820222B2 (en) | Apparatus and method for processor power measurement in a digital signal processor using trace data and simulation techniques | |
CN102928772B (zh) | 时序测试系统及其测试方法 | |
CN111258830B (zh) | 一种服务器功耗对比测试系统及方法 | |
CN106405286B (zh) | 电能质量监控装置的自动测试方法及系统 | |
CN101222735A (zh) | 测试移动终端待机时间的方法、装置 | |
CN109507625A (zh) | 电池模拟器的自动校准方法及终端设备 | |
CN114217262B (zh) | 一种基于半虚拟化的电能表自动测试方法 | |
US6578169B1 (en) | Data failure memory compaction for semiconductor test system | |
CN113468006A (zh) | 测试固态硬盘进出低功耗时间的方法、装置、计算机设备及存储介质 | |
CN103983935A (zh) | 一种指示仪表检测系统及方法 | |
CN112485699A (zh) | 一种服务器电源测试系统 | |
CN114460472B (zh) | 电量计芯片及其控制方法、电子设备、在线仿真系统 | |
CN114121137B (zh) | 一种Nand Flash颗粒功耗测试系统及方法 | |
CN115733543A (zh) | 一种光模块固件时序测试平台及测试方法 | |
CN109739729A (zh) | Fpga板卡状态自管理方法、fpga板卡及相关组件 | |
CN102058430B (zh) | 多参数监护仪自动测试装置及测试方法 | |
CN208459563U (zh) | 水电机组调速器静态性能测试系统 | |
CN110688299A (zh) | 一种核电厂应用软件自动化测试平台 | |
CN110147324A (zh) | 一种嵌入式软件时间特性的在线测试设备及在线测试方法 | |
CN201519151U (zh) | 多参数监护仪自动测试装置 | |
CN220543351U (zh) | 一种fpga原型验证的信号监控装置 | |
CN113032203B (zh) | 一种可编程逻辑器件加速的测试装置及方法 | |
CN115902387B (zh) | 负荷辨识模组的测试工装及测试方法 | |
CN102955730A (zh) | 硬盘接口的信号完整性测试系统及方法 | |
CN114003423A (zh) | 一种内存性能检测方法、系统、装置及可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |