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")

Но выдается то же исключение, что и выше.

В принципе все настроено нормально, но пывиса ничего не видит.

Используемые версии:

Я надеюсь на некоторые предложения.

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.

Другие вопросы по тегам