Effectuer une seule fois maximum chaque cas d'une structure condition

Bonjour,
dans le cadre d'un stage, je réalise une interface. Le point qui me pose probléme sur cette interface est que je dois allumer ou éteindre certaines diodes selon leur états. Je récupére les diodes sélectionnées au format chaine. Je réussi a allumer les diodes pour les bons capteurs correspondant mais le probléme suivant aparaît :
Exemple : Chaine en entrée : "4; 8 ;14; 27", j'obtients bien que les diodes 4, 8, 14 et 27 s'allument mais les diodes 1, 2 et 7 s'allument également. Je comprends pourquoi j'ai ce résultat mais je n'arrive pas à trouver de solutions alternatives.
Merci d'avance de vos réponses.
Ci-joint le VI du programme gérant l'allumage des diodes.
Résolu !
Accéder à la solution.
Pièces jointes :
ExtraitVI_Conditions.png ‏27 KB

De rien .
Une erreur s'est glissée dans mon dernier message,je ne peut plus l'éditer: Structure conditionnelle au lieu de structure événement.
Reg

Similar Messages

  • Paramètrer les conditions d'une structure condition suivant les variables

    Bonjour,
    J'ai besoin  de travailler avec des cases structures mais dont les conditions sont des variables qu'on peut paramètrer, je ne veux pas travailler avec des valeurs figés càd si je veux changer une condition je dois aller sur mon diagramme et cherche ma structure à condition pour la changer.
    Je cherche comment rendre mezs conditions paramètrables, SVP

    Duplicate
    http://forums.ni.com/t5/LabVIEW/case-struture-para​m%C3%A8trable/td-p/2830892
    STOP spamming the board with the same question over and over again. Very inappropriate behavior.

  • Lancer une séquence d'un programme à une date et heure préscise (mais une seule fois)

    Bonjour à tous, et bien entendu merci de votre aide.
    Je vous explique ma problématique, un peu tordu je dois l'avouer.
         Voilà, je voudrais qu'une partie de mon programme s'exécute le 15  du mois en cours à 23h59 et le 28 ou 30 ou 31 (selon le mois)  à la même heure 23h59.
    A chaque fois que l'on atteint le mileu ou la fin du mois, le programme doit exécuter une fois la séquence.
    Mon problème c'est que je ne vois pas comment faire pour que l'execution ne se fasse qu'une seule fois lorsque l'on atteint cette date. (VI principale qui tourne en boucle)
    Merci d'avance pour vos réponses.

    Hello Sentenza,
    Je te propose de télécharger le vi et de lire les instructions.
    Quelques détails:
    - je n'ai pas fait de Def de Type pour l'Enum pour ne pas avoir à partager plus de fichier dans le post mais il vaut mieux en faire une.
    - j'ai fais un bon d'exemple pour une date, pour plusieurs, vous pourrez partir sur un tableau et avancé au fur et à mesure dans l'indexation.
    Bonne soirée,
    Flo
    Open Diagram First
    Pièces jointes :
    Faire qqchose a l'heure.vi ‏11 KB

  • Exécuter une partie du programme une seul fois lors du premier lancement

    Bonjour un tous!
    Dans le cadre d'un stage, je suis amené à gérer un spectrophotomètre avec Labview.
    J'aimerais qu'une partie de mon programme ne s'exécute que lors de la première exécution du programme.
    En fait, je désire que lors de la première exécution, le spectro fasse un auto-zéro et que ensuite il fasse ses mesures normalement.
    J'ai testé avec l'outil "premier appel" et une boucle condition mais cela ne fonctionne pas. Quand le programme tourne en boucle, il concidère à chaque fois que c'est la première exécution. Je suppose donc que j'ai mal compris cette fonction.
    Je cherche donc un moyen d'arriver à mes fins.
    Voivi le programme (Labview 2011)
    Résolu !
    Accéder à la solution.
    Pièces jointes :
    Mesure spectro.vi ‏32 KB

    Bonjour,
    J'imagine que pour exécuter votre code en continu, vous cliquez sur la double flèche d'exécution qui lance l'exécution du VI en continu. L'utilisation de cette méthode d'exécution revient à lancer le VI à la suite manuellement, autrement dit, le VI s'arrête et se relance entre chaque exécution.
    Il ne faut utiliser cette flèche qu'a des fin de débugage de votre application, par pour lancer une application en continue.
    Dans votre cas, la fonction premier appel renvoi toujours vrai, car le VI est arrêté et relancé donc, oui, c'est toujours un premier appel. Il faut rajouter une boucle while (ou tant que dans votre code pour exécuter en continue la mesure une fois l'initialisation terminée.
    Si joint votre VI modifié. C'est une modification très rapide et pas forcément optimisée, mais pour illustré le principe. Ca devrait tout de même mieux fonctionner pour votre application.
    On configure la ressource, on fait l'initialisation, puis on fait la mesure en continue jusqu'à un appui sur stop.
    J'ai placé l'enregistrement dans la boucle, la encore, je ne sais pas si c'est ce que vous souhaitez vraiment faire. Le but était de vous montrer comment utiliser la boucle while.
    Cordialement
    .mesLeft{float:left} .mesInfo{border-left:solid 1px #989898;font-size:x-small;color:#989898} .mesLogo{float:right;opacity:0.18} .mesLogo:hover{opacity:0.9}
    Maxime R.  
      CLD - Certified LabVIEW Developer / Développeur LabVIEW Certifié  
      CLAD - Certified LabVIEW Associate Developer   
    Pièces jointes :
    Mesure spectro 2.vi ‏20 KB

  • Imovie Je veux faire un diaporama à base de photos numérique. Normalement, je peux régler la durée des images en une seule fois, mais je n'y arrive pas. Je vais dans propriétés de la vidéo, réglages, je règle la durée.. (pas de thème). Rien ne se passe???

    Imovie Je veux faire un diaporama à base de photos numérique. Normalement, je peux régler la durée des images en une seule fois, mais je n'y arrive pas. Je vais dans propriétés de la vidéo, réglages, je règle la durée.. (pas de thème). Rien ne se passe???

    Postez votre question à cette communauté https://discussions.apple.com/community/ilife/imovie

  • Initialisation des états de boutons dans une structure case

    Bonjour à tous,
    J'ai créer une un claseur contenant des fiches (1, 2, 3, etc...) sur la gauche de mon Front Panel (FP). Sur chaques fiches il y plusieurs boutons type bouléen. Les fiches correspondent à une structure "case".
    Chaque fiche comporte un schéma de test avec des vannes et des boutons (on/off). Comment définir la position initiale de ces boutons?
    En cliquant sur ces boutons, le schéma se modifie (changement de couleur/position) et lorque le schéma est conforme à la procédure de test, un signal (true) est communiqué vers un diagramme de mesure (à droite du FP) et y active le bouton "start".
    Comme la mesure est la même pour toute les configuration validée de chaques fiches, est-il possible d'avoir un seul fil d'activation du bouton start depuis la structure case (sous-entendu seule le "case" actif envoi un signal)?
    De plus, lors de l'exécution, je souhaiterai que le changement de fiche (de 1 à 2 par exemple), réinitialise l'ensemble des boutons présent sur toutes les fiches (y compris la fiche sélectionnée).
    Merci pour vos conseils, je redécouvre LV après 20 ans, et le programme à sacrément évolué (ou ma mémoire est trouée ).

    Bonjour MarYve,
    Que voulez vous dire par "Comment définir la position initiale de ces boutons?" Est-ce que vous faites référence à la valeur des boutons où bien les boutons changement litérallement de position sur la face avant?
    Pour ce qui est de l'initialisation des valeurs des booléans vous pouvez utiliser des varialbes local sur un changement de valeur du classeur, voir example en pièce jointe.
    Je vous suggère aussi de suivre ce tutoriel:
    http://www.ni.com/white-paper/5241/en/
    Attachments:
    initboolean.vi ‏11 KB

  • Lecture 1 seule fois

    Bonjour,
    Avec flash MX comment faire pour que dans un scénario
    une partie soit lu en une fois et que le reste soit lu en boucle
    Merci
    @+
    Patt

    Bonjour,
    Mets la partie � lire une seule fois dans la timeline
    principale avec un
    stop() � la fin, et l'animation � jouer en
    boucle dans un clip...
    Christophe
    "patt" <[email protected]> a �crit
    dans le message de news:
    e7lppm$d7d$[email protected]..
    > Bonjour,
    > Avec flash MX comment faire pour que dans un sc?nario
    une partie soit lu
    en une fois et que le reste soit lu en boucle
    >
    > Merci
    >
    > @+
    > Patt

  • Mon iphone 4 ne se connecte plus depuis la derniere mise à jour du logiciel 6.1il se met en reseau indisponible // recherche. j'ai effectué une sauvegarde  puis je l'ai renitialiser rien à faire... Grrr...

    Bonjour,
    Je rencontre actuellement un problême de connexion wifi avec mon iphone4 depuis la derniere mise à jour du logiciel 6.1....
    J'ai effectuer une sauvegarde puis renitialisé mon tel, mais rien à faire mon iphone ne trouve aucun réseau....
    Si par un heureux hasard quelqu'un aurai une solution je suis preneuse, merçi à tous.

    Bonjour,
    J'avais le même prôblème avec IPod Touch et IPad 2.
    Dans votre configuration réseau, il faut mettre une adresse DNS à 8.8.8.8!!!
    J'ai essayé et ça marche autant via ITune (DNS du MAC) où directement avec le IPad (DNS du IPad).
    Salutations,

  • Affecter des coordonnées à chaque case d'un tableau

    Bonjour,
    Esct ce qu'il est possible d'affecter des coordonnées X, Y a chaque case d'un tableau 2D. Exemple ds le tableau excel ci joint
    Par exemple je vx que la case (0,0) dont le contenu est 1 ait un systeme de coordonnées(0.0035,-0.0035).
    Merci d'avance,
    Pièces jointes :
    tab.jpg ‏33 KB

    Bonjour,
    Pourquoi ne pas tout simplement utiliser un tableau de cluster ? Cela parait plus simple....
    Cordialement,
    Pièces jointes :
    tableau_vi.vi ‏7 KB

  • Peut-on "désactive​r" des événements dans une structure Evénement?

    Bonjour,
    J'ai dans mon VI une structure événements dont les conditions d'événements sont reliées au changement de valeur de certaine de mes données.
    Ces conditions me permettent de ne pouvoir valider l'utilisation d'un interrupteur que lorsque l'utilisateur à rempli certaines informations sur la face avant (valeurs d'initialisation de mon VI).
    Une fois l'utilisation de cet interrupteur devenu valide, je désire que mes conditions d'événement ne soit plus valide: je ne désire plus que lorsque mes données changent effectuer les actions de certaine de mes conditions d'événement.
    Je cherche donc à faire un peu comme pour un microcontroleur:
    - Valider interruption X,Y,Z
    - si interrupteur basculé dévalider interruption X et Z
    X,Y,Z correspondant à mes conditions 1, 2 et 3 de ma structure d'événement.
    Es ce possible à réaliser?
    Résolu !
    Accéder à la solution.

    Bonjour à vous et à toi ! comme son nom l’indique nœud de propriétés « Register Events » : enregistrement des évènements…. Dynamique.
    Sur une structure évènementielle il y a des évènements enregistrés en dur (à la main dans le code par l'édition de la structure) et des évènements dynamiques. Le  « Register Events » permet un enregistrement des évènements de façon programmatique dans le code.
    Seulement les évènements dynamique sont modifiables et sont annulables.
    L’intérêt ? Par exemple l’enregistrement d’évènement d’un XControl (en dehors de lui-même), plus intéressant ? si tu as un exécutable « générique » (noyau) mais avec une IHM spécifique à des clients, sur laquelle tu veux gérer des évènements alors tu récupères les références des objets et tu les enregistres.
    Il y a un enregistrement d’évènement qui ressemble, se sont les ActiveX avec des vi Callback
    Luc Desruelle | Voir mon profil | LabVIEW Code & blog
    Co-auteur livre LabVIEW : Programmation et applications
    CLA : Certified LabVIEW Architect / Certifié Architecte LabVIEW
    CLD : Certified LabVIEW Developer / Certifié Développeur LabVIEW

  • Gestion d'une structure event avec booléens commutés

    Bonjour,
    J'aimerais avoir votre avis sur la gestion d'une structure event.
    J'ai en entrée de VI un signal sur lequel j'applique différents traitements (filtre, moyennage, échantillonage). Chaque traitement est commandé par un booléen sur la FA. J'ai associé chacune des commandes à un évenement d'une structure event, elle même placée dans une boucle while (rafraichissement infini). J'affiche le signal traité en sortie de mon VI.
    Je voudrais pouvoir appliquer ou non les différents traitements indépendament sur mon signal.
    Lorsque je commute une commande, le traitement est est bien appliqué sur le signal. Ma question est la suivante : Comment désactiver le traitement de signal quand je commute une nouvelle fois ma commande, sans affecter les autres traitements? La structure event est elle bien adaptée à mon problème?
    Cordialement

    Bonjour,
    L'exposition de votre problème me fait penser à un exemple présent dans le cours Fondamental 1 de LabVIEW. Cela reprend un peu l'idée de Rodéric mais l'exemple est sous la forme d'une machine d'états. Vous le trouverez joint.
    Et donc, pour désactiver le traitement d'un ou plusieurs de vos signaux, vous pouvez vous inspirer de cet exemple avec autant de boutons dans votre cluster que le nombre de signaux différents dont vous souhaitez désactiver le traitement.
    Cordialement,
    Jérémy C.
    National Instruments France
    #adMrkt{text-align: center;font-size:11px; font-weight: bold;} #adMrkt a {text-decoration: none;} #adMrkt a:hover{font-size: 9px;} #adMrkt a span{display: none;} #adMrkt a:hover span{display: block;}
    Travaux Pratiques d'initiation à LabVIEW et à la mesure
    Du 2 au 23 octobre, partout en France
    Pièces jointes :
    State Machine.vi ‏9 KB

  • Maximum size of an event structure

    I have just a short question about the maximum size of a event structure, and did not found it yet in the forum.
    I have an event case with 35 event cases. How many are allowed, what is recommended and is there a huge loss of performance by seizing it up?
    Thx for answer

    As far as run-time performance is concerned, the number of event cases in an event structure should have no noticeable effect.  Worst-case scenario, when the event structure is woken up due to an event occuring in the system, it does a linear search through the list of event cases to figure out which event-handling diagram matches the event that it pulled off the queue.  These tests are pretty quick (3-4 comparisons per event-handling diagram) so I can't imagine it really would have any effect on performance.  However, this does tell you that if you want to squeeze every ounce of performance out of your event-handling code, make sure the most frequently run event-handling diagram is the first one in the list.
    The only performance issue I could see arising is what Damien mentioned - at edit time, it may take longer to make edits to the event structure (eg adding new event cases, changing the events a given diagram is associated with).  I don't know that I've seen any issues because of this (the largest application I've written has an event structure 40 different event-handling cases), but I think this is where any potential performance issues reside.
    Hope this helps.
    J
    Jason King
    LabVIEW R&D
    National Instruments

  • Transférer un tableau dans une structure évenement

    bonjour,
    Je souhaite commander l'acquistion et l'enregistrement des mesures par eux booléens.
    L'acquisition commence via une structure évenementielle lorsque qu'on change l'état du booléen "acquisition", les données sont mises dans un tableau.
    J'aimerais commander l"enregitrement via un autre évenement.
    Seulement, lorsque je clique sur un des booléens, le deuxiéme marche bien mais ne commande plsur rien
    et
    Je n'arrive pas a récupérer mon tableaude valeurs (j'ai essayé avec des fils et des variables locales.)
    Merci
    Pièces jointes :
    Capture.PNG ‏29 KB
    Capture1.PNG ‏20 KB

    Bonjour,
    Lorsque l'on souhaite transférer des données entre plusieurs itération d'une boucle le mieux est d'utiliser un registre à décalage.
    Pour le code, je pense que tu devrais jeter un coup d'oeil aux machines à états pour revoir l'architecture de ton soft
    Ce n'est pas génial de mettre une boucle dans un évênement, qui ne doit contenir que du code 'rapide' à exécuter, comme un changement d'état de ta machine à état.
    Un dernier points, il ne faut pas mettre de boucle comme ici sans aucune temporisation, elle va consommer tout ton processeur pour tourner à fond.
    Cordialement,
    Simon D.
    CLA | Certified LabVIEW Architect
    CTA | Certified TestStand Architect

  • Liaison d'une structure entre CVI et TestStand pour une DLL

    Bonjour,
    Je vous écris car en se moment je fais un ajout d'instrument sur un driver en passant par une DLL. Pour le nouvel appareil, il me faut modifier un projet existant. Ce qui me pose porblème c'est que dans le projet il y a une structure qui est passé en paramètre de fonctions usuelles et j'aimerais pouvoir ajouter dans cette structure de nouveau élément. Car quand je code dans la structure les nouvelles composantes et que je modifie, la structure déjà existant dans la séquence TestStand lié à l'ancien code, je n'arrive pas à transmettre les valeurs de TestStand à mon code. Alors que les anciens composants de la structure prennent bien leurs valeurs. J'ai bien essayé de recréer sous TestStand un nouveau type de structure sans partir de l'existant, hélas le résultat à été le même.
    Il est fort possible que j'ai oublié une manipulation n'étant pas encore totalement bien familiariser avec l'environnement de CVI et de TestStand.
    Merci de l'effort de lecture. En attendant une réponse à mon problème, je reste disponible pour plus de détails

    Rodéric -- En ce qui concerne la structure, j'y ai pensé et du coup la première chose que j'ai fait c'est en recréer une nouvelle. en ce qui concerne le menu déroulant, je t'ai pris un imprimé. On voit bien ma structure dans les choixs mais quand je la séléectionne on se retrouve dans le cas du premier screenshot.
    Eric -- Pour le Header, je le recompile en même temps que mon projet et j'arrive ensuite à voir mon paramètre lors d'une implantation de celle-ci depuis ma structure. concrètement j'ai du mal à percevoir le "reconstruire la DLL en prenant en considérant la nouvelle structure". Si tu pouvais un peu plus m'éclairer sur ce point, s'il te plait.
    Pièces jointes :
    MenuDeroulant.JPG ‏19 KB
    PieceOfCode.JPG ‏18 KB

  • Stopper plusieurs boucle while dans une structure évènement

    Bonjour.
    Je gère actuellement l'acquisition de données sous LabVIEW et ai mis en place une structure évènementielle.
    Mon programme possède 6 fonctionnalités principales correspondant à 6 boutons :
    - paramètres de sécurité
    - étalonnage des capteurs
    - paramètres de l'essai
    - quitter le programme
    - démarrer l'essai
    - arrêt de l'essai
    Jusqu'à présent, les 5 premières fonctionnalités s'exécutent à merveille.
    Le problème réside dans l'interruption du code (sans le quitter attention !!) lors de l'appui du bouton "arreter essai".
    Lors de l'appui du bouton démarrer, 5 boucles while s'exécutent simultanément (soit dans l'évènement "Demarrer Essais : value change").
    J'ai tenté de relier chaque condition d'arrêt de ces boucles à la variable locale "Arreter Essais" (cf. ex ici http://forums.ni.com/t5/Discussions-de-produit-de-NI/Quitter-une-boucle-While-dans-une-structure-Eve... post n°7/9).
    Le programme semble alors bien s'interrompre... mais repart de plus belle sans que je ne sache pourquoi :/
    Autre test : relier les conditions d'arrêt à une variable globale prenant la valeur vraie dans l'évènement "Arreter essais : value change", là encore échec cuisant.
    Je vous joint une imprécran d'une des 5 boucles while en question, afin d'illustrer peut-être de meilleure manière mon problème.
    Si vous avez une piste de résolution du problème, n'hésitez surtout pas.
    Pour finir, je travaille sous LabVIEW 8.6.1
    Merci d'avance.
    Arnaud
    Attachments:
    Boucle WHILE d'affichage sur le graphe.png ‏29 KB

    Duplicate
    Flo
    Open Diagram First

Maybe you are looking for