胡凤明, 陆 泽
(中国原子能科学研究院,北京 102413)
基于LabVIEW和GPIB的数字示波器数据自动采集系统设计
胡凤明, 陆 泽
(中国原子能科学研究院,北京 102413)
为了满足数据采集自动化的需要,提高数字示波器的使用效率,充分发挥示波器的自动化优势,利用现有的数字示波器和工控机建立了一套数据自动采集系统;通过GPIB接口,用一台工控机对多台数字示波器进行控制,实现对信号数据的采集、处理并将处理结果存入数据库中;系统软件使用LabVIEW语言开发;实验结果表明,该系统能快速准确地获得被测信号数据并可根据需要对以往的实验数据进行查询分析,极大地方便了使用人员;采用这种方法建立的系统简单、经济、通用性强,具有一定的实用价值。
LabVIEW语言;GPIB接口;数据自动采集
数字示波器是数据采集、A/D转换、软件编程等技术制造的高性能示波器,它除了可以准确捕获各种周期信号、非周期信号或单次冲击信号外,还具有许多优良性能,如多种触发类型、波形参数测量、波形处理及数学运算等,已成为科学实验和工程项目中各类信号采集、记录和分析的最主要设备之一。是设计、制造和维修电子设备不可或缺的工具。很多情况下,一套装置或设备需要同时使用多台数字示波器进行参数测量,并对测量结果进行分析以判断装置的运行状态,同时需要将数字示波器测得的波形及数据分析结果保存起来备用。如果仅靠人工对示波器进行操作,不仅工作量很大而且容易出错,并且也不能体现出数字化示波器自动化程度高、数据处理功能强等特点。本文用工控机和数字示波器建立了一种分布式测量系统,通过GPIB接口连接,将数字示波器获得的波形数据自动采集到工控机中并进行数据分析,最后把波形数据及数据分析结果存入数据库中。
本系统用一台工控机控制8台数字示波器,通过GPIB接口连接工控机和示波器,连接方式采用总线型连接。如图1所示。数字示波器使用Tektronix公司的TDS320、TDS340和TDS640三种型号的示波器共8台。
图1 硬件结构图
1.1 GPIB接口
GPIB(general-purpose interface bus)即通用接口总线,是一个数字化24位并行总线,其中16条线为TTL电平信号传输线,包括8条双向数据线、5条接口管理线和3条数据传输控制线,其余8条为地线和屏蔽线。GPIB使用8位并行、字节串行、异步通信方式,所有字节通过总线顺序传送。大部分测试测量仪器都带有或选装GPIB接口。GPIB接口卡选用美国国家仪器公司(NI)的PCI-GPIB卡。
GPIB总线接口可以实现“1对N”的数据传输,即用一条总线连接多台设备,最多可连接设备不超过15台,总线长度不超过20米。大多数台式仪器是通过GPIB线以及GPIB接口与电脑相连。
GPIB线使用1米的GPIB连接线。
1.2 硬件连接
将GPIB接口卡插入工控机的PCI插槽内,并安装驱动程序。将工控机和八台数字示波器按图1所示的方式连接。把8台数字示波器的GPIB地址按顺序设为1~8。运行“程序→National Instruments→Measurement & Automation”程序,该程序在安装GPIB卡驱动程序或安装LabVIEW软件时自动安装,在程序界面左侧应能显示出所插入卡的类型和所有仪器的序号,说明硬件连接成功。点击仪器能查看该仪器的地址及详细信息。
2.1 开发工具的选择
开发工具选择LabVIEW语言。LabVIEW是一种图形化编程语言,由National Instruments(美国国家仪器公司)研发。传统的编程语言如VB、VC等,都是基于文本命令产生代码,而LabVIEW语言是基于数据流的图形化编程语言。它通过交互式的图形化前面板来设计并控制系统,并显示所得结果。主要应用于数据采集与控制、数据分析以及数据表达等方面。LabVIEW语言编程灵活性强、简单易用,其图形化界面操作直观,是进行仪器应用开发的首选工具。同时,LabVIEW和我们所选用的PCI-GPIB卡都由NI公司研制,具有非常好地兼容性。
2.2 软件结构设计
软件采用基于面向对象程序设计模式。主要分为波形存储、波形数据计算、数据存储、波形数据查询4个模块。每个模块的主要功能如下。
1)波形存储:将8台示波器上的波形以二进制文件形式保存到工控机硬盘上。
2)波形数据计算:计算需要的波形数据,如幅值、上升时间等,对得到的波形数据进行判断以确定被测信号的状态。
3)数据存储:将计算出的波形数据和状态信息存入数据库中,方便以后查阅。
4)波形数据查询:可根据需要查看以前的波形和数据。
2.3 主要相关技术的实现
2.3.1 数字示波器波形的存储
示波器波形存储是将示波器测得的波形以文件形式保存到计算机中。其涉及的主要过程为工控机和示波器的交互。先通过工控机向示波器发出读取数据指令,然后示波器向工控机发送数据,最后由工控机读取并以文件形式存储。该过程主要使用GPIB写入命令、GPIB读取命令和写入字符至文件命令。GPIB写入是将数据通过GPIB接口发送到指定的设备上,根据设备的GPIB地址进行识别。GPIB读取是从地址字符串对应的设备上读取指定字节数的数据并输出。写入文本文件是将指定的数据串存放到预定的文件中。波形存储程序框图如图2。
以读取GPIB地址为1的示波器为例。在程序框图中,建立一顺序结构,左侧框中用GPIB写入命令,将GPIB地址和数据即示波器命令连接到其对应输入上,模式表示如何终止GPIB写入,设为0。示波器命令字符串为”CH1;STAR 1;STOP 5000;:DATA:ENC RPB;WID 2;:HEAD ON;VERB OFF;:WAVE?”,CH1为示波器通道1,WAVE?为获取波形,其它为数据信息设置。这条命令的意思是获得CH1通道的波形数据,以二进制形式存储,读取5000个点。根据具体示波器的品牌型号来书写命令格式。设定循环,根据示波器的通道个数,依次改变CH1为CH2,CH3或CH4可采集示波器所有通道的波形。右侧框中上面的命令为GPIB读取,在GPIB写入执行完成后即执行读取命令,需要GPIB地址参数和字节数,此处字节数设为3000,模式为0。下面是文本写入命令,将GPIB读取的输出数据连接到文本写入的相应位置,将文件路径连接到路径连接线处,即完成一次示波器一个通道的波形存储。程序框图如图2所示。
图2 波形存储前面板和程序框图
设备的GPIB地址是辨识设备的唯一标识。每台数字示波器必须设定唯一的GPIB地址,通过改变程序中的GPIB地址,即可对每台示波器进行数据读取操作。此模块的基本功能就是实现了工控机和示波器的交互,可根据实际应用需要,通过改变示波器命令,对数字示波器进行其它操作。
2.3.2 波形的显示
波形显示是将文件中的波形图像显示出来。以二进制形式存储的波形文件,包括构建波形的设置信息和波形数据。需要先从波形文件中读出波形数据,然后查找相关的数据项,获得构建波形的设置信息和波形数据,最后根据波形信息和波形数据将波形显示出来。此过程主要使用字符串匹配模式命令。从文件中读取数据后,先将波形信息和波形数据分离。用字符串匹配命令在波形信息中查找相关的波形信息,包括波形数据点数、X轴和Y轴的设置、触发位置信息等,将这些信息进行转换和计算后获得波形的X、Y轴信息;将波形数据根据采样点数分离出实际波形数据,然后进行数据类型转换并保存到数组。最后将X/Y轴的设置信息和数据数组捆绑成簇连接到波形显示命令。程序框图如图3所示。NR_P为波形数据点个数,XIN为水平采样间隔,PT_O为触发位置,YMU垂直刻度因子,YOF为垂直偏置,YZE为偏置电压。
图3 波形显示程序框图
2.3.3 数据库的数据存储和查询
通过程序计算和测量所获得的数据,根据需要存入数据库中,以方便对数据进行查询、统计、生成报表等操作。
LabVIEW语言与数据库系统的交互主要有4种方法:
1)利用LabVIEW的附加工具包LabVIEW SQL Toolkit。
2)先利用VC、VB等其它编程语言建立动态链接库程序访问数据库,再用LabVIEW调用该动态链接库程序,完成数据库访问。
3)利用LabVIEW的ActiveX功能,调用Microsoft ADO控件,用结构化查询语言SQL完成数据库访问。
4)利用LabVIEW用户自己开发的免费数据库访问工具包LabSQL完成数据库访问。
我们选择用数据库访问工具包LabSQL来进行数据库操作。LabSQL是一个免费的、多数据库、跨平台的LabVIEW数据库访问工具包,基于Microsoft ADO和SQL语言进行数据库操作。它支持如Access、SQL Server、Orcale等多种大型关系数据库。
利用LabSQL进行数据库操作的步骤:
1)先下载工具包文件LabSQL.zip。在LabVIEW安装目录中的用户库user.lib文件夹中新建一个名为LabSQL的文件夹,将LabSQL.zip文件解压到这个文件夹中。当重新运行LabVIEW时,LabVIEW的功能模块就会自动加载LabSQL。
2)在Windows操作系统ODBC数据源中建立一个数据源DSN(data source name,数据源名),选择和此数据源连接的数据库,然后通过在程序中和这个DSN建立连接即可访问指定的数据库。这里使用的是Microsoft Access数据库。可根据需要选择数据库系统,如果用户不多并且数据量不大使用Microsoft Access数据库即可,否则可使用Orcale或SQL Server等大型关系数据库系统。LabVIEW与数据库之间的连接就是建立在DSN基础之上的。
安装LabSQL和设置ODBC数据源后,即可建立程序对数据库进行存取和查询操作,数据库操作流程如图5所示。LabSQL提供了一系列子程序用于数据库操作。首先建立连接,用LabSQL提供的ADO Create Connection和ADO OpenConnection两个子程序建立和打开连接,打开连接时需要提供连接字符串即数据源名称,此处连接字符串为“DSN=exp”。建立连接后即可进行数据库操作,用ADO SQL Execute子程序执行操作命令,用SQL结构化查询语言书写命令,如查找记录用SELECT命令,插入记录操作用INSERT命令,删除操作DELETE命令等。查询命令有返回数据。数据库操作完成后,用ADO Close Connection和ADO Destroy Connection子程序关闭已建立的连接并删除。
图5 数据库操作程序框图
数字示波器数据自动采集系统实现了示波器数据的自动采集、数据处理、数据存储以及对以往实验数据的查询。通过多次实际测试,该系统能快速准确地完成数据采集和处理操作,运行稳定可靠,达到了预先设计的要求。软件界面友好,方便了工作人员的使用,提高了工作效率。该系统已应用到我们的实验工作中。
数字示波器数据自动采集系统利用现有分散的测量仪器组成了基于GPIB总线的分布式测量系统,将以前各自单独进行测量改为集中统一由计算机自动进行数据计算和存储,极大提高了仪器设备的使用效率。当测量仪器设备总数小于15时,系统还可以加入其它配有GPIB接口的仪器,提高了使用的灵活性。在实际应用中,效果良好,实现了快速准确地获得示波器波形,并对波形数据进行处理,得到了所需要的参数,最后将数据信息保存到数据库中,极大地方便了对数据的查询和分析。在实际应用中还可以根据需要加入对示波器的控制和参数设置等功能,实现软件系统和示波器的完全交互,进一步提高仪器的自动化水平。
[1] TDS320,TDS340A & TDS640 Digital Real-Time Oscilloscopes Programmer Manual[Z]. Tektronix.
[2] 杨乐平, 李海涛, 肖相生,等. LabVIEW程序设计与应用[M]. 北京:电子工业出版社, 2001.
[3] Gray W.Johnson,Richard Jennings.,LabVIEW图形编程[M]武嘉澎,陆劲昆译. 北京:北京大学出版社,2002.
[4] 吴 晖, 祁晓野,等.基于PXI和LabVIEW的通用数据采集系统[J].计算机测量与控制,2015,23(5):1686-1688.
[5] 张法全, 陈良益,等.基于VC和GPIB的数字示波器远程控制[J].微计算机信息,2007:103-104.
[6] 蒲明辉, 田 耕, 李宪优.核测量中数字示波器自动控制软件的研制[A].全国第四届核仪器及其应用学术会议论文集[C],2004,231-234.
Design of Digital Oscilloscope Acquisition System Based on LabView and GPIB
Hu Fengming, Lu Ze
(China Institute of Atomic Energy, Beijing 102413, China)
In order to meet the need for the automation of data acquisition, increase the efficiency of the digital oscilloscope and give full play to its advantage, an automatic data acquisition system has been, therefore, established. Through the connection with the interface of GPIB and the manipulation of several oscilloscopes by a single personal computer ,the collection and process of the signals ,and hence the result of them can be saved in database .This system was developed on the basis of LabVIEW Language. The outcome of the experiment indicates that this system can rapidly exactly capture the targeted signals and analyze the data of previous experiments according to the needs, which, to a large extent, provide the staff with great convenience. The system based on this method is simple, economical and practical, which has a significant value in use.
LabVIEW language;GPIB interface;data automatic acquisition
2015-09-07;
2015-10-26。
胡凤明(1975-),男,北京人,工程师,主要从事计算机技术与应用方向的研究。
1671-4598(2016)03-0289-02
10.16526/j.cnki.11-4762/tp.2016.03.079
TP273
A