Discussions au sujet des autres produits NI

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

event sur led

OK ...
 
Voici le VI  ... Mais bon, c'est censé communiquer avec un automate... Donc vous ne saurez pas executer le VI ... Mais vous verrez peut etre le but rechercher ! Je supose que vous n'avez pas besoin de la DLL ? 😛
 
 
 
 
Donc voila ... Si vous regardez dans le event structure le [4] et [5] ieme cas vous verrez ce que j'ai fais pour réaliser ce que je veux ...
C'est a dire quand la LED Opened (dans le M1Cover) change d'état, le bouton OpenCover se relache
et quand la LED Closed (dans le M1Cover) change d'état, le bouton CloseCover se relache
 
 
 
Merci


Message Edité par uFo le 03-14-2008 06:29 AM
0 Compliments
Message 21 sur 35
1 437 Visites

j'ai pas lu ton vi (je n'ai pas la meme version) mais a prioris ce que tu recherche c'est un truc du genre avec deux taches une pour tes controles et une pour le dialogue avec ton automate.

sur cette image la led change d'etat toutes les 3 secondes et ca change l'etat du bouton par evenement sur la led !

----------------------------------------------------------------
Gendre Laurent
Stagiaire au service Détection à Thalès Alenia Space
E-mail : gendre@polytech.unice.fr
----------------------------------------------------------------
0 Compliments
Message 22 sur 35
1 430 Visites
Merci de ta réponse ...
Voila ... J'ai essayé d'appliquer votre idée de la facon suivante ... Mais apparement, cela n'a pas l'air de fonctionner 😞 ... La LED s'allume mais le bouton ne repasse pas a l'état dé activé ... 😞


Message Edité par uFo le 03-14-2008 07:27 AM
0 Compliments
Message 23 sur 35
1 424 Visites
Arrivé à ce stade, il vous faut réaliser que l'événement Value Change pour les LEDs Opened et Closed ne sera JAMAIS déclenché avec le code actuel !

Pourquoi donc ? Parce que le changement de la valeur par le terminal, une variable locale ou un noeud de propriété Value ne déclenche pas l'événement Value Change. Cet événement n'est déclenché que par une modification de la valeur par la face avant ou par un noeud de propriété Value(Signal). Vous devez donc impérativement utiliser ce noeud de propriétés plutôt que le terminal pour actualiser l'état des LEDs.

En passant, je me permets de vous recommander vivement d'afficher les noms dans le diagramme pour en améliorer la lisibilité et diminuer les risques d'erreur !


Message Edité par JB le 03-14-2008 02:38 PM
Message 24 sur 35
1 415 Visites
Donc voila pourquoi 🙂
 
 
Alors pour combler le probleme, j'ai affecter un bouton a la LED se bouton va agir en fonction de l'état de la LED ... Comme ca l'action de l'event sera sur le bouton ...  Avec un Val(sgnl)
0 Compliments
Message 25 sur 35
1 407 Visites
Pourquoi ce bouton ? En parlant de "raccourci" dans une discussion parallèle, il me semble maintenant devoir utiliser le terme "détour".

Il vous suffit de sortir le terminal de la LED de la boucle (mettez le dans une séquence qui s'exécute avant la boucle pour initialiser l'état de la LED) et d'utiliser une propriété Value(Signaling) pour actualiser l'état de la LED dans la boucle.

0 Compliments
Message 26 sur 35
1 406 Visites
Je ne peux pas justement faire d'initialisation ... Enfin si, elle est faite dans ma DLL ... Je passe le tableau créé dans labVIEW a ma DLL qui va le remplir ! De plus la LED peut changer de statut a tout moment ... Puisqu'elle dépand des paquets que je recois de l'automate ...
 
Et la méthode proposé pour arrivée a mes fins est un détour oui ... Mais vous m'avez expliqué : "Pourquoi donc ? Parce que le changement de la valeur par le terminal, une variable locale ou un noeud de propriété Value ne déclenche pas l'événement Value Change. Cet événement n'est déclenché que par une modification de la valeur par la face avant ou par un noeud de propriété Value(Signal). Vous devez donc impérativement utiliser ce noeud de propriétés plutôt que le terminal pour actualiser l'état des LEDs." ... Hors l'état de la LED se modifie a l'aide d'une valeur numérique que j'éclate en un tableau de boolean pour voir si le bit concerné est un 1 ou pas, pour allumer ou éteindre une LED ... Donc de ce faite, je ne vois pas comment changer l"état de ma LED avec Value (Signal) ...
 
 
0 Compliments
Message 27 sur 35
1 389 Visites
Bonjour uFo,
 
En ce qui concerne l'utilisation du noeud de propriété Value(Signal), celui-ci génère à chaque fois un événement, il est donc nécessaire de contrôler à quel moment l'événement doit avoir lieu. Je vous joins à ce post un exemple sur une manière de l'utiliser pouvant se rapprocher de ce que vous voulez faire.
 
Cordialement,
 
 
Jérémy M. | LinkedIn - Contact
Don't forget to give Kudos to good answers.

0 Compliments
Message 28 sur 35
1 384 Visites
Bonjour ...
 
Merci pour le VI que tu m'as fournis ... Malheureusement je ne sais pas l'adapter a mon VI ...
 
 
Enfaite voila .. Je vais vous ré expliquer tout depuis le depart ... Parce que ca fait 4jours que je suis dessus et toujours sans résultats ...
 
Voila, j'ai créée un VI et une DLL ... A ma dll je lui passe deux addresse .. un tableau qui va contenir des status et l'autre des paramatres ... Dans ma dll je vais garnir les tableaux avec les valeurs que l'automate m'a envoyé ... Et je dois les afficher, jusqu'a la tout va bien ... Maintenant j'ai du rajouter trois boutons : ouvrir, fermer, stopper.
Quand j'appuie sur ouvrir, il va écrire une valeur dans le tableau des parametres et va envoyer cette valeur a l'automate ... L'automate va me dire que le toit bouge a l'aide d'un bit dans le tableau des status ... et j'ai cabler le bit pour dire que le toit bouge à une LED ... Une fois que le toit est completement ouvert ou ferme, l'automate m'avertit du faite que le toit est ferme en changeant un autre bit dans le tableau des status ...
 
Bon maintenant, le probleme qu'il y a : J'appuie une fois sur le bouton ouvrir (par exemple) ca va bien écrire la valeur dans le tableau, ca envoie bien la valeur a l'automate et l'automate me répond bien que le toit est en mouvement ... Ensuite une fois fini l'automate me dit bien que le toit est complement ouvert ... Une fois que la LED s'est allumé (parce que le bit définit qui dit que le toit est ouvert passe a 1) ... Maintenant quand cette LED s'allume (quand le bit passe a 1), le bouton est toujours enfoncé ... Et la valeur écrite dans le tableau correspond toujours a la valeur écrire lors de l'appuie sur le bouton, or elle devrait etre a zéro (1 = ouvrir, 2 = fermer, 0 = stoppé) ... Et c'est ca que je n'arrive pas a faire ...
 
J'ai essayé plein de méthode pour arriver a mes fins ... Mais rien ne fonctionne apparement ... De plus comment on ne sait pas définir un evenement sur une LED qui s'allume et bien ca me rend la tache encore plus compliquée ... 😞 ...
 
Enfin si vous avez une autre idée a me donner pour arriver a mes fins, je suis preneur !
 
Merci de votre compréhention et j'espere avoir été clair cette fois si ... 🙂


Message Edité par uFo le 03-17-2008 10:37 AM
0 Compliments
Message 29 sur 35
1 372 Visites
slt tout le monde.

pas la peine de discuter sur 3 pages pour savoir comment déclencher un evenement par programation, il n'y a qu'une seul technique valable, l'utilisation d'evenement utilisateur.. ou User event , j'admet que le nom peut induire en erreur cependant c'est de ce coté qu'il faut cherché.

jeremy, peut tu lui trouver une ptite KB sur le sujet qui fera bien l'affaire, je suis un peu short pour chercher.

bon continuation.
MobyJ
0 Compliments
Message 30 sur 35
1 351 Visites