APP下载

基于ATML的可重用测试系统架构

2018-07-31杨炳琳

自动化与仪表 2018年7期
关键词:自动测试组件解析

杨炳琳 ,郑 宾

(1.中北大学 电气与控制工程学院,太原 030051;2.中北大学 电子测试技术国家重点实验室,太原 030051)

随着工业自动化程度的飞速提高和计算机技术的跨越式发展,武器装备的更新速度越来越快,相应的自动化测试系统也得到了长足发展。然而,目前的测试系统大多针对专用的兵器设备,不同的被测设备,其测试系统互不相同,测试资源也不能互相通用,测试系统之间无法共享测试程序与测试数据,这样就会造成测试设备的重复采购与浪费[1],极大地增添了测试系统研发和后续维修养护的费用。

为了解决目前自动测试系统存在的这些不足,并使不同自动测试系统之间的数据交换更加方便,测试资源具有良好的可共用性,电气和电子工程师协会制定了自动测试标记语言标准ATML。ATML基于可扩展标记语言XML,其目的是组建一个测试信息交换的标准,该标准使测试系统的可移植性和仪器的可互换性难度降低,并且支持模块化的测试系统软件的开发[2]。在此,研究了基于ATML的可重用测试系统架构,使得自动测试系统具有模块化、层次化和易扩展等特性,并具有良好的可重用性。

1 自动测试标记语言ATML

1.1 ATML体系结构

ATML规定了自动测试系统中各个模块之间的测试信息交换标准,它覆盖了测试仪器、测试方法、测试过程和测试数据等测试系统的的各种测试信息,可以作为自动测试系统中的信息交换媒介,为可重用的测试系统提供了比较理想的解决方案。ATML主要包括3个部分:ATML框架、ATML组件以及相关标准[3]。框架负责给各个组件提供标准的应用平台,而ATML标准则是框架中的最主要内容。

ATML是在XML语言的基础上建立的,根据描述测试信息的不同分为9个子组件,每个子组件都有对应的适用于测试的可扩展标记语言架构定义XSD文件,也即测试环境下的XML文档。XSD文件严格地遵循XML的语言规范,可以针对不同的测试需求进行扩展,可读性强,并且拥有良好的平台无关性。ATML标准的9个子组件以及对应的XSD文件见表1。

表1 ATML标准的子组件和对应的XSD文件Tab.1 ATML standard components and corresponding XSD file

ATML标准使用XSD文件来描述测试过程中的数据,满足ATML定义的测试信息能够被测试系统软件中的ATML文件解析与封装模块读取和修改,从而达到测试信息交换和共享的目的。

1.2 ATML子组件的功能

ATML中的9个子组件,可以描述一个测试系统所需要的绝大多数测试信息[4]。

——Common组件定义了为其他多个组件的XML Schema所使用的公共类型和属性组,是ATML中的共用资源。

——Test Description组件可以简化测试性能、测试条件、诊断需求的定义,并且支持测试仪器对被测对象的定位、排列和校验等操作。

——Instument Description组件定义了仪器的基本信息、仪器通道和函数信息,比如仪器的名称、总线类型、通道序号等测试仪器信息。它是对仪器的静态描述,包括仪器的功能特性等。

——UUT Description组件实现对于一个指定被测件进行唯一性描述,定义了被测对象的各个特性,包括名称、型号、接口类型、物理属性等。被测对象是测试系统软件与硬件之间的接口,测试程序通过被测件信息对被测设备进行识别、测试和诊断。

——Test Adapter组件定义了实现被测对象和测试站之间接口的唯一性描述,包括电气特性、标识、连接器、接插件和导线等。它的作用是连接测试系统和被测设备,起到测试系统接口和被测设备指定接口之间的“桥梁”作用。

——Test Station组件详细定义了一个工作站的信息,包括物理和电器特性、测试系统的端口信息等。

——Test Results组件定义了一个在某一测试环境下测试一个被测对象所得到的各种测试数据,包括测量值、测试通过与否、环境条件等。

——Diagnostics组件定义了有助于诊断的测试信息以及对测试程序执行过程的信息等。

2 可重用的测试系统架构

2.1 ATML文件的解析与封装

2.1.1 ATML文件的解析

由于ATML文档是基于XML格式的,而测试系统程序不能直接对XML文件进行操作,必须先由XML解析器对XML文件进行解析,读取其中某些元素值或者属性值,而后应用程序通过XML解析器对解析结果进行操作,从而间接地实现对XML文档数据的访问。

XML文件的解析有2种方法,基于文档对象模型DOM或者XML简单API即SAX。这2种方法各具优势,但是在可重用测试系统的ATML文件解析过程中需要不断地在整个文件中检索或者随机读取,而SAX方法是逐行扫描文档的,不支持随机读取[5];DOM方法则是将整个文档读入内存中,支持随机读取,因此ATML文件的解析方法选用DOM方法。此外,DOM方法还具有平台无关性,编程模型简单,数据转换方便等优点。

美国国家仪器公司推出的LabWindows/CVI测试系统开发软件提供了完整的XML文件操作函数库——cvixml.fp,其中包括了所有与XML文件操作有关的函数,比如搜索、修改、赋值和取值等功能函数。

解析符合ATML标准的XML文件的流程如图1所示。

图 1 ATML文件的解析过程Fig.1 Process of parsing ATML files

其流程具体如下:

①在LabWindows/CVI中载入库函数cvixml.fp,并在程序开头引用头文件“cvixml.h”。

②测试系统软件根据路径找到相应的XML文件,对文件进行加载,并且获取文档的根元素。主要代码为

CVIXMLLoadDocument(xmlPath,&xmlDocument);

CVIXMLGetRootElement(xmlDocument,&xmlRootElement);

其中,变量“xmlPath”提供文件的路径;“xml Document”提供文件句柄;“xmlRootElement”对应根元素句柄。

③根据需求搜寻特定的子元素,可以根据特定子元素的标签或者索引来搜寻。主要代码为

CVIXMLGetChildElementByTag(xmlRootElement,childTag,&xml ChildElement);

根据子元素标签寻找标签名为childTag的子元素,并分配句柄xmlChildElement。

CVIXMLGetC hildElementByIndex (xmlRootElement,childIndex , &xmlChildElement);

根据子元素索引来寻找索引为childIndex的子元素,并分配句柄xmlChildElement。

④测试信息一般都在子元素的属性或者值当中,因此找到特定子元素后,需要获取它的属性或者元素值。主要代码为

CVIXMLGetElementValue(xmlChildElement,childValue1);

读取子元素“xmlChildElement”的值并且写入变量“childValue1”。

CVIXMLGetAttributeByName (xmlChildElement,childTag,&child Attribute);

获得子元素“xmlChildElement”的属性,并分配句柄“childAttribute”。

CVIXMLGetAttributeValue(childAttribute,childValue2);

获得属性值并写入“childValue1”。

⑤操作完毕后释放搁置不用的句柄,主要代码为

CVIXMLDiscardDocument(xmlDocument);

释放载入的xml文件句柄。

2.1.2 ATML文件的封装

建立ATML标准文件有2种方式,创建新的ATML描述文件和修改ATML标准文件。相对于创建新的ATML文件,远不如修改标准ATML文件方便快捷,因为ATML文件一般都有着比较固定的格式和结构,修改ATML文件不需要对整个文件结构进行修改,只需要将测试需求变化的部分修改即可[6]。

ATML的封装过程和解析过程类似,同样使用到LabWindows/CVI自带的cvixml.fp文件里的库函数。封装过程首先将寻找需要修改的ATML标准文件,读取文件载入内存后搜寻需要修改的元素位置,对相应元素的值或属性按照测试需求进行修改,之后保存并输出新的测试描述文件即可。

2.2 测试功能的重构

2.2.1 测试描述文件

测试描述文件的中心就是声明测试被测设备所需要的测试序列和用于诊断被测对象故障的测试诊断信息,需要Test Description.XSD和Uut Description.XSD这2个文件进行描述。

测试描述文件定义了测试过程中所涵盖到的全部测试项目,每个测试项目一般由一个或者多个测试动作组成,每个独立的测试动作又包括了测试类型、参数采集和接口测试等内容。ATML定义了Setup,Reset,Read,Compare,Connect,Disconnect,Messageout和 Waitfor等 8种操作[7],不同的测试方式可能需要不同的操作组合。在实际应用中的激励和测量,ATML标准规定了2种测试方法的组合:

激励Setup+Connect;

测量Setip+Connect+Read。

当测试信号源时,必须在测试描述文档中定义Setup与Connect的组合[8],Setup按照IEEE 1641标准描述测试行为,Connect定义测试仪器与被测对象物理接口的连接规范;当由外部输入测试信号,要求测量参数值时,必须在测试描述中定义Setup,Connect及Read组合,Setup和Connect的作用与前者一致,Read用以读取测量值。例如,用于直流电压测试的测试方法定义为

通过ATML标准,将被测对象的测试要求转变为对激励信号和测量信号的要求,该虚拟的资源要求通过设备驱动器接口内部服务机制的解释和定位转换成真实的物理资源,在驱动仪器中完成测试任务[9]。

2.2.2 可重用测试系统

可重用测试系统通过测试程序的XML解析模块读取不同的符合ATML标准的测试描述文件,然后对当前的测试系统进行测试资源的重新分配,更改测试功能,从而实现测试系统针对不同被测对象和不同测试需求的可重用。具体的实现过程如图2所示。

图2 可重用测试系统架构Fig.2 Reusable test system architecture

3 应用实例

在扭簧转动刚度标定中,应用基于ATML设计的测试软件,对竖琴式扭簧的转动刚度进行标定,标定系统及测试程序如图3和图4所示。

测量扭矩和转动角度,并采用最小二乘法拟合直线,试验结果见表2。试验结果与扭簧转动刚度的标称值 2.35 N·m/(°)的最大误差不到 0.01%,可以满足实际需求。

图3 扭簧刚度标定系统Fig.3 Torsional spring stiffness calibration system

图4 基于ATML的扭簧标定程序Fig.4 Torsion spring calibration procedure based on ATML

表2 扭簧标定值Tab.2 Torsion spring calibration value

4 结语

通过对ATML标准的分析,提出了可重用测试系统架构的关设计方案。通过试验验证了该系统的可行性和正确性。基于ATML的可重用测试系统是未来的发展方向,可以有效地减少测试系统的重复性开发,降低维修养护费用,具有较高的研究价值和广阔的应用前景。

猜你喜欢

自动测试组件解析
无人机智能巡检在光伏电站组件诊断中的应用
三角函数解析式中ω的几种求法
新型碎边剪刀盘组件
U盾外壳组件注塑模具设计
JXG-50S型相敏轨道电路接收器自动测试台
关于某型雷达自动测试系统的几点认识和建议
睡梦解析仪
桥梁组件搭配分析
电竞初解析
对称巧用解析妙解