le 07-03-2015 07:10 AM
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
Résolu ! Accéder à la solution.
le 07-03-2015 09:00 AM
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é.
le 07-05-2015 02:13 AM
"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 :
07-05-2015 07:15 AM - modifié 07-05-2015 07:17 AM
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.
07-05-2015 01:23 PM - modifié 07-05-2015 01:26 PM
" 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.
le 07-06-2015 05:06 AM
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é
le 07-06-2015 04:02 PM
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....
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