基于NIVISA的示波器数据采集系统

(整期优先)网络出版时间:2022-03-17
/ 2



基于 NIVISA的示波器数据采集系统

刘元元

(东方电气集团(四川)物产有限公司,四川德阳, 618000)

摘要:介绍一种在 .net平台下使用NIVISA组件对示波器进行控制,并获取示波器波形数据的方法。利用该方法搭建数据采集平台对电力电子器件进行自动化测试。

关键词:NIVISA C# 示波器 元器件检测

引言

在现代化电力电子元器件自动化测试系统中,示波器是最重要的检测仪器。

长期以来,我国多数检测设备在示波器的使用上只能实现手动设置,人工读取测试波形并进行判断。导致效率低下且只能人工记录波形的测量结果,记录错误时常发生,产品不能溯源。同时,由于缺乏在测试时的波形数据,对具体测试失效的原因也无法进行具体分析。

在引进测国外测试设备中,基本都实现了全自动测。其对示波器的控制和波形获取也是测试的重要环节。,波形数据可以存贮在工控机中,每个测试样品的测试波形都可以随时查阅,进而对失效器件进行针对性改进,逐步推进元器件质量改进。因此,在半导体元器件测试领域,国外进口设备占绝大部分比例。

国产设备中,对PLC、伺服系统,电源等子部件的通信控制方法已经研究的比较深入,但对示波器通信的研究较少,大多数都是在NI平台下利用Labview进行编程实现。但在工控领域,使用较多的还是 .net平台。本文介绍利用NIVISA和SCPI对示波器进行控制和采集的方法和系统方案。


1 NIVISASCPI介绍

NI-VISA(Virtual Instrument Software Architecture,以下简称为"VISA")是美国国家仪器NI(National1nstrLlrnent)公司开发的一种用来与各种仪器总线进行通信的高级应用编程接口。VISA总线I/0软件是一个综合软件包,不受平台、总线和环境的限制,可用来对USB、GPIB、串口、VXI、PXI和以太网系统进行配置、编程和调试。VISA是虚拟仪器系统I/O接口软件。对应Windows下的.net平台也提供了很好的支持,无论通过网口、USB、或GPIB 总线,都可以使用相同的代码进行访问示波器资源。

SCPI(可编程仪器的标准命令)是一种基于 ASCII 的仪器编程语言,供测试和测量仪器使用。 现代主流示波器均实现了VISA接口,通过标准的读写字符串访问控制对示波器进行控制。

2示波器控制和波形采集实现方法

在当代主流IGBT动态测试系统中,美国力科(LECROY)示波器是事实上的标准,头部设备厂商均以其系列产品作为测试系统标准配置。本文以力科HDO6034示波器为例,介绍软件配置和控制方法。

2.1在NI官网下载最新版NI VISA。

在VS下添加程序引用Ivi.Visa和NationalInstruments.Visa。并在C#文件中添加引用:

using Ivi.Visa;

using VISAInstrument.Extension;

using VISAInstrument.Port;

using VISAInstrument.Properties;

using VISAInstrument.Utility;

2.2 使用标准SCPI命令设置示波器参数。

SCPI命令实际是通过ASCII字符串形式命令与仪器进行交互,使用SCPI可以完成绝大部分示波器的控制功能。例如设置示波器时基、采样率、通道增益、偏置等等。例如,读取示波器时基可以采用如下代码:

writestr = "tp?"; //SCPI命令,读取时基

querry(); //VISA库函数,执行查询命令。

string s = getfloat(readstr); //使用正则表达式获取字符串中的数字

return (int)(Convert.ToDouble(s) / 1e-6);//返回时基

需要注意到的是使用SCPI查询的返回字符串格式为“命令+返回值”的形式,并不是纯正的数字,必须使用其他方法将返回字符串当中的数字字符提出出来再进行转换,否则会产生转换异常错误。例如执行上述代码,readstr的值为“Tp:10E-6”。无法直接转换为数字,使用正则表达式:

Regex reg = new Regex(@"[+-]?[\d]*[\d.]+[Ee]?[+-]?[\d]*[\d.]*");

Match result = reg1.Match(result);

则result中的结果为10E-6,即可使用Convert.ToDouble()进行转换。

2.3 示波器波形设置和读取并还原为真实电压值。

要读取示波器的波形数据,必须了解力科示波器波形的存储结构,使用SCPI指令”insp? ”可以获得一个关于波形的简要报告。使用“insp?参数”则可以获得波形的一些具体信息。例如,

Query: C1:INSPECT? "wavedesc"

要从示波器中读出波形数据需要先查询一些必要的参数。并使用”WFSU”命令设置波形传输格式:

C1:WFSU FP=0,NP=100,SN =0, SP=0;

各参数的意义如下:

FP:起始点, NP:传输的点数, SN:数据段,为0表示传输所有段

SP:间隔点数。为0或1,表示每个数据都要传输;为5表示每隔5个数据传输一次。

对传输的波形进行设置后,即可使用SCPI命令‘WF’来进行数据采集,需要注意的是WF获取得数据是二进制格式,不是ASCII码。

获取的数据数组为整型,就是示波器AD采集的码值,在实际使用中还需要进一步转换为实际的电压值。使用SCPI命令:“insp?’VERTICAL_GAIN’”和insp?”VERTICAL_OFFSET”可获取该波形对应的增益和偏置。使用以下公式即可获得真实的电压值。

Double real = gain * adccode - offset;

3搭建测试系统进行自动化测试

我们利用力科示波器和高压电源(艾德克斯IT6726V)搭建了一个IGBT模块的测试平台,在桌面使用C#开发了基于VISA数据通信程序,实现了IGBT模块测试的自动化。该平台投产前,测试人员一天只能测试100只IGBT模块.随着模块生产规模的扩大, 已经不能满足产品的测试需求。经测算,主要的时间浪费在记录示波器波形数据上,因为不同模块测试时需要不断调整示波器的增益、时基等参数,而且只能手动记录测试结果。不仅会发生由于人员疲惫、或其他因素导致的数据错误。该平台投产后,大大提高了测试效率,测试人员一天可测试上千只。同时,由于无人工干预,数据的准确性和可靠度大大提高。

利用.net平台下的丰富资源,我们在软件上实现了对测试结果的数据库存贮,远程访问,分类筛选等功能。使得工程师能够及时了解到每个产品的详细性能参数,同时也可以对前期产品的缺陷进行针对性改善。该测试平台投产以来,生产的产品良率不断提高,为公司创造了可观的经济效益。


参考文献:

【1】 基于NI-VISA的晶圆测试探针台远程控制软件的设计与实现 杜开元1,2袁俊1卢旭坤计算机测量与控制. 2021,29(01)

【2】LECROY REMOTE CONTROL MANUAL LECROY CO.LTD

【3】Oscilloscopes Remote Control and Automation Manual LECROY CO.LTD

【4】NET与LabVIEW混合环境的一种串口通信编程 陈式清齐洪喜 电脑与电信. 2014,(05)


作者简介:刘元元,女,四川轻化工大学通信工程专业,本科,工程师