Machine à états et noeuds de propriété

Bonjour,
je suis en train de réaliser un programme qui permet de "piloter" un moteur.
Il s'articule de la manière suivante:
- une boucle qui gère une machine à état et qui traite, entre autre, l'envoi d'une commande de pwm qui imposera la vitesse de rotation du moteur.
- une seconde boucle qui permet l'acquisition de données destinées à la gestion des erreurs
- une troisième boucle qui gère les différentes phases de pilotage du moteur.
Tout fonctionne très bien à une chose près. C'est le changement de valeur du bouton ON qui  détermine l'envoi ou l'arrêt de l'envoi du pwm (boucle 1). Cependant, dans la boucle 3, lorsqu'une erreur est détectée, le moteur doit s'éteindre, et c'est ce qui se produit. MAIS, malgré le fait que lors de la dectection d'une erreur, j'impose par noeud de propriété, au bouton ON de reprendre la valeur faux, ça n'a pas d'impact dans ma machine à état et la commande du pwm ne repasse pas à zéro comme je le souhaiterais.
Comment faire pour imposer que le pwm repasse à 0 quand une erreur est détectée?
Si quelqu'un a une solution, ça m'aiderait beaucoup.
Je vous mets en pièce jointe mon programme, en espérant qu'il soit assez lisible et compréhensible.
merci d'avance
Anne
Résolu !
Accéder à la solution.
Pièces jointes :
Dossier WESTTsev 11 02 2011.zip ‏776 KB

Bonjour,
Plusieurs possibilités:
1. utiliser votre sous VI de gestion du moteur dans la condition erreur pour l'arreter
2. le noeud de proriété valeur ne sera pas géré comme un événement utilisateur dans votre structure évenement ne le gère pas, dans ce cas utilisez le noeud de propriété Valeur (signalisation) et cela revient à créer un événement utilisateur donc géré par la structure événment.
Cordialement
Greg S.
CNRS
LV 7.1 8.2 8.6 2009 2011 2012 2013
LPMC - CNRS
N'oubliez pas de complimenter cela fait toujours plaisir.

Similar Messages

  • Questions techniques sur les noeuds de propriété

    Bonjour à tous,
    Je souhaite améliorer graphiquement l'IHM que je suis en train de créer sur Labview.
    Au premier abord, je pense que les fonctionnalités que je souhaite implémenter nécessite des noeuds de propriété.
    Ayant une très faible expérience de Labview et des noeuds de propriété en général, je me demandais si vous pouviez me guider dans cette recherche.
    Par exemple, je dispose d'un graphe XY dont les durées d'acquisition seront d'environ 2h, avec un rafraichissement de la courbe toutes les secondes. Je cherchais donc, passé un certain nombre de secondes, à afficher la courbe en minutes. Vers quoi dois-je me tourner pour celà ?
    Ou encore, lors du paramétrage de mon appareil, l'utilisateur doit rentrer différentes valeurs telles qu'une valeur de start, de stop, et d'échantillonage. Cependant, il existe des contraintes matérielles empêchant certaines valeurs, comment puis-je les interdire à l'utilisateur ?
    Enfin, je cherche également à créer un menu défilant, c'est-à-dire que l'utilisateur pourrait choisir entre différents matériaux pour l'expérience, et que chacun de ces matériaux corresponde à des paramétrages préenregistrés.
    Tout ce que je cherche c'est un peu de guidage dans cette panoplie effarante de noeuds de propriétés. Je dois avouer que je ne m'y retrouve pas encore.
    Merci d'avance,
    Cordialement,
    Clément Z.
    Résolu !
    Accéder à la solution.

    Bonjour,
    Je ne pense pas que ce soit possible.
    Tu peux cependant ne mettre que des commandes numériques mais tu n'autorises leur modification que si le mode custom est sélectionné. Sinon, tu leur envoies une valeur pour chaque mode préparamétré, comme si c'était un indicateur.
    noeud de propriété de la commande > désactivé   (en écriture)
    noeud de propriété de la commande > valeur        (en écriture ou lecture)
    Voilà un exemple en pièce jointe
    Pièces jointes :
    Capture2.JPG ‏84 KB
    Capture3.JPG ‏73 KB

  • Utilisation boucle for avec la machine état

    Bonjour,
    Je viens vous demander quelques conseils d'utilisation du boucle for avec la machine état. Voici le vi ci-joint. Je souhaiterai faire 5 fois la machine état mais à chaque étape de la machine état j'incrémente un tour de boucle et cela ne fait pas 5 fois la machine état. Avez vous une idée pour réaliser cela? Merci d'avance.    
    Pièces jointes :
    essais-boucle-for.vi ‏12 KB

    Salut,
    J'ai testé ton VI pour essayer de comprendre ce que tu cherche à obtenir. En partant de ta constante start en entrée de boucle, tu obtiens la valeur 4 pour "i" et 0 pour "j" ce qui, au vu de ton diagramme, est normal.
    En fait, le premier tour d'une boucle FOR est 0, puis s'incrémente. Ainsi, si tu lui demande de faire 5 tour de boucle, le premier tour sera le n°0, puis 1, etc... jusqu'à 4.
    Je ne sais pas si j'ai été très clair et si cela répond à ta question mais au vu de ce que tu décris je pense que c'est cela.
    Autrement n'hesite pas à me donner plus de détail =)
    @ +

  • Noeud de propriété OU variable locale (?)

    Pour modifier un booléen (ou un numérique) sur le FP ... noeud de propriété ou variable locale ?
    Je peux faire ce dont j'ai besoin avec l'un ou l'autre ... Comment choisir ?
    Il me semble qu'une variable locale, dans son principe, n'est pas faite pour modifier un objet du FP
    mais je n'ai pas assez d'expérience pour apporter une vraie réponse.
    merci,
    Résolu !
    Accéder à la solution.

    Salut à vous trois! Content de vous lire ! 
    Je suis Ok avecSimon et J’aurai  écrit : Pour modifier juste la donnée value dans un même diagramme (dans l’ordre) : terminal / variable locale / nœud de propriété.
    Le nœud de propriété va engendrer des lenteurs : thread UI.
    Par contre le nœud de propriété peut effectivement permettre de faire un value signaling + chainage erreur.
    http://digital.ni.com/public.nsf/allkb/E62730A834D65638862575530050CC48
    D’un autre coté, parce qu’ils peuvent mettre à jour une sous-partie des données, les nœuds de propriété n’utilisent pas les même raccourcis que les variables locales ou les commandes. Quand vous mettez à jour une commande avec la même valeur plusieurs fois de suite, une variable locale ou un terminal de commande ne redessine pas la commande sur la face-avant à chaque fois (ce qui est le cas avec le noeud de propriété).
    local vs property node
    http://forums.ni.com/t5/LabVIEW/local-vs-property-node/td-p/321755
    diffrent of "property->Value" and "Local Variable"
    http://lavag.org/topic/11108-diffrent-of-property-value-and-local-variable/
    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

  • Architecture Machine à états

    Bonjour,
    Utilisant l'architecture d'une machine à états pour traiter mes données d'acquisition de Température, je rencontre un problème pour ne pas réexécuter tout mes états à chaque itération.
    Dans mon cas, je souhaite que lorsque l'état "Palier" est vraie, les états "Palier" et "T_Réelle = T_C Palier_bas"ou "T_Réelle = T_C Palier_haut" ne se répète pas jusqu'à ce que le minuteur dans l'état "Stabilisation_étuve_Palier_bas" renvoie condition vraie.
    Cdt
    Pièces jointes :
    Alarme_Alerte_bis.vi ‏28 KB

    D'accord, je crois avoir compris... (Mais je ne suis pas sur ^^)
    La première idée qui me vient à l'esprit est de passer par une variable globale booléenne "T_Réelle=T_Consigne" pour pointer vers différents états dans la machine à états en fonction de sa valeur.
    Lorsque T_Réelle=T_Consigne, la variable passera à True pour shunter les états qui réalisent ce test. Une fois le "minuteur" écoulé, il suffira de faire passer la variable globale à False pour repasser par l'état qui réalise ce test.
    Ca semble rudimentaire, mais fonctionnel.
    Pièces jointes :
    variable_glob.jpg ‏17 KB
    shunt.jpg ‏42 KB

  • Machine à état

    bonjour,
    s'il vous plait je souhaite avoir une idée plus claire sur le principe d'une machine à état donc ma question est la suivante:
    le passage d'un état à l'autre se fait automatquement ou bien avec un évènemet utilisateur? sachant que j'ai une structure condition avec 3 état (énum) et  j'ai insérer la structure condtion dans une boucle while.
    merci pour vos réponses 

    Duplicate post.

  • LV2011 : Liste Déroulante et noeud de propriété ModeSel / Mode Clav

    Bonjour,
    L'affectation du noeud de propriété ModeSel d'une liste déroulante à la valeur 2 (zéro ou plus) ou 3 (1 ou plus) retourne une erreur 1077 (cf Erreur ModeSel.png). Comment paramétrer cette propriété par programmation et non via la face avant ?
    De plus la traduction française semble contenir une erreur : les propriétés ModeSel et ModeClav s'appellent toutes les deux Mode de sélection dans les menus contextuels de la face avant (cf ModeClav FA.png), du noeud de propriété du diagramme ainsi que dans l'aide. D'ailleur dans la liste des propriété de la liste déroulante, la ligne Mode de sélection apparait 2 fois et renvoi uniquement sur ModeSel (cf Aide NoeudPropListDér.png).
    Cordialement.
    Attachments:
    Erreur ModeSel.png ‏41 KB
    ModeClav FA.png ‏17 KB
    AideNoeudPropListDér.png ‏43 KB

    Bonjout J Vaillant,
    Concernant cette erreur, je vous encourage à prendre connaissance du document suivant:
    Why Do I Get Error 1077 When Programmatically Setting the Selection Mode of a Listbox?
    http://digital.ni.com/public.nsf/allkb/F76CF6C02D8AD38186256DE90007385A?OpenDocument
    En effet pour pouvoir modifier de manière dynamique le nombre d'éléments à sélectionner il vous faut au préalable, configurer la liste déroulante pour qu'elle puisse l'accépter.
    Clic droit -  mode de sélection - type de données - tableau
    Cordialement,
    Rémi D.
    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;}
    >> Les rencontres techniques de NI - Mesures et acquisition de données : de la théorie à la mise en ...

  • 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

  • Noeud de prpriété "longueur d'historique" sur graphe déroulant

    Bonjour,
    Je souhaite régler (par programmation) la longueur de l'historique sur un graphe déroulant mais je ne trouve pas de noeud de propriété correspondant. Existe t'il?
    Sebastien DEVISSCHER - Nerys
    Résolu !
    Accéder à la solution.

    je ne suis pas certaine de bien comprendre ton problème. Si tu fixe la longueur de l'historique de ton graphe déroulant à 50 000 points par exemple (car tu es sûr de ne pas dépasser) et que finalement tu lui demande d'en afficher que 3 000 il devrait afficher tes 3 000 points sans devoir relire le fichier. DIs moi si j'ai mal compris ton problème 
    En fait cette methode me pose deux problèmes:
    1: allocation: si je paramètre un historique à 50000 points et que LabVIEW alloue de la mémoire pour ces 50000 points d'historique, j'encombre la mémoire, peut être inutilement si en fait je n'ai que 30000 points.
    2: adaptabilité: je réalise ce programme pour des chercheurs qui ne programment pas du tout sur LabVIEW et qui veulent une machine qui marchera sans moi après la fin de mon stage. Hors rien ne me garantie qu'ils ne feront pas un enregistrement à 60000 points un jour ou l'autre.
    Je vais essayer avec un graphe plutôt qu'un graphe déroulant pour le moment
    Sebastien DEVISSCHER - Nerys

  • Propriété "mode de cadencemen​t C A/N" pour module NI 9219 introuvabl​e

    Bonjour,
    Je cherche depuis un moment à modifier programatiquement la propriété "mode de cadencement C A/N" d'un module NI 9219 pour chassis CDaq ou CRio.
    Ci joint l'imprim écran de la propriété lorsque je gére la tache depuis MAX :
    J'ai deroulé tout les noeuds de propriétés de la classe DAQmX qui me parraissaient appropriés, (en particulier "noeud de propriété de périphérique"), sans succés.
    Si quelqu'un à l'information, il me sera d'un grande aide.
    Cordialement
    antoine
    Résolu !
    Accéder à la solution.

    mknix a écrit :
    C'est parfait, je vais pouvoir enfin passer à la suite, cette communauté est vraiment extra.
    salut à vous, c'est vrai!
    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

  • Le noeud "Exporter une image" ne peut pas créer un fichier ?"

    Bonjour,
    Suite à l'aide que m'a apportez un des contributeurs, j'ai réalisé le Vi ci-joint qui permet de d'obtenir, de modifier la taille puis d'enregsitrer une image d'une commande graph déroulant.
    J'ai le probléme suivant : Si le fichier img.bmp n'existe pas, le noeud de propriété " exporter une image ne le crée pas, en revanche il fonctionne bien quand il s'agit de remplacer une image déja existante.
    Est-il absolument nécessaire de vérifier si le fichier existe ( et de le créer le cas échéant)  ou j'ai louper un truc ?
    Si quelqu'un a la moindre remarque ou critique constructive à faire concernant ce Vi ou la réponse à ma question merci. J'ai un peu de mal avec celui ci.
    EDIt : une autre remarque importante, de maniére aléatoire, il n'enregistre même pas le fichier !?
    Pièces jointes :
    ferferferf5.vi ‏27 KB

    Oui, on le constate déjà lorsque l'on veut l'ouvrir dans l'explorateur. Ce sera pareil pour votre application LabVIEW.
    Essayez de faire clic-droit sur le dossier Temp et choisissez propriétés. Rendez-vous dans l'onglet sécurité.
    Ensuite modifiez les autorisations pour donner à l'utilisateur de votre pc le contrôle total sur ce dossier.
    Jean-Philippe C.
    National Instruments France

  • Faire clignoter l'état d'un interupteur

    bonjour, j'aurais besoin d 'un petit renseignement,
    Comment faire clignoté un interupteur qui est en varaible globale? Je sais qu'il faut utiliser le noeud de propriété. J'arrive a le faire mais avec un interupteur normale, pas sur un interrupteur en varaible globale.
    D'avance merci

    Clic-droit sur l'interrupteur >> Create >> Property Node >>  clic sur la partie inférieure du noeud de propriétés >> Blinking >> relier une constante TRUE
    Les propriétés du clignotement (couleurs et vitesse) sont définies dans les options de configuration de LabVIEW. Voici comment y accéder :
    Barre de menu de LV >> Tools >> Options >>
    Vitesse : Front Panel >> Blink speed ou Blink delay (dépend de la version de LV)...
    Couleurs : Colors >> Custom Colors... >> Blink Foreground et Blink Background

  • Obtenir la valeur d'une propriété dans TDMS

    Bonjour,
    Je cherche à obtenir la valeur des propritétés " log-dt " et " log-iteration-lenght ", mais je n'ai pas de répose.
    En pièce jointe la copie du programme.
    Merci de votre aide.
    Pièces jointes :
    TDMS.JPG ‏108 KB

    J'ai trouvé un noeud de propriété me permettant d'obtenir la valeur de la page sélectionnée.
    Cependant, je rencontre un problème avec mon application, j'ai créé une architecture producteur consommateur avec la fonction de liste d'attente.
    Quand je sélectionne la page, celle-ci n'envoie pas correctement les informations..
    Cordialement
    Pièces jointes :
    Mode_Auto_Final(1).vi ‏218 KB

  • Les propriétés de VI Compilé... n'apparais​sent pas

    Bonjour, j'ai la version une version LV 2012 FULL et je ne trouve pas les propriétés liées à la compilation de VI (noeud de propriété de VI / Compilé / Complexité & dernière compilation)
    Propriété Compilé : complexité du code
    Nom court : Compilé.ComplexitéCode
    Requiert : Version de base
    La liste des propriétés, je passe de passe de Chemin à Contient du code compilé.
    S'agit il d'un problème de version ?
    Cordialement,
    Olivier Ducoudré

    Pardon pour le délai,
    La propriété est décrite dans l'aide (LV 2012 FULL -  Index : complexité du code), pas dans la version LV 2010 SP1 (LV 2011 pas installée).
    J'ai mis en PJ une copie d'écran des propriétés dispo et un extrait de la liste des prop d'un VI (LV 2012)
    Extrait aide LV 2012 :
    Propriété Compilé : complexité du code
    Nom court : Compilé.ComplexitéCode
    Requiert : Version de base
    Classe : Propriétés de VI
    Conseils d'utilisation : Création de propriétés et de méthodes.
    Renvoie la complexité du VI référencé par rapport à la glissière d'optimisations du compilateur sur la page Environnement de la boîte de dialogue Options. En comparant ces deux valeurs, vous pouvez déterminer si LabVIEW donne la priorité à la réactivité de l'éditeur ou à la vitesse d'exécution en compilant ce VI.
    Cette propriété fournit un accès programmatique au champ Complexité du code compilé de la page Utilisation de la mémoire de la boîte de dialogue Propriétés du VI.
    Je vais voir ce que je trouve sur les SuperPrivate ...
    Attachments:
    noeud prop.png ‏12 KB
    aide LV.png ‏75 KB

  • Affichage compte-à-rebours et enregistrement vidéo

    Bonjour à tous !
    3 questions à propos de mon diagramme :
         dans la partie Measure
         - pourquoi le compte à rebour (dans "Init enreg" de la boucle condition de la vidéo) ne s'affiche pas ?
         - pourquoi la vidéo que j'enregistre est ralentie au début ? (quand je fais un enregistrement de 15sec, la vidéo dure sur le .AVI 19sec)
         dans la partie Analysis :
         - comment puis-je synchroniser la vidéo, le son de la waveform et la lecture en spectre de puissance de la waveform ?
    Merci
    Cordialement
    Geogeo4207
    2nd année de DUT Mesures-Physques
    IUT de St Etienne
    Geoffrey, LabVIEW Associate Developer
    Pièces jointes :
    Acqui + Traitement + CAR.vi ‏229 KB

    Le compte à rebours se trouve dans la machine à états "enregistrement de la caméra"
    - Il démarre à la condition "Init enregistrement" : sur ma vidéo , j'utilise "Imaq draw text" pour (mais ça marche pas) marquer un "3", j'attend 1.5sec
    - puis je passe à l'état "2",  "Imaq draw text" devrait marque unr "2", j'attend 1.5sec
    - puis l'état "1",  "Imaq draw text" devrait marquer un "1" sur ma vidéo, j'attend 1.5sec
    - mon enregistrement se lance
    ici, j'ai un un indicateur énumérateur qui lit qu'on va passe à l'enregistrement, j'ai créé une variable locale de celui-ci pour pouvoir lancer l'enregistrement de la waveform en même temps que l'enregistrement de la vidéo.
    Pendant le "compte-à-rebours", je n'ai pas une vidéo mais une image (oui j'attend 1.5sec donc je peux pas acquerir les autres images), mais ça c'est pas gênant, le compte à rebours fait donc : 3 (attendre 1.5sec) 2 (attendre 1.5sec) 1 (attendre 1.5sec) ---> l'enregistrement est lancé
    seulement sur mon programme j'attend bien en tout 4.5sec, j'ai 3 images arrêtées mais le chiffre s'affiche pas.
    de quels noeuds de propriété non-connectés parlez-vous ?
    Merci, Cordialement
    Geogeo4207
    Geoffrey, LabVIEW Associate Developer
    Pièces jointes :
    Acqui + Traitement + CAR.vi ‏229 KB
    Couleur réticule.vi ‏11 KB

Maybe you are looking for

  • Import XML data to textfields in a PDF file

    Can I use LiveCycle Designer 8.2 to auto populate textfields in a PDF-file with data from a XML-file when the user opens the PDF-file? If so, how will I do it? Is there any guide? It works fine in the Livecycle Designer preview but when I open the PD

  • Cisco Phone VPN

    Probably a stupid question, but if you connfigure a Cisco VoIP phone for SSL VPN, does it provide VPN connectivity to the switch port on the back of the phone? Would a laptop connected to it get corporate access?

  • Configure network card on laptop

    I've installed solaris 9 on a NEC versa lx laptop and during installation in does not see the 10/100Mbps 16-bit PCMCIA Ethernet PC Card network card. Can someone help me with this problem? Newcomer

  • Adobe Acrobat Proffessional 6 incompatebility with Windows Vista

    hello everyone. I have a problem with Adobe Acrobat Professional 6 which is incompatible with Windows Vista. i tried all the updates provided by Adobe, but they don;t have any update to address this issue. so can anyone tell me how to solve this prob

  • Problems Reinstalling Acrobat 9.

    My computer recently crashed and I reinstalled CS5 Design Premium. Everything went fine including the activation, but when I installed Acrobat 9 I got the following message: "Licensing for this product has stopped working." It said to uninstall and r