Discussions au sujet de NI LabVIEW

annuler
Affichage des résultats de 
Rechercher plutôt 
Vouliez-vous dire : 

registre à décalage

Résolu !
Accéder à la solution

Bonjour,

 

J'ai développé récemment une IHM dans le cadre de mes études d'ingénieur. Cette IHM devait envoyer des commandes de tensions vers une carte électronique via une liaison RS232. La carte électronique envoyant ensuite cette commande de tension sur une ou plusieurs voies (24 au totale) afin de polariser une antenne.

 

J'ai donc mis 24 controls numérique (pour l'envoi de la valeur de tension/ un par voie) ainsi que 24 cases à cocher (pour la sélection des voies) sur mon IHM. J'ai ensuite mis une structure évenement (avec un évenement sur chaque sélection de la case à coché pour l'envoi de la valeur de la tension) je stock ensuite les 24 valeurs dans un tableau. Lorsque j'appuis sur le bouton "envoi", je "dépile" mon tableau dans le VI d'envoie sur la liaison RS232. Un programme sur la carte électronique se chargant ensuite du traitement des valeurs différentes de 0V pour envoie vers l'antenne.

 

J'ai don du utilisé 24 registres à décalage pour avoir accés à chaque valeur dans tous les évenements de ma strucuture évenement. Je suis finalement arrivé à une IHM parfaitement fonctionnelle mais je me posais la question s'il n'existait pas d'autre alternative que le registre à décalage pour mon IHM (parce que j'en ai passé des heures à relier chaque ligne de mes registre à décalage). Même question pour l'utilisation du tableau.

 

J'epère avoir été clair.

 

Merci

 

Benjamin

 

0 Compliments
Message 1 sur 7
5 494 Visites

Bonjour,

afin de n'avoir qu'un registre à décalage, l'utilisation de cluster est une meilleur alternative qu'un tableau dans lequel on change les valeurs.

pour donner plus d'info, sur les méthodes, il faudrait voir le code qui a été réalisé.

Cordialement
L.MICOU
0 Compliments
Message 2 sur 7
5 468 Visites

"j'en ai passé des heures à relier chaque ligne de mes registre à décalage"

 

essentiellement :

 

c'est parce que tu as 24 registres à décalage ?

ou

c'est parce que tu as un grand nombre de sous-diagrammes dans ta structure Event ?

 

dans le 1er cas, oui, le Cluster est une solution

 

dans le 2eme cas il est possible de réaliser un cablage "automatique" entrées/sorties pour tous les sous-diagrammes.

 

clic-droit sur le noeud de sortie, et :

 

alpha.png

Message 3 sur 7
5 366 Visites

C'est effectivement à cause des 24 registres à décalage. Pour ce qui est de donner le code l'IHM est vraiment volumineuse je ne sais pas si je pourrais joindre le VI. Pour ce qui est du cluster je me posais la question si il était possible "d'extraire" un à un les éléments pour l'envoi par la liaison RS232 (l'entrée du VI pour l'envoi sur la liaison RS232 est de type chaîne de caractère).avec le tableau une simple boucle for indexée sur la taille du tableau me permet d'envoyer chaque valeur sur la liaison RS232.

 

Merci Ouadji pour le "link input tunnel" je dois avouer que je connaissais pas.

0 Compliments
Message 4 sur 7
5 339 Visites
Solution
Accepté par l'auteur du sujet benj_0605

" extraire un à un les éléments d'un Cluster" ... ?

 

il n'est pas possible " d'indexer " un Cluster.

 

par contre, si tous les éléments du cluster sont du même type, tu peux convertir ton Cluster en Tableau ("cluser to array" dans la palette cluster)

 

et ensuite ... indexer le Tableau obtenu.

 

attention, les éléments dans le Tableau se trouveront dans l'ordre dans lequel il se trouve dans le cluster

 

Tu me diras .... bein oui, je m'en doute 🙂

 

attention ... l'ordre dans le cluster n'est pas oblibatoirement l'ordre avec lequel ils sont graphiquement visibles (dans le cluster)

 

Au départ ... l'ordre dans un cluster est l'ordre suivant lequel tu introduis les éléments dans le cluster.

 

ensuite .... tu peux réorganiser cet ordre ... clic droit sur le bord du cluster + reorder controls in cluster.

Message 5 sur 7
5 293 Visites

Bonjour,

 

En lisant le post, je me demande pourquoi passer par un cluster surtout si au final on converti le cluster en tableau. Si dans otn code, tous les éléemenst sont du même type, autant directement utiliser un tableau plus simple à manipulé du début à la fin ,sur ce que j'en déuis du code.

 

Dans tous les cas, il faut utiliser une structure capable de gérer tous les cas dans un seul cable.

Maxime R.  

  CLA - Certified LabVIEW Architect / Architecte LabVIEW Certifié
  CTA - Certified TestStand Architect / Architecte TestStand Certifié

Message 6 sur 7
5 247 Visites
Solution
Accepté par l'auteur du sujet benj_0605

salut à tous,

idem que Maxime... en passant

 


benj_0605 a écrit :

 

J'ai donc mis 24 controls numérique

 


Si je comprends, les 24 numériques servent à piloter une sortie lorsque l'utilisateur change la valeur (?).

si c'est cela, il faut mettre les boutons dans un cluster de la face-avant, et utiliser la structure évènementiel "value change". Si le cluster est invisible, seul les 24 boutons seront visibles. Lorsque l'évènement est détecté, il retourne la nouvelle valeur du cluster et l'ancienne. Il suffit alors de piloter les sorties.

non?

je ne pense pas que le registre soit utile.

A suivre....

banniere Luc Livre NXG Champion.png

Luc Desruelle | Mon profil | Mon blog LabVIEW | Auteur livre LabVIEW : Programmation et applications - G Web
Certified LabVIEW Architect (CLA) & Certified TestStand Developper (CTD) | LabVIEW Champion

MESULOG - LinkedIn site | NERYS - NERYS Group
| directeur CEO MESULOG
| CODIR - NERYS group

Message 7 sur 7
5 221 Visites