基于IVI驱动的真空热试验数据采集系统软件开发
2016-05-25吴东亮安万庆王擎宇北京卫星环境工程研究所北京100094
朱 熙,刘 波,吴东亮,安万庆,王擎宇(北京卫星环境工程研究所,北京 100094)
基于IVI驱动的真空热试验数据采集系统软件开发
朱 熙,刘 波,吴东亮,安万庆,王擎宇
(北京卫星环境工程研究所,北京 100094)
摘要:目前国内大型空间环境模拟器配备了多种型号的数据采集系统,主要负责完成对多种数据信号的综合测试。文章以Keithley 3706数据采集系统为设计对象,在VB6.0的开发环境中设计了基于IVI驱动的数据采集软件,给出了IVI驱动的设计过程及软件代码。实践表明,IVI驱动的引入提高了数据采集系统的开发效率,降低了研制成本,实现了数据采集系统的硬件无关性。
关键词:真空热试验;数据采集系统;软件设计;IVI驱动
http://www.bisee.ac.cnE-mail: htqhjgc@126.comTel:(010)68116407, 68116408, 68116544
0 引言
真空热试验数据采集系统是空间环境模拟器测控系统的重要分系统,在航天器空间环境试验过程中负责协助完成对多种数据信号的综合测试,包括温度、热流、电压、电流等[1],为温度监视及控制提供依据。因真空热试验具有长时间连续运行的特点,要求数据采集系统具有很高的可靠性和过程能力。
随着空间环境模拟实验对数据采集的要求越来越高,包括采集点数更多、速度更快、稳定性更高等,目前国内大型空间环境模拟器的数据采集系统配备了Agilent 4411、Keithley 2750、Keithley 3706等多种型号测量仪器。不同型号的测量仪器只能使用其专用的测试软件,不具备测量仪器硬件的互换性和测试软件的通用性。而对作为测试系统核心的测试软件,真空热试验数据采集系统工程师们研究的重点主要是对现有的软件进行改进,使得其在测量仪器更新换代后可直接应用于新的测试系统,从而延长数据采集系统的寿命,降低测试软件维护开发成本。我们将IVI(Interchangeable Virtual Instrument)技术应用于该采集系统,基本实现了其与测试仪器的硬件无关性。
本文以Keithley 3706数据采集仪器(以下简称3706数采仪器)为设计对象,提出了一种基于IVI驱动的数据采集系统的软件设计方法。
1 系统介绍
1.1总体架构
由3706数采仪器构成的数据采集系统如图1所示,卫星上热电偶、热流计等传感器通过电缆汇集于容器内接插件,通过穿墙插头将信号引至容器外的数采仪器上[2];数采仪器配置在数据采集现场,服务器和客户端计算机配置在集中控制室,它们之间以LAN接口通过交换机进行通信;数据采集计算机将测量数据保存在本地以及主服务器中,主服务器将测量数据发布到各监视计算机上。每台3706数采仪器具备独立的IP地址,测试软件通过发送指令控制数采仪器,可以并行采集。
图1 数据采集系统结构图Fig. 1 Configuration diagram of the data acquisition system
1.23706数采仪器特点
3706数采仪器是首款达到LXI-B级标准的系统仪器,LXI是以太网技术在仪器领域的扩展,具有其他平台不可超越的优势;可选配的高性能集成DMM能够实现快速、低噪声测量,分辨率可达7位半,具有高稳定性、高精度以及高灵敏度测试等优点;支持13种内置测量功能,包括直流/交流电压、直流/交流电流、两线电阻、四线电阻等[3]。通过安装不同的多路转换开关模块,3706数采仪器可以组成不同测量能力的多路数据采集系统。根据航天器真空热试验的测量需求,选择3721多路转换开关模块,每块开关具有40路双线制测量通道(或20路四线制测量通道)以及2路电流测量通道。本数据采集系统包含10台3706数采仪器,每台仪器安装了5块3721多路转换开关,可以进行1960路双线制测量、20路四线制电阻测量以及20路电流测量的组态配置。
2 基于IVI驱动的程序设计
2.1IVI仪器驱动特点
随着总线技术的发展,仪器驱动器已经成为组建测试系统、设计测试软件、完成仪器控制的一个重要工具。从目前仪器驱动器技术发展现状来看,其设计格式、接口软件等相关技术问题有了统一标准,但更换不同型号的测量仪器时需要修改测试程序,以适应新的仪器及仪器驱动器。为了提高仪器的互换性和程序开发效率,NI、Tektronix等公司成立了IVI基金会[4]。该基金会为仪器驱动程序制定了新的编程接口标准,在符合该标准驱动的基础上设计完成的测试软件实现了与测试仪器的无关性。IVI仪器驱动器主要有以下优点:
1)使测量仪器具备可互换性[5]。IVI仪器驱动器可被置于包含不同仪器的多种仪器系统中,当采集系统更换不同类型的仪器时,在程序中只需更新该仪器的驱动,测试系统开发者在编写软件时可以做到最大程度地与硬件无关。
2)具备状态缓存功能。IVI驱动器能够自动对仪器当前的状态进行缓存,在下一周期测量时不需要重新设置仪器参数。每次测量时对仪器状态进行检查,只有当参数设置改变时,才将设置参数发送给仪器。这样可以避免不必要的参数重置,从而改善仪器测量性能。
3)具备仿真功能。该功能可以实现在不使用仪器时,在程序中调用仪器驱动器,为仪器开发应用程序代码,并检查输入参数以及产生仿真的输出结果[6]。IVI驱动程序结构如图2所示。图中,IVI仪器类驱动器是一组与仪器属性无关的函数,用于控制某一类型的仪器,提供仪器可互换的IVI驱动。IVI特定的仪器驱动器是包含了一组控制某一特定仪器信息的函数,一般由仪器生产商提供该仪器的IVI特定驱动器。IVI引擎完成由仪器类驱动器到特定的仪器驱动器的映射功能。IVI配置文件中包含了仪器类驱动器以及特定的仪器驱动器的信息。IVI驱动程序流程如下:测试程序调用IVI仪器类驱动程序,IVI仪器类驱动程序调用IVI引擎或IVI特定的仪器驱动器通过VISA I/O来控制具体的仪器设备。在IVI驱动程序的工作机制中,当采集系统更换不同类型的仪器时,只需安装该仪器的IVI特定驱动器,修改相应的IVI配置文件,而不用对测试程序进行任何改动即可测试,实现了测试硬件的互换性以及测试软件的硬件无关性。属性名称都以Ke37XX为前缀开头。
2)数采仪器初始化设置
仪器初始化设置主要功能是清空数采仪器的寄存器中的内容,其代码如下:
driver(DVM(1)).Initialize
TCPIP::169.254.50.1::INSTR, False, False
2.2IVI驱动程序设计
IVI基金会主要对数字多用表、示波器、任意波形发生器、开关、电源、功率计、射频信号发生器以及频谱分析仪这8类仪器制定了驱动程序[7]。IVI类驱动器为这8类仪器固有的函数和属性,在测试软件中可直接调用该类驱动器。IVI特定的仪器驱动器由该仪器生产商提供,在开发测试软件前应先安装该仪器的特定驱动器然后进行调用。
目前,实现IVI驱动有2种方法,即IVI-C和IVI-COM[8]。IVI-C是基于VPP规范和标准的编程模型,只能通过LabWindows/CVI开发环境生成;IVI-COM是基于COM(component object model)组件对象模型,可以通过VB、VC++、LabView、Delphi、LabWindows/CVI等不同开发环境生成,其兼容性和可移植性较好[9]。本文采用VB6.0开发环境实现3706数采系统的IVI-COM驱动,具体步骤如下。
1)引入IVI驱动
为了在测试程序中使用IVI驱动,就必须先配置系统以使得IVI驱动可以与具体的仪器驱动相交互。首先安装Keithley 3700系列的IVI驱动,即“Ke37XX.msi”;安装完毕后,在计算机上生成数字多用表的IVI类驱动器以及3700系列的IVI特定仪器驱动器;在VB环境下添加IVI驱动库,即“IVI ke37XX 2.1Type Library”,该驱动库为IVI特定的仪器驱动器,其生成的所有驱动器函数以及
driver(DVM(1)).status.Clear
driver(DVM(1)).Channel.OpenAll
DVM(1)表示该数采仪器为第1台仪器,代码在这里表示对IP为169.254.50.1的数采仪器进行初始化设置,然后清空仪器状态寄存器中的内容,最后将所有通道置为开启状态。
3)仪器通道参数设置
通道参数包括测量信号类型以及测量量程。通道参数设置代码如下:
driver(DVM(1)).Scan.CreateScanList 1001, dmm_dcvolts
driver(DVM(1)).Measurement.Range = 0.1
代码在这里表示对第1台数采仪器的1001通道进行设置,测量类型为直流电压,测量最大值为0.1V。在设置通道参数时,可以同时对某台仪器的多个通道进行参数设置,例如需要对1001至1040总共40个通道进行参数设置,在代码中可以用字符串“1001:1040”传递给函数。
4)数采仪器参数设置
仪器参数包括AD转换器积分时间和寄存器参数。AD转换器积分时间的设置直接关系到数据采集的速度与精度:积分时间长则采集的精度较高,但采集速度将会下降;积分时间短则采集速度快,但噪声将会增加,从而降低采集的精度。因此应根据使用需求选用合理的积分时间,一般选用1~5 PLC。积分时间与噪声关系如图3所示。
图2 IVI驱动程序结构示意图Fig. 2 Structure diagram of the IVI driver
积分时间设置代码如下:
driver(DVM(1)).Measurement.Nplc = 3#
代码在这里表示第1台仪器的AD转换积分周期为3 PLC(0.06s)。
寄存器参数主要是设置每次采集时寄存器可存放数据的字节数,其设置代码如下:
driver(DVM(1)).Measurement.Buffer.Create "mybuffer", 10000
代码在这里表示第1台仪器的寄存器可存储10000个字节的字符数。
5)数据采集
当进行多通道数据采集时,向仪器发送通道的测量类型指令,仪器判断当前设置与函数所要求的值是否一致,当两者一致时延用当前设置,而不需要对所有参数进行重新配置,这样相应地减少了数采程序与数采仪器的通信操作次数,同时实现了对数采程序控制方式的优化。数据采集代码如下:
driver(DVM(1)).Scan.CreateScanList 1001:1040, dmm_dcvolts
driver(DVM(1)).Scan.ExecuteBackground "mybuffer"
代码在这里表示对第1台仪器的1001至1040通道设置为测量直流电压类型,然后对这些通道进行数据采集。
3 上位采集软件
通过对IVI驱动程序的研究,采用VB6.0编写3706数据采集系统的上位数采软件(流程如图4所示)。软件的核心部分是利用IVI驱动完成对3706数采仪器和多路转换开关的控制。软件采用dmm.scan仪器测量模式进行数据采集,在程序中首先对所有的测量通道信息进行分析,然后根据不同的测量信息要求进行分组,在每个数据采集周期中以组为单位整体循环发送Scan指令,采集结束后将该测量分组的数据整体读回,然后进行数据处理、保存。
本系统采用连续扫描的方式进行数据采集,以60 s为采样周期采集全部温度测点的电压值(mV),按热电偶的分度表转换成相应的温度值,将测量数据保存到本机的硬盘上及服务器中,可供其他用户调用,实现数据共享。终端界面显示各测量点的原始测量值以及计算结果值,并可以切换不同数采仪器以及同一台数采仪器不同板卡的显示界面。当测量结果值超出上下限时会显示报警。
图4 上位软件流程Fig. 4 The flow chart of host computer program
4 结束语
本文基于IVI驱动,对3706数据采集系统进行了软件设计。IVI驱动的引入大大提高了系统的开发效率、降低了研制成本。当更换仪器类型时,只需安装该仪器的IVI驱动即可使采集软件正常运行,实现了采集系统与采集仪器硬件的无关性,为仪器互换提供了手段。该3706数据采集系统在开发完成后,进行了有载调试,系统运行稳定可靠,测量数据准确无误,现已投入到航天器型号试验中。
参考文献(References)
[1] 吴大军. 吉时利2750在真空热试验测量系统中的应用[J].航天器环境工程, 2006, 23(2): 115-118 Wu Dajun. Application of Keithley2750 to the measurement system in vacuum thermal test[J]. Spacecraft Environment Engineering, 2006, 23(2): 115-118
[2] 孙兴华, 苏新明, 陶涛. 真空热试验热电偶测温参考点分析改进[J]. 航天器环境工程, 2012, 29(5): 522-526 Sun Xinghua, Su Xinming, Tao Tao. Analysis and improvement of temperature reference equipment forthermocouple in vacuum thermal tests[J]. Spacecraft Environment Engineering, 2012, 29(5): 522-526
[3] Keithley Insmunents, Inc. Series 3700 system switch/multimeter user’s manual[G]
[4] 秦红磊, 路辉, 郎荣玲. 自动测试系统—硬件与软件技术[M]. 北京: 高等教育出版社, 2011: 322-323
[5] 贾海明, 安幼林. 功能封装的仪器驱动程序可互换性实现技术[J]. 兵工自动化, 2009, 28(11): 79-82 Jia Haiming, An Youlin. Function of instrument package driver technology interchangeability[J]. Ordnance Industry Automation, 2009, 28(11): 79-82
[6] 李木飞, 龚明. 基于IVI模型的通用虚拟仪器驱动程序的开发[J]. 制导与引信, 2009, 30(4): 33-37 Li Mufei, Gong Ming. Development of general virtual instrument driver programme based on IVI model[J]. Guidance & Fuze, 2009, 30(4): 33-37
[7] IVI Foundation. IVI-3.1: driver architecture specification[G], 2011
[8] 赵涛, 彭喜源, 石仁利. IVI-COM仪器驱动程序的研究及应用[J]. 计算机测量与控制, 2008, 16(12): 1972-1974 Zhao Tao, Peng Xiyuan, Shi Renli. Research and application on IVI-COM instrument driver[J]. Computer Measurement & Control, 2008, 16(12): 1972-1974
[9] Mueller J. IVI 驱动程序标准[J]. 国外电子测量技术, 2013, 32(6): 11-17 Mueller J. IVI driver standards[J]. Foreign Electronic Measurement Technology, 2013, 32(6): 11-17
(编辑:冯 妍)
Software development based on IVI driver for data acquisition system used in thermal vacuum test
Zhu Xi , Liu Bo, Wu Dongliang, An Wanqing, Wang Qingyu
(Beijing Institute of Spacecraft Environment Engineering, Beijing 100094, China)
Abstract:At present, a large space environment simulator is equipped with multiple models of data acquisition systems, responsible for a comprehensive test of a variety of data signals. With the Keithley3706 data acquisition system as the object, this paper discusses the principle and the composition of a data acquisition system. Based on the research of the IVI driver, an acquisition software is designed in the VB6.0 development environment. The design process of the IVI driver and the software code are presented. It is shown that the development efficiency is improved with the introduction of IVI driver, and the cost of research is notably reduced. The hardware independence of the data acquisition system is realized.
Key words:vacuum thermal test ; data acquisition system; software design; IVI driver
作者简介:朱 熙(1985—),男,硕士学位,主要研究方向为航天器环境试验测控技术。E-mail: zhuxi198533@126.com。
基金项目:北京卫星环境工程研究所自主研发项目“真空热试验测控系统集中控制技术”
收稿日期:2015-05-11;修回日期:2016-03-30
DOI:10.3969/j.issn.1673-1379.2016.02.015
中图分类号:TP216
文献标志码:B
文章编号:1673-1379(2016)02-0194-05