您好,欢迎来到五一七教育网。
搜索
您的当前位置:首页基于LabVIEW构建电子仪器自动测试系统

基于LabVIEW构建电子仪器自动测试系统

来源:五一七教育网
基于LabVIEW构建电子仪器自动测试系统

李海明;朱保安;王双记

【摘 要】针对电子仪器种类繁多、通信接口和控制命令各不相同的情况,利用LabVIEW构建自动测试模块的方法实现对各类通用仪器的自动测试.通过LabVIEW强大灵活的仪器控制功能,利用VISA函数实现模块的执行.该自动测试模块准确可靠、可移植性强、用途广泛,任意接口仪器的自动测试工作均可顺利开展,大大提高了测试能力. 【期刊名称】《中国测试》 【年(卷),期】2010(036)002 【总页数】3页(P63-65)

【关键词】电子仪器;自动测试系统;LabVIEW软件;VISA函数;自动测试模块 【作 者】李海明;朱保安;王双记

【作者单位】91386分队,广东,湛江,524022;91386分队,广东,湛江,524022;91386分队,广东,湛江,524022 【正文语种】中 文

【中图分类】TP273;TP311.52 1 引 言

随着现代化科学技术的发展,自动化技术在计量领域得到了广泛应用,自动化测试系统省去了重复而繁杂的手工操作和计算,检测效率大大提高,而且避免了人为误

差,但是由于被测电子仪器种类繁多,配备的通信接口和控制命令各不相同,自动化测试系统的开发往往只能针对某些具体型号被测仪器,极大制约了自动化测试系统的使用和推广。利用LabVIEW构建自动测试模块,为用户提供了定制被测仪器的平台,解决了自动化测试系统的瓶颈问题。 2 常见仪器通信接口

目前,集成在电子仪器上的标准通信接口主要有RS-232串行接口、RS-485、GPIB和USB总线接口等[1]。LabVIEW提供具有可扩展性的、开放性的虚拟仪器接口,支持VXI总线、PXI总线、GPIB总线、VISA总线、串行通讯总线等多种类型的仪器,LabVIEW平台不包含的仪器数目,所有符合VXI即插即用规范的虚拟仪器均可在平台中进行操作与控制[2]。 3 构建自动测试模块 3.1 设计思路

计算机通过电子仪器各自的控制命令完成读写操作,实现对仪器的控制。构建自动测试模块的目的是在自动化测试系统中为用户提供定制被测仪器的平台,所谓“定制”就是用户根据测试流程将所要用到的控制命令组合在一起,形成相应的测量命令集,测试时执行命令集来实现自动测试。 3.2 自动测试模块的组成

自动测试模块由建集模块、执行模块和命令集数据库组成,如图1所示。建集模块形成的测量命令集存入数据库中,测试时由执行模块从数据库中调用命令序列。 3.3 建集模块设计 3.3.1 建集流程

不同的仪器拥有各自的控制命令,通过查询仪器使用手册可以得到。控制命令按照使用时机分为测量前设置、测量时读数和测量后复位三类,按照功能又划分为读取、写入和延时三类。建集模块根据测试流程将所要用到的控制命令组合在一起,形成

相应的测量命令集,建集流程如图2所示。 图1 自动测试模块的组成 图2 建集流程图

仪器接口类型包括GPIB、RS-232和USB。在建集流程图中虚框为可选过程,其中“输入仪器地址”适用于GPIB接口的仪器;“设置命令变量”用于根据实际参数对仪器进行设置的场合,例如对信号源的设置包括频率、幅度、衰减等,根据命令集的需要,可以设置“频率”、“幅度”和“衰减”三个变量,在书写命令内容的时候用变量表示具体的参数。 3.3.2 测量命令集实例

测量命令集与被测仪器、参数有关,以实例进行说明,其中表1列出的是数字多用表34401A测量命令集,被测参数为直流电压,接口类型为GPIB和RS-232;表2列出的是信号发生器33220A测量命令集,被测参数为输出频率,接口类型为GPIB和USB。 3.4 执行模块设计

执行模块是自动测试模块的核心部分,采用LabVIEW语言开发设计。LabVIEW是一种基于G语言的图形化开发平台,主要用于数据的采集、分析、处理和表达,总线接口、VXI仪器、PXI仪器以及GPIB与串口仪器的驱动程序编制和驱动虚拟仪器,由于其强大、灵活的仪器控制功能使LabVIEW成为开发虚拟仪器的首选编程语言[3]。

表1 数字多用表34401A测量命令集命令内容 命令时机 命令功能*cls 测量前设置 写入FUNCTION ′VOLT∶DC′ 测量前设置 写入Read? 测量时读数 写入20ms 测量时读数 延时20字符 测量时读数 读取*cls 测量后复位 写入

表2 信号发生器33220A测量命令集命令时机 命令功能测量前设置 写入Output off 测量前设置 写入Apply∶SIN 频率,幅度,衰减 测量时读数 写入Output on

测量时读数 写入500ms 测量时读数 延时Output off 测量后复位 写入 在LabVIEW中为实现与仪器通信有两种方式,一种是利用函数模板中

Instrument I/O子模板下的相关函数,如GPIB函数,另一种是利用函数模板中Instrument I/O子模板下的VISA函数[4],实际上VISA函数能与各种接口类型的仪器通信,所以采用VISA函数实现各种接口的仪器测试。 3.4.1 NI-VISA简介[5]

NI-VISA(Virtual Instrument Software Architecture,以下简称为“VISA”)是美国国家仪器NI(National Instrument)公司开发的一种用来与各种仪器总线进行通信的高级应用编程接口。VISA总线I/O软件是一个综合软件包,不受平台、总线和环境的,可用来对 USB、GPIB、串口、VXI、PXI和以太网系统进行配置、编程和调试。VISA是虚拟仪器系统I/O接口软件,基于自底向上结构模型的VISA创造了一个统一形式的I/O控制函数集。一方面,对初学者或是简单任务的设计者来说,VISA提供了简单易用的控制函数集,在应用形式上相当简单;另一方面,对复杂系统的组建者来说,VISA提供了非常强大的仪器控制功能与资源管理。

3.4.2 常用VISA函数[6]

(1)ViOpen,打开并指定 VISA resource name的设备的连接。 (2)ViProperty,VISA 设备的属性子节点,可以设置端点或传输方式。 (3)ViWrite,向 VISA resource name指定的设备写入数据。 (4)ViRead,从VISA resource name指定的设备读出数据。 (5)ViClose,结束设备读写并关闭与指定设备的连接。 3.4.3 通过VISA控制仪器

每一个VISA函数都有一个VISA资源名称参数,用来指明该函数对应的硬件设备,使用不同接口类型的仪器由程序自动更换VISA资源名称参数。如用GPIB接口测

量数字多用表34401A[4],其GPIB地址为 22,则其VISA资源名称为GPIB∶22,其中GPIB用于指明接口的类型。与被测量仪器通信的第一步是建立计算机与仪器的连接,此任务可以通过ViOpen函数来实现,接着利用ViWrite函数根据需要向仪器发送各种命令,ViRead函数读取仪器响应的任何数据,完成所有测试任务后,使用ViClose函数断开计算机与仪器的通信连接。 图3 仪器测量流程图 图4 执行模块流程图 3.4.4 仪器测量流程

仪器测量按照测量前设置、测量时读数、测量后复位的时序进行,流程如图3所示。在测量的每个时机,均通过执行模块检索并执行数据库中相应的命令序列,实现仪器的设置、读数及复位等功能,完成仪器的自动测量,执行模块流程如图4所示。

3.4.5 执行模块程序

图5是执行模块的LabVIEW程序,输入参数有VISA资源名称、命令集数组、错误输入,输出参数为VISA资源名称输出、读取数据、错误输出。其中VISA资源名称根据不同的仪器通信接口类型而改变,命令集数组是从命令集数据库中根据测量时机检索而生成,命令格式为功能:命令内容,如读取:20字符、写入:*cls。 图5 执行模块程序 4 结束语

介绍了利用LabVIEW构建自动测试模块的思路及方法,该方法在“通用仪器仪表综合检定系统”中得到了实际应用。基于LabVIEW构建的自动测试模块准确可靠、可移植性强、用途广泛,任意接口仪器的测试工作均可顺利开展,大大提高了测试能力。 参考文献

【相关文献】

[1] 叶文生,王思华.基于虚拟仪器技术的USB接口仪器通信软件设计[J].电子技术应用,2006,32(10):86-88.

[2] 吴成东,孙秋野,盛 科.LabVIEW虚拟仪器程序设计及应用[M].北京:人民邮电出版社,2008. [3] 戴鹏飞.测试工程与LabVIEW应用[M].北京:电子工业出版社,2006.

[4]张小琴,林建辉.LabVIEW环境下的GPIB总线虚拟仪器开发[J].中国测试技术,2004,30(1):53-55.

[5] 余志荣,杨 莉.基于NI-VISA与LabVIEW的USB接口应用设计[J].单片机与嵌入式系统应用,2007(1):66-69.

[6]刘昌伟,邵左文,毕 文.基于LABVIEW的USB接口多路高速数据采集系统的设计[J].世界电子元器件,2008(12):85-88.

[7] 陈锡辉,张银鸿.LabVIEW 8.20程序设计从入门到精通[M].北京:清华大学出版社,2007.

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- 517ttc.cn 版权所有 赣ICP备2024042791号-8

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务