我正试图控制一个Agilent33120A任意波形生成器使用pyvisa在Ubuntu 13.04 ( 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没有看到任何东西。
旧版本:
我希望能得到一些建议。
发布于 2014-01-20 20:15:38
pyvisa是一个关于NI-VISA的Python包装器。据我所知,不可能将pyvisa与linux-gpib结合使用。但是linux附带了自己的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的作者)。它试图简化设备通信。此外,它还为linux-gpib提供了自己的包装。
https://stackoverflow.com/questions/21146628
复制相似问题