Ich habe kürzlich gelernt, wie man ein Instrument mit Python steuert. Im Vergleich zu der bekannten Steuerungssoftware für Messgeräte (LabV * EW usw.) bin ich beeindruckt von ihrer hohen Vielseitigkeit und Flexibilität. Ich werde zu einem späteren Zeitpunkt bestimmte Beispielprogramme zusammenfassen, aber hier werde ich die häufig verwendeten Pyvisa-Befehle auflisten. Es ist ein Memorandum für mich.
Referenzseite: PyVISA https://pyvisa.readthedocs.io/en/latest/
python3.7.7 Windows10
Hier nehmen wir an, dass Python bereits installiert ist.
Was Sie brauchen, um zu kommunizieren. Im Allgemeinen wird es von National Instruments kostenlos zur Verfügung gestellt. Installieren Sie das Betriebssystem, das dem Betriebssystem Ihres PCs entspricht. Darüber hinaus arbeitet PyVISA mit VISA anderer Unternehmen zusammen. (Keysight VISA, R & S VISA, tekVISA usw.)
Geben Sie von pip (pip3) ein.
$ pip install pyvisa
Damit ist der Umgebungsaufbau abgeschlossen. Sehr leicht.
import pyvisa
rm = pyvisa.ResourceManager()
visa_list = rm.list_resources()
usb_1 = visa_list[0]
inst_1 = rm.openresources(usb1)
inst_1.write('*IDN?')
out = inst_1.read()
#Natürlich können Sie Abfrage verwenden
# out = inst_1.query('*IDN?')
print(out)
# (Informationen zum Messgerät)
Dieser Code wird unten erklärt.
Importieren und erstellen Sie eine Instanz in Python.
import pyvisa
#Instanzgenerierung, so etwas wie Magie
rm = pyvisa.ResourceManager()
#Abrufen des VISA-Ressourcennamens des an den PC angeschlossenen Messgeräts
visa_list = rm.list_resources()
Hier ist `rm``` optional. Außerdem gibt
rm.list_resources ()
`` den VISA-Ressourcennamen in der Liste zurück. Hierbei wird davon ausgegangen, dass ein Gerät an den USB-Port angeschlossen ist. Rufen Sie den Namen der VISA-Ressource ab.
#Name der VISA-Ressource
usb_1 = visa_list[0]
Geben Sie das Instrument unter Verwendung des VISA-Ressourcennamens an.
#Bezeichnung des Messgeräts
inst_1 = rm.open_resource(usb1)
inst_1.write('*IDN?')
'*idn?'
Ist ein Befehl zum Abhören der Modellinformationen des Messgeräts. Es wird in vielen Geräten verwendet.
inst_1.read()
Sie können die Antwort auf die zuvor gesendete Abfrage lesen. Da wir 'IDN?' Senden, werden dieses Mal Modellinformationen zurückgegeben.
inst_1.query('IDN?')
Suguremono, das eine Abfrage sendet und auf einmal geht, bis es einen Rückgabewert erhält. Die beiden oberen können in einer Zeile geschrieben werden, was vereinfacht werden kann. Beachten Sie, dass beim Senden eines Befehls ohne Abfrage ein Fehler auftritt.
inst_1.write('*rst, *IDN?')
Sie können auch mehrere Befehle gleichzeitig senden. Das Schreiben vieler Zeilen, z. B. Geräteeinstellungsbefehle, erschwert das Programm. Es ist ein wenig erfrischend zu bedienen. Wenn Sie jedoch zu viele Befehle gleichzeitig senden, kann die Kommunikation nicht mithalten, sodass Sie abwarten müssen.
Ein Steuerprogramm wird erstellt, indem die bisher eingeführten VISA-Kommunikationsbefehle mit dem grundlegenden Programmierrahmen wie Schleifen und Berechnungen kombiniert werden. Den Befehl zur SCPI-Kommunikation, der über VISA an das Messgerät gesendet wird, finden Sie in der Bedienungsanleitung jedes Messgeräts.
Hier haben wir erklärt, wie Python zur Steuerung des Instruments verwendet wird. Ich denke, es ist besser, ein USB-Kabel oder das USB-GPIB-Kabel von NI zu verwenden, um eine Verbindung zum Messgerät herzustellen. Das GPIB-Kabel ist etwas teuer, und neuere Messgeräte verfügen grundsätzlich über einen USB-Anschluss. Wir empfehlen daher, ein USB-Kabel anzuschließen.
In Zukunft planen wir, die tatsächlich steuernden Programme und den zu diesem Zeitpunkt verwendeten Code einfach zusammenzufassen.
Recommended Posts