飞轮通用测试软件平台的设计与实现

2018-01-05 00:59张怡文
计算机测量与控制 2017年12期
关键词:测试软件自动测试飞轮

魏 许,张怡文

(上海航天控制技术研究所,上海 201109)

飞轮通用测试软件平台的设计与实现

魏 许,张怡文

(上海航天控制技术研究所,上海 201109)

针对原有飞轮测试设备复用性差、维护成本高、难以保证多套产品同步自动测试的问题,设计开发了针对多型号飞轮的通用自动化测试系统;通过深入分析,提炼出多个产品在测试过程中功能的一致性和接口的差异性,采用分层架构、抽象工厂的设计模式以及配置文件的方法,解决了测试软件的通用性问题;提出了基于测试流程表的自动测试解决方案,能够适应多种测试流程的要求,扩展性强;采用混合多线程并行处理架构,解决了资源冲突,完善了多台飞轮的并行测试;该测试软件已在多型号飞轮的批产任务中使用,稳定可靠、适应性强,提高了设备使用率三倍以上,大大提升了飞轮批产测试效率。

通用化;抽象工厂;自动测试;并行测试

0 引言

随着卫星型号产品的不断发展,飞轮批产任务量不断增大,对飞轮测试设备的需求异常紧迫。飞轮测试设备主要用于飞轮整机的电性能测试,现有飞轮测试台包括反作用飞轮测试设备,涵盖了5 Nms、15 Nms和25 Nms三个型号的飞轮测试,还有小飞轮测试设备,用于1 Nms和4 Nms两个型号的飞轮性能测试。目前的飞轮测试设备都是专用设备,一种型号测试设备只能测试对应型号的飞轮。为各型号定制的测试软件,模块耦合性强,复用性和扩展性较差,导致维护成本和难度都非常大。

为了满足多个型号飞轮的测试要求,提高测试设备的利用率、降低维护成本,同时后期能够兼容更多飞轮产品的综合测试扩展性要求,亟需研制一台通用的测试设备,实现所有飞轮的一体化测试,更好地保障各型号批产任务顺利进行。由于不同型号飞轮之间存在功能的一致性和接口的差异性,因此对这套设备提出了3个新的要求:

1)通用化程度:现有测试设备仅能满足单一型号飞轮的测试,且设备研制差异较大,没有统一的测试工序和使用方法。因此,新设备的研制必须从硬件上兼容多种型号飞轮的测试接口,同时通过软件将不同的测试信号转换为统一的显示和存储格式。

2)自动化程度:现有测试设备为纯手动测试,测试人员需要按照工艺文件和操作要求执行相应功能,同时手动记录输出结果,完成一次试验耗费大量的时间,效率极低。因此迫切需要一种自动测试方法,减少时间和人力,提高测试效率[1]。

3)并行化程度:在原有测试设备中,硬件上最多允许接入4台飞轮,但软件往往只能进行单台飞轮的手动测试,在多台飞轮进行测试时,往往会出现单台飞轮无法受控或者多台飞轮之间数据相互干扰的情况,因此如何保证多台飞轮的同步测试是亟待解决的问题。

1 测试系统概述

通用飞轮测试设备主要由以下几部分组成:硬件机箱(供配电、信号转换)、测试电缆、测试计算机、通用测试软件等,设备构成如图1所示。其中,硬件机箱主要针对28 V电压降压采集,电流采集调理、A/D采集调理等,其中直流稳压电源集成在采集与控制箱内。控制计算机到采集控制箱的电缆都为通用电缆,与飞轮的型号无关,采集与控制箱到飞轮的电缆由于飞轮型号的接插件与节点各不相同,电缆也就各不相同。

图1 飞轮测试设备构成简图

设备通过测试软件控制飞轮加电和设定飞轮转速,同时检测飞轮的实时状态,对实时数据进行保存,并对飞轮的各项实时参数进行分析。测试设备的主要功能如下:

1)具备同时测试4个飞轮的供配电功能;

2)具备实时采集4个飞轮的电压电流及各种模拟量的功能;

3)具备实时采集4个飞轮的转速转向脉冲的功能;

4)具备4路通讯功能(RS422、CAN),能够同时与4个飞轮进行通讯,通过测试4个飞轮的返回数据评定飞轮的工作情况;

5)具备数据处理功能,包括数据的采集、计算、与标准值对比分析、保存、回放、生成报表的能力。

2 软件需求分析

如图2所示,飞轮测试软件功能模块包括登录界面模块、开关飞轮电源模块、转速转向脉冲采集模块、电源电压电流及其他A/D采集模块、通讯模块、数据存储模块、测试数据分析处理模块、界面显示模块及报表形成模块。

图2 飞轮测试软件功能模块

针对通用设备需要解决的三大问题,本文在软件方面对具体问题开展深入分析。

2.1 通用性问题

对于不同型号的被测产品,测试流程存在着诸多相同的业务逻辑,其中各个环节的实现间又存在着一定的差异,如何从各产品测试流程中抽取出相同的业务逻辑,同时解耦隔离出不同的动作和属性成为设计该通用测试软件主要解决的问题。表1罗列出了各种型号产品间硬件接口、控制模式和输入输出方面的比较情况。

通过比较可以发现,不同型号飞轮之间共用硬件模块,采用相同的方式进行供电、数据采集等,仅通讯方式随着型号不同而有差异;在控制方法上,不同飞轮间有共性也有差异,这些控制模式完全根据协议进行定制;在输入输出方面,飞轮的主要返回信息、返回结果的数据处理方法和存入数据库和报表的内容都是一致的,不同点只存在于每一个型号的配置参数。

对飞轮测试的硬件接口进行抽象和剥离,可以得到飞轮测试产品类、硬件接口类关系的UML类图,如图3所示。

2.2 自动化问题

目前为止,飞轮测试依然停留在手动测试阶段,操作人员根据工艺规程操作软件得到测试结果,测试时间冗长,操作过程复杂,大大影响了单机测试和产品批产的效率。随着自动化测试技术的发展,以软件为核心的系统,能够自动实现复杂测

表1 各型号产品测试情况比较列表

图3 飞轮测试产品类、接口类UML类图

试功能,对减少人力、缩短测试时间及降低成本有着明显的提高[2]。依据飞轮的特点和测试特性,同时参照测试人员的操作经验,整理出了多份自动测试流程表,每一份流程表都对应着一份飞轮测试报告。测试流程结束后,提取相应处理结果存入测试报告中,就形成了测试记录文档,避免了手动填写,提高了效率,减少了人为错误。图4截取了15 Nms飞轮交付测试的部分流程表。

图4 15Nms飞轮交付测试流程

如图4所示,飞轮可按照表格顺序依次执行转速指令,在相应操作完成后,实现数据回读和计算,等当前步骤执行完毕,自动产生表格中要求的处理结果。

2.3 并行测试问题

并行测试即使用单台测试设备支持多台产品的同时测试。并行测试在产线测试中是一个非常重要的特性,在不增加或者增加很少成本投入的情况下大大提高测试效率,从而满足产能要求。引入并行测试将带来多方面的问题,包括多线程管理、数据安全以及避免竞争和资源冲突[3]。现有飞轮测试设备在硬件上是支持多产品测试的,但同时测试过程中,数据往往会相互影响,这是典型的没有处理好数据安全和资源冲突的问题。

3 软件解决方案

针对现存的三大问题,本文给出了以下解决方案。

3.1 通用架构设计

该通用测试平台需要整合各型号间相同的业务逻辑,对于不同的逻辑需采用分层架构和合适的设计模式进行抽象层隔离,从而在具体的继承接口中实现各自特定的业务代码。同时,需要采用基于配置文件的方式来解耦型号产品间的不同属性,从而解除业务逻辑层与特征属性间的依赖关系。以上都是该通用软件在做通用化设计时需要解决的问题。

3.1.1 基于抽象工厂的程序架构

为了达到通用化的目的,软件设计以相同的业务逻辑模块可复用为原则,提高代码的适应性和通用性为目标。软件将所有产品间相同的测试业务逻辑和流程整合到主体测试软件中,同时将和特定产品有依赖关系的业务逻辑与主体软件隔离,将这部分逻辑代码委托给具体的产品类来实现。为了实现这些功能,本软件运用了分层架构和多种设计模式来解决。

首先针对多个型号之间硬件接口的调用问题,本文借鉴了抽象工厂模式[4],这样做最大的好处就是易于交换产品系列,只需要改变具体工厂就可以使用不同的产品配置。第二大好处就是将具体的业务代码和主程序分离,主程序通过它们的抽象接口操纵实例,产品的具体类名也与具体工厂的实现分离,不会出现在客户代码中。在测试软件中,将飞轮作为基类,工厂类(IFactory)包含1 Nms、4 Nms、5 Nms、15 Nms和25 Nms等具体产品工厂,接口类(Interface)包括了CAN、RS422、AD、Pulse等具体业务接口,实例化工厂后,具体业务代码也就确定了。整个测试软件的架构设计如图5所示。

图5 测试软件架构图

3.1.2 基于配置文件的参数输入

产品测试过程中的相同业务逻辑、测试流程管理、资源管理等,均固化在主体程序中,但不同型号的输入参数中,绝大多数是不同的。通过研究原有测试设备软件发现,无论是模型参数、解析协议、硬件参数等都体现在原代码中,这样的做法会带来两个问题:1)不同产品的测试程序很难统一,由于参数在原代码中相对分散,无法对代码进行模块解耦、整合;2)维护代码成本相当大,即使很简单的参数修改亦需要阅读源程序、逐一修改变量值、解决联动依赖、编译等。这些问题都导致后期维护工作越来越难,对于新型号产品的测试功能扩展更加困难。

本文研究发现,这些产品间、测试项目间、测试步间存在差异的参数无外乎几个层次关系:与硬件资源相关联的参数属性,如硬件板卡的配置信息、采集信号的修正比例系数等;与被测产品相关联的特征属性,如模型参数、试验环境信息、判读指标、时间点等;与测试项目关联的特征属性,如存储文件名称、格式参数等。由于属性信息不会影响业务逻辑的实现只会影响其执行结果,因此这部分差异可以从程序中隔离出来以配置文件的形式在程序执行过程中访问。这种属性基于配置文件、属性和行为分离的方法正是本程序实现通用化、提高适应性的另一种重要方法。

基于以上的分析,本软件将不依赖于被测产品和测试项目的属性作为公共属性,放置于上层目录中供主程序访问;将依赖于特定产品的参数属性(如串口配置、测试分辨率、模型参数等)从相应业务代码中分离出来,放置于单个产品的配置文件中。这种设计方式实现了公共属性与产品属性的隔离,从而使得软件架构更加灵活。

3.2 自动测试实现

在上一节分析中发现,飞轮测试可以按照指定流程自动完成整个测试过程,不需要工作人员一直对测试过程进行监测,测试系统会按照设定好的程序,自动完成整个测试,完整的测试流程如图6所示。

图6 自动测试流程图

软件实现时考虑采用Excel配置表的方式解决自动流程问题。首先,为每一个自动测试流程编辑测试列表,列表格式为Excel,列表中的测试信息都可以供用户进行编辑和更改;然后,当用户选好相应的测试列表,程序自动加载测试项目,并按照顺序依次进行,控制飞轮执行以及采集所有数据进行处理、保存和显示等,程序运行过程中无需任何手动操作;最后,测试完成后,会自动提示用户进行后续操作。

3.3 并行测试完善

本软件最多支持四台飞轮的同时测试,单台飞轮拥有各自的独立资源,如单独的通信接口(RS422或CAN),独立的数据处理、保存和显示;也共享测试设备的其他硬件资源,如公共的AD采集卡和脉冲采集卡等。因此本文采用了经典的混合多线程并行处理架构,以提高程序的并行处理能力并充分利用多核处理器的硬件资源。图7为测试软件中使用的混合多线程模式:

图7 混合多线程模式

在进行测试时,软件开辟了独立的测试管理引擎和公共数据引擎。测试管理引擎通过用户选择调用相应的测试单元,每一个测试单元独立运行,含有多个线程,通过上锁/解锁等手段避免竞争和资源冲突。数据管理引擎用来管理所有公共资源,只有该线程能够对所有全局变量进行写操作,对所有采集数据进行更新,而每一个测试单元需要访问数据时,只能读取文件内容,而不能对文件进行更改,从而保证了数据空间的安全。

4 应用情况

软件完成后已在多个型号中试运行使用,软件开始运行会提示用户选择产品个数和产品编号,通过用户选择自动加载相应的测试单元,每一个测试单元对应了一个飞轮产品,同时加载时,产品测试并行不冲突。图8是测试软件主界面图,在该界面上,可以控制飞轮的运动模式,实时监控飞轮状态,获取所有返回信息和处理后的结果,同时加载自动测试过程。

图8 测试软件主界面

飞轮在使用自动测试功能时需要对测试序列进行自定义配置,所有测试项目都通过Excel表格编辑进行实现,序列编辑完成后可重复调用和修改。在自动测试开始前,需要填写环境信息和产品信息,这些信息将会和测试结果一起填入最后的测试报表中。

飞轮通用测试设备及配套测试软件交付用户使用至今,分别完成了15 Nms、25 Nms等产品批产验收测试任务。软件性能稳定可靠、适应性强、维护方便。测试系统及软件实现了产品的通用化测试要求,提高了设备利用率三倍以上。从交付验收后进行的维护来看,局部需求变更引起的代码维护量很小,体现了该通用软件良好的易维护性。另外,从扩展性来看,设备对于硬件接口和测试项目的增加也可以在较短时间内实现,证明了该测试系统及配套软件良好的易扩展性。

5 结论

本文详细介绍了多型号飞轮通用测试软件的设计方法。从多型号产品的测试需求出发,通过深入分析多产品间测试业务逻辑和参数属性的共性与差异,使用抽象工厂设计模式、架构分层设计、配置文件等方法设计出了灵活、通用的测试软件。较以往单一产品的定制软件相比,该软件的适应性和通用性有明显提高。经过实际使用,该软件能够圆满兼容多个型号的自动化测试,从而在很大程度上解决了飞轮测试自动化程度不高、人为误差大等问题, 并满足了自动化、快速测试和长期稳定运行的要求。通过大量的实验证明,该系统完全能作为飞轮产线测试设备进行使用。

[1] 张志文.多惯组同步测试系统设计[J].国外电子测量技术,2013,32(11):53-56.

[2] 王 爽.生产型自动化测试系统的发展趋势[J].电子测量技术,2013,36(5):123-125.

[3] 孔维萍.基于TestStand的检波功率放大器测试软件的开发应用[J].计算机测量与控制,2016,24(11):120-123.

[4] 程 杰.大话设计模式[M].北京:清华大学出版社,2012.

Design and Realization of Universal Testing Software Platform for Flywheel

Wei Xu,Zhang Yiwen

(Shanghai Aerospace Control Technology Institute,Shanghai 201109,China)

According to the fact that original testing equipments for flywheel are low reusability, high maintenance and unable to realize synchronous automatic test, the universal testing system for series kind of flywheel is designed. By analyzing the similarities of function and differences of interface between multiple products in the testing process, the testing software takes advantage of hierarchical structure, abstract factory design pattern and configuration files to improve the adaptability and versatility which accommodate different types of flywheel. Based on test flow table, the auto test scheme is raised to adapt multiple requests for testing. With multi-threaded parallel processing architecture, the resource conflict is solved and consummate parallel test of multiple flywheels. At present, the universal testing software has been widely used in the flywheel production with stable performance and high flexibility. The usage of testing equipment has increased by three times and the test efficiency of flywheel has been greatly improved.

universal; abstract factory; automatic test; parallel test

2017-06-13;

2017-07-08。

魏 许(1987-),男,江苏丹阳人,硕士,工程师,主要从事运载、战术、卫星等领域的测试设备软件研发方向的研究。

1671-4598(2017)12-0129-04

10.16526/j.cnki.11-4762/tp.2017.12.034

TP3

A

猜你喜欢
测试软件自动测试飞轮
速率模式飞轮姿态控制系统飞轮组合平稳切换方法*
网络自适应测试软件运行方法设计
基于VXI总线的实验箱自动测试装置设计
飞轮座注射模设计
柔性发动机用飞轮转动工装的设计及应用
关于某型雷达自动测试系统的几点认识和建议
DCOM在混合总线自动测试系统的应用
某汽油机飞轮齿圈断裂分析
自动化检测EPU10A板卡系统设计与实现
面向射频系统级封装的自动测试系统