首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用PyVISA实现GPIB与仪器的连接

用PyVISA实现GPIB与仪器的连接
EN

Stack Overflow用户
提问于 2020-09-24 11:59:22
回答 1查看 2K关注 0票数 0

我正在努力获取电接触电阻,为此我将使用Keithley 2400源计和Keithley 2182 a纳米伏特计。这两种仪器都通过USB与Keithley KUSB-488b适配器连接到Windows计算机上。

我正在使用Python、Pyvisa模块和国家仪器后端(NI VISA)创建一个脚本,允许我执行所需的测量。然而,我在与仪器的沟通上遇到了麻烦。基于Pyvisa开发人员提供的官方文档,我运行了几个简单的脚本,但无法与这两种工具连接。以下简单的代码块可能有助于我解释:

代码语言:javascript
运行
复制
>>> 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或不正确的bitness造成的。然而,这不是我的情况,因为一个简单的python -m visa info证明实现的后端是正确的。我也尝试过传递resourcemanager( path ),但是也没有成功。

此外,我尝试安装Keithley I/O层,但还是失败了。另外,在Keithley通信器中,这两个设备实际上都显示了相应的GPIB地址。问题是如何处理Python和正确的地址。

EN

回答 1

Stack Overflow用户

发布于 2020-12-06 14:59:26

我能够用相同的KUSB-488B适配器解决一个类似的问题,方法是使用来自Keysight网站的"Keysight IO库套件“而不是NI-VISA。

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

  • 从设备管理器卸载KUSB-488B驱动程序。
  • 卸载NI-签证,重新启动。
  • 删除Windows设置应用程序中已安装程序列表中提到"VISA“、"NI”、"GPIB“或"488”的所有剩余项目。重新启动。
  • 安装最新的KUSB-488B驱动程序。在安装过程中,选择"Keithley命令兼容“选项( NI还有另一个选项,但我忘记了它的名称)。重新启动。
  • 安装"Keysight IO库套件“,版本为"2020更新1”。重新启动。

现在我能够在"Keysight连接专家“(Keysight Connection Expert)中看到这个设备,这是Keysight与"NI-MAX”的类比。

在安装了Anaconda (64位)并运行pip install pyvisa之后,我可以在没有任何错误的情况下控制这些仪器。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64045976

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档