这套系统基于Lua脚本可满足用户的自定义需求;可灵活编制测试脚本;可灵活选择执行脚本的顺序;可适用多种台体;可适用多种表计协议的适应性;可单机测试和网络测试;可直观看到测试项目是否通过;可记录测试结果作为日志。
CP1003自动测试软件系统实现方案
智能电能表的功能非常多,主要的功能有:电量、最大需量、瞬时量、时区时段、显示、负荷曲线、事件记录、冻结、合格率、状态字等功能。需要多功能电源台体作为信号源[2]。
考虑到智能电能表测试的复杂性、灵活性以及周期长等特点,制定开发方案,其中硬件部分使用测试台体作为标准源,配合PC主机,以太网,交换机等硬件设备。软件方面则自己开发测试软件,基于Lua脚本灵活配置[3]。
CP1003自动测试软件的硬件要求
这套软件使用是必须与多功能自动测试台体配合才能使用。这种台体需要具有以下的功能:三相电压、电流可任意调节大小;相角可任意调节;脉冲常数可以任意设置;频率可任意调节;台体具有多功能输出检测装置;台体能检测脉冲信号;台体能检测时钟信号;台体能检测报警、跳闸信号。台体的所有操作都可以通过串口命令方式实现。这样可以在脚本中控制台体升降源,并读取台体标准表和误差的数据。台体提供RS485扩展通信接口与计算机相连。
CP1003自动测试软件的实现方案
软件开发环境使用C++语言混合Qt语言作为软件的主语言,Lua脚本语言作为脚本编制语言,操作系统WindowsXP,集成工具VisualStudio2010。
Lua脚本语言介绍Lua是一个小巧的脚本语言。是巴西里约热内卢天主教大学(PontificalCatholicUniversityofRiodeJaneiro)里的一个研究小组,由RobertoIerusalimschy、WaldemarCeles和LuizHenriquedeFigueiredo所组成并于1993年开发。其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。Lua由标准C编写而成,几乎在所有操作系统和平台上都可以编译,运行。Lua并没有提供强大的库,这是由它的定位决定的。所以Lua不适合作为开发独立应用程序的语言。
Lua脚本可以很容易的被C/C++代码调用,也可以反过来调用C/C++的函数,这使得Lua在应用程序中可以被广泛应用。不仅仅作为扩展脚本,也可以作为普通的配置文件,代替XML,ini等文件格式,并且更容易理解和维护。Lua由标准C编写而成,代码简洁优美,几乎在所有操作系统和平台上都可以编译,运行。一个完整的Lua解释器不过200k,在目前所有脚本引擎中,Lua的速度是最快的。这一切都决定了Lua是作为嵌入式脚本的最佳选择。
由于智能电能表测试条目众多,所以利用了Lua脚本的灵活配置、高效率、可扩展性等特点在C++程序中直接嵌入运行。
软件架构CP1003自动测试软件系统包括CP1003自动测试软件、电源台体、网络加密机、RS485通信接口、以太网等组成。CP1003自动测试软件的模块如下分为以下几个模块:脚本文件加载和刷新,台体型号选择、DLT645通信接口、脚本文件在线编辑、脚本文件执行控制(执行、暂停、停止)、脚本执行界面展示、日志管理、脚本执行结果管理等。其中DLT645通信规约接口和台体控制接口实现对电能表和台体的通信和控制,脚本文件管理、日志管理、执行结果和展示模块则主要用于测试人员的测试操作。软件架构图如下:
软件模块接口
脚本文件分别调用DLT645通信规约接口[4]和台体控制接口实现对电能表和台体的通信和控制。通信层首先要对串口、网口进行初始化,只有在通信通道畅通的情况下才能继续通信指令操作。如果是DLT645通信接口则会通过RS485串口发送请求报文,当系统接受到信息之后需要根据配置信息,以及规约对收到的报文进行解析,然后进行展示,如果是台体接口则会直接通过台体的串口对台体进行控制,比如升降源,设置读取误差,读标准表等。
软件界面和操作
图2是正在运行的主界面,执行输出会逐条展示任何测试人员想看到的脚本执行结果,双击左侧脚本树会会在当前脚本页面中展示当前执行脚本的内容并可以在线编辑修改。如果某个脚本执行出现错误则会在左侧脚本树中对该脚本名称进行飘红,同时在右侧的执行输出会对具体任何测试人员判定出错的语句进行飘红,方便测试人员第一时间看到错误之处。
结束语
本自动化测试软件使用目前主流的Lua脚本嵌入到C++程序中,使得测试灵活,可扩展,并且高效稳定,解决了目前人工测试量大繁琐,效率低的缺点,提高了智能电表的测试效率、可靠性和灵活性,对于提高生产效率有着巨大的作用。
该软件可以拓展适用到更多的应用场景,只需要搭配需要的封装好的C++接口供脚本调用即可。
作者:
国电南瑞科技股份有限公司曹子涛,熊剑,王冠男,南瑞中天电力电子有限公司左勇,南瑞三能电力仪表(南京)有限公司张国勤。