Contrôle d'instruments à l'aide de Python [pyvisa]

introduction

J'ai récemment appris à contrôler un instrument en utilisant python. Comparé au célèbre logiciel de contrôle d'instruments de mesure (LabV * EW, etc.), je suis impressionné par sa grande polyvalence et sa flexibilité. Je vais résumer des exemples de programmes spécifiques à une date ultérieure, mais ici je vais énumérer les commandes pyvisa fréquemment utilisées. C'est un mémorandum pour moi.

Page de référence: PyVISA https://pyvisa.readthedocs.io/en/latest/

environnement

python3.7.7 Windows10

Environnement

Ici, nous supposons que Python est déjà installé.

Installation de NI-VISA

Ce dont vous avez besoin pour communiquer. En règle générale, il est fourni gratuitement par National Instruments. Installez celui qui correspond au système d'exploitation de votre PC. De plus, PyVISA travaille avec VISA fourni par d'autres sociétés. (Keysight VISA, R & S VISA, tekVISA, etc.)

Installez PyVISA

Entrez depuis pip (pip3).

$ pip install pyvisa

Ceci termine la construction de l'environnement. Très facile.

Exemple de code

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

#Bien sûr, vous pouvez utiliser la requête
# out = inst_1.query('*IDN?')

print(out)
# (Informations sur l'instrument de mesure)

Ce code sera expliqué ci-dessous.

Importez et créez une instance sur python.

import pyvisa

#Génération d'instances, quelque chose comme de la magie
rm = pyvisa.ResourceManager()
#Obtention du nom de ressource VISA de l'instrument de mesure connecté au PC
visa_list = rm.list_resources()

Ici, rm``` est facultatif. De plus, rm.list_resources () '' `` renvoie le nom de la ressource VISA dans la liste. Ici, on suppose qu'un périphérique est connecté au port USB. Obtenez le nom de la ressource VISA.

#Nom de la ressource VISA
usb_1 = visa_list[0]

Spécifiez l'instrument à l'aide du nom de la ressource VISA.

#Désignation de l'instrument de mesure
inst_1 = rm.open_resource(usb1)

Rédaction VISA

inst_1.write('*IDN?')

'*idn?'Est une commande pour écouter les informations du modèle de l'instrument de mesure. Il est utilisé dans de nombreux appareils.

Lire VISA

inst_1.read()

Vous pouvez lire la réponse à la requête que vous avez envoyée précédemment. Puisque nous envoyons "IDN?" Cette fois, les informations du modèle seront renvoyées.

Requête VISA

inst_1.query('IDN?')

Suguremono qui envoie une requête et va tout à la fois jusqu'à ce qu'il reçoive une valeur de retour. Les deux premiers peuvent être écrits sur une seule ligne, ce qui peut être simplifié. Notez que si vous envoyez une commande sans requête, une erreur se produira.

Envoyer plusieurs commandes une fois

inst_1.write('*rst, *IDN?')

Vous pouvez également envoyer plusieurs commandes à la fois. L'écriture de nombreuses lignes, telles que les commandes de configuration de périphérique, complique le programme. C'est un peu rafraîchissant à utiliser. Cependant, si vous envoyez trop de commandes à la fois, la communication ne pourra pas suivre, vous devez donc attendre et voir.

Un programme de contrôle est construit en combinant les commandes de communication VISA introduites jusqu'à présent avec le cadre de programmation de base tel que les boucles et les calculs. Pour la commande de communication SCPI envoyée à l'instrument de mesure via VISA, reportez-vous au manuel d'instructions de chaque instrument de mesure.

finalement

Ici, nous avons expliqué comment utiliser Python pour contrôler l'instrument. Je pense qu'il vaut mieux utiliser un câble USB ou le câble USB-GPIB de NI pour se connecter à l'instrument de mesure. Le câble GPIB est un peu cher, et les instruments de mesure récents ont essentiellement une borne USB, nous recommandons donc de se connecter avec un câble USB.

À l'avenir, nous prévoyons de résumer facilement les programmes qui contrôlent réellement et le code utilisé à ce moment-là.

Recommended Posts

Contrôle d'instruments à l'aide de Python [pyvisa]
[Ingénierie de contrôle] Représentation graphique des fonctions de transfert par Python
Installer le contrôle Python
Scraping à l'aide de Python
Manipuler Redmine à l'aide de Python Redmine
Séquence de Fibonacci utilisant Python
Nettoyage des données à l'aide de Python
Utilisation des packages Python #external
Câblage Communication Pi-SPI avec Python
Syntaxe de contrôle Python (mémoire)
Calcul de l'âge à l'aide de python
Rechercher sur Twitter avec Python
Identification de nom à l'aide de python
Notes sur l'utilisation de sous-processus Python
Essayez d'utiliser Tweepy [Python2.7]
Obtenez et automatisez le contrôle ASP Datepicker à l'aide de Python et Selenium
mémo python utilisant l'opérateur perl-ternaire
Aplatir à l'aide du rendement Python de
Scraping à l'aide de Python 3.5 async / await
Enregistrer des images à l'aide de requêtes python3
[S3] CRUD avec S3 utilisant Python [Python]
[Python] Essayez d'utiliser le canevas de Tkinter
[Tutoriel Python] Outil de structure de contrôle
Utilisation de Quaternion avec Python ~ numpy-quaternion ~
Essayez d'utiliser Kubernetes Client -Python-
notes python pour l'utilisation de variables spéciales perl
[Python] Utilisation d'OpenCV avec Python (basique)
Scraping à l'aide de la syntaxe Python 3.5 Async
Surveillance des changements de site Web à l'aide de python
Publier sur Twitter en utilisant Python
Commencez à Selenium en utilisant python
Algorithme de recherche utilisant word2vec [python]
Changer la version de python à l'aide de pyenv
python: principes de base de l'utilisation de scikit-learn ①
# 1 [python3] Calcul simple à l'aide de variables
Créer des tickets JIRA en utilisant Python
Manipulez les feuilles de calcul localement à l'aide de Python
mémo python utilisant perl --join
Web scraping avec Selenium (Python)
La communication I2C est effectuée en contrôlant la communication série avec python (à l'aide d'un périphérique USBGPIO8)
[ev3dev × Python] Commande de moteur unique
[Python] Validation de JSON avec Voluptuous
Diffusion sur LINE en utilisant python
Analyse de données à l'aide de pandas python
Traduit à l'aide de googletrans en Python
Utilisation du mode Python dans le traitement
Contrôle de la communication série avec communication python et SPI (à l'aide d'un périphérique USBGPIO8)
Utiliser OpenCV avec Python @Mac
[Python] Jeu de tir avec pyxel
Envoyer en utilisant Python avec Gmail
Contrôlez le moteur avec un pilote de moteur en utilisant python sur Raspberry Pi 3!
Syntaxe de contrôle Python, fonctions (mémo d'apprentissage Python ②)
Comment installer Python à l'aide d'Anaconda
[ev3dev × Python] Contrôle de plusieurs moteurs
Moyenne harmonique par Python (en utilisant SciPy)
Initialisation de variables globales à l'aide de décorateurs Python
[Python] Chargement de fichiers csv à l'aide de pandas
Programmation GUI en Python avec Appjar