开关矩阵(U2751A)使用

Agilent U2751A USB Modular Switch Matrix

U2751A USB模拟开关矩阵为自动化测试提供了一个高质量、低消耗的开关解决方案。可作为一个单独的元件也可作为U2781A USB的模块单元。

U2751A 是一个紧凑的4*8矩阵,两线的模拟矩阵开关,它可以通过USB接口在Agilent Measurement Manager软件上进行远程控制。也可以用支持的驱动或SCPI命令编程。

一、使用U2751A

要开始使用U2751A,需要按如下步骤进行安装和配置,必须要按照下面的步骤安装,否则会出错。(注意:如果要用Microsoft visual studio等要安装IVI-COM

 开关矩阵(U2751A)使用_第1张图片

A、现在一般的电脑配置(win7系统)都能满足要求。

B、安装IO Libraries Suite 14.2或以上版本,目前到17版了,可以在官网上下载并安装。安装完之后,会在电脑下方出现

C、只要把U2751A连在电脑上就会自动安装驱动。

D、在官网上有两种版本的,如果你的电脑之前安装过Agilent T&M Toolkit就选择without prerequistes版本。否则,就要安装另外一个with版本。只有正确安装才能运行,不然打开软件时会提示软件没有全安装。

 开关矩阵(U2751A)使用_第2张图片

E、USB插入电脑

F、Start > All Programs > Agilent IO Libraries Suite > Agilent Connection Expert,也可以直接右键IO图标选择Connection Expert,可以看到自动扫描除了U2751A,点击右侧的Send Commands To This Instrument,在弹出的框里,点击Send &Read发送*IDN?命令,如果在下方显示出返回的内容信息,表明电脑跟module连接正常,并能通信。

 开关矩阵(U2751A)使用_第3张图片

开关矩阵(U2751A)使用_第4张图片

G、打开AMM软件之前必须打开运行IO Libraries Suite,否则打开失败。通过Start > All Programs > Agilent > Modular Products > Agilent Measurement Manager或者桌面上的图标打开AMM。然后会出现连接的硬件

开关矩阵(U2751A)使用_第5张图片

点击OK,就可以进入控制界面

 开关矩阵(U2751A)使用_第6张图片

想连通某个点就点击某个点,就会变绿

 开关矩阵(U2751A)使用_第7张图片

二、U2751A编程

SCPI命令(Standard Commands for Programmable Instruments),是一种ASCII仪器命令语言,主要用于测试和测量仪器。SCPI字符串发送到仪器时必须以)结尾。

U2751A中的常用SCPI命令如下:

1、IEEE-488.2 Common Commands通用的命令

*”开头,如

*IDN?  返回仪器的说明,包括厂家,仪器number,序列号,firmware revision

Eg*IDN?   //Typical Response:

KEYSIGHT TECHNOLOGIES,U2751A,MY12345678,V1.00-1.00-1.00

*RST 复位

*CLS 清空寄存器和错误序列

*ESE   使能寄存器的位

Eg*ESE 32  打开错误命令寄存器

 开关矩阵(U2751A)使用_第8张图片

*OPC  如果前面的命令都执行完了就会返回1到输出缓存中

EgROUT:CLOS (@101); *OPC

2、DIAGnostic Subsystem中的命令

DIAGnostic:RELay:CYCLes? (@)  返回指定连通点的计数

EgDIAG:REL:CYCL? (@101,104,103) //返回 10000,100,10

DIAGnostic:RELay:CYCLes:CLEar (@)  清除计数,归零

EgDIAG:REL:CYCL:CLE (@101)

3、ROUTe Subsystem中的命令

ROUTe:CLOSe  (@)  连通交叉点

Eg

ROUT:CLOS  (@101) //连通第1行第1列的点

ROUT:CLOS  (@101,303,405)//连通不同行的几个点

ROUT:CLOS  (@201:203) //连通同一行的201,202,203几个点

ROUT:CLOS  (@106:303) //连通106303中间的所有点

ROUT:CLOS  (@101,201:203,303)

ROUT:CLOS  (@101:108,205:308)

ROUTe:CLOSe?  (@)  返回该点的状态,连通返回1,断开返回0

Eg

ROUT:CLOS? (@101)  //Typical Response: 1101是连通的

ROUT:CLOS? (@101,105,207,304)  //Typical Response: 1,1,1,0

ROUT:CLOS? (@108:203,307:404)  //Typical Response: 1,1,1,0,0,1,1,0,1,1

ROUTe:OPEN  (@)  断开交叉点

ROUT:OPEN (@106:303) //断开106303中间的点

ROUT:OPEN (@101,201:203,303)

ROUTe:OPEN?  (@)  返回该点的状态,断开返回1,连通返回0

ROUT:OPEN? (@101)  //Typical Response: 1101是断开的

ROUT:OPEN? (@101,205,307,404)  //Typical Response: 1,1,1,0

ROUT:OPEN? (@108:203,307:404)  //Typical Response: 1,1,1,0,0,1,1,0,1,1

ROUT:OPEN  (@101); CLOS  (@102)  等价于ROUT:OPEN (@101)和ROUT:CLOS (@102)两条指令,只有属于一个子系统的才能这样写//断开第1行第1列的点,连通第1行第2列的点

ROUT:CLOS  (@101);:  DIAG:REL:CYCL:CLE  (@101) //如果两个指令不属于同一个子系统,中间要用“:”连接

4SYSTem Subsystem中的命令

SYSTem:CDEScription?  U2751A单独用的话返回+7+0,如果作为另一个仪器的模块返回Slot numberchassis number

Eg

SYST:CDES?  //Typical Response: +7, +0,独立使用时

SYST:CDES?  //Typical Response: +2, +5,作为U2781A的模块时

SYSTem:ERRor?  返回错误的信息的数字代号和仪器错误序列中的消息字符串,先存储的先读出来(FIFO),系统中最多保存20个错误,超过后出现–350, Queue overflow.如果没有错误产生,返回的是0, No error”,*RST 命令不能清空错误序列,*CLS 才能清空错误序列

EgSYST:ERR?  //Typical Response: 330, Self-test failed

SYSTem:VERSion? 返回仪器中使用的SCPI的版本

EgSYSTem:VERSion?  //Typical Response: 1997.0,(年.版本)

三、错误消息

如果调试中看到这些错误消息,就可以直接定位错误的地方,减少找Bug的时间。

Command errors

 开关矩阵(U2751A)使用_第9张图片

Execution errors

 开关矩阵(U2751A)使用_第10张图片

Device-specific errors

 

Query errors

 开关矩阵(U2751A)使用_第11张图片

Instrument errors

 开关矩阵(U2751A)使用_第12张图片

Self-test errors

 开关矩阵(U2751A)使用_第13张图片

四、我自己在VS2010上写了一个程序,确定能运行,注意要把visa.hvisa32.libvisatype.h三个文件添加到工程中。

#include "visa.h"

#include 

using namespace std;

void main()

{

ViSession rm;  

ViSession u2751;

ViStatus st;

    //打开总的资源管理器,初始化资源管理器  

    viOpenDefaultRM(&rm);  

  

    //打开指定的USB接口控制的开关矩阵

    st=viOpen(rm, "USB0::0x0957::0x3D18::MY51380004::0::INSTR", VI_NULL, VI_NULL, &u2751); //在IO Suite中可以查看USB的visa名称

if(st==0)

{  

//这里定义的SCPI语言是必须以\n结尾的  

viClear(u2751);

viPrintf(u2751,"*RST\n");//复位

viPrintf(u2751,"*CLS\n"); //清空

viPrintf(u2751,"ROUTe:CLOSe (@301,107)\n");//连通301和107

cout<<"301和107连通"<


上面程序①②③处的效果依次为下面三个图。(在程序中设置断点,然后在AMM软件中刷新显示,即可看到每一次连接之后的效果图)

 开关矩阵(U2751A)使用_第14张图片

开关矩阵(U2751A)使用_第15张图片

开关矩阵(U2751A)使用_第16张图片

 

你可能感兴趣的:(项目经验)