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

Similar Messages

  • 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

  • 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

  • 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

  • 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é.

  • 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

  • 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

  • Structure evenement avec des boutons grisés

    Bonjour,
    J'utilise une structure evenement qui s'execute suivant l'action sur mes boutons en face avant. A certains moment des boutons sont desactivés et grisés mais l'evenement mouse up s'execute quand meme lorsque j'y clique. si je le remplace par value change ma boucle s'execute deux fois au lieu d'une (car la valeur passe a T puis F).
    Quel evenement je peux utiliser pour que ma boulce ne s'execute qu'une fois, et que si le bouton n'est pas grisé?
    Merci
    Cordialement,
    Simon D. 
    Cordialement,
    Simon D.
    CLA | Certified LabVIEW Architect
    CTA | Certified TestStand Architect
    Résolu !
    Accéder à la solution.

    Dans la gestion de l'évènement mouse up, vous pouvez introduire une lecture de l'état du bouton et agir en fonction de cet état
    Chilly Charly    (aka CC)
             E-List Master - Kudos glutton - Press the yellow button on the left...        

  • Possibilité de passage d'une structure C d'une dll appelée dans Labview

    Bonjour, 
    J'aimerais savoir s'il existe un moyen de passer une structure (type de donnée en C) au
    travers de la  boîte de dialogue : "Appeler une fonction d'une
    DLL" pour l'utiliser dans Labview (idéalement sauver directement dans un
    cluster).
    A ce jour j'utilise des pointeurs sur les paramètres individuels pour passer les
    données traitées par ma DLL. 
    Exemple : void  Message(uint32_t *arg1, double *arg2, int32_t arg3)
    En vous remerciant d'avance,
    Meilleures salutations.

    Bonjour,
    En effet, il existe un moyen de passer un cluster dans une DLL en utilisant le type de données "Adapt to Type".
    Il existe une knowledgeBase sur le site de National Instruments expliquant la procédure à suivre.
    How Do I Use Adapt To Type For Call Library Function Nodes?
    Salutations,
    Laurent P.
    Application Engineer
    National Instruments

  • Integration d'une animation creer avec edge animate cc dans wesite x5

    bonjour je suis nouveau et je voudrais savoir comment integrer une animation creer avec edge animate cc dans wesite x5

    Je ne connais pas website X5, mais visiblement, il existe un élément html que vous pourriez utiliser http://help.websitex5.com/fr/index.html?_ga=1.263779784.595486606.1393409044
    Par contre, je ne sais pas comment seront transférés les fichiers liés.

  • 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

  • Lorsque je sauvegarde une video prise avec Quicktime sur mon bureau et qu'ensuite je veux l'insére dans une video de Imovie, toute la séquence est colorée en rouge (ou vert selon le réglage des couleurs) et n'a pas les couleurs d'origine. help !!!

    Lorsque je sauvegarde une video prise avec Quicktime sur mon bureau et qu'ensuite je veux l'insére dans une video de Imovie, toute la séquence est colorée en rouge et n'a pas les couleurs d'origine. help !!!

    Illustrator CC uses the Pantone Plus series, there is no CMYK definition for the spot colours in these series.
    The CMYK conversion is now based on the CMYK profile in your Color Settings.
    This is a good thing, since most of the Pantone colours cannot be accurately reproduced in CMYK, colour management provides a way to simulate the spot colours as close as possible for your combination of ink, paper and press.
    The CMYK values that were previously given by Pantone were just one way of simulating the spot colours and would give different results when another ink, paper, press combination was used.
    Sometimes the CMYK values from Pantone were completely off and you give a perfect example with the Pantone 1797 U colour.
    Printing that ink on uncoated stock would never give you such a bright saturated red as the Pantone provided CMYK values would suggest
    If you want to have a better preview of the colour, use the Overprint Preview option, that comes closer to the final printed result. The Overprint preview in CC and CS versions give s you an almost identical preview (almost because the Lab values differ slightly).
    There are ways to use the old libraries, but why should you if Pantone itself stopped giving CMYK numbers?

  • Graphe XY issu d'une structure conditionn​elle

    Bonjour à tous,
    Alors voilà, je suis actuellement en stage et je dois réaliser un programme Labview permettant de mettre en mouvement deux axes moteurs dans des directions x et y afin de scanner un objet puis prendre des mesures afin d'en obtenir une image en 3D. Le "scanner" doit prendre des mesures à  intervalle donné sur toute la surface de l'objet en faisant des allers-retours suivant l'axe X tout en se déplaçant suivant l'axe Y. (En forme de S donc)
    J'ai réussi à réaliser ce programme. Mais maintenant je dois faire apparaitre ce déplacement du "scanner" sur un graphe. Ayant utilisé une structure conditionnelle afin d'alterner le sens des X (croissants et décroissants), je n'arrive pas à "assembler" ces signaux dans un seul graphe.
    Avez-vous une solution à ce problème ? Merci par avance
    Cordialement
    Attachments:
    Stepper Motor Control-BOUCLES-parite.vi ‏70 KB

    Hi neimadeo,
    Are you able to view only the current position in the XY graph?
    Do you want the XY graph to retain all the previous XY positions of the scanner, or does it not work at all?
    Kind regards,
    Salut neimadeo,
    Êtes-vous en mesure de voir que la position actuelle dans le graphique XY?
    Voulez-vous le graphique XY de conserver toutes les positions XY précédentes du scanner, ou ça ne marche pas du tout?
    Cordialement,
    Josh E
    Applications Engineer
    National Instruments UK & Ireland

  • Mon ipad est bloqué sur une page noire avec le logo itunes et le cordon usb

    mon ipad est bloqué sur une page noire avec le logo itunes et le cordon usb

    That sign indicates that your iPhone is recovery mode. You need to connect it to your computer and then restore it using the iTunes on your computer.

  • Mon ordinateur plante à chaque fois que j'ouvre une vidéo avec firefox

    A chaque fois que j'ouvre une vidéo avec firefox sur Facebook ou youtub par exemple, mon ordinateur se bloque et je suis obliger de le relancer. J'ai tenté de réinstaller Firefox et le problème ne s'est pas résolu. Je ne rencontre pas ce problème avec internet explorer. Pouvez-vous trouver une solution? Merci

    Merci beaucoup

Maybe you are looking for