(中国人民解放军91054部队,北京 102442)
随着中国国力逐渐增强,建设近海防御与远海护卫相结合的远海战略型海军已经成为我军新阶段现代化进程中的一项紧迫的战略任务,这对我国海军装备建设提出了更高的要求和更多的需求。当前舰船装备保障维修测试设备型号多,通用性差,适用面窄,自动化、智能化程度低等诸多问题伴随着新一代海军装备的投入使用逐渐凸显出来,舰船装备保障维修测试设备及其研制配套和装备修理能力无法满足装备全系统全寿命保障需求成为亟待解决的问题。为适应当前装备保障维修的发展特点,研发通用化的军用自动测试系统(Automatic Test System,ATS)成为了必然,即采用标准的硬件接口实现仪器可互换,并通过符合通用规范的软件平台的不同配置来实现ATS内部资源共享[1],将测试开发环境从传统的面向仪器转至面向信号,使维修测试平台的开放性和可扩展性融合在一起,解决了自动测试系统中测试信息交互共享问题,为系统提供内部良好的互操作性,可有效提高对舰船装备的状态监测和故障诊断能力。
舰船装备保障通用测试系统是信息共享与交互的结构,能够实现不同测试程序可移植与系统组件间测试资源共享,因此其设计实现必需满足两个基本条件:一是和测试程序有关的硬件信息实现标准化描述;二是自动测试系统信号组件接口定义的统一[2]。自动测试标记语言(automatic test markup language,ATML)标准基于XML格式对测试需求信息以及测试资源进行描述,提供了灵活、标准的信息描述模式,将测试程序相关信息逐类分离,可保持各类信息的独立性。STD标准(Standard for Signal & Test Definition,STD)即定义信号与测试的标准,给出了定义和描述信号的规范化格式,该标准不仅提供一系列常用信号的定义与精准的数学模型,并且提出一种由简单信号构建复杂信号的机制,使测试过程围绕信号展开,完成信号信息的传递与存储,实现软件系统的信号接口功能。通过对系统资源与测试信息进行标准化规范,将测试需求和仪器能力以一致的方式描述,为实现装备维修测试系统的开放性与扩展性奠定了基础。
新一代舰船装备构造复杂、使用的技术含量高,在投入频繁的部队实战化训练过程中暴露出的故障问题不断出现。现在使用的全寿命周期测试舰船装备保障过程中存在各阶段测试能力扩展性差、测试软件研发周期长、测试效率低、装备维护成本高等问题,已不能满足新一代装备的维修保障需求,针对这种情况提出了基于ATML和STD的测试系统软件平台,是针对多种电子平台和系统研制的通用测试系统,在统一的数据信息处理模式下,将系统业务按照功能拆分为更加细粒度的模块,各模块之间通过统一格式描述的测试信息有机地结合起来,可实现测试信息模型构建与全寿命周期信息共享交互,其逻辑结构如图1所示。
图1 舰船装备维修通用测试系统软件逻辑结构
舰船装备保障通用测试系统软件平台采用组件技术模块化开发思想,各模块职责清晰并且模块之间可以相互调用:通过ATML建模描述对测试系统资源信息进行存储,保证自动测试系统内部采用一致的公共语义描述方式,使不同组件之间测试信息共享交互,并调用信号控制组件接口,实现测试需求到信号需求的资源映射,然后将信号组件参数信息传递给运行时服务系统(Running Time Service, RTS),RTS将信号组件参数信息与仪器信息进行匹配,根据相应仪器的节点信息进行路径最优化选择,最后调用IVI-Signal驱动执行测试。
ATML标准是现代测试领域中用于信息描述格式标准化的IEEE标准,主要用来记录和控制自动测试设备之间的测试信息交换流。ATML标准将测试信息描述体系结构可将测试系统资源建模描述分为:测试描述、测试站描述、仪器描述、测试适配器描述、UUT描述以及公共部分等9个部分。ATML标准下的每个子组件均有一个IEEE协会定义的XML Schema文档,XML Schema文档描述了ATML描述文档的树形结构,其中详细定义了自动测试系统中测试资源中元素、属性以及测试资源之间的连接关系等相关信息的描述结构。ATML标准通过规定XML描述文档的结构和属性,对测试资源信息进行处理和保存,能够有效地实现测试信息的共享与传递。ATML描述文档与自动测试系统系统结构的关系如图2所示。
图2 自动测试标记语言测试描述与军用自动测试系统关系
ATML系统资源描述接口的加入并不会影响自动测试系统内部组件和接口的操作性,却使自动测试系统系统组件互操作性大大增强。对于一个特定测试任务的工作站来讲,需要测试工作站、测试适配器、测试配置以及和每个仪器对应的仪器描述文档,针对被测对象UUT,需要UUT和测试描述文档,其中测试描述用于测试程序的生成。ATML描述文档为测试程序执行提供系统资源信息,为虚拟资源映射以及信号通道路由提供数据支持。
以仪器描述文档生成为例,当编辑测试仪器的信息后,测试程序创建测试仪器XML文档,首先添加仪器UUID节点信息,其次依次添加测试仪器逻辑名称节点信息、仪器类别节点信息、仪器信号能力节点信息(包括信号能力节点、仪器物理端口节点与逻辑资源节点)、信号能力映射仪器物理接口节点信息、仪器物理端口映射逻辑资源节点信息,最后保存测试仪器描述XML实例文档。
仪器能力描述包括使用Interface元素描述仪器通道信息,使用Capabilities描述通道信号能力信息。仪器资源配置用于解决信号能力和仪器物理端口对应关系复杂的问题,由Resources元素描述虚拟的仪器逻辑资源作为信号能力到仪器端口的中介,通过信号能力到逻辑资源的映射和逻辑资源到物理接口的连接,实现不同的信号能力到仪器物理接口的分配。
测试描述并不是自动测试系统的一部分,但在装备维修测通用测试系统软件平台开发过程中可以用来生成测试程序,ATML测试描述框架如图3所示。测试描述包含定义测试性能、测试条件和支持设备的信息[3-4],以定位和验证UUT的正常操作。DetailedTestInformation子元素即描述详细测试信息,测试执行时读取测试入口点、测试流程、测试步骤等信息,自动生成测试程序并完成测试动作,是形成测试程序集(Test Program Set,TPS)最核心的内容。
图3 自动测试标记语言测试描述框架
测试人员根据实际任务要求通过软件平台交互界面配置测试描述信息,然后通过系统软件分析测试需求信息并自动生成测试描述文档并进行解析,解析流程如图4所示。
图4 测试描述文档解析流程
通过解析测试需求中的信息,获取测试对象信息、测试流程信息以及测试流程中测试信号特征信息等;然后通过将信号特征信息传递给信号控制组件,信号控制组件根据信号特征创建信号组件对象并与运行时服务进行信息交互,将信号组件对象传递给RTS。
现阶段舰船装备保障维修测试设备的研制以面向仪器为主,面向仪器的测试程序开发包含大量的仪器操作语句,并且因仪器设备品类庞杂、功能各异,而无法统一描述UUT的测试需求,造成测试程序复用性和系统互操作性很差。为了解决上述问题,ATML引用STD标准(Standard for Signal & Test Definition, STD)定义测试信号,并以信号的形式描述测试需求与测试能力,使面向信号的TPS测试流程不涉及物理仪器相关信息,为实现TPS可移植提供了基础[5]。STD标准不仅以严谨的数学定义描述了常用的基本信号,而且还提供了信号复合扩展机制,可根据实际任务需求通过基本信号构建复杂信号并形成可重用的信号组件类库。每个信号组件都包含相应的信号类型及信号属性,还包括信号模型定义及其XML描述格式。STD根据信号的功能分为源、调理器、时间、测量等七类,通过控制IDL接口对信号模型进行控制[6]。测试人员可通过COM组件技术开发BSC和TSF信号组件。
并且STD标准提供了信号扩展机制,其信号类基本囊括了所有信号,能够为TPS开发所涉及的信号信息提供信号模板,使仪器匹配、开关路径选择、信号能力到仪器命令转换等问题得到解决。
信号基本组件模型是建立信号组件的基础,它提供信号组件所有可能的接口和属性。基本信号组件定义了基本信号类的共有特性与接口属性,是信号的设计原型,其模型如图5所示。基本信号组件模型提供了信号的XML文本描述或图形化描述,反映了信号的名称、类型、属性、结构等特征,可以作为组件对象实例化和动态模型运行的基础。
图5 基本信号组件模型
通过基本信号组件的模型可以看出,基本信号组件含有一组公共属性接口描述信号的各种特征,其中包括:In输入端口、Conn连接端口、Sync同步端口、Gate使能端口和Out输出端口,软件平台通过控制各端口对基本信号进行控制操作。其中In表示信号的输入,可实现基本信号类之间的连接;Conn接口是基本信号组件之间链接合成复杂信号的关键;Sync和Gate接口实现同步和触发功能,前者表示信号的同步触发,后者表示信号的门限状态;Out是信号输出端口。同时在模型中还定义了基本信号的特有属性,如幅度、频率等。在信号实例化时只需要对信号属性进行赋值,就可以设置信号的特征参数[7]。
需求信号对象的创建、初始化的过程本质上是信号组件的配置过程,其具体过程为:软件平台调用信号组件资源管理器类的Require方法创建信号对象实例,并根据信号需求信息设置信号对象;接着信号对象与物理特性对象进行信息交互,获取信号特征信息;然后资源管理器类通过Require方法创建连接器对象[8],并设置被测对象的连接信息;最后软件平台通过信号状态接口调用信号对象的Run方法与运行时服务进行交互。
信号状态操作不仅可以将信号组件对象传递给RTS,实现测试需求信号到仪器的映射,控制仪器执行测试,还可以调用相关方法改变信号状态,避免频繁调用仪器的初始化函数及相关配置函数,有效减少测试执行时间。动态信号包含三种状态:信号停止态Stopped、信号就绪态Paused和信号执行态Running。
有三种改变信号状态的方法,分别为Stop()、Change()、Run()。其中Stop( )方法关闭其他信号状态,使信号进入停止,并释放资源;Change( )方法进入状态转换操作,使信号发生转变;Run( )方法使信号处于待触发状态,建立与仪器的连接。
STD定义的信号及ATML定义的测试资源描述是虚拟的测试资源,无法控制仪器对UUT进行测试,因此需要通过设计测试资源管理机制将虚拟测试资源与实际物理仪器进行匹配,控制仪器执行测试。该模块由运行时服务系统(RTS)与IVI-Signal驱动机制两部分组成。
RTS是软件平台中进行资源管理和调度并执行测试的关键部分,主要完成测试信号与仪器能力匹配、开关路径的选择,通过信号驱动,为测试程序与仪器控制进行有效衔接,实现对UUT的测量与激励过程[9]。
为方便测试程序运行的模块化管理、提高程序执行效率,RTS以动态链接库(DLL)的形式开发,软件平台只需通过加载相应的DLL即可调用其功能函数实现测试资源的管理和调度。
RTS首先需要完成虚拟资源到具体仪器的映射,即将在测试程序中获取的测试信号需求转换成对仪器信号能力的需求,并对信号特征进行分析以及提取,然后利用信号组件对象储存测试需求信号的类型与特征,将信号特征与遍历仪器描述文档获取的仪器信号能力特征进行匹配,返回仪器信息。虚拟资源映射的流程如图6所示。
图6 虚拟资源映射的流程
通道选择是在完成虚拟资源映射选中测试仪器后,查找仪器端口到UUT端口的最优测试通道,并对通道上的资源进行相应处理。在测试系统描述信息中,仪器端口信息保存在在仪器描述文档
图7 信号通道路由过程
RTS通过获取仪器地址与IVI-Signal驱动机制建立连接,IVI-Signal驱动根据信号组件对象的信号特征信息,调用其Run()、Change()、与Stop()三种方法进行信号状态的改变,查询找到具体的仪器驱动函数控制仪器进行信号激励或测量。
IVI-Signal驱动对底层仪器驱动函数面向信号进行封装,以COM组件的形式存在,并对外提供IVI仪器驱动接口。IVI-Signal驱动可分为IVI-SignalSource激励类驱动接口和IVI-SignalSensor测量类驱动接口,其中IVI-SignalSource接口是激励类仪器驱动的类驱动接口,IVI-SignalSensor接口是测量仪器驱动的类驱动。
基于上述研究设计的舰船装备维修通用测试系统软件,可完成ATML建模、STD信号控制组件设计与测试资源管理机制,并可通过系统软件对测试站设备进行建模,编辑测试策略信息对某装备UUT进行测试维修。该平台为用户提供测试信息编辑界面,用户可根据测试任务编写测试描述信息,软件平台将自动生成测试描述XML文档。以向UUT_C1发生幅值1 V、频率1 kHz的交流信号AC_Signal及幅值1V的直流信号DC_Signal为例,测试描述信息配置界面如图8所示。
测试程序通过解析测试描述XML文档,根据测试描述信息中的信号特征信息调用信号控制组件创建对应的信号对象并进行初始化操作;调用RTS的仪器匹配函数,根据信号对象存储的信号特征信息匹配相应的仪器,当匹配仪器有多个设备时,根据实际需要选择不同的仪器排序方法选择可用仪器;然后找到仪器到UUT的测试通路,将仪器信息及路径信息写入测试配置文档。根据测试配置文档,TPS将测试项的信号转换为待触发状态ISiganl类保存在测试项链表中,执行测试项时,通过调用ISiganl接口的Run方法触发将信号对象及仪器句柄传递给IVI-Signal驱动[10];IVI-Signal驱动通过分析信号组件对象特征信息后分别匹配IVI信号组件,然后查询找到具体的仪器驱动控制仪器进行信号激励或测量,执行测试。实现信号功能匹配与调用底层仪器驱动的隔离可为TPS生成与执行过程中提供信息共享、动态链接等支持,有效保障了测试程序的可移植。
图8 信息配置界面
为解决武器舰船装备维修测试系统测试程序可移植与仪器可互换问题,本文通过ATML标准体系结构,对测试程序开发与测试信息逐类分离,并根据ATML模式定义测试程序开发过程的数据类型和内容,引入STD标准对信号与测试进行规范定义,通过COM组件技术开发信号组件动态模型,将测试需求和仪器能力以信号实例化描述,使测试程序经RTS完成虚拟资源映射。该设计不但有效解决了舰船装备维修通用自动测试系统中不同测试信息共享和交互问题,实现了测试程序可移植与重载,还可以增强不同测试系统组件之间的互操作性[11],从而提高了软件资源利用率,缩短开发周期并使开发成本大大降低。