刘福军 , 孟 晨 , 汤宫民, 孙香冰, 杨锁昌, 展浩华
(1.军械工程学院 导弹工程系,河北 石家庄 050003;2.72465部队 山东 济南 250022)
随着科技的发展,复杂装备的技术含量和复杂程度不断提高,向着集机、光、电等多专业于一体,广泛运用多种新技术、新器件、新工艺,维修保障难度增大的方向发展。对这些复杂装备的技术保障,单纯依靠部队各级维修机构的技术力量将难以完成,必须综合装备设计、生产、使用、维修等各方技术力量,这就决定了复杂装备的自动测试系统的复杂性[1]。在军事领域,自动测试系统ATS(Automatic Test System)被用于快速可靠地维护装备及其配套设备,保障作战效能,实现与其他作战系统信息和数据的无缝连接和协同工作。在未来军用技术激烈的竞争中,自动测试系统将与复杂装备的设计、制造、使用、维修构成一个完整的整体,实现ATS测试仪器和测试数据的资源共享,成为复杂装备可靠运行的重要保证。为解决复杂装备自动测试系统中不同平台间测试仪器的互换性、互操作性、可扩展性和测试数据的共享,对测试仪器进行规范化描述、建立统一模型就显得尤为重要。
XML(eXtensible Markup Language,可扩展标记语言)是由W3C推出的新一代数据交换的标准,其最大的特点是将数据结构化,实现数据共享。XML语言又是一种元语言,用户可以用来创建自己需要的其他标记语言。XML作为一种结构化的标记语言,提供了一种与软硬件平台无关的基于文本格式的开放的共享的数据方法,具有良好的数据存储格式、可扩展性、高度的结构化、精确的数据搜索等优点,能够被不同类型的程序所读取,在很大程度上降低了数据交换的复杂性。XML的这些优点使得用它非常适宜来描述测试数据,提高测试设备的开放性。此外,XML是服务体系结构协议(Service-Oriented Architecture Protocol,SOAP)的基础,该协议已成为开放式测试系统开发的基本规则[2]。
XML文档是一种结构化的标记文档,创建XML文档之前,首先要确立其元素(标记)和结构,再根据结构的定义,填入实际的内容,形成一个XML文档。XML结构文件有两种定义方式,即文档类型定义(Document Type Definition,DTD)和模式(Schema)定义。DTD是一套关于标记符的语法规则,它定义了可用在文档中的元素、属性和实体,以及这些内容之间的相互关系。但DTD是与XML不同的语言规则,具有不支持名称空间、在支持继承和子类方面有局限性、没有数据类型等缺陷,不利于学习使用,为了克服上述缺陷,W3C发布了XML Schema作为推荐标准。XML Schema使用的是一种类XML的语言,在数据声明模式中既有全局变量也有局部变量,使用灵活,同时具有一套完整的数据类型,还允许对数据类型如整形、时间或字符型等进行详细定义。经过数年的研究与开发,XML Schema目前已成为全球公认的XML环境下首选的数据建模工具[3-4]。
使用XML语言描述测试仪器具有以下优势:
1)与其他格式之间的转换十分方便XML文档与HTML文件之间可以通过可扩展样式表语言转换 (eXtensible Style Language Transformation,XSLT)工具进行转换。对XML文档的解析技术包括文档对象模型 (Document Object Model,DOM)和 SAX(Simple API of XML)[5]。 XML 文档与 Text/CSV、Office文档间的数据交互可以利用DOM/SAX以及VBA等技术实现。
2)描述树形结构数据自动测试信息是一种天然的层次化树形数据,用XML表示树形数据结构是非常自然和方便的。如果将ATS测试仪器信息作为根节点,则它的子节点包括测试范围、通道数、测试接口、测试结果等,这些节点又可以继续分解,形成多层次的树形结构。利用XML对测试仪器信息进行组织的过程中,可以将节点作为标记语言的基本元素,根据节点间的隶属关系定义语法结构。
3)适合于不同平台间的数据交换分布式测控环境要求自动测试数据能够在不同平台间实现交换和共享,而XML正是一种跨平台的标记语言。XML文档本质上是一种附加了结构和语义的文本文件,可以方便地在不同平台之间实现交换和复用。
XML Schema为测试仪器描述提供的文件为InstrumentDescription.xsd。提供对测试站组成的测试仪器静态资源描述,支持传统仪器、合成仪器、虚拟仪器、组合化仪器,这些信息用于测试仪器能力匹配和资源分配。
在一个典型的复杂装备自动测试系统ATS中,一系列测试仪器比如信号发生器、数字万用表、示波器等是由一个或多个软件控制的开关,使测试仪器与被测信号互联,测试软件通过各类总线向仪器发送控制命令完成测试,同时将测试结果发送到故障诊断软件进行判定,指导相应的维修、调整和器件的更换。所有的这些测试数据都可以通过基于XML Schema模式的自动测试标记语言ATML进行交换和共享,实现测试数据可以在不同测试仪器的测试程序之间传输。而ATML(Automatic Test Markup Language)标准是基于 XML 语言、针对ATE和测试数据交换的标准,提供自动测试系统中各个部分描述的平台环境、结果数据以及其他一系列相关信息XML Schema,用户在这些Schema的基础上生成XML文件来描述与交换自动测试系统中的相关信息,比如UUT测试、ATE仪器、测试结果,提高ATS系统的兼容性、扩展性和模块化。ATML主要包括9个部分[6],提供了获取测试仪器、测试程序静态信息和测试数据的机制,与ATS平台之间的关系如图1所示[7]。
图1 ATS与ATML之间的关系Fig.1 Relationship between ATS and ATML
各个组件之间的关系[7-8]如图2所示。
虽然XML语言已经成为因特网上数据交换的标准,XML Schema则是全球公认的XML环境下首选的数据建模工具。 UML(Unified Modeling Language,统一建模语言)作为一种面向对象的建模语言,具有优秀的可视化特性及强大的系统建模能力,利用UML为XML Schema文档建模、设计与分析是可行而且有效的手段。文献 [9]提供的 Hyper Model Designer工具软件实现了UML与XML Schema文档之间的转换,使得采用UML建模分析的功能可以用于XML Schema的设计与分析,反之,也可以对已有的XML Schema进行模型分析,导出其中的信息模型,采用建立UML类图的方法使用XML文档中的信息,从而采用面向对象的方法进行执行程序的设计。
测试仪器描述用于描述测试仪器的总线、特征规格、通道的测量或激励能力、通道开关结构、加电初始状态和资源等,由于描述测试仪器并没有涉及测试仪器的类型,因此,支持合成仪器、虚拟仪器、组合化仪器的描述,这些描述支持分配测试资源。
图2 ATML Schema之间的关系Fig.2 Relationship of ATML Schema
由于ATS中的测试仪器总要支持一种总线,首先建立总线类Bus,由defaultAddress记录测试仪器的地址,其它的总线都继承Bus类,总线相关的类图如图3所示,图中的总线类型基本覆盖了常用总线。
为描述测试仪器的特性规格,定义了Specification类和Specifications类,其结构关系如图4所示。
图3 Bus的UML类图Fig.3 UML class diagram of Bus
图4 Specification的UML类图Fig.4 UML class diagram of Specification
Specification具有名称、描述和附加信息等属性;元素Definition描述了定义和测量该规格的数学表达;Conditions描述了该规格测量的条件;Limits描述了规格的各种指标;Graph描述某些硬件性能图解表示;RequiredOptions描述得到该规格所需的硬件参数配置;ExclusiveOptions描述所有其它附加信息,包括注释、说明等。Specifications类是对一组或一个Specification类的组合;Certifications描述了所有子规格的可追踪性;Conditions描述所有子规格具有的公共条件;Choice1表示可以采用其下属分支的任意一种方法进行描述;Extension用于扩展描述,由用户根据需要自行约定描述的方法和结构。
描述仪器的根元素为InstrumentDescription类,其类图结构如图5所示。
该类继承了HardwareItemDescription类,除了继承的特性信息外通过Buses描述总线的信息;Specifications描述该仪器具有的所有规格说明;Switching描述仪器内部的开关系统的拓扑结构;Capabilities描述仪器具有的能力和通道与能力的映射,能力通过Switching的描述可以输出到对外连接的端口;PowerOnDefaults描述仪器加电的初始状态值,通过Value类表示,可以是二进制码和各种物理量的描述,比如数字端口加电后为低电平,模拟输出为0 V等。Resources描述仪器具有的资源,通过一组Resource类聚合而成。
图5 InstrumentDescription UML类图Fig.5 UML class diagram of InstrumentDescription
文章基于XML的测试仪器描述层的互操作性实现目标,采用UML建模工具对ATS测试仪器进行了建模分析,主要包括Bus的UML类图、Specification的UML类图、InstrumentDescription的UML类图,从系统建模的角度理清了测试仪器的层次化模型,保证了测试仪器描述层的互操作性。
[1]陈国顺,王学明,王格芳.复杂装备远程分布式测试诊断系统研究[J].计算机测量与控制,2004,12(12):1152-1154.CHEN Guo-shun,WANG Xue-ming,Wang Ge-fang.Remote distributed testing and diagnosis system for complicated equipment[J].Computer Automated Measurement&Control,2004,12(12):1152-1154.
[2]Lopes T P, Neag I A,Ralph J E.The role of extensibility in software standards for automatic test systems[J].IEEE AUTOTESTCON,2005:324-330.
[3]吴洁.XML应用教程[M].北京:清华大学出版社,2007.
[4]张银鹤,张秋香,孙膺.XML实践教程[M].北京:清华大学出版社,2007.
[5]Harolder E R.XML bible[M].Wiley Publishing,1999.
[6]IEEE Standards Coordinating Committee 20.IEEE trial-use standard for automatic test markup language (ATML)for exchanging automatic test equipment and test information via XML[S].IEEE Std 1671,2006.
[7]Neag I A,Seavey M.Applications of IEEE P1671.1 ATML test description[J].IEEE AUTOTESTCON,2007:186-193.
[8]Gorringe C,Seavey M.Current ATML standards status[J].IEEE AUTOTESTCON,2007:276-282.
[9]Carlson D.XML应用的UML建模技术[M].周靖,侯奕萌,译.北京:清华大学出版社,2003.