我试图在
Ubuntu 13.04(Raring Ringtail)下使用pyvisa控制Agilent 33120A任意波形发生器.我已经安装并设置了使用我们的实验室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没有找到任何乐器.我还尝试使用以下任一命令明确打开我的仪器板= 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-1.4
> python-2.7
> linux-gpib-3.2.20
> libvisa-0.0.20130812-1(https://launchpad.net/ubuntu/trusty/amd64/libvisa0/)最新版本为Ubuntu 14.04(Trusty Tahr),因为此库不在Ubuntu 13.04的存储库中)
我希望得到一些建议.
最佳答案 pyvisa是一个围绕NI-VISA的Python包装器.据我所知,不可能将pyvisa与linux-gpib一起使用.但linux-gpib附带了自己的Python包装器.只需导入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包装纸.