Nouvelles:

Bienvenue au Forum de discussion Électro-Bidouilleur! Inscrivez-vous pour participer aux discussions!: 
https://forum.bidouilleur.ca/index.php?action=signup Les demandes d'inscription sont révisées quotidiennement.

Menu principal

Débuter avec le GPIB ?

Démarré par F4IZB, Juin 11, 2022, 10:44:57 PM

« précédent - suivant »

F4IZB

Bonjour à  tous!

Devant le nombre croissant d'appareils disposant d'une interface GPIB dans mon atelier (fréquencemètre, géné BF et HF, multimètre, oscillo, analyseur audio, sonde HF, et bientôt une alim HP 6633A) je me suis mis dans l'idée de l'exploiter...

Bon, je n'y connais strictement rien, je sais juste qu'on peut envoyer des commandes à  l'instrument, et vu dans plusieurs vidéos de Bertrand, on peut donc automatiser des tests et mesures.

Il y a quelques années, j'avais acheté pour une poignée d'euros un adaptateur GPIB/USB sur Aliexpress, le genre avec juste un câble USB visiblement récupéré sur un clavier (Lenovo d'ailleurs) et un PCB mis en place entre les capots d'un ancien coupleur GPIB.
Celui-ci est vendu comme étant un clone du Prologix USB...
A l'époque je n'arrivais pas à  le faire fonctionner, j'ai pensé que c'était de la camelote et l'ai remisé dans un tiroir.

Là  je l'ai ressorti, et ai commencé à  chercher un peu plus loin.

J'arrive à  communiquer avec le fréquencemètre HP 5335A, en lui envoyant les commandes trouvés dans le manuel de l'utilisateur, via un programme nommé GPIB Configurator, que j'ai trouvé sur le site de Prologix.
Mais impossible de récupérer les mesures, rien ne s'affiche dans la partie "Terminal", sauf si je clique sur "Manual Read" avec un délai assez long (supérieur à  la porte du fréquencemètre).
De même, lorsque je clique sur "Query SRQ" j'ai bien un 0 en retour dans le terminal, ou si je clique sur "Serial Poll" j'ai un nombre en retour (parfois 2, parfois 34..).
Mais rien ne sort "tout seul".

Maintenant, pour automatiser une séquence de mesures, admettons que sur l'analyseur audio je souhaite mesurer d'abord la puissance sur le canal gauche, puis sur le droit, puis la distorsion à  gauche, puis à  droite, etc etc etc...
Là  il faut pouvoir enchainer les commandes, et stocker les résultats.. Donc créer un programme j'imagine?

Quelqu'un a-t-il un peu d'expérience dans le domaine et qui pourrait éclairer ma lanterne?


Merci par avance, et bon dimanche !


~Romain.

Électro-Bidouilleur

Je n'ai jamais utilisé GPIB Configurator, donc difficile pour moi de commenter. Je ne possède pas non plus le HP 5335A. En plus j'utilise le Prologix GPIB-Ethernet, pas la version USB. Il est possible aussi que je ne saisisse pas bien votre requête... Mais je me risque.

Quand l'interface est configurée en mode "Controller" (son mode par défaut), il faut initier une lecture pour obtenir un résultat. Le code source doit donc contenir une instruction "read", même si l'instrument crache des lectures de façon autonome. La Prologix accumule peut-être les lectures dans sa mémoire GPIB, mais elle ne va pas simplement les recracher sur le port USB; il faut lui dire de nous envoyer chaque valeur en utilisant une commande de lecture dans notre code source. Ce n'est pas comme un Arduino qui envoie des données sans arrêt sur un port série. Il y a donc un échange constant de commandes entre le code source et l'instrument, souvent dans une boucle logicielle. Cela est résumé dans la section 6.1 du manuel.

Lorsque l'interface Prologix est configurée en mode "Device", elle devient alors un écouteur.  Les données sont envoyées de façon autonome et répétitive par le contrôleur (le fréquencemètre cette fois étant réglé en "talk only"). La Prologix retransmettra dans ce cas tout ce qu'elle reçoit sur GPIB directement vers le port USB. Cela est résumé dans la section 6.2 du manuel:
6.2. Device Mode
In Device mode, Prologix GPIB-USB Controller acts as another peripheral on the GPIB bus. In this mode, the controller can act as a GPIB TALKER or GPIB LISTENER only. Since Prologix GPIB-USB Controller is not the Controller-In-Charge while in this
mode, it expects to receive commands from a GPIB controller. When Device mode is enabled Prologix GPIB-USB controller configures itself as a GPIB Listener. All data received by the controller over the GPIB port is passed along to the USB port without buffering.


En d'autres mots, le comportement que vous décrivez me semble normal car l'interface Prologix est configurée par défaut en mode contrôleur. Pour ce qui est du long délai, faudra voir lorsqu'utilisé dans un vrai programme de contrôle. Ça me semble plus une histoire de GPIB Configurator qu'un délai inhérent à  chaque lecture.

Donc configurez la Prologix en "Device Mode", configurez le fréquencemètre en mode "Talker only" et vous devriez voir les données défiler dans un programme terminal lié au port USB. Notez que je ne l'ai jamais essayé; j'utilise toujours le "Controller Mode" et j'initie les lectures, car j'ai plusieurs instruments à  contrôler sur le bus GPIB.

F4IZB

Merci pour votre réponse!

Je vais essayer tout à  l'heure de lui envoyer une commande read, ou de le basculer en talk only.
C'est vrai que je n'avais pas essayé ça.

Par contre quand j'utilise un programme tel que PuTTY sur le port COM en question, rien ne s'affiche et l'instrument ne reçoit rien non plus.
Il n'y a qu'avec le GPIB Configurator que j'arrive à  passer des commandes.

Pour créer des programmes autonomes, existe-t-il une solution assez simple à  mettre en oeuvre?
J'ai quelques notions en codage, mais ne suis de loin pas un expert.

F4IZB

Ok j'ai refait les essais, et j'arrive pas à  avoir une réponse, toujours dans GPIB Configurator, lorsque celui ci est configuré pour envoyer automatiquement un read après une commande, et ce en diminuant le temps de mesure du fréquencemètre.

De même, grâce à  de la doc Prologix, j'ai pu communiquer directement avec l'instrument via PuTTY, avec ces commandes:
++mode 1
++auto 1
++addr 20
FN1 (ici la commande propre du 5335A, pour une mesure simple de la fréquence sur le port A)

Par contre, ni read ni ++read ne retourne quoi que ce soit..

Bon j'ai encore un peu de boulot de découverte devant moi !


Sinon, côté développement de programmes, j'ai vu qu'on pouvait se servir de NI LabView, je l'ai installé mais je suis totalement perdu là  dedans !


Électro-Bidouilleur

Labview, c'est une approche de programmation polyvalente car très graphique. L'environnement labo est l'usage typique. Mon ami Jacques utilise exclusivement Labview.  Mais comme avec tout langage de programmation, il y a une courbe d'apprentissage. En plus, Labview plus Visa (la couche d'interface) sont gros et lourds! Et le tout est propriétaire et protégé. On est pas dans l'architecture ouverte ici...

Étant donné que Labview roulait uniquement sur Windows, je l'ai abandonné il y a au moins 10 ans, et j'utilise presque toujours Python. Je crois comprendre qu'il roule de nos jours aussi sur Linux et Mac. Jusqu'à  récemment, la licence d'utilisation était très chère. Je crois qu'il y a désormais une version gratuite pour applications non-professionnelles.

F4IZB

#5
Bonjour,

Il y a en effet une licence personnelle gratuite, mais peut-être est-elle tout de même bridée quelques part, je ne sais pas.

Au final, ça se résume à  envoyer des commandes et traiter le résultat ?

Dans la vidéo qui traite des batteries 18650 de la trottinette, vous utilisez le GPIB avec votre alimentation HP 6632A pour gérer la charge et la décharge des batteries, et étant donné que j'ai aussi une alim HP 6633A, vous serait-il éventuellement possible de partager le script afin que je puisse m'en inspirer et voir comment ça peut se mettre en oeuvre ?

Merci !

Électro-Bidouilleur

D'après Jacques, la version de Labview gratuite est pleinement fonctionnelle, aucun bridage.

Le programme GPIB que j'ai utilisé sur les accumulateurs est vraiment très simple, car ce n'est qu'une succession de commandes dans un script python. Je n'ai pas créé d'interface GUI; que du texte et des saisies à  la console. J'utilise une petite bibliothèque personnelle pour répertorier les commandes Prologix GPIB-Ethernet.
Regardez dans votre boîte de courriel...

F4IZB

Bonjour Bertrand, merci pour votre réponse!

Je n’ai pas grande utilité d’une interface graphique (du moins, pour le moment), je cherche surtout à  automatiser des mesures.
Notamment, j’ai un analyseur audio Rohde Schwarz UPA, qui peut être contrôlé en GPIB, l’idée serait, branché en entrée et sortie d’un ampli hifi par exemple, de le faire débuter par une mesure de niveau sur le canal gauche à  30Hz par exemple, puis augmenter cette fréquence, refaire jne mesure de niveau, augmenter à  nouveau la fréquence et ainsi de suite.. et finalement refaire le tout sur le canal droit..

Dans cet exemple, un retour sur une console est tout indiqué !

Par contre, je vous enverrai un peu plus tard un courriel depuis une autre adresse, car je n’ai rien reçu et ce n’est pas la première fois que ça arrive avec cette adresse.


Merci encore !