Problème structure évènements

Bonjour,
 J'ai un petit problème concernement l'utilisation de la stucture évènement. Ce que je souhaiterai faire c'est d'afficher une boite dialogue en fonction d'un changement de variables. Pour être plus précis  j'ai 2 variables que l'on nomera X et Y  que l'on peut modifier manuellement et je voudrais afficher un message dès que l'une d'entre elle à été changé. Mais le porblème est que je ne suis pas sûr qu'on puisse utiliser une structure évènement en fonction  de 2 variables et j'ai lu sur le forum que mettre 2 structures évènements dans le même VI n'est  pas conseillé. Donc je suis un peu bloqué. Tout aide de votre part serai la bien venue
Merci d'avance.

Oui Nathand a raison
Suis ses instructions
Je te mets un exemple
A+
Charly
It's always sunny in California! Certified LabVIEW Associate Developer!
Attachments:
EventStructure.vi ‏11 KB

Similar Messages

  • Problème d'ajout structure événement+vista

    Je vient d'initialiser avec labview 9.0 et j'ai rencontré un problème lors de l'ajout des événements et des conditions dans la structure événement. Notant que je utilise windows Vista.

    In English here.

  • Structure évènement

    Bonjour !
    Pour la deuxième fois de l'année, je viens faire un tour sur le forum, parce qu'il m'a bien aidé, mais là je suis bloquée... Je vous explique.
    Ce que je fais
    Je réalise une application qui va contrôlé, à distance, un petit robot capable d'effectuer divers actions (déployer un bras, le rentrer, etc). Au niveau de mon IHM, mon travail consiste à constituer une trame d'ordre (avec le mouvement à réaliser, ses données - de combien de °, combien de temps, ... - , etc), de l'envoyer sur une RS232 reliée à la radio, et de receptionner deux trames : l'une étant l'accusé de réception (si l'ordre était conforme au protocole établis, si les données sont hors limites des possibilitées du robot etc) puis l'accusé de réalisation, une fois que l'ordre a été effectuer.
    Ce que je veux
    Maintenant, le plus important sans doute, est l'ajout un bouton gérant un arrêt d'urgence. En effet, je veux que quelque soit ce qu'est entrain de faire mon programme, il l'abandonne pour sortir des différentes structures et envoyer l'ordre d'arrêt d'urgence.
    Ce que j'ai tenté
    J'ai mis en place une structure d'évènement, avec pour condition un changement d'etat sur mon arrêt d'urgence
    Mon problème
    Ca a marché, lorsque pour tester je faisais juste afficher une constante dans un indicateur (comme "Arrêt d'urgence envoyer). Par contre, maintenant que j'utilise carrément des fonctions pour lire/écrire sur la RS232, lorsque je lance mon programme et appuis sur le bouton ... Tout plante. Quand je dis planter, c'est que je ne peux plus cliquer nul part, que l'ordre n'a pas été envoyer, et que labview est quasiment entrain de me dire "a cesser de fonctionner".
    Pour vous donner un apperçu de mon programme, j'ai fais un squelette simplifié que je joins en PJ, parce que mon appli est assez conséquente.
    En vous remerciant d'avance !
    Pièces jointes :
    Squelette.png ‏73 KB

    Hello,
    La boucle while dans la boucle while gérée par événement, c'est plutôt moyen ça... je soupçonne ta structure événement de détecter l'arrêt, mais l'autre continue de tourner...
    Je sortirais la boucle while interne. Le mieux est d'utiliser une VGF (un simple booléen avec lecture/écriture) pour gérér le stop. Lorsque ta structure événement détecte AU, tu écris vrai dans ta VGF. Tu utilises la VGF en lecture pour piloter l'arrêt de la boucle while que tu as sorti.
    Si tu ne connais pas, il y a pas mal d'exemples de VGF qui trainent ici et là...
    Sinon, il faut bien penser à correctement fermer test sessions visa lorsque tu utilises le RS232, pour ne pas "bloquer" les ressources lors de l'utilisation suivante.
    @ +
    Francis M | Voir mon profil
    Certified LabVIEW Developer

  • Structure événement et sous vi

    Bonjour à tous,
    Mon problème à peut être déjà été traité mais je n'ai rien trouvé dans les exemples et les forums.
    Je souhaite lancer un sous vi avec face avant visible à partir d'un vi principal utilisant une structure événement et pouvoir continuer à interagir sur le vi principal pendant que le sous vi s'exécute.
    Le sous vi doit afficher une donnée générée par le vi principal.
    Je joins un exemple ou le vi principal est bloqué :-( tant que le sous vi s'exécute. Donc la donnée affichée n'évolue pas.
    J'ai essayé d'utiliser une exécution dynamique du sous vi, je pense que ça fonctionne mais la face avant du sous vi ne s'affiche pas.
    Merci d'avance pour vos suggestions.
    Solved!
    Go to Solution.
    Attachments:
    Main.vi ‏11 KB
    SubVI.vi ‏10 KB
    Variable globale.vi ‏5 KB

    Bonjour Syned,
    Je pense qu'il faudra deux boucles indépendantes pour gérer ce comportement asynchrone. Je suis parti sur un modèle "producteur/consommateur de messages" en reprenant le même exemple (variable globale + sous-VI).
    Laurent V.
    Application Engineer - National Instruments (France)
    http://france.ni.com/support
    http://www.ni.com/support
    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;}
    Journées techniques : du contrôle d'instruments aux bancs de test
    Du 4 au 13 juin : Grenoble - Pari...
    Attachments:
    ProducerConsumerEvents.vi ‏24 KB
    SubVI.vi ‏12 KB
    Variable globale.vi ‏5 KB

  • Est-il possible d'avoir un exemple plus détaillé de l'utilisation d'une structure évènement?

    Je cherche à piloter une charge programmable de type Prodigit 3254 series grace à Labview sous Windods XP. Une démo était fournie avec le matériel mais comporte beaucoup de bug et surtout surcharge l'UC à 100%. J'ai essayé d'utiliser une structure évènement pour palier à ce problème mais je perd le controle de la charge. Mon programme d'origine me permet de la controler, de faire évoluer sa config mais dès que l'ajoute la structure évènement je perds le controle de tout. Est-il possible d'avoir des détails sur la manière d'utiliser une structure évènement? sur son mode de fonctionnement? Rien ne figure dans le livre de programmation de Francis Cottet pour la version 6.1. Merci d'
    avance

    Bonjour, vous pouvez trouver les infos concernant la structure évènement ici :
    Loops and Structures : http://zone.ni.com/devzone/devzone.nsf/webcategories/E27D46969B82A7FD86256A23005B6947
    Plus précisément dans :
    - Event-Driven Programming in LabVIEW
    - Use the Event Structure in LabVIEW to Capture a Panel Close Event
    - Inside LabVIEW : Event-Driven Programming
    N'hésitez pas à me dire si cela répond à votre besoin.
    Cordialement
    Nicolas François
    National Instruments France

  • Utilisation de la structure évènement (débutant)

    Bonsoir,
    J'ai fait une boucle for. J'ai donc ma condition "vraie" et ma condition "faux" et tout fonctionne. 
    Mais maintenant, j'aimerai qu'une fois la condition vraie rencontrée, qu'il ne quitte plus la boucle et fasse toujours cette opération quelque soit la condition d'entrée. Une fois la condition vraie rencontrée, "tu" continues toujours de faire la condition vraie.
    Je me suis alors tournée vers la structure évènement, mais je n'arrive pas du tout à comprendre comment elle fonctionne. Pensez-vous qu'elle est la solution à mon problème?
    Si non, avez-vous des idèes vers lesquelles m'orienter?
    Merci d'avance.
    Cordialement,
    Laetitia M.

    Bonjour Laetitia,
    Poster un exemple nous aiderait à comprendre ce que tu as déjà fait... sa a l'air un peut confus
    La structure évenement s'utilise plutôt dans une boucle while. 
    vOICI UN PETIT TUTORIEL SUR LES EVENEMENTS/ http://www.youtube.com/watch?v=8eO64fo3Pho
    SInon j'ai mis un petit exemple avec les boucles for qui me semble correspondre à la demande: j'ai mis une condition de fin de la boucle FOR de haut niveau, dans le cas VRAI, on execute le code le nombre de fois restantes... es ce cela qui est recherché?
    Cordialement,
    Rodéric L
    Certified LabVIEW Architect
    Pièces jointes :
    for loop ex.JPG ‏25 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

  • Structure Événement dans un sous-vi

    Bonjour,
    Je cherche à optimiser mon programme en mettant toutes mes fonctions sous forma de sous-vi.
    Néanmoins, j'ai remarqué qu'une structure événement exécute uniquement la condition de timeout lorsque qu'elle se trouve dans un sous-vi.
    Pouvez vous me confirmer le fait qu'une structure événement ne fonctionne que si elle est directement dans le programme principale.
    Citation: http://forums.ni.com/t5/Discussions-de-produit-de-NI/Structure-evenement-dans-un-sous-vi/m-p/1119267...
    une structure événement peut être considérer comme des interruptions dans d'autres langage. il doit être dans un programme principal. Seul ce qui est à l'intérieur peut être fait en sous vis.
    Cordialement
    L.MICOU
    Labview 8.2 version étudiante
    Sound & Vibration Toolkit
    Résolu !
    Accéder à la solution.

    Bonjour,
    Le timeout d'une structure évènement fonctionne aussi bien dans un VI principal que dans un sous VI à partir du moment ou vous avez indiqué une valeur de timeout à la structure ( par défaut -1).
    La structure évènement permet de monitorer des évènements générés par la face-avant / les composants de la face-avant du même VI. Cependant une structure évènement peut être utilisée pour monitorer des évènements utilisateurs (créés par vous) et dans ce cas elle peut être utilisée dans un VI principal comme dans un sous VI.
    Cordialement,
    Da Helmut

  • 2 Structure événement dans machine à état

    Bonjour ,
    J'utilise 2 structures événements dans une structure d'état mais je n'arrive pas à affecter 2 actions différente (par 2 fois) avec le même booléen .
    Les action arrivent simultanément sans que j'ai pu faire les deux actions l'une après l'autre.
    J'ai mis en fichier attaché ,un résumé de mon application
    Comment faire , une idée ?
    PS je veux garder deux structures évenements car j'ai plusieurs pages
    merci
    Michel
    Pièces jointes :
    Two_event.vi ‏13 KB

    Bonsoir,
    Regarde si s'est ce que tu veux faire.
    Bon courage.
    Philippe B.
    Certified Associate Developer / Dépt Moyens d'essais
    www.ingenia-system.com
    Pièces jointes :
    Two_event.vi ‏12 KB

  • Structure à évènement: problème de coordination temporelle

    Bonjour,
    Ce VI nécessite l'intervention de l'utilisateur pour fonctionner. L'utilisateur a le choix de cliquer sur 2 ronds de coté qui lui donne accès après un temps variable (et suivant un clic lorsque le délai est écoulé) à 1 point.
    Il peut répondre sur un rond et changer pour l'autre mais pour ceci je souhaite qu'il réponde au préalable un certain nombre de fois sur un autre rond qui est placé lui au milieu. Prenons un exemple: il clique 1 fois à droite, le bouton de gauche doit disparaitre. Si il veut cliquer à gauche, il doit cliquer n fois sur le bouton de centre et ensuite le bouton gauche apparait et le droit disparait.
    Là mon vi ne fonctionne pas comme ça. Déjà je n'arrive pas à programmer l'exigence d'appuyer plusieurs fois sur le bouton de centre. Ensuite, je dois appuyer sur le bouton centre + sur le bouton droit pour faire disparaitre ce bouton et apparaitre le bouton gauche.
    Merci d'avance pour votre aide et en espérant que mes explications soient claires. 
    Pièces jointes :
    Choose_Left_Or_Right COD essai.vi ‏27 KB

    Tape machine à état dans l'aide LabVIEW, et tu as pas mal d'explication sur le sujet.
    Concrètement, tu définis un modèle dans lequel tu créés des états et des transitions entre les états. Le mieux est de commencer par faire un schéma avec tous tes états et leurs propriété, ensuite tu définis les transitions (les conditions pour passer d'un état à l'autre), et ensuite tu passes au codage.
    Cordialement
    Benoît C.
    Certified LabVIEW Associate Developer

  • 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

  • Verrouillage non-souhaité de la face-avant dans une structure événement

    Bonjour !
    J'ai deux VIs qui gèrent un processus de calibration similaire. Dans ces deux VIs, je dois commencer par synchroniser mes capteurs avant de pouvoir faire des tests dessus (récupérer les données, etc). Cependant pour un des deux programmes (celui de Calibration Gaz, ci dessous) lorsque je clique sur "Synchroniser", l'événement de synchronisation est bien effectué, mais ensuite toute ma face avant est bloquée, et je me retrouve obligé d'arrêter le VI.
    Pourtant, dans mes deux programmes, la partie qui gère la synchronisation me semble bien similaire... Auriez-vous une idée d'où le problème pourrait venir ?
    Le Programme Fonctionnel :
    Le Programme Bloquant :

    MoonRat a écrit :
    . (pourtant, les cases "verrouiller la face-avant jusqu'à la fin de l'éxecution" dans la struct. événement sont bien décochées...)
    dans ma version de LabVIEW, lorsque j'ouvre ton code, dans le code de calibration gaz, la structure event (qui gére l'action synchroniser) est configurée en lock front panel until.... donc je ne suis pas d'acord avec toi.
    Tu as 2 structures event, et c'est la deuxième qui a l'option décochée.
    Donc pour moi, c'est l'évènement qui n'est pas terminé.

  • Comment remplir un tableau de données avec une structure événement ?

    Bonjour à tous.
    Je cherche à récupérer les données des curseurs d'un graph XY dans un tableau.
    Comme je fait plusieurs relevés j'utilise une fonction événement.
    j'ai réussi à incrémenter l'index du tableau à chaque enregistrement mais je n'arrive pas à inscrire les données dans le tableau.
    Comment inscrire ces données dans un tableau ?

    partant du principe qu'un petit VI vaut mieux qu'un long discours
    si tu as des questions, n'hésites pas
    When my feet touch the ground each morning the devil thinks "bloody hell... He's up again!"
    Attachments:
    add to array.vi ‏26 KB

  • Structure événement variable réseau

    Bonjour à tous,
    Dans un VI, je souhaite que le code ne s'execute que si la valeur de la variable change. J'utilise donc un bloc event. Cepedant, j'aimerais qu'un évènement soit associé à une variable partagée réseau. Est-ce possible de configurer un tel évènement sans qu'il n'y ait le contrôle sur la face avant ? Merci d'avance.
    Gautier
    Pièces jointes :
    VarTest.lvproj ‏2 KB
    VItest.vi ‏11 KB
    BibliothequeTest.lvlib ‏2 KB

    Franchement, je n'ai jamais utilisé de "variable partagée réseau" ...  
    mais ... "la théorie étant toujours la théorie" ... ceci ne pourrait-il pas convenir ?
    Si la valeur de la "variable réseau" est différente de sa valeur précédente,
    alors un "User Event" est généré et "code" est exécuté ... ce, avec un échantillonnage toutes les 50ms
    (peut-être penser à initialiser le shift-registre avec la valeur d'entrée de "variable réseau")
    (le laisse la main à d'autres pour confirmer ou infirmer la validité de ce code ...dans le cas particulier d'une variable réseau)
    Pièces jointes :
    toto.vi ‏14 KB

  • Mettre boucle While en pause/ structure séquence

    Bonjour,
    Actuellement en stage il m'a été demandé de développer une interface LabVIEW en vue du pilotage d'une alimentation triphasé.
    Pour l'instant la majeure partie de mon programme fonctionne mais je me heurte à un problème. Il m'a été aussi demandé que mon programme récupère les informations de mesure provenant de l'alimentation. Cette partie fonctionne également à une exception près : si l'on appuie sur un bouton alors que la commande Write de mesure est en exécution (commande TST dans mon VI), une autre commande sera alors transmise au générateur et la fonction READ ne lira plus de mesure et le VI affichera une erreur de TimeOut. Je cherche donc depuis 2 jours une solution qui me permettrait de mettre la boucle While de mesure en pause en cas d'appuie sur un bouton lors d'une mesure et la reprendre a la fin d'un temps donné.
    Je vous fournie un exemplaire de mon VI afin que cela paraisse plus clair (PS : Je suis sur LabVIEW 2009).
    Je vous remercie d'avance de votre réponse.
    Cordialement.
    Résolu !
    Accéder à la solution.
    Pièces jointes :
    VI.vi ‏55 KB

    Je vous remercie beaucoup de vos réponse. J'ai utilsé vos amélioration et idée et je pense que en théorie ça devrait marcher mais avant d'entamer les tests sur l'alimentation je suis confronté à un nouveau problème : j'ai ajouté des onglets qui devrait me permettre de passer d'un type de langage de commande à un autre. Pour gérer le changement d'onglet j'ai utilisé une structure condition avec une boucle While et une structure évènement. Sur le papier l'idée me paraissait bonne mais après test l'interface se bloque lors du premier changement. La faute est due à la structure évènement qui bloque sur changement d'onglet : valeur changé. Si vous connaissez une alternative à cette solution je vous serez très reconnaissant si vous pouviez me la faire connaitre.
    En vous remerciant par avance.
    Pièces jointes :
    FGV style Visa(1).vi ‏22 KB
    ELGAR TEST 2.vi ‏86 KB

Maybe you are looking for