python - pyvisa 给出错误,但 linux-gpib 工作

标签 python python-2.7 ubuntu visa gpib

我正在尝试使用 Ubuntu 13.04 下的 pyvisa 控制 Agilent 33120A 任意波形发生器(Raring Ringtail)。我已经使用我们的实验室 NI GPIB-USB-B 适配器安装并设置了与仪器通信所需的一切。适配器固件已加载,linux-gpib 的内核模块也已加载。

我可以成功地进行一些试运行,例如通过运行 # ibtest(命令行工具),我可以将 *IDN? 写入设备,并且我收到设备 ID:'HEWLETT-PACKARD, 33120A,0,8.0-5.0-1.0'。我还成功测试了其他命令,如设置电压和频率等。它有效。

问题是,pyvisa 总是抛出一个VisaIOError...我不知道如何让它工作。我以 root 身份运行 python-2.7,因此(现在)我不必处理任何访问权限。这是代码和输出:

import visa
>>> visa.vpp43.visa_library.load_library("/usr/lib/x86_64-linux-gnu/libvisa.so.0")
>>> visa.get_instruments_list()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python2.7/dist-packages/pyvisa/visa.py", line 254, in get_instruments_list
    vpp43.find_resources(resource_manager.session, "?*::INSTR")
  File "/usr/lib/python2.7/dist-packages/pyvisa/vpp43.py", line 583, in find_resources
instrument_description)
  File "/usr/lib/python2.7/dist-packages/pyvisa/vpp43.py", line 398, in check_status
raise visa_exceptions.VisaIOError, status
pyvisa.visa_exceptions.VisaIOError: VI_ERROR_RSRC_NFOUND: Insufficient location information or the requested device or resource is not present in the system.

库正确加载。甚至没有必要,但为了安全起见,我明确加载了库。显然,pyvisa 没有找到任何工具。我还尝试使用以下任一命令显式打开我的乐器 board=0, pad=10, sad=0:

visa.instrument("GPIB::10")
visa.instrument("GPIB0::10")
visa.instrument("GPIB::10::0")
visa.instrument("GPIB0::10::0")

但是抛出了和上面一样的异常。

基本上,一切都已设置好,但 pyvisa 看不到任何东西。

使用的版本:

我希望得到一些建议。

最佳答案

pyvisa 是 NI-VISA 的 Python 包装器。据我所知,不可能将 pyvisalinux-gpib 一起使用。但是 linux-gpib 带有它自己的 Python 包装器。只需 import Gpib 就可以了,例如,

>>>import Gpib
>>>device = Gpib.Gpib(pad=10)
>>>device.write('*IDN?')
>>>device.read()
'HEWLETT-PACKARD,33120A,0,8.0-5.0-1.0'

我猜您正在编写某种测量脚本。看看slave它可能对你有用(免责声明:我是 slave 的作者)。它试图简化设备通信。它还带有自己的包装器 linux-gpib .

关于python - pyvisa 给出错误,但 linux-gpib 工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21146628/

相关文章:

java - 将 Log4net 与 Google App Engine 后端结合使用

Python 到 Matlab 的转换?

python - 以 pythonic 方式从制表符分隔文件构建字典

ubuntu - 运行一系列命令的 Shell 脚本(Ubuntu)

ubuntu - X11 转发仅在首次使用 Putty 后才能在 Ubuntu 上使用 Windows 10 cmd-line ssh

python - 在 Python 中解压存档有错误

Python递归地__getattribute__

python-2.7 - 嵌入Mayavi时在vtkOutputWindow中禁用或捕获VTK警告

python - 如何在类的 __init__ 函数中使用函数

c - 如何在ubuntu中将c程序设置为守护进程?