Функции PyVISA GPIB будут вызывать ошибку ОС до тех пор, пока библиотека не будет загружена вручную

#pyvisa #gpib

Вопрос:

Я пытаюсь подключить новый VNA с открытым исходным кодом, или векторный сетевой анализатор (LibreVNA), через USB, чтобы иметь возможность автоматизировать некоторые показания. Я столкнулся с проблемой при попытке подключиться к устройству через PyVISA. Я не могу получить доступ к командам SCPI, так как PyVISA приводит к ошибке ниже и двум устройствам «ASRL/dev/ttyS0::INSTR», которые не являются VNA с открытым исходным кодом.

Когда я запускаю python3-m информация о визе:

 /usr/local/lib/python3.8/dist-packages/visa.py:13: FutureWarning: The visa module provided by PyVISA is being deprecated. You can replace `import visa` by `import pyvisa as visa` to achieve the same effect.

The reason for the deprecation is the possible conflict with the visa package provided by the https://github.com/visa-sdk/visa-python which can result in hard to debug situations.
  warnings.warn(
/usr/local/lib/python3.8/dist-packages/gpib_ctypes/gpib/gpib.py:54: UserWarning: GPIB library not found. Please manually load it using _load_lib(filename). All GPIB functions will raise OSError until the library is manually loaded.
  warnings.warn(message)
Machine Details:
   Platform ID:    Linux-5.11.0-25-generic-x86_64-with-glibc2.29
   Processor:      x86_64

Python:
   Implementation: CPython
   Executable:     /usr/bin/python3
   Version:        3.8.10
   Compiler:       GCC 9.4.0
   Bits:           64bit
   Build:          Jun  2 2021 10:49:15 (#default)
   Unicode:        UCS4

PyVISA Version: 1.11.3

Backends:
   ivi:
      Version: 1.11.3 (bundled with PyVISA)
      Binary library: Not found
   py:
      Version: 0.5.2
      ASRL INSTR: Available via PySerial (3.5)
      USB INSTR: Available via PyUSB (1.2.1). Backend: libusb1
      USB RAW: Available via PyUSB (1.2.1). Backend: libusb1
      TCPIP INSTR: Available 
      TCPIP SOCKET: Available 
 

Из моих предыдущих попыток я пытался добавить библиотеку типов GPIB-ctypes, и именно тогда была добавлена ошибка. Я получаю сообщение об ошибке о невозможности найти модуль с именем gpib без добавления библиотеки gpib-ctypes.

Ответ №1:

Если вы посмотрите на примеры SCPI для этого устройства, вы увидите, что связь с SCPI фактически осуществляется через TCP-порт (по умолчанию используется 19542). Кроме того, графический интерфейс должен быть запущен, и связь SCPI должна быть включена в графическом интерфейсе. Похоже, что в графическом интерфейсе используется небольшой сервер SCPI. Этот подход обычно используется с гораздо более дорогими анализаторами USB-сетей (например, Keysight и Textronix).

Согласно документам PyVISA, вы должны иметь возможность использовать этот синтаксис для строки устройства для подключения:

 TCPIP::localhost::19542::SOCKET
 

или

 TCPIP::127.0.0.1::19542::SOCKET
 

Я не знаю, сможет ли какая-либо из библиотек VISA обнаружить это устройство с помощью rm.list_resources() .