1 软件操作平台选择
基于GU I的操作系统W IN98、W IN2000 及W IN / NT是目前应用最广的软件操作平台。其中W IN2000 和W IN /NT具有较好的安全性、稳定性和实时性,基 于该操作系统的开发工具也最为丰富,因此,推荐用户 选择W IN2000或W IN /NT作为软件操作系统。
2 编程语言选择
测试软件的编程语言比较多,主要有C /C + +语 言、通用高级语言、LabWindows/CV I、图形程序设计语 言、专用测试语言等。
ATS软件编程语言的选择不是一个孤立的问题, 不能简而论之,要根据不同情况分别给予确定。在选 择语言时,建议从以下几个方面给予考虑:
(1) 注重系统工程
在选择编程语言时一定要从全系统出发,既要有先 进性,又要考虑系统之间的协调一致,采用的语言不能 太分散,要尽量集中选择,同时考虑语言的发展趋势。
(2) 考虑开发环境
在确定开发软件采用的语言时,要注意了解国内 外的软件发展趋势,既要注意其流行程度,又要考虑其 适应性;既要考虑先进性,又要考虑可行性和经济性; 还要选择对硬件独立性较强的语言。
(3) 适应系统规模
应根据系统的大小、采样数的多少、实时性的强 弱、数据处理的复杂程度等方面进行具体分析,根据系 统的规模对编程语言进行适当的选择。
3 软件开发模式选择
在传统的测试系统软件编制过程中,软件的编写 主要是以测试流程为依据,所有的测试参数、程控命 令、测试结果等都内置于测试程序中,软件的通用性、 可移植性和可扩展性都很差。为了实现测试软件平台 的通用性、可移植性和可扩展性,出现了许多软件开发 模式,下面对目前几种常用的软件开发模式进行比较, 以指导用户合理地选择适当的软件开发模式。
3. 1 基于数据库的软件开发模式
基于数据库的软件开发模式的基本设计思想是通过数据库来实现测试项目的选择和测试流程的控制, 即将测试流程以数据库的方式存储在文件中,每条记 录称为一个测试元,包括仪器控制函数名称、传递的形 式参数、测试结果上下限等信息。数据库文件被主程 序调入并解释每个测试元,按照测试元的要求调用仪 器控制函数完成测试过程和结果判定。这样,流程被 单独存储在与主程序不相关的文件中,即使修改也不 用劳烦软件工程师修改程序,使系统模块化大大增强。 基于数据库的开发模式使得软件工程师及装备工 程师各自独立工作,软件工程师不再针对每个测试流 程逐条编程,而装备工程师也可以通过短时间培训直 接将流程变成可以执行的测试程序,从而使得整个软 件开发过程更为模块化,缩短了系统开发时间。然而,数据库驱动模式存在几大缺点:
(1) 测试功能函数需要随时增加;
(2) 程序解释该数据库需要额外的时间,并且数 据库存取时间较慢(考虑了多种接口标准后损失了速 度) ,不适合实时采集和处理;
(3) 对需要的数据处理功能也存在函数膨胀的 趋势;
(4) 数据库流程的灵活性值得考虑。
基于上述缺点,要想使数据库驱动模式通用化面 临很大难度,最根本的问题是数据库不适应测试系统 的执行机制。
3. 2 测试流程设计语言模式
为了解决复杂测试系统的通用化,人们又提出了 构建通用测试平台。目前通用测试平台的开发有文本 式流程设计语言、交互化流程设计工具两种模式,两者 除了人机界面有较大的区别外,内部机理大同小异。
(1) 文本格式流程设计语言
由于大型测试系统的仪器控制是比较复杂的过 程,要求装备工程师熟悉测试系统硬件和仪器编程语 言是不现实和没有意义的,为了将其与软件工程师的 工作界面划分开来,开发一种只适合于流程表达的语 言交于装备工程师使用,主程序解释或通过中介语言 (比如C语言)对其进行编译形成可执行程序。这种 模式与数据库模式相比提高了灵活性和执行速度,但 同样要求复杂的解释或编译软件。
(2) 交互式流程设计语言
一些测试仪器生产厂商纷纷提供了交互式流程设 计软件,但几乎无一例外都是针对系统中的具体仪器 功能和接口,所以即使不用编程也无法节省调试及开 发时间,并且无法交于装备工程师直接使用。
3. 3 基于测试引擎的交换式软件开发模式
虚拟仪器测试系统的通用结构一般由混合总线测 量仪器及数据采集模块、专用转接及信号调理模块、被 测对象三大部分组成。
基于测试引擎的软件开发方案的主要设计思想就 是在测试流程与具体仪器控制之间建立测试引擎,将 仪器控制与测试程序完全隔离,检测流程的主控程序 中不进行直接面向仪器的操作,而是面向被测对象信 号接口的操作,被测对象接口信号到仪器接口的映射 及调理关系由平台自动完成,映射关系的确定由专用 测试模块及连接电缆决定,采用数据库方式管理,映射 记录由硬件设计人员填写。
系统定义测量仪器部分与专用转接模块的接口称 为Ai (A1 ~An ) ,专用转接模块与被测对象的接口称为 B i (B1 ~Bn ) ,测试程序通过控制仪器的输入输出实现 所有的测试功能。由装备测试人员针对B i 接口编写 测试流程,在接口配置文件中存储了B - >A 的映射关 系及各点所对应的功能函数。这样就使得软件工程师 及装备工程师可各自独立工作,实现了系统的模块化 和通用化。基于测试引擎的设计开发模式示意图如图 1所示。
采用基于引擎的开发模式具有以下优点:
(1) 由于引擎的独立性,可以采用多种编程语言 开发测试系统;
可以插入故障诊断引擎,使系统具有更通用 的功能;
(3) 硬件仪器改变后不需要改变测控程序,只需 要安装新的仪器驱动程序,改变或配置引擎中相关函 数,因此,通用化、模块化、硬件无关性、程序重用性明 显增强;
(4) 与数据库和解释性语言相比,不需要额外的 复杂解释,提高了执行效率;
(5) 提供了状态高速缓存机制,比传统的测试系 统执行速度快10~30%。
(6) 对装备测试人员、硬件接口设计人员及软件 开发人员的任务进行了合理分配,使得测试程序与仪器控制完全分离,大大简化了测试系统主程序设计,提 高了开发效率。
(7) 由于测试引擎的硬件无关性,几乎不需要再 进行仪器控制编程就可将测试系统移植到新型设备, 缩短了开发周期、降低了维护费用、提高了维护效率, 适应目前复杂的系统测试的需求。
但是测试引擎的开发模式同样存在诸多技术难点,如:接口映射配置文件和测试程序接口之间的实现 方法;对有些不常用测量功能的封装可能考虑不足,导 致测试引擎的修改。
3. 4 基于国际标准ATS体系结构的开发模式
基于国际标准ATS体系结构的开发模式的主要 设计思想是:按照IEEE 1226 ABBET划分软件体系结 构层次,并使用组件技术,基于组件的功能模块可挂在 软总线上,模块之间、层次之间通过接口实现测试信息 的交互,可方便地实现软件系统功能的添加、裁剪和重 构。系统广泛采用了测试领域和其他相关领域的标 准,如IEEE1226、IEEE1232、IEEE1641、IEEE1671、IV I、 TCP / IP等,使系统具有很好的适应性和兼容性。其中 IV I仪器驱动器规范和IEEE1226. 3资源管理标准的 采用,最大限度地实现仪器的可互换性; IEEE 1641标 准提供了基于COM技术实现的信号描述与控制的能 力,使得用户可以选择任意支持COM的开发平台与程 序设计语言,而且能够很方便地实现测试程序的可移 植; IEEE1671提供了一个开放的信息传输的标准,使 得信息可以在不同测试仪器的测试程序之间传输,为 TPS可移植与互操作、仪器可互换提供了便利条件; IEEE1232标准定义了ATS故障诊断服务接口,它提 供了基本诊断服务,同时允许各种诊断方法添加到 ATS中去,大大提高ATS故障诊断水平。
采用基于国际标准ATS体系结构的开发模式具 有以下优点:
(1) 采用标准语言编写面向信号的测试流程,可 保证测试程序的重用性、版本升级、仪器无关性;
(2) 通过符合国际标准开发的TPS在最大程度上 满足了系统升级、功能扩展、二次开发实用性好的要求;
(3) 通过COM或CORBA技术实现TPS软件功 能模块之间的通信,使系统网络化变得简单且可靠性 高,不同操作系统与开发工具之间兼容性强;
(4) 与故障诊断等模块实现了标准连接,对外挂 各种诊断工具提供了统一的接口。
采用基于国际标准ATS体系结构的开发模式同 样存在许多技术难点,如: IV I - MSS标准及开发工具 目前还不具备; IV I规范没有覆盖所有仪器,目前无法 实现整个系统的仪器无关性等。
4 结束语
自动测试系统软件设计是一个不断发展的过程, 需要进行统一、简化、协调、优选。目前已有超过数百 种程序设计语言,众多软件开发模式,如何制定相应的 标准,是目前自动测试系统软件设计标准化的一个难 题。本文比较了目前几种流行的软件操作平台、软件 开发程序设计语言和软件开发模式的优缺点,并总结 了它们的选用标准及对策,对推进测试软件设计标准 化有着重要的意义。
参考文献:
[ 1 ] 李宝安,李行善. 自动测试系统(ATS)软件的发展及关键 技术[ J ]. 测控技术, 2003, 22 (1) : 1 - 4.
[ 2 ] 刘金甫,田同明. 可互操作ATS的技术实现途径[ J ]. 测控 技术, 2002 , 21 (2) : 53 - 56.
(转载)