陈红芳,舒 隽
(华北电力大学 电气与电子工程学院,北京 102206)
智能电能表的标准统一,自动化测试技术日益强盛,电子类设备成本的降低,人员成本的增加,为了提供可靠的产品,减少产品故障率,因此实现自动化测试是科技发展的方向.就利润最大化的发展趋势.
智能电能表行业性很强,因此没有通用的自动测试软件.只有开发一套符合智能电能表要求的自动测试系统才能提高产品研发、测试、生产效率.自动测试系统研发出来之后,应用与样机阶段,可以把测试人员从繁重的黑盒测试中解脱出来,让测试人员有更多的时间去分析、研究测试方法,以提高测试效率,提升产品质量,缩短开发周期.应用与小批生产时可以在同样多的时间内测试更多的功能,并且更容易发现不良品,发现个体差异,或概率性问题.应用与批量生产时可以提高生产效率,减少人工操作,提高产品质量,提高产品交货合格率.
智能电能表是属于工业产品,需要长期可靠稳定运行,那么每一个功能都需要经过严格的测试.而黑盒测试是不能完全覆盖,而这种嵌入式产品没有现成的自动测试软件.因此我们开发了一款基于智能电能表产品的自动测试系统.这套系统的特点是:满足测试方案灵活性需求,用户自定义测试方案;多种台体的适应性;多种表计协议的适应性;单机版和网络版的适应性.此系统需要与多功能电源台体配合使用,否则使用功能将收到限制.
智能电能表的通信协议共有3万多条,每一条都要进行测试才能保证产品的可靠性,测试周期很长,并且各功能之间又存在关联,需要交叉测试,因此测试的复杂度非常高.智能电能表的功能也非常多,主要的功能有:电量、最大需量、瞬时量、时区时段、显示、负荷曲线、事件记录、冻结、合格率、状态字等功能.
我们设计开发的这套系统采用MICROSOFT.NET编程语言.操作系统是:Windows XP.数据库是:SQL或SQLLite.脚本语言:C#.
这套软件使用是必须与多功能自动测试台体配合才能使用.这种台体需要具有以下的功能:三相电压、电流可任意调节大小;相角可任意调节;脉冲常数可以任意设置;频率可任意调节;台体具有多功能输出检测装置;台体能检测脉冲信号;台体能检测时钟信号;台体能检测报警、跳闸信号.台体的所有操作都可以通过命令方式实现.这样可以在脚本中随意控制台体,并读取台体的状态和数据.台体提供通信接口,台体厂家提供.
我们选用C#语言来做为我们的脚本语言,此语言是微软公司发布的一种面向对象的、运行于.NET Framework之上的高级程序设计语言.C#是一种安全的、稳定的、简单的、优雅的,由C和C++衍生出来的面向对象的编程语言.它可以让我们的测试人员快速地编写各种脚本语言.正是由于C#面向对象的卓越设计,使它成为我们选用的最佳脚本语言.
脚本语言是为了缩短传统的编写-编译-链接-运行过程而创建的计算机编程语言.一个脚本通常是解释运行而非编译.因此我们开发设计的脚本语言也是一样的具有:简单、易学、易用的特性.目前脚本语言应用的范围也是非常的宽,如:DOS,Windows的批处理文件和Unix的shell脚本、游戏中的角色、网页中的嵌入式教本等等应用范围非常广泛,其可靠性也是非常的高.我们开发的自动测试系统利用脚本来编写自动测试脚本的优点有:
快速开发:脚本语言极大地简化了“开发、部署、测试和调试”的周期过程.不需要学习.net开发工具如何使用,只要学习.net编程技巧,而这些编程技巧在大学时都学过,所以现在只要再进行升华就可以应用了.
容易部署:脚本语言都能够随时部署,而不需要耗时的编译/打包过程.我们设计的脚本开发提供语法检查,而编译、打包是在运行时才进行,由样机自动测试系统来提供,这样测试人员在编写脚本时只需要写具体的操作流程即可,而并用再进行其它部署.
易学易用:我们开发的这套系统已经把常用的操作编写成函数或动态库形式,可以在脚本中任意调用.
这套系统的整体框架结构是采用C/S结构,采用多层分级管理结构:物理层、逻辑层、应用层.详细架构如图一所示.物理层主要有:电源台体、智能电能表、PC机、服务器.逻辑层有:通信接口及管理、规约管理层和数据库管理层.应用层是与用户直接操作的界面,应用层提供了用户管理、台体管理、项目管理、参数管理、脚本管理、协议管理、数据管理、日志管理等功能.
图1
通信层首先要对串口、网口进行初始化,只有在通信通道畅通的情况下才能继续通信指令操作.对与通信方式上的判断从以下几个方面进行判断.通信方式.通信方式的选择是根据目的地来选择.通信目标.即命令类型,命令传输的目的地.指令内容.指令内容的判断,命令是给表计还是台体的.指令配置信息.指令配置信息是指,指令的执行次数,是否需要判断长度、校验和、是否需要返回等.当系统接受到信息之后需要根据配置信息进行解析.
规约管理层包含:DL/T645-2007通信规约、TCPIP协议、与台体通信协议等,方便扩充规约,如:IEC1107、IEC62056等规约.规约管理层还负责规约解析,负责对下发和接受的指令进行解析.当脚本中需要对表计进行操作时,会先生成一个新的XML文件,在从规约数据中获取相关信息完善到XML文件中,得到完整的信息之后,在把指令从通信通道下发至目的地.根据通信协议标准把下发的内容转化成报文形式.当收到命令时再把报文解析成文字或数据.通信解析管理首先要建立通讯链路,在建立解析进程,然后管理流程,建立通讯层与解析层的关联;将信息传给应用层;处理完之后释放线程.
数据库采用的是SQL或SQLLite数据库,这两者是完全兼容的,并且SQLLite数据库是开源的,对于一些小型用户已经足够,而对于用户数量较多的用户可以选择SQL数据库.
应用层主要的功能是管理用户、用户权限、台体管理、项目管理、脚本管理、协议管理的用户操作界面.
当用户需要运行脚本时,首先进入脚本运行界面,选择需要执行的脚本,选择配置参数文件.会调用脚本,把脚本编译成C#源代码,再编译成可执行的动态库文件.最后再调用可执行文件,运行脚本.
脚本运行时,首先把表计信息、台体信息、默认参数等众多参数传入到运行的脚本中,然后连接数据库,调用台体信息、项目信息得到表计信息,再执行脚本,执行脚本时需要调用数据库管理层、通信解析管理层、解析层和通信层.执行完成之后释放所有的线程,保存数据到数据库,发送结束消息,把表计电源断掉.退出脚本运行状态
脚本主要测试表计当前分相电能的走字功能,包括正、反向有无功分相电能和四象限的分相电能.
该脚本走的电流为400%Ib,先走第一象限,分别单独走A、B、C三相,加电流时,先抄读表计的时间,延时一段时间(600秒)后,再抄读表计的时间并掉电流,利用前后两次的时间差跟理论的功率乘积来计算理论电量.再抄读当前所走电能跟理论值进行比较.
设备:自动测试台体、标准源、PC机、局域网
测试点:100%Un,400%Ib.
测试方法:
(1)台体启动工作电压,设置表计额定电压,额定电流等参数;
(2)显示本脚本可实现的功能;
(3)表计上额定电压并延时10秒;
(4)表计执行清零操作,并设置相关参数.
(5)设置电流幅值为400%Ib,相位调整为30度.
(6)上ABC相电流.
(7)抄读表计时间和当前台体功率.
(8)延时600秒后再掉电流.
(9)抄读表计时间,根据这两次的时间差计算理论电量.
(10)抄读相应电量跟理论值比对.
(11)结束测试,生成测试结果.6.7.3 脚本代码:电量走字
函数脚本(计算理论电量与实际电量之差,当电量之差小一0.02时即判断合格,否则判断不合格):
CompareData(table1,"0001FF00",refer_anerg);//判读电量是否正确,并输出结果
整套系统运行之后的主界面如下图,主要的目录是:文件(修改密码、退出)、档案维护(项目维护、项目表计信息)、自动测试(自动测试、默认参数配置、测试查询)、脚本管理(脚本编辑、命令编辑、测试项目管理)、设置抄读(表计设置抄读、设置抄读方案、负荷曲线)、系统维护(用户管理、协议导入、模块配置、数据库配置、通信参数配置)、帮助(帮助、关于).图2是系统正在运行的主界面.
图2
这套样机自动测试系统是采用了先进的脚本编写方式来实现自动测试.脚本编写最大的好处是灵活.脚本的编写、修改都非常方便,灵活性很大,脚本编写好了之后可以无故障连续运行.利用脚本来进行自动化测试是目前自动测试领域中最先进的方式.
〔1〕王莹.智能电表/智能能源的技术市场.电子产品世界,2012-07-19.
〔2〕罗秋凤,肖前贵,杨柳庆.无人机自动检测系统的设计与实现.仪器仪表学报,2011(1).
〔3〕徐理中,寥述剑.基于ATML的自动测试系统软件的设计与实现.测试技术,2008(07).
〔4〕黄全安,宋健.AMT控制器自动测试系统设计.测控技术,2012(01).
〔5〕吴建平.浅谈C#面向对象编程的重要特性-封装性、继承性及多态性.计算机软件,2012.