用Labview对GPIB设备编程通信问题
电脑上装了Labview的,MAX驱动也装了,
准备对一个安捷伦的GPIB设备进行程控,主要控制电流大小
我在MAX里面能找到GPIB0接口,和设备的连接都没有问题了,请注意这点。
我用 labview在运行编程手册里面的一些简单程序时,(程序很简单,就是一个VISA写入,一个VISA读取,然后再返回值)
常会出现超时错误: -1073807339
可能原因
VISA: (Hex 0xBFFF0015) Timeout expired before operation completed.
机器能执行命令,但会出错,然后程序返回值与实际不符。
我列举一个命令:(这是机器编程手册里面的例子代码)
OUTP OFF
VOLT 0.05;CURR 10
VOLT?;CURR?
OUTP ON
MEAS:VOLT?;:MEAS:CURR?
机器经常会出现一下错误:
-440 Query unterminated [query received after query for indefinite response]
-410 Query interrupted [query followed by DAB or GET before response complete]
有没有高手大侠来帮忙解决下。
谢谢。
我输入*IDN?命令能返回设备信息,通信是没有问题,
我装LABVIEW的时候里面自带一些I/O函数,有VISA,GPIB,我没有单独装Agilent的I/O
你说的那个问题能不能说清楚点是怎么回事,谢谢.
NI 488.2通讯器里面有个询问,写和读,这3个按钮有什么区别呢? 展开
你先试一下用MAX里面的与仪器通信发这些命令有没有问题。
你说能找到GPIB0的接口,那你的仪器有没有被扫描出来?
你附图,我的GPIB卡连了3个仪器,在VISA资源下面就已经有了自动扫描出的3个仪器的资源名称。
没有这些你就没法通信的。
如果这些你都有,那就试一下第一行,如果通信也是可以的,那就是程序的问题了。
根据你的说法,通信时没有问题了
那你用你写的程序发*IDN?可不可以,如果也行那就是你后面发的命令的问题了。跟那个I/O没啥关系了。
你再好好看下手册的命令描述,范例里面的命令有的时候是比较老的,不一定支持现在的仪器,你也可以执行下范例看行不行呀。
另外,要注意有些命令是没有返回值的,这样你在读操作时当然会出错的,而一些测量的,比如说VOLT?之类的,你发下去最好要延时一下再去读的。
另外,建议你这些命令,你都用MAX里面的与仪器通信先试一下,哪些有返回值,哪些没有,再放到程序里面。
补:
询问:发送命令,并自动读取返回值,适用于有返回值的命令
发送:单纯的发送命令到设备
读取:从设备读取值,发送与读取一起用等同于询问,不过一个是自动,一个是手动。
比如说*IDN?,你点询问可以,你可以点下发送,再点读取也是一样。
你图中发的那个命令是操作命令,没有返回值的吧,应该点发送,然后看仪器状态是否变化。发查询命令的时候,基本上后面有个‘?’,用询问才可以的。
2023-06-12 广告