0

我正在尝试使用 pyVISA 连接到 GPIB 仪器,但出现错误。我正在关注 pyVISA 网站上的简单示例:http: //pyvisa.readthedocs.org/en/master/

我在 IPython 控制台中输入以下代码:

import visa
rm = visa.ResourceManager()
rm.list_resources()

Out[4]:
(u'USB0::0x0957::0x0D0B::MY49431510::INSTR',
 u'USB0::0x0957::0x17BC::MY52400338::INSTR',
 u'ASRL1::INSTR',
 u'ASRL2::INSTR',
 u'ASRL5::INSTR',
 u'ASRL6::INSTR',
 u'ASRL7::INSTR',
 u'ASRL8::INSTR',
 u'ASRL9::INSTR',
 u'ASRL10::INSTR')

但是,我的 GPIB 仪器没有显示,只有串行端口和我的 USB 仪器。当我启动 Agilent Connection Expert(或 NI MAX)时,我可以看到我所有的 GPIB 仪器并可以与它们通信。我还能够与 Matlab 毫无问题地与仪器进行通信。

因此,当我尝试使用线路连接到仪器时:

inst = rm.open_resource('GPIB0::19::INSTR')

它抛出一个错误: VisaIOError: VI_ERROR_INTF_NUM_NCONFIG (-1073807195): The interface type is valid but the specified interface number is not configured.

我还尝试连接列出资源时出现的 USB 仪器,但它们不会引发此错误。但是,当我尝试做一个简单的查询时:

inst = rm.open_resource('USB0::0x0957::0x0D0B::MY49431510::INSTR')
inst.query("*IDN?")

什么都没有返回,也没有错误被抛出。

我正在使用 Python(X,Y) 2.7.9.0 和 Python 版本 2.7.9 32 位

pyVISA 版本是 1.6.3 NI 位数是 32

感谢任何指导,因为我是 Python 新手。

谢谢

4

7 回答 7

0

您可能需要使用以下命令启动资源管理器:

rm = ResourceManager('Path to library')

其中 Path to library 是 NI Vista Library 的位置。

也试试:

python -m visa info

以确保您使用与您正在运行的 python 版本相同的字长安装它。

于 2015-02-22T21:36:46.023 回答
0

我遇到了同样的问题,并且确实通过将路径地址设置为:'C:/Program Files/IVI Foundation/VISA/WinNT/agvisa/agbin/visa32.dll'来解决它。如果您还没有找到解决方案,我希望它也适用于您。

于 2015-08-19T11:25:05.870 回答
0

我遇到了同样的问题(在 64 位 win7 上运行 32 位 python 2.7),我使用它修复了它

rm = ResourceManager('C:/Program Files (x86)/IVI Foundation/VISA/WinNT/agvisa/agbin/visa32.dll')

这是“关于安捷伦 IO 控制”信息中给出的 32 位 VISA 路径。

于 2016-04-25T14:00:22.503 回答
0

我的计算机上安装了ni-visa安捷伦。visa但是,pyvisa由于指向错误的库,无法访问 Agilent 82357B 设备。

我使用这个命令来指定正确的库,它对我有用。笔记夫妇:

  • 根据每个签证数据包,为位于不同安装目录中的设备找到正确的库是 visa32.dll。
  • 即使在 Windows 上,也可以使用正斜杠来分隔字符。
  • 在命令中指定签证包:rm = visa.ResourceManager('c:/....')
于 2016-05-03T22:16:29.467 回答
0

我遇到过同样的问题。问题是自动安装的 Windows 驱动程序错误,我的设备显示为USB0::0x3923::0x702A::010A65AB::RAWNI MAX

它是通过从C:\Program Files\National Instruments\NI-488.2(或安装驱动程序的位置)更新驱动程序(设备管理器-> 属性)来解决的。

现在 GPIB 也适用于 python。

于 2017-01-20T09:14:32.953 回答
0

我遇到了完全相同的问题 - USB 资源出现了,GPIB 资源没有出现。我尝试完全按照您的方式打开资源inst = rm.open_resource('GPIB0::22::INSTR')(将 GPIB 地址更改为我的仪器之一的地址),结果完全相同。一些启发性的随机猜测让我

inst = rm.open_resource('GPIB1::22::INSTR')

效果很好!一旦仪器打开,它就会按预期显示在资源列表中。我不知道为什么该接口被视为 GPIB1。

我使用 Keysight/Agilent/HP IO 库套件作为我的 VISA 库(未安装 NI 库)和 Agilent 82357B USB 到 GPIB 接口。我不必对我的 pyVisa 安装进行任何自定义即可使其正常工作。这很好。

希望这可以帮助!

于 2015-11-08T12:28:04.387 回答
-1

在带有 Keysight 签证库的 PC 上运行时,我观察到了相同的错误报告。用 National Instruments 的 visa dll 替换解决了这个问题。

于 2016-12-28T09:28:12.147 回答