Discussions au sujet de NI LabVIEW

annuler
Affichage des résultats de 
Rechercher plutôt 
Vouliez-vous dire : 

Changement de conditions dans une machine à états

Bonjour,

J'utilise actuellement la version 2017 de LabVIEW.

Je souhaite solliciter l'aide de la communauté concernant un petit problème mais qui devient vite gênant.

Je travaille sur la machine d'états "distributeur de boissons". J'ai voulu faire quelques modifications et faire évoluer le fichier. Le problème est que lorsque je connecte un sous-VI (contenu dans une des conditions de la structure) au registre à décalage, les conditions passent au format numérique.

Un triangle rouge apparaît sur certains tunnels et registres à décalage.

Merci pour l'aide que vous pouvez m'apporter.

Cordialement,

Jérémy

 

Tout télécharger
0 Compliments
Message 1 sur 7
2 193 Visites

ton sous vi ne doit pas sortir le bon format de variable

il devrait avoir en sortie un indicateur de la def de type

0 Compliments
Message 2 sur 7
2 161 Visites

Oui difficile de donner une vraie solution sans voir ce qui se passe à l'intérieur du sous VI.

Ceci dit, tu ne mentionnes pas le fait de savoir si ta machine à états fonctionne ou non. Je suppose que cela n'a pas d'impact dans ton cas car les valeurs retournées doivent quand même être bonnes malgré leur format.

 

Plus d'infos ici : http://zone.ni.com/reference/fr-XX/help/371361P-0114/lvconcepts/coercion_dots/

CLAMaxime -- Kudos are a great way to say thank you
0 Compliments
Message 3 sur 7
2 159 Visites

Merci pour votre réponse.

Effectivement il apparaît des points de coercition rouges sur les tunnels et les registres et cela est dû à un mauvais type d'entrée ou de sortie.

Dès que je connecte le sous-VI "prochain état" ( issu de l'exemple "distributeur de boissons" LabVIEW), les conditions deviennent numériques.

J'ai beau chercher mais je n'arrive pas à trouver l'erreur.

Je mets le VI en pièce jointe.

Cordialement,

Jérémy

0 Compliments
Message 4 sur 7
2 140 Visites

Il y a un manque de consistence dans tes constantes d'énumération. Il y a des définitions de type (2 types différents même car dans les états 3 et 4 il y a un type def qui a la valeur "Choix boisson") et des constantes d'énumérations qui ne sont pas des définitions de type. Comme il y a plus d'un type de data qui tente de se propager sur un meme fil alors LabVIEW ne peut utiliser le texte des enums et utilise donc leurs représentation numérique (les enums sont des I16).

 

Assure-toi de n'avoir qu'un seul type d'enum qui est un type def (et qui contient tous les états nécessaires) et remplace ensuite toutes les constantes de ton code par ce nouveau type def.

 

Tu as probablement créer un type def après avoir déjà placé des constantes dans ton diagramme (les constantes déjà présentes ne sont pas automatiquement transformées en type def.)

 

Ben64

 

 

Message 5 sur 7
2 137 Visites

Ou alors la même remarque s'applique pour un autre "case" de la "Case Structure".

 

Edit : Message fait référence à la toute première réponse de thib_fr qui est la seule visible sans jouer de la barre de défilement. Ce n'est qu'après son envoi que j'ai vu que d'autres messages avaient suivis. Du coup, il n'apporte rien de plus mais il m'est impossible de l'effacer sans en faire la demande au modérateur.

0 Compliments
Message 6 sur 7
2 128 Visites

Merci Ben64,

 

Effectivement, ce qui clochait, c'était les constantes d'énumération dans le tableau du Sous-Vi et dès qu'un état est mal orthographié ou ajouté (ou supprimer), il faut tout actualiser.

J'ai réussi à faire fonctionner l'ensemble donc je te remercie pour ta solution.

Jérémy

0 Compliments
Message 7 sur 7
2 125 Visites