【问题标题】:Connecting to instrument via GPIB using PyVISA in Python在 Python 中使用 PyVISA 通过 GPIB 连接到仪器
【发布时间】:2020-09-24 11:59:22
【问题描述】:

我正在研究接触电阻,为此我将使用 Keithley 2400 源表和 Keithley 2182a 纳伏表。两台仪器都通过 USB 和 Keithley KUSB-488b 适配器连接到 Windows 计算机。

我正在使用 Python、Pyvisa 模块和 National Instruments 后端 (NI VISA) 创建一个脚本,让我能够进行所需的测量。但是,我在与仪器通信时遇到了麻烦。根据 Pyvisa 开发人员提供的官方文档,我已经运行了几个简单的脚本,但是我无法连接任何一种仪器。以下简单的代码块可能有助于我的解释:

>>> import pyvisa
>>> rm = pyvisa.ResourceManager()
>>> rm.list_resources()
('ASRL3::INSTR', 'ASRL4::INSTR', 'ASRL8::INSTR', 'ASRL14::INSTR')
>>> inst = rm.open_resource(' # Instrument address here # ')
>>> print(inst.query("*IDN?")

第 4 行的结果应该给我一个我的仪器地址的列表。但是,这些都不正确,因此当我尝试第 4 行提供的四个地址时,我得到一个超时错误 (VI_ERROR_TMO)。这个简单代码块的第 4 行的预期输出将是两个仪器的 GPIB 地址,根据文档。我尝试使用 KI-488 诊断工具与两个设备进行通信。这两个我都成功地沟通了。 SMU的地址是GPIB::24,纳伏表是GPIB::7。

我还尝试在更复杂的脚本(当前扫描)中传递从诊断工具获得的 GPIB 地址。然而这导致了

pyvisa.errors.VisaIOError: VI_ERROR_LIBRARY_NFOUND (-1073807202)

我在网上搜索了类似的错误,其中大多数是缺少 dll 或位数不正确的结果。然而这不是我的情况,因为一个简单的python -m visa info 证明实现的后端是正确的。我也尝试过传递resourcemanager( path ),但也没成功。

另外,我尝试安装 Keithley I/O Layer,但还是没有成功。此外,在 Keithley 通信器中,这两个设备实际上都带有相应的 GPIB 地址。问题在于使用 Python 和正确的地址。

【问题讨论】:

  • 我之前没有使用过KUSB-488b,但是根据您的描述,这似乎是KUSB-488b驱动程序的问题,或者VISA可能不是正确的版本或存在安装问题。您可以使用 NIMAX 工具查看仪器并进行通信吗?即使您可以使用 KI-488 诊断工具看到它们,如果 NImax 无法看到它们,那么 pyvisa 也将无法看到它们。
  • 嗨 Zircatron,感谢您的重播!我也相信这是 NI-VISA 的问题,但不确定是什么原因造成的。我更新了 KUSB 驱动程序和 NI-VISA。我能够使用 NIMAX 工具检测到这两种仪器,以及它们对应的 GPIB 地址。这就是我的困惑,NIMAX 正确地选择了它们,但我无法通过签证 dll 看到它们。我安装了 pyvisa-py 并在调用 ResourceManager() 时传递了“@py”,现在我可以在 python 中看到并与这两个工具进行通信。但是我仍然无法解释为什么 NI-VISA 不起作用。
  • 尝试卸载 NI-VISA 并安装 Keysight Connection Expert。

标签: python gpib pyvisa


【解决方案1】:

通过使用Keysight's website 中的“Keysight IO Libraries Suite”而不是 NI-VISA,我能够解决使用相同 KUSB-488B 适配器的类似问题。

在运行 Windows 10(19.09,64 位)的 PC 上,我执行了以下操作:

  • 从设备管理器中卸载 KUSB-488B 驱动程序。
  • 卸载 NI-VISA,重启。
  • 删除 Windows 设置应用程序中已安装程序列表中提及“VISA”、“NI”、“GPIB”或“488”的所有剩余项目。重新启动。
  • 安装最新的 KUSB-488B 驱动程序。安装过程中,选择“Keithley command compatible”选项(NI还有一个,但是忘记叫什么了)。重新启动。
  • 安装“Keysight IO Libraries Suite”,版本“2020 Update 1”。重新启动。

现在我可以在“Keysight Connection Expert”中看到该设备,这是 Keysight 的“NI-MAX”模拟。
安装 Anaconda Python(64 位)并运行pip install pyvisa 后,我可以毫无错误地控制仪器。

【讨论】:

    猜你喜欢
    • 2018-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多