通导系统通用自动测试平台设计

2020-02-27 12:33康祥熙
计算机测量与控制 2020年1期
关键词:自动测试子系统组件

康祥熙

(中国西南电子技术研究所,成都 610036)

0 引言

机载通导设备多,信号交联关系复杂。在设备研制、型号转段和产品交付等阶段都会对设备进行大量的测试,力求设备能够满足科研生产技术要求,达到相应状态。现阶段对机载设备的测试仍较多沿用传统的方式,例如通过仪器搭建测试系统,手动操作人工记录的方式,也有通过开发专用型测试系统,针对特定任务开展测试。前者测试方式属于较原始的形态,后者的测试方式虽然能够在一定程度上提高测试效率,但系统研制成本高,且适应性不强,测试资源无法在多个测试任务间共享,不通用。

研究适用于机载通导系统的多层次、松耦合、通用化自动测试平台,避免传统测试系统中常见的一个型号一套测试软件的弊端,从而解决软件架构不统一、测试程序在测试任务间不能共享的问题。最终实现多型号、多任务、同平台的通用型自动测试能力。

1 架构研究

通用自动测试平台架构在参照国际国内标准的同时,结合航空产品测试特点,将平台架构[1]划分为6个层次,如图1所示,分别是测试应用层、测试程序层、资源调度层、仪器驱动层、ICD协议适配层和物理设备层。平台每层涉及到的流程与模型均由ATML描述[2],主要有测试描述[3]、仪器描述[4]、UUT描述[5]和适配器描述[6]等。除此之外平台架构提供满足STD标准[7]和ATML标准的中间数据层,规范数据格式,分布实时存储。自动测试平台中的所有被测件、真实交联设备、仿真模型、信号仿真工具、数据显示记录工具等之间没有直接的接口,在模块与模块之间不产生数据交换。任何模块(DLL/LIB、COM组件、EXE、VI等)只能与中间数据层产生数据交换,从而解决了模块耦合的问题。中间数据层的引入使得自动测试系统在开发阶段无须提前约定通信接口,更多关注模型功能与算法本身的开发。其次中间数据层提升了数据监控、数据管理与数据显示接入的便捷性。

图1 通用自动测试系统平台架构

测试应用层:测试应用层作为整个软件架构的最顶层,主要为用户提供人机交互接口管理界面,实现自动测试配置文件生成及管理,测试数据显示及管理,测试报告生成及管理和测试序列管理功能。

测试程序层:测试程序层为自动测试系统的核心业务层。该层提供了TPS库。TPS库的调用依赖于测试应用层的测试项目配置,由配置决定哪些TPS被调用。TPS库由测试序列组成,测试序列又由各级子序列构成,子序列由最基础的测试步组成。该层通过TestStand集成诸如C/C++、C#、CVI和MATLAB等外部应用,所有的测试序列均由ATML描述其接口和逻辑。

资源调度层:任务调度管理借助于TestStand引擎实现,实现TPS调用运行,是整个测试系统运行的核心[8]。

仪器驱动层:仪器驱动层包含总线驱动、通用仪器(VISA封装)和非标定制仪器驱动。仪器驱动层是调度控制层与物理设备层的中间层,通过仪器驱动层实现了仪器的实例化配置和控制运行。

ICD协议适配层:ICD协议适配层包含ICD协议内容适配和总线接口适配。测试应用基于ICD和总线通硬件设备通信,不同项目ICD存在差异,为了让应用开发无须过多关注ICD协议与总线接口,采用ICD协议内容和总线接口适配的方法屏蔽低层级内容。ICD协议适配层的引入有助于实现ICD到变量,变量到ICD的转换,降低了TPS的开发难度。

物理设备层:物理设备层为自动测试系统架构得最底层。物理设备层包含了执行测试任务的具体测试设备、被测对象、交联设备、模拟器和工作站。

2 硬件平台

2.1 典型系统物理架构

典型的开放式的自动测试系统的物理结构[9]主要由控制子系统、仪器子系统、激励子系统和接口适配器组成。其硬件结构框图如图2所示。控制子系统通过控制总线连接仪器子系统和激励子系统。控制子系统控制激励子系统产生激励信号,信号通过接口适配器输出至待测设备,待测设备响应并通过接口适配器将响应信号回传至仪器子系统,完成测试测量。

图2 自动测试系统硬件结构框图

2.2 物理架构

经典的自动测试系统物理架构已包含测试系统所需的基本要素,能够满足一般产品测试需求。而航空通导设备因产品的复杂性往往需要具备诸如监控、调试等更多功能。设计适用于通导系统的自动测试平台物理架构,需结合自身测试需求。如图3所示为某型机载通导设备自动测试系统物理架构,其在保留控制子系统、激励测量子系统(专用激励器和通用仪器)、适配子系统的基础上增加了监控子系统和电源子系统。在此架构基础上如需实现基于复杂场景的动态测试,应增加场景模拟子系统、动态信号解算子系统。

图3 某型机载通导设备自动测试系统物理连接图

控制子系统通过RSS422、GPIB总线连接并控制激励/测量子系统中的通用仪器和功能激励器产生激励信号,信号通过适配子系统中的低频适配器和射频适配器实现测试通路选择、信号调理和转发至待测设备,待测设备接收激励信号,完成对应功能信号处理,产生响应和数据分析结果,通过适配子系统,再次将响应回传至测量子系统,通用仪器接收回传信号,处理并将结果上传至控制子系统存储和显示。监控子系统则是通过监控点实现对诸如429、1553、CAN等常用航空总线信号实时采集和ICD分析,实现测试过程、测试异常的监控。电源子系统为待测产品提供直流28 V或交流115 V供电,并可实现加电控制。

3 软件平台

3.1 设计思路

TestStand是美国NI公司一款自动测试开发与管理软件,其在支持图形化测试序列编辑、测试步骤顺序拖曳调整、多种代码模块识别集成、串行并行测试等方面优点突出。TestStand主要用于完成测试管理、测试执行、任务汇报等复杂的业务逻辑。测试业务与待集成外部应用可以分开开发,在一定程度稍降低了开发人员耦合交织的情况发生,减少了开发人员的重复性工作,将开发重点转移到测试要求和测试指标,最终提高了开发效率,缩短了自动化测试和验证系统的研制周期和部署时间。

鉴于TestStand上述优点,且提供标准的COM组件接口和外部应用(VI、DLL、EXE等)调用接口,通导系统通用自动测试平台软件设计采用集成TestStand引擎,围绕引擎二次开发的思路进行。

1)采用C#语言开发图形用户界面,实现测试任务管理和调用;

2)采用集成TestStand作为运行引擎的方式,实现测试任务运行;

3)采用Office作为测试报告模板编辑工具,实现测试报告的自动生成。

3.2 软件组件

图4 软件组成

通用自动测试平台软件采用异构的软件框架,按功能分为多个组件,可实现软件自由裁剪和扩展,具体组件组成如图4所示,主要由用户交互组件、用户管理组件、数据管理组件、数据报表组件、序列组件和运行组件组成。用户交互组件是整个系统的总控界面,完成人机交互工作。运行组件作为核心调度组件,实现过程调度和数据推送功能。数据管理组件作为所有状态和信息的存储地,用于实现过程数据的持久化。

图5 软件主界面

图5所示为自动测试平台软件主界面,软件主界面采用左树右表的布局。左侧树型列表提供测试项目勾选和管理,中间测试步骤区域则提供测试序列简单编辑和运行过程查看,下方波形显示区域提供测试数据图形化显示,右侧区域为序列状态查看,顶部工具栏则提供测试运行、暂停、停止、串并行模式选择和系统设置等功能。

3.3 交互流程

软件组件之间交互流程如图6所示。用户登录界面验证使用人员权限,加载测试人员、开发人员、管理员等角色配置文件,主界面根据配置文件构建界面内容与风格。管理员通过用户管理组件实现用户的新增和删除,以及权限分配。在主界面用户操作选择测试序列,点击开始则启动引擎并通知运行组件将测试序列加载至引擎执行,执行过程中调用底层驱动控制测试硬件实现总线信号数据收发、功能激励器激励信号产生、通用仪器测量和结果采集等自动化测试。测试结论数据上传至数据报表组件。数据报表组件打开测试序列对应模板,完成数据写入和测试报告生成。在测试过程若需要查看数据和显示的时候,则需要在序列编辑时,通过DLL组件进行设置,设置完成便可在测试运行过程中,实现测试数据实时数值显示和二维波形显示。

图6 软件组件交互流程

同时,每次测试过程中的测试数据均会存入数据库中,需要导出历史报表时可以先查询出感兴趣时间的测试结果,然后将测试结果依据数据书签映射关系导入至报表模板,生成测试报告。

4 关键技术

4.1 界面动态加载技术

自动测试用户界面并非固定不变,可根据登录人员权限动态加载软件界面。软件界面采用Dock界面框架,可通过拖拽操作进行窗口布局,不同测试人员可以有专属测试操作界面,且界面窗口异构,扩展性强。

1)数据驱动图形。

对于主界面的波形图绘制部分采用数据驱动的方式进行管理。绘图显示窗口区域加载绘图插件,绘图插件根据实际需求开发,以DLL的形式存放于本地,绘图插件加载完毕,则将需要绘图的变量与测试变量绑定,测试数据由序列组件通过TestStand引擎获取,在获取到数据后通过接口适配调用对应绘图插件解析数据包并调用PlotData方法绘图,其结构关系如图7所示。

图7 动态波形显示结构原理

2)自定义图形界面加载。

用户自定义的绘图插件采用动态加载的方式进行管理。要求实现的插件代码为C#编写,其DLL中的主类类名必须固定,而且必须继承Form类。如果要使用Dock框架则必须继承Dock框架的DockContent类。DLL加载原理如下:

(1)利用反射进行动态加载和调用

Assembly assembly=Assembly.LoadFrom(DllPath);

(2)加载dll后,需要使用dll中某类

Type type= assembly.GetType(“TypeName”);

(3)实例化类型

Object obj = Activator.CreateInstance(type,params[]);

(4)调用类型中的某个方法,需要首先得到此方法

MethodInfo mi=type.GetMethod(“MehtodName”);

(5)然后对方法进行调用,多态性利用参数进行控制

mi.Invoke(obj,params[]);

4.2 报表与测试数据绑定技术

测试报表是自动测试系统最终输出结果。通过测试报表直接反映测试数据和测试结论。为满足各式各样的测试报告样式需求,报表模板需能够由用户任意定制。报表与测试数据绑定技术研究能够解决此问题。通过代码验证和书签方式对Word报表进行指定位置的内容填入和修改,通过报表组件建立TestStand和Office Word的连接,实现测试序列的变量和报表中待存储数据的映射(即:书签-变量),并将映射关系存入数据库。在导出报表时依据对应关系填写报表内容。图8描述了绑定报表模版的流程图。

图8 绑定报表模版的流程图

4.3 对分快速遍历测试法

自动测试一般采用固定步长遍历的方法进行诸如灵敏度、动态范围等指标的测试。其主要思路是将激励信号从初值开始按固定步长递进增大或减小,直至遍历出预期的测量值。采用固定步长遍历测试的最大遍历测试次数一般为:

遍历测试次数max=(b-a)/step +1

以某功能接收灵敏度测试为例,将功能激励器输出信号电平幅度的初值设置为-110 dBm,以1 dBm为步进不断增加激励电平幅度,每增加一个步进就测量一次输出,看是否满足指标要求,不满足则继续遍历,直到激励信号电平幅度增大到-90 dBm,此时测量获得了预期的输出。这种固定步长的遍历方法虽然不影响测试精度,但遍历次数较多,仅接收灵敏度测试需要进行21次遍历,花费较长时间。为解决传统遍历测试法遍历次数多、测试效率低的问题,针对线性系统可采用对分遍历区间的方法缩短遍历次数,提升测试效率。

图9 对分遍历法示意图

首先设置激励信号为a,测量此时的输出值,记为ya,要保证待测设备输出的ya为无效电平,设置激励信号为b,测量此时的输出值,记为yb,要保证待测设备输出的yb为有效电平。满足上述条件后,此时将遍历区间对分为[a,x0],[x0,b]两个子区间;然后判断y(x0)是否有效,如果有效,对分[a,x0],无效对分[x0,b],直至|xn-xn-1|<=tolerance。

对分遍历法的流程示意如图10。

图10 对分遍历法流程图

同样以该功能接收灵敏度测试为例,激励电平幅度的初值为-110 dBm,而该测试项指标要求优于-88 dBm。因此采用对分遍历法进行测试,在同样测试精度要求下,获得预期输出时的遍历次数不超过6次。

5 实验结果与分析

在联试场地操作自动测试平台对通导系统分机1、分机2的通信功能和导航功能进行了主要性能指标测试,并对测试时长进行统计,具体数据见表1。

表1 测试时长统计

由表1可知,采用传统手动测试方法对 通导系统测试的时间为13.3小时,采用自动测试方法的测试时长为2.6小时,实现了测试效率5.1倍提升。

除此之外,由于采用自动测试平台测试,在测试准备阶段只需1人便可以完成加电检查和加电操作等测试准备操作,在测试阶段由1人运行测试平台、选择测试序列和运行步骤,测试自动运行过程中,测试人员可以不在现场,而完全交由系统自动完成待测设备/激励器/通用仪器/设置、测试、测量和测试结论步骤。相比传统手动测试2~4人的人力需求,采用自动测试平台测试人力需求缩减至1人。

6 总结

采用本文所述架构设计的通导系统通用自动测试平台,是一套具备图形化的测试序列编辑环境,能够实现一键串行或并行测试的以科研测试、生产检测和综合维修保障为应用需求背景的通用、高效、便捷、可扩展的包含成熟软硬件平台的自动测试开发运行环境,现已实际应用于多个项目。

通导系统自动测试平台的使用不仅简化了测试流程,规避了人带来的测试质量不稳定,测试一致性不高,测试操作繁琐等缺点,还提升了测试效率,解放了人力资源,同时为探索内外场飞机综合保障[10]的新型模式提供了一条可行的发展之路。

猜你喜欢
自动测试子系统组件
基于CANoe的商用车SAE J1939网络自动测试方法
Kistler全新的Kitimer2.0系统组件:使安全气囊和安全带测试更加可靠和高效
创建Vue组件npm包实战分析
智能机械臂
舰载雷达TR组件冲击计算方法分析
网络空间供应链中入侵检测及防御子系统的投资机制研究
网络空间供应链中入侵检测及防御子系统的投资机制研究
团队与知识管理的关系研究
基于Labview与Keithley设备的自动测试系统
浅谈中职学校新型模块化机房建设