基于LabVIEW的数字表自动测量软件的设计
2022-01-06张勇
张 勇
(天津电子信息职业技术学院,天津 300350)
一、引言
随着测量技术的快速发展,传统意义上的测试仪器发生了非常大的变化,在传统测试仪器硬件移植无法改变的情况下,基于计算机平台的模块化仪器得到了快速发展,尤以将测试仪器面板软件化的虚拟仪器技术-LabVIEW最具代表性,其采用图形化的编程技术,将计算机与测试技术相结合,拓展了自动化测试系统的新方向。
虚拟仪器测试与传统仪器测试存在着本质上的区别,虚拟仪器的面板是虚拟化、软件化的,不同于传统意义上的硬件系统,这种虚拟的前面板可以由用户根据自己的需要设计外形和参数,也可以扩展更多的功能及数据,实现了“软件即仪器”。仪器的功能在软件上得以设计实现,十分简便和灵活。
虚拟仪器的硬件系统采用模块化的设计,通过PXI机箱可以插拔各种采集卡,根据任务需要编制不同的测试系统,这种定制化的仪器系统,方便用户进行二次升级改造,而且由于采用软件化设计,很容易实现自动化测试,并可对测试数据进行分析、生成报表,极大提高测试效率。
本文探讨设计的是基于NI公司LabVIEW开发环境的虚拟仪器系统。总的来说,虚拟仪器系统是通过I/O接口层,建立起仪器驱动层和设备之间的通讯,之后通过仪器驱动层,不管是自己编制的驱动程序还是调用开发商编写的驱动程序,完成对测试系统硬件的控制,再通过软件开发层,编写该测试系统的功能需求,最后通过测试系统管理层,实现数据的显示、分析和处理。
二、数字表测量系统的硬件设计
对于虚拟仪器控制系统来说,硬件除了包括计算机和仪器设备外,还必须有连接计算机和仪器设备的总线,通过数据总线上层系统(PC机)可发送指令,让仪器设备执行,同时对于不同的硬件设备,需选择相应的驱动程序方可进行通讯。
总线相当于高速公路,影响着仪器控制系统的速度性能,由于仪器设备和计算机系统所采用的总线接口种类很多,所以选择不同工况下的传输通路非常重要,也影响着测试系统的稳定性,而仪器驱动程序直接影响着上层软件对硬件设备的控制能力,故在硬件设计中要根据实际情况择优选择,以提高测试系统的总体性能。
(一)总线的选择
在仪器控制系统中,总线连接着仪器设备和计算机,起到非常重要的作用,正确选择合适的总线,直接影响着仪器控制系统中硬件的执行效率及性能。
GPIB是传统仪器上使用最多的一种接口,它采用的是并行通信技术,可以最多连接15台设备,但是设备连接的总长度要小于20米,该接口传输数据比较稳定。
由于DATRON4700标准源和HP34401数字表都有GPIB接口,但是PC本身很少带有GPIB接口,以USB接口为主,同时该测试系统主要在实验室进行测试,工况情况较好,不需要很强的抗干扰能力,所以可以通过GPIB-USB转接头实现传统仪器与计算机的通讯。
本文采用GPIB总线来实现数据通信,使用USB配合GPIB这种模式,其主要优点有:
1.数据传输快。USB采用并行同步模式的物理总线,并通过双向传输极大地提高了传输速度,将比串口速率快4000倍,比并口速率快400倍。
2.热插拔技术。采用热插拔技术,可以轻松连入计算机,不会造成数据的丢失,也不影响系统的运行,提高系统的可靠性。
3.支持多设备连接。USB可以跟多个设备进行连接,无论是串行接口还是其他接口,通过转接头即可实现连接,与计算机进行通信,方便灵活,同时还可以实现快速扩展,提高计算机的扩展功能。
4.标准统一。现在计算机和大部分外设都可以通过USB进行连接,通过统一的标准接口,可以快速地与其他设备通过转化器进行通讯。
(二)仪器驱动程序的选择
计算机与仪器设备进行通话的方式可分为两种:一种是通过寄存器进行对话,另一种是通过消息进行对话。该数字表测量系统采用的是GPIB总线,是基于消息的通信格式,在整个通信传输的是高层次的ACSII字符串。要实现仪器的功能需要大量底层的编程,使用起来很不方便。
仪器驱动程序是仪器制造商根据仪器的功能,将底层的语言指令进行封装,形成可调用的封装函数,用户使用时,直接按照其功能做好接口输入,就可轻松实现仪器的功能。所以,在本数字表自动测量软件中,数字表的程序采用的是调用HP34401数字表仪器驱动程序的子VI,这样HP34401数字表就可以与PC机进行通信了,使用它可以方便实现更多所需要的功能,大大提高了工作效率,减少编程周期。由于惠普和安捷伦两个公司合并,所以HP34401和Agilent34401使用相同的驱动程序。
并不是所有的子VI在labview的仪器I/O中都有相应的仪器驱动程序,需要哪个仪器驱动程序,就需要在NI网站中下载,之后把该数据包放在labview安装目录instr.lib的文件夹中,就可以在仪器I/O中调用相应的仪器驱动程序。
在仪器与PC机进行通信时,除了用相应仪器的仪器驱动程序,还有用虚拟仪器软件架构(VISA——Virtual Instruments Software Architecture)来进行通信的。这是因为并不是所有的仪器驱动程序都把该仪器所有的功能进行封装,这对使用仪器驱动程序来说是个弊端。而VISA的目的是通过减少系统的建立时间来提高效率。随着测试仪器接口不断增多,测试需求不断加大,硬件接口的标准化及统一化遇到了严峻问题,而VISA技术的发展,可实现仪器设备硬件接口的无关性,将大多数接口与计算机设备进行通信互连。
同时,用户在用VISA把仪器设备与计算机接通之前,先要通过MAX对硬件设备进行设置,同时再用VISA编程时,需了解对应硬件设备的读、写及终止符等信息,方可进行通信。
在本数字表自动测量软件中,DATRON4700标准源采用的是VISA编写,采用的仪器驱动程序是GPIB总线的NI-488.2驱动程序。因为它可实现I/O接口无关性,可通过减少系统的建立时间来提高效率。
三、数字表测量系统的软件设计
(一)前面板设计
在前面板设计中,包含一个主面板(如图1)和五个子面板,主要完成直流电压、交流电压、直流电流、交流电流和四线电阻等五种功能,采用的是LabVIEW的动态程序控制技术,当程序执行到对应VI时,主程序开始调用此VI进行内存,不调用时,该VI不会载入内存,通过这种动态程序控制技术,可提高软件内存的使用率,增强系统的性能,由于与主VI都是独立的,因此,也方便进行更新升级。
图1 34401数字表测量系统主面板
在基本设置上,可以设置测试系统标准源的端口和地址,很方便进行对本测试系统的升级,软件的可移植性非常好。同时也可以按照检定规程设置不同功能的测试量程和测试次数,测试方案灵活、方便。
该软件运行步骤如下:
1.点击要测试的项目的选择框,可以多项选择。
2.按下开始运行按钮后,程序按选择顺序自上而下的执行测试程序。
3.测试到哪个项目弹出哪个项目的界面,完成后自动关闭。
4.测试过程中,程序自动把测试数据发送到EXCEL模板中。
5.为方便数字表与标准源连线,保障测试的连贯性,在直流电压、直流电流、四线电阻开始前提示请接电压(电流、电阻)接线端。
当该数字表出现故障或是其他状况时,需要暂停测试工作,为了保证之前测试的数据能够保存,修理好后继续进行测试工作,本软件又增加了一个连续运行的功能,只要点击相应的功能选择框,之后点击连续运行,便可在同一个报表中生成数据。
(二)程序框图设计
在整个系统框图中,采用了顺序程序设计结构,如图2。首先完成各个子VI的程序设计,将其封装成单个的模块,这样不仅增强了程序的可读性,降低编程复杂性,而且可以方便维护,使程序框图更加清晰,同时可以避免大量的重复编程。
图2 数字表测量系统顺序结构程序框图
在本数字表测量软件中程序框图分为一个主程序和五个功能子程序,当需要哪个功能时在主程序中按照顺序结构执行相应的功能模块。主程序采用的是事件结构,触发源来自前面板上的4个按钮,譬如当用户单击基本设置按钮时,可以通过程序框图中事件结构自带的控件引用,通过属性节点的Label.Text属性获得基本设置按钮的名称,通过该名称得到该按钮对应VI的绝对路径,在通过Open VI Reference函数获得VI引用后,再通过属性节点Exec.State得到目前软件的工作状态。若软件处于Idle状态(即不运行状态),则使用Run VI属性运行该VI,最后利用Subpanel实现动态加载界面。
本测试软件可实现全自动测试,在不同功能模块进行切换时,需对数字表和标准源进行重新连线,方可进行测试,所以在程序框图中增加了电压、电流、电阻接线端子VI,当上一功能测试完成,该子VI弹出运行,延时操作,当接线完成时,点击该子VI可进行下一功能测试,保证数据的测试完整性。
每个功能子程序采用的是并行结构,以直流电压为例。DATRON4700标准源采用的是用VISA函数进行编写(如图3)。首先是通过VISA打开函数来标识仪器,它包含了接口类型、设备地址以及VISA Session类型。本软件的DATRON4700标准源接口类型是GPIB、设备地址是30、VISA Session类型是INSTR。获得该标准源的引用后,用VISA设备清零函数进行清零,之后通过VISA写函数往DATRON4700标准源里写命令,该DATRON4700标准源的命令终结符是“=”,最后通后通过VISA关闭函数进行释放资源。
图3 DATRON4700标准源程序
而HP34401数字表采用的是调用已经封装好了的子VI进行编写,首先也是通过Initialize.vi来标识仪器。它同样包含了接口类型、设备地址以及VISA Session类型。本软件的HP34401数字表接口类型是GPIB、设备地址是21、VISA Session类型是INSTR。获得该数字表的引用后,使用Measurement.vi调取直流电压功能,再通过Read.vi读取DATRON4700标准源相对应的测量值,最后通过Close.vi关闭进行释放资源。对于本测试软件,若作为其他类型的数字表(如FLUKE8840A,Keithle2000)自动检测的模版,只需改动该类型的数字表的相应labview驱动程序,即可作为该类型的自动测量软件。
在每个功能测试VI中,为了保证采集的数据和数据处理能够同时进行,互补干扰及等待,在程序框图中采用状态机的控制方式,将采集的数据和数据处理通过生产者-消费者模式进行执行,同时应用队列技术将数据放入到队列中,这就保证数据采集和数据处理实行多线程、多任务方式进行管理,极大地增强了程序的数据处理能力,提高了系统运行能力,而且还很方便维护。
在整个软件设计中涉及到的VI和文档较多,为了方便管理,采用项目管理的方式来管理VI程序和文档,在项目树下可建立各个VI和配置相关硬件系统信息,这样就建立起他们之间的依赖关系。当有VI进行修改时,通过项目管理可显示调用VI的匹配关系,防止引起出现VI的交叉链接问题。同时在项目管理中,可以创建可执行文件并进行发布,当用户没有安装LABview运行环境,也可以运行该软件进行操作。
(三)生成报表设计
LabVIEW不能直接与数据库进行通讯,然而能够通过ActiveX来对Excel进行操作,实现报表的管理。
ActiveX是由Microsoft公司定义的用于Internet的一种对象链接与嵌入(OLE)技术,它能把两个应用程序组合在一起,使其像一个应用程序一样工作。Microsoft Excel是常用的文字处理软件,它通过ActiveX来实现与LabVIEW进行通信,实现报表的生成。
通过设置ActiveX句柄,打开Excel ActiveX Object,进而打开Excel,同时利用属性节点获取Workbooks Reference来增加一个新的工作簿,利用Excel预先编制好符合标准的报表,通过属性和调用节点将对Excel格式进行设置,进而生成符合要求的报表。图4是数字表测量软件的报表程序框图。
图4 数字表测量软件的报表程序框图
四、总结
在整个仪器控制过程中,利用GPIB-USB接口卡实现了HP34401数字表、DATRON4700标准源与PC机的通信,在前面板设计中,应用了LabVIEW的动态程序控制技术,当实现不同的功能时,就将相应的VI载入内存,通过动态载入VI可以减少内存的使用,提高系统性能。在程序框图设计中,采用的是并行结构,DATRON4700标准源程序采用的是VISA函数编写,通过输入相应的指令来输出相应的标准值,进而调用数字表里相应的测量值。同时可以对得到的数据进行一些必要的分析、处理。在生成报表设计中,采用了Activex技术,LabVIEW作为客户端通过Excel提供的Activex自动化对象在LabVIEW中操作Excel。此软件极大地提高了工作效率,在实际当中取得了很好的效果。