Instrumentensteuerung mit Python [pyvisa]

Einführung

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/

Umgebung

python3.7.7 Windows10

Umgebung

Hier nehmen wir an, dass Python bereits installiert ist.

NI-VISA-Installation

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

Installieren Sie PyVISA

Geben Sie von pip (pip3) ein.

$ pip install pyvisa

Damit ist der Umgebungsaufbau abgeschlossen. Sehr leicht.

Beispielcode

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)

VISA schreiben

inst_1.write('*IDN?')

'*idn?'Ist ein Befehl zum Abhören der Modellinformationen des Messgeräts. Es wird in vielen Geräten verwendet.

VISA lesen

inst_1.read()

Sie können die Antwort auf die zuvor gesendete Abfrage lesen. Da wir 'IDN?' Senden, werden dieses Mal Modellinformationen zurückgegeben.

VISA-Abfrage

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.

Senden Sie mehrere Befehle einmal

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.

Schließlich

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

Instrumentensteuerung mit Python [pyvisa]
[Steuerungstechnik] Grafische Darstellung der Übertragungsfunktionen von Python
Installieren Sie Python Control
Scraping mit Python
Bearbeiten Sie Redmine mit Python Redmine
Fibonacci-Sequenz mit Python
Datenbereinigung mit Python
Verwenden von Python # externen Paketen
WiringPi-SPI-Kommunikation mit Python
Python-Steuerungssyntax (Denkmal)
Altersberechnung mit Python
Suchen Sie Twitter mit Python
Namensidentifikation mit Python
Hinweise zur Verwendung von Python-Unterprozessen
Versuchen Sie es mit Tweepy [Python2.7]
Holen Sie sich die ASP Datepicker-Steuerung mit Python und Selen und automatisieren Sie sie
Python-Memo mit perl-ternärem Operator
Mit Python abflachen
Scraping mit Python 3.5 async / await
Speichern Sie Bilder mit Python3-Anforderungen
[S3] CRUD mit S3 unter Verwendung von Python [Python]
[Python] Versuchen Sie, Tkinters Leinwand zu verwenden
[Python-Tutorial] Kontrollstruktur-Tool
Verwenden von Quaternion mit Python ~ numpy-quaternion ~
Versuchen Sie es mit Kubernetes Client -Python-
Python-Notizen zur Verwendung von Perl-Spezialvariablen
[Python] Verwenden von OpenCV mit Python (Basic)
Scraping mit Python 3.5 Async-Syntax
Überwachung von Website-Änderungen mit Python
Mit Python auf Twitter posten
Starten Sie mit Python zu Selen
Suchalgorithmus mit word2vec [Python]
Ändern Sie die Python-Version mit pyenv
Python: Grundlagen der Verwendung von Scikit-Learn ①
# 1 [python3] Einfache Berechnung mit Variablen
Erstellen Sie JIRA-Tickets mit Python
Bearbeiten Sie Tabellenkalkulationen lokal mit Python
Python-Memo mit Perl --join
Web Scraping mit Selenium (Python)
Die I2C-Kommunikation erfolgt durch Steuerung der seriellen Kommunikation mit Python (über ein USBGPIO8-Gerät).
[ev3dev × Python] Einzelmotorsteuerung
[Python] Validierung von JSON mit Voluptuous
Online-Übertragung mit Python
Datenanalyse mit Python-Pandas
Übersetzt mit Googletrans in Python
Verwenden des Python-Modus in der Verarbeitung
Serielle Kommunikationssteuerung mit Python- und SPI-Kommunikation (mit USBGPIO8-Gerät)
Verwenden von OpenCV mit Python @Mac
[Python] Schießspiel mit Pyxel
Senden Sie mit Python mit Google Mail
Steuern Sie den Motor mit einem Motortreiber mit Python auf Raspberry Pi 3!
Python-Steuerungssyntax, Funktionen (Python-Lernnotiz ②)
So installieren Sie Python mit Anaconda
[ev3dev × Python] Steuerung mehrerer Motoren
Harmonischer Mittelwert von Python (mit SciPy)
Initialisierung globaler Variablen mit Python-Dekoratoren
[Python] Laden von CSV-Dateien mit Pandas
GUI-Programmierung in Python mit Appjar