IVI 技术在自动测试系统中的应用研究

最近在做一个项目,关于TR组件自动测试系统,其中对测试系统仪器的设置,想底层用IVI 来实现,新的仪器大多支持lan口,厂家都自带IVI 驱动程序,只要按指定步骤就能实现多个厂家的IVI 仪器设置,实现同类仪器的可互换性。

本项目中用到示波器、频谱仪、宽带信号源、微波信号源等仪器。下面讲一下开发IVI 步骤:

1、首先要对IVI 有所了解,IVI 相关信息可从下面网址获得:http://www.ivifoundation.org/default.aspx

  • overview 中大家可以学习IVI 的定义,了解IVI 的好处。

The IVI standards define an open driver architecture, a set of instrument classes, and shared software components. Together these provide critical elements needed for instrument interchangeability.

  • IVI 的结构如下图所示:

IVI 驱动类型有IVI-C 、IVI-COM的,驱动程序通过I/O库和硬件通信,两种支持的上层开发语言不太一样,本人用C#开发因此项目中所有IVI 驱动都选择IVI-COM类型的。

Driver API

To support all popular programming languages and development environments, IVI drivers provide either a IVI-C or an IVI-COM API. Driver developers may provide both interfaces, as well as wrapper interfaces optimized for specific development environments.

Instrument I/O

All IVI drivers communicate to the instrumentation hardware through an I/O Library. The VISA library is used for the GPIB and VXI buses, while other buses can either utilize VISA or another library.

Shared Components

IVI Foundation members have cooperated to provide common software components, called IVI shared components, that ensure multi-vendor system compatibility. These components provide services to drivers and driver clients that need to be common to all drivers. For instance, the IVI Configuration Server enables administration of system-wide configuration.

2、IVI 驱动程序下载

All Classes
Custom
IviACPwr
IviCounter
IviDCPwr
IviDigitizer
IviDmm
IviDownconverter
IviFgen
IviPwrMeter
IviRFSigGen
IviScope
IviSpecAn
IviSwtch
IviUpconverter

上面是目前IVI 支持的几种IVI仪器类。

IVI shared components 在该网站是可以下载的,对于大家平时用的仪器应该是安捷伦的比较多,安捷伦的网站上软件下载可下载

IO Libraries Suite 16.3 Update 2

http://www.home.agilent.com/agilent/software.jspx?cc=CN&lc=chi&nid=-33330.977662&id=2175637

该IO库中下载安装后会自动安装IVI Shared Component 组件。

IVI Shared Component主要支持多厂家的仪器的一致性。安装完I/O库后,就需要安装各个仪器的IVI 驱动程序了。大家可能会问:我怎么知道我用的仪器是否支持IVI 呢?有IVI 驱动吗? 这个大家可以从http://www.ivifoundation.org/default.aspx 网站的"Driver Registry" 页面去查看,但凡支持IVI的厂商仪器的IVI 驱动都会列出来,只要从这个列表里查找是否有你要的IVI-C 或IVI-COM 驱动,再点击链接进入相关厂商官网去下载对应驱动程序。

例如查找泰克的AWG7122C 的IVI 驱动,得到结果如下图示:

3、安装驱动程序,按照驱动帮助文件逐个配置开发环境,添加指定COM 引用,进入开发调用,此项目用C#开发,都以C# 为例。

记住安装软件的顺序:

先安装IO Libraries Suite 库,再安装单个仪器的IVI 驱动,已经下载了泰克AWG7122C 的IVI 驱动,安装后大家可以打开C:\Documents and Settings\All Users\Application Data\IVI Foundation\IVI\IviConfigurationStore.xml  ,IviConfigurationStore文件中会看到相应驱动信息

并且相应IVI 安装路径下也会驱动安装文件和帮助信息:C:\Program Files\IVI Foundation\IVI\Drivers\TekFgen

该目录下有帮助文件打开之后会有详细介绍驱动程序开发步骤,需要引入的COM组件,以及简单的调用例子,如图所示:

4、编写IVI IviConfigurationStore.xml 文件

参考帮助文档基本上就能开始编写调用IVI 驱动接口的程序了,在写程序中你会发现,在介绍可互换编程时,例子里面提到 "MyLogicalName",这个很重要,需要我们提前做好的一步,就是还需要编写上面提到的:IviConfigurationStore.xml 文件。

// If true, this will query the instrument model and fail initialization
// if the model is not supported by the driver
bool idQuery = false;

// If true, the instrument is reset at initialization
bool reset = false;

// Setup IVI-defined initialization options
string standardInitOptions =
  "Cache=true, InterchangeCheck=false, QueryInstrStatus=true, RangeCheck=true, RecordCoercions=false, Simulate=false";

// Setup driver-specific initialization options
string driverSetupOptions =
  "DriverSetup= Model=AWG7052, Trace=false";

fgen.Initialize("MyLogicalName", idQuery, reset, standardInitOptions + "," + driverSetupOptions)

在调用每个驱动时都要传入一个logicName ,它是写在配置文件IviConfigurationStore中,调用过程会从这个文件读取相关设备物理地址,使用的驱动信息等。

下面是简单的调用泰克AWG7122C 的C# 程序和配置文件例子:

C# 程序调用:(初始化实例,并且调用产生一个正弦波形)

IIviSessionFactory factory = new IviSessionFactoryClass();
            ;
            IIviFgen siggen = (IIviFgen)factory.CreateDriver("AWG7122C");//logicName ----AWG7122C

try
            {
                siggen.Initialize("AWG7122C", false, false, "");
                // Get a string property

string description = siggen.Identity.Description;

siggen.InitiateGeneration();
                siggen.Arbitrary.Waveform.Configure("Ch1,", 0x00000001, 0.1, 0.2);//配置通道1 输出波形, 0x00000001----波形数字
                siggen.Arbitrary.SampleRate = 24;
                siggen.Trigger.InternalRate = 0.3;
                siggen.Output.set_OperationMode("Ch1", IviFgenOperationModeEnum.IviFgenOperationModeContinuous);
                siggen.Output.set_Enabled("Ch1", true);
               
                siggen.Trigger.SendSoftwareTrigger();
                // Close the session
                siggen.Close();
                return true;
            }
            catch (Exception e)
            {
                Console.WriteLine(e.ToString());
                return false;
            }

对应配置文件设置:HardwareAssets、 DriverSessions、LogicalNames这几部分是需要自己手动添加的项,IOResourceDescriptor 是指通过 Aglient Connection Expert 所发现的VISA String。至于相关信息的细节解释大家可以参考http://www.ivifoundation.org/default.aspx 上的Specifications 页面中的

IVI Specifications 文档。

<HardwareAssets>
  <IviHardwareAsset id="p179">
   <Name>AWG7122C</Name>
   <Description>Resource Name for Arbitrary Waveform Generators</Description>
   <DataComponents/>
   <IOResourceDescriptor>TCPIP0::AWG-3289382193::inst0::INSTR</IOResourceDescriptor>
  </IviHardwareAsset>
   </HardwareAssets>
 <DriverSessions>
  <IviDriverSession id="p183">
   <Name>AWG7122C</Name>
   <Description>Logic Name for Arbitrary Waveform Generators</Description>
   <DataComponents/>
   <IviHardwareAsset idref="p179"/>
   <IviSoftwareModuleRef idref="p176"/>
   <VirtualNames/>
   <SoftwareModuleName>AWG7122C</SoftwareModuleName>
   <Cache>0</Cache>
   <DriverSetup/>
   <InterchangeCheck>0</InterchangeCheck>
   <QueryInstrStatus>0</QueryInstrStatus>
   <RangeCheck>0</RangeCheck>
   <RecordCoercions>0</RecordCoercions>
   <Simulate>0</Simulate>
  </IviDriverSession>

</DriverSessions>
  <LogicalNames>
  <IviLogicalName id="p187">
   <Name>AWG7122C</Name>
   <Description>Logic Name for Arbitrary Waveform Generators</Description>
   <IviDriverSession idref="p183"/>
  </IviLogicalName>

</LogicalNames>

试了一下终于通了。所以记录一下,作个总结。

IVI 技术在自动测试系统中的应用研究

时间: 2024-10-29 19:08:03

IVI 技术在自动测试系统中的应用研究的相关文章

cookie技术实现自动登录+cookie中写入中文+记住用户名

结合上次写的cookie技术实现自动登录添加部分功能<tr> <td colspan="2"> <input type="checkbox" name="usernamelogin" id="usernamelogin" value="usernameOk" >记住用户名 <input type="checkbox" name="aut

MMS技术及其在电力系统通信协议中的应用研究

摘要:MMS技术在电力系统通信协议中应用越来越广泛,本文将对MMS技术作简要的介绍和分析,并在此基础上对MMS技术在IEC60870-6 TASE2系列标准和IEC61850标准中的应用进行了分析. 关键词:MMS.互操作性.IEC60870-6.IEC61850 引言 MMS(Manufacturing Message Specification)即制造报文规范就是ISO/IEC9506标准所定义的一套用于工业控制系统的通信协议.国际标准化组织出台MMS的目的是为了规范工业领域具有通信能力的智

smokeping自动检测系统

    如何的使用smokeping来监控idc机房的网络质量情况,从监控图上的延时与丢包能分辨出你机房的网络是否稳定,是否为多线,是否为BGP机房,到各城市的3个运行商网络各是什么情况,如果出现问题,如果有针对的解决.而且如果选择新机房的时候,你可以根据smokeping的监控结果来判断这个机房是否适合.   图表参数说明 (1) RTT(Round-Trip Time):简单说它是一个数据报在网络上两点中间往返一次的时间.是影响TCP性能和表征网络运行状况的重要参数.在网络中实时.准确地测量

物联网于变配电站监测系统中的应用

1 引 言        随着计算机技术的不断发展,计算机科学与其他学科之间的融合越来越密切.计算机科学与电力系统各学科之间的融合,促进了我国智能电网事业的发展.但是由于大部分变配电站地处野外地区,极易受周围环境.天气等影响,变配电站设备的故障率也不断增加,而且对相应故障作出及时反应和处理所需要的时间也越来越长.因此为了及时有效的处理变配电站设备的故障,最大程度的保证供电的稳定性,基于物联网ZigBee数传技术的变配电站监测技术被引入到电网控制系统中来.        变配电站自动化的实现是建立

开放环境中的全自动【汽车自动驾驶系统】

[如果你在开车,不论是外界客观环境或自己身体条件造成看不清前方路况时,你会减速及停车],这是基本常识.以人身安全为代价来打破基本常识,这样的设计风险太高![Model S和Uber自动驾驶]的交通事故说明其[自动驾驶]的[逻辑模型]存在严重的缺陷.孤立地将人类驾驶交通事故率和自动驾驶交通事故率做对比,这是不对的:不可能在自动驾驶系统中设计"酒驾模式"."疲劳驾驶模式"."注意力不集中模式"."超速模式"等等,只要不犯常识性错误

技术干货 | 从测试中探索LC连接器选择的小窍门

时至今日,光连接器作为光链路的连接点已经被广泛应用,其灵活性和便利性大大促成了今天光网络商用和民用的推广.既然已经成为了光链路中的标准件,其必然有相应的国际标准和规定来检验其性能和规范其互换性. 关于光纤连接器的标准,可靠性:定义单芯连接器可靠性的有GR326等:定义多芯连接器可靠性的有GR1435等.互换性:定义LC连接器互换性的有IEC61754-20等:定义SC连接器互换性的有IEC61754-4等:定义FC连接器互换性的有IEC61754-13等:定义MPO连接器互换性的有IEC6175

LoadRunner测试ajax框架,回放后系统中没有产生数据解决方法

LoadRunner测试ajax框架的系统时,录制回放都没有报错,但是回放后系统中没有产生数据,数据始终不能写入数据库.查了一下原因,应该是录制的脚本不完善的问题,因为JS是在客户端执行的程序,LR只能监控客户机与服务器之前的通信. 解决方法: Recording options> HTTP Properites> Advanced > Headers: 选择"Record headers not in list", 然后点ok. 重新录制一遍脚本,会发现脚本里多出一

在IT在系统中使用多租户技术的跨部门和虚拟团队的解决方案为员工提供(草案)

1 前言 经过多年的企业信息化建设,Office系统逐步形成有9营业场所的分部门.9专业应用子系统.20独立的信息模块.330一种方法.这些系统或模块内置于Microsoft IIS.Apache Tomcat.Weblogic.Cordys BOP上,相互彼此独立.互不影响. 在不考虑反复投资.资源共享.便于运维的情况下,仍存在一些长期非常难解决的问题: (1).各个系统的组织.账号不统一.维护困难. (2).在一些系统或模块中.对于人员跨部门的情况.仍以两个及以上账号的方式处理,不仅业务不直

通过Shunra&#160;VE&#160;SMB 测试系统(如视频监控、楼宇对讲、VOIP、IPTV等系统)在广域网中的性能

一.Shunra VE SMB简介 Shunra VE SMB Edition是一种专为中小规模企业设计的网络仿真软件产品,Shunra VE SMB Edition仿真软件可以用来测试,对比或预测在不同网络条件下-包括时延,抖动,丢包和带宽(最大10Mbps)-应用程序或设备的性能. 该软件可以用来测试视频监控.楼宇可视对讲.VOIP.IPTV等运行在网络中的性能.模拟一定延时.发生抖动.存在丢包率.限制带宽的情况下,系统的运行情况. 二.Shunra VE SMB安装环境简介 安装win20