PyVISA beheben: Keine USB-Instrumente gefunden

English Deutsch

Problem:

Sie versuchen, eine Verbindung zu einem USB-Instrument mit PyVISA & pyvisa-py herzustellen, aber der PyVISA-Ressourcen-Manager findet keine Instrumente:

pyvisa_list_resources.py
#!/usr/bin/env python3
import visa
rm = visa.ResourceManager()
print(rm.list_resources()) # Gibt "()" aus => Keine Instrumente gefunden!

Lösung

Damit pyvisa-py eine Verbindung zu USB-Instrumenten herstellen kann, müssen Sie die Python usb-Bibliothek installieren!

Auf Debian oder Ubuntu installieren Sie diese mit

install_python3_usb.sh
sudo apt-get -y install python3-usb

oder, falls Sie noch Python 2.x verwenden

install_python_usb.sh
sudo apt-get -y install python-usb

Führen Sie nun das Skript erneut aus - Sie sollten eine Ausgabe wie

pyvisa_example_output.py
('USB0::6833::3601::DL3A204800938::0::INSTR',)

Falls Sie die Ausgabe immer noch nicht sehen, führen Sie python3 -m visa info oder python -m visa info (für Python 2.x) aus.

Es sollte eine Ausgabe wie diese zeigen:

visa_info_output.txt
Machine Details:
   Platform ID:    Linux-4.19.0-5-686-i686-with-debian-10.0
   Processor:

Python:
   Implementation: CPython
   Executable:     /usr/bin/python3
   Version:        3.7.3
   Compiler:       GCC 8.3.0
   Bits:           32bit
   Build:          Apr  3 2019 05:39:12 (#default)
   Unicode:        UCS4

PyVISA Version: 1.9.1

Backends:
   ni:
      Version: 1.9.1 (bundled with PyVISA)
      Binary library: Not found
   py:
      Version: 0.3.1
      ASRL INSTR: Available via PySerial (3.4)
      USB INSTR: Available via PyUSB (1.0.2). Backend: libusb1
      USB RAW: Available via PyUSB (1.0.2). Backend: libusb1
      TCPIP INSTR: Available
      TCPIP SOCKET: Available
      GPIB INSTR:
         Please install linux-gpib to use this resource type.
         No module named 'gpib'

Prüfen Sie Backends -> py -> USB INSTR: Falls dort nicht Available via PyUSB steht, prüfen Sie die Informationsmeldung für Hinweise auf das Problem. Wenn es z.B. heißt

pyvisa_no_usb_module_error.txt
USB INSTR:
   Please install PyUSB to use this resource type.
   No module named 'usb'

bedeutet dies, dass die Python-USB-Bibliothek nicht korrekt installiert wurde.

Wenn USB Available via PyUSB ist, aber PyVISA das Instrument trotzdem nicht findet, prüfen Sie, ob es korrekt verbunden ist mit

lsusb.sh
lsusb

was eine Zeile anzeigen sollte, die sich auf den Hersteller Ihres Instruments bezieht, z.B.

lsusb_rigol_output.txt
Bus 001 Device 002: ID 1ab1:0e11 Rigol Technologies

Trennen Sie auch Ihr Instrument und schließen Sie es wieder an, damit Linux versucht, die Verbindung zum USB-Gerät wiederherzustellen, und prüfen Sie das Ende der Ausgabe von sudo dmesg, die z.B. Folgendes auflisten könnte:

dmesg_usb_output.txt
[19427.230120] usb 1-2: new high-speed USB device number 2 using ehci-pci
[19427.425464] usb 1-2: config 1 interface 0 altsetting 0 bulk endpoint 0x82 has invalid maxpacket 64
[19427.425469] usb 1-2: config 1 interface 0 altsetting 0 bulk endpoint 0x3 has invalid maxpacket 64
[19427.425947] usb 1-2: New USB device found, idVendor=1ab1, idProduct=0e11, bcdDevice= 0.02
[19427.425950] usb 1-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[19427.425953] usb 1-2: Product: DL3000 Serials
[19427.425955] usb 1-2: Manufacturer: Rigol Technologies.
[19427.425957] usb 1-2: SerialNumber: DL3A204800938
[19429.525745] usbcore: registered new interface driver usbtmc

usbtmc in der letzten Zeile bedeutet, dass das USB-Gerät als USB Test & Measurement-Klassengerät erkannt wurde, und daher sollten Sie in der Lage sein, sich mit PyVISA als USB INSTR damit zu verbinden.


Check out similar posts by category: Electronics, Python