我正在努力获取电接触电阻,为此我将使用Keithley 2400源计和Keithley 2182 a纳米伏特计。这两种仪器都通过USB与Keithley KUSB-488b适配器连接到Windows计算机上。
我正在使用Python、Pyvisa模块和国家仪器后端(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或不正确的bitness造成的。然而,这不是我的情况,因为一个简单的python -m visa info
证明实现的后端是正确的。我也尝试过传递resourcemanager( path )
,但是也没有成功。
此外,我尝试安装Keithley I/O层,但还是失败了。另外,在Keithley通信器中,这两个设备实际上都显示了相应的GPIB地址。问题是如何处理Python和正确的地址。
发布于 2020-12-06 14:59:26
我能够用相同的KUSB-488B适配器解决一个类似的问题,方法是使用来自Keysight网站的"Keysight IO库套件“而不是NI-VISA。
在运行Windows 10 (19.09,64位)的PC上,我做了以下操作:
现在我能够在"Keysight连接专家“(Keysight Connection Expert)中看到这个设备,这是Keysight与"NI-MAX”的类比。
在安装了Anaconda (64位)并运行pip install pyvisa
之后,我可以在没有任何错误的情况下控制这些仪器。
https://stackoverflow.com/questions/64045976
复制相似问题