一种开放式仪器自动测试标定系统
2010-05-03冯秋平
冯秋平,方 强
(广东省计量科学研究院,广东 广州 510405)
1 引 言
现代测试仪器的智能化、集成化对自动测试提出了迫切的需求,仪器与计算机的融合也促进了自动测试的发展。测试校准机构在日常工作中逐步开发了针对不同被测仪器的自动测试系统,但大多是单系统和封闭式的[1],不能被其他仪器所使用。而自动测试系统的发展方向是通用化、开放性,并且已经成为测试系统的主要指标[2-3]。因此开发一个开放式的自动测试系统,实现不同类型仪器的共享平台,对于测试校准机构是十分有意义的。
2 开放式测试系统设计
2.1 开放式测试系统的设计思想
开放式测试管理系统的设计思想是:在一个通用平台系统硬件结构搭建完毕后其功能可根据需要扩充,测试系统的功能由系统软件决定,实现多种仪器的测试功能[4-5]。具体实现方法为:以数据库管理为系统平台,实现不同类型仪器测试过程自动化,并完成测试辅助信息和辅助功能的管理。系统主要功能包括测试辅助信息管理、测试过程管理、测试资源管理3部分。
(1)测试辅助信息管理。所谓测试辅助信息是指与测试行为本身有联系的或者用来界定测试数据的一些信息。包括测试标定日期、测试标定仪器类型、仪器序列号、客户信息、环境温湿度等。
(2)测试过程管理。数据库平台根据被测试仪器的型号和待测试的功能,调用对应的测试程序,执行测试过程,并把测试结果写进数据库。
(3)测试资源管理。所谓测试资源是指不同型号被测试仪器的对应测试程序、测试参数数据、测试结果数据、仪器功能描述文件以及为方便管理这些数据而设置的其他辅助文件的集合。测试资源管理是开放式测试系统的一个辅助工具,是为使用者增添新型仪器或者删除现存仪器的相关测试资源而设计的。通过这个工具可以不断地扩充和修正仪器测试资源,达到在一个平台上实现多种类型仪器自动测试的功能。
2.2 封闭式测试系统和开放式测试系统的比较
图1所示是封闭式测试软件的结构图。自动测试程序根据被测仪器的具体测试流程编制,运行时接受接口模块的输入数据和数据库或数据文件模块的原始数据,测试结果送入数据库或数据文件模块保存,同时送入报表管理模块生成报表。该系统的输入输出接口、自动测试程序都是专用的,使用者不能修改。
开放式测试系统的软件结构和封闭测试系统的软件构成上有较大的差别。结构如图2。与图1比较,主要区别如下:
(1)动态加载模块。根据被测仪器的型号和功能在系统运行中动态加载测试过程对应的测试程序和测试中间参数。
(2)文件管理模块。开放式测试系统的必备功能模块,目的是方便使用者根据需要管理被测仪器型号的测试资源。
(3)被测仪器资源库管理模块。在开放式测试系统中,管理不同型号被测仪器的测试资源的模块。对于任一种型号的被测仪器,其资源至少包括测试程序、测试参数、测试数据等文件,测试资源也可根据需要调整资源内容。
3 开放式仪器自动测试系统实现
3.1 设计背景
因工作需要,针对NI公司的不同型号的数据卡,开发了开放式的自动测试标定系统。专业实验室可以根据需要,添加不同信号仪器的测试资源,从而实现多类型仪器的自动测试和标定功能。数据库选择Microsoft Access 2003,编程工具为LabVIEW 7.1,主控计算机为NI PXI 8106。
3.2 功能设计
自动测试标定软件是为完成不同型号仪器测试标定过程自动化,并保存相关辅助信息而开发的软件系统。其主要功能包括标定仪器信息管理、测试标定流程自动执行、测试标定资源管理、标定数据实时显示、历史数据查询、测试报告生成等。
3.3 功能模块
由于辅助模块的设计千差万别,可以根据需要自由设计,以下主要说明开放式测试系统的典型功能模块。
3.3.1 动态加载模块
动态加载模块是开放式测试系统设计的关键,它根据输入输出模块接受的信息,在执行测试程序的过程中加载自动测试程序。动态加载的源程序如图3。动态加载模块有3个输入参数,为仪器型号、程序名、测试过程中间参数。其中测试过程中间参数作为被加载的测试程序的输入参数。1个有输出参数,即测试结果数据,其数据由被加载的测试程序输出。图3中标号1、2、3分表为子函数1、子函数2、子函数3。
子函数1:Open VI Reference,返回一个指向子程序、用户控件或者全局变量的参考值,参考值由名字字符串或者路径字符串指定。
子函数2:Call By Reference Node,调用由参考值确定的子程序、用户控件或者全局变量,参考值的接口定义必须与子函数1的输入参数4一致。
子函数3:Close Reference,关闭参考值。
3.3.2 文件管理模块
文件管理模块是开放式测试系统的一个必备工具,其功能是在被测试仪器资源库中增加新仪器资源。自动测试标定软件的文件管理模块使用“Tab Control”控件和事件驱动机制实现了人机交互功能。“Tab Control”的人机界面如图4所示,其不同的属性页完成相应的功能,介绍如下:
(1)“仪器型号”属性页根据图4中“新仪器型号”控件的内容,建立图2中所示的测试资源,包括新仪器资源文件夹的建立、新数据库文件生成等内容。为了在程序运行过程中根据用户的输入动态地创建数据库和各种信息表,测试标定程序利用了ADO和ADOX技术。ADOX是对ADO对象和编程模型的扩展,它在标准ADO对象里增加了Catalog、Table、Column、Index、Key、Group、User、Procedure、View 等 9个对象[6-7],通过对这些对象的操作可以达到操作数据库的目的。动态创建数据库的代码如图5所示。首先打开ActiveX自动化对象的一个引用ADOX._Catalog,然后通过对该对象的属性和方法操作,建立数据库,之后关闭引用。“Provider=Microsoft.Jet.OLEDB.4.0;”语句指明被创建数据库的引擎,“Data Source=”后的语句指明数据库的路径和名称。
(2)“标定项目”属性页的界面如图6。在图6中须要填写新增仪器的子功能名称、对应的测试程序名称、标定程序名称和测试过程需要加载的参数表名称。“确定”按键根据图6填写的内容创建新增仪器的“标定项目列表”。在数据库中动态添加表的代码如图7,首先打开一个自动化对象,其类型为ADODB._Connection,连接的数据库由ConnectionString的值确定。然后把该连接的参考值赋给另外一个ADOX._Catalog对象的“ActiveConnection”属性,至此已经连接并打开了一个仪器的数据库,可以进行添加表的操作。为了添加一个表到数据库中,首先在已经创建的ADOX._Catalog对象中选择“Tables”属性,并选择“添加项目”的方法为数据库添加一个表。添加表操作完成后依次关闭表对象、连接对象和Catalog对象。图7中使用了Create table子程序完成了表的创建,创建表的过程与数据库的创建类似,只不过打开的ActiveX自动化对象的类型是ADOX._Table。
(3)“标定内容”属性页的界面如图8,其功能是完成测试参数表的创建。对应图6中的每一个测试参数表名称,文件管理模块须要根据图8的内容创建一个对应的测试参数表。由于不同仪器的测试内容及参数千差万别,因此测试参数表的表头也由用户自己制定。
(4)“标定记录”属性页的界面如图9,其功能是完成“标定记录表”的创建,“标定记录表”存储测试标定结果数据。
(5)在所有表格创建完成后,文件管理模块根据图10的内容复制用户指定测试和标定程序文件到图4创建的资源文件夹。测试程序和标定程序的输入输出接口必须与动态加载模块加载的测试流程接口一致。定义如下:输入参数是String型二维数组,接收测试参数数据表的数据;输出参数是String型二维数组,输出测试结果数据。
4 结束语
建设开放式自动测试系统是节约测试系统开发成本,提高开发效率的有效途径,是提高综合测试能力重要方法。该项目开发的自动测试标定系统在实际校准工作中达到了很好的效果,证明了系统的设计是合理可行的。但是系统的文档管理功能对使用者要求较高,使用者需要具备编写测试程序的能力,这是项目后续改进的内容。
[1]朱崇全,俞应华,姚晶晶.现代计量技术中检定/校准过程自动化及其发展 [J].现代测量与实验室管理,2005,13(2):12-13.
[2]刘记彬,何玉珠,刘金琨.基于Linux的通用自动测试软件平台的设计与实现 [J].电子测量技术,2009,32(1):70-81.
[3]罗 锦,孟 晨,杨锁昌.开放式自动测试系统研究[J].自动化与仪器仪表,2005(2):65-67.
[4]刘世军,杨瑞青,李 鹏.自动测试系统通用平台的设计[J].电光系统,2005(3):34-37.
[5]陈 渝,秦开宇.一种自动测试系统软件的开放式架构设计与实现[J].中国测试技术,2007,33(6):96-125.
[6]周 荣,丁金华,李明颖,等.在LabVIEW中利用ADO技术动态创建数据库 [J].大连轻工业学院学报,2005,24(3):207-210.
[7]刘 玉,董志斌,吴建军,等.基于ADO技术的LabVIEW访问数据库的方法[J].国外电子测量技术,2003(增刊):55-66.
[8]徐洪安,费仁元,王 民.用ADO构建LabVIEW中的数据库访问接口 [J].北京工业大学学报,2003,29(2):138-140.