pyvisa выдает ошибки но linux-gpib работает
Я пытаюсь управлять генератором сигналов произвольной формы Agilent 33120A, используя pyvisa в Ubuntu 13.04 (Raring Ringtail). Я установил и настроил все необходимое для связи с прибором с помощью нашего лабораторного адаптера NI GPIB-USB-B. Прошивка адаптера загружена, как и модули ядра из linux-gpib.
Я могу успешно сделать несколько пробных прогонов, например, запустив # ibtest
(инструмент командной строки), я могу написать *IDN?
к устройству, и я получаю идентификатор устройства: 'HEWLETT-PACKARD,33120A,0,8.0-5.0-1.0'
, Я также успешно протестировал другие команды, такие как установка напряжения и частоты и так далее. Оно работает.
Проблема в том, что Пывиса всегда бросает VisaIOError
... Я не имею понятия, как заставить его работать. Я запускаю python-2.7 как root, так что (пока) мне не нужно иметь дело с какими-либо правами доступа. Это код и вывод:
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-1,4
- питон-2,7
- линукс-GPIB-3.2.20
- libvisa-0.0.20130812-1 ( https://launchpad.net/ubuntu/trusty/amd64/libvisa0/) новейшая сборка для Ubuntu 14.04 (Trusty Tahr), поскольку этой библиотеки нет в репозиториях для Ubuntu 13.04)
Я надеюсь на некоторые предложения.
1 ответ
pyvisa
это обертка Python вокруг NI-VISA. Насколько я знаю, это не возможно использовать pyvisa
с linux-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
). Он пытается упростить связь устройства. Также он поставляется с собственными обертками для linux-gpib.