PyVISA beheben: Keine USB-Instrumente gefunden
Problem:
Sie versuchen, eine Verbindung zu einem USB-Instrument mit PyVISA & pyvisa-py herzustellen, aber der PyVISA-Ressourcen-Manager findet keine Instrumente:
#!/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
sudo apt-get -y install python3-usboder, falls Sie noch Python 2.x verwenden
sudo apt-get -y install python-usbFühren Sie nun das Skript erneut aus - Sie sollten eine Ausgabe wie
('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:
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
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
lsusbwas eine Zeile anzeigen sollte, die sich auf den Hersteller Ihres Instruments bezieht, z.B.
Bus 001 Device 002: ID 1ab1:0e11 Rigol TechnologiesTrennen 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:
[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 usbtmcusbtmc 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.