Discussions au sujet de NI LabVIEW

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

Nœud de données d'événement et déclencheurs multiple.

Résolu !
Accéder à la solution

Bonjour,

 

Je crois malheureusement avoir déjà la réponse à ma question mais je demande quand même :

J'ai un évènement qui se déclenche lors du changement de plusieurs variables, toute de type identique (booléen), et j'aimerais récupérer des données, lorsque l'évènement se déclenche, sur la variable qui a déclenché l'évènement (en particulier son nom). Malheureusement le noeuds de données d'évènement ne me propose que source(?), type, et temps, alors que si je ne mets qu'une seule variable je peux récupérer un refnum sur cette variable.

 

une idée ? ou es ce tout simplement pas possible ?

 

d'avance merci.

0 Compliments
Message 1 sur 13
4 524 Visites

As-tu essayer d'agrandir le noeud de données d'événement vers le bas?

 

Multiple Event Source.png

 

Ben64

0 Compliments
Message 2 sur 13
4 516 Visites

Merci de ta réponse.

 

J'ai oublié de présciser que mes évènements sont de type dynamiques. En passant, je ne sais pas exactement ce que je peut récupérer avec la propriété source !?

0 Compliments
Message 3 sur 13
4 493 Visites

Tu peux poster une version simplifiée de ton vi?

 

Ben64

0 Compliments
Message 4 sur 13
4 490 Visites

Bien sur, le voici :

 

Capture.PNG

 

Comme tu peux le voir, je ne peux récupérer que mon RefEvnmtUtil dans le noeud de propriété de mes évènements. J'aimerais pouvoir récupérer leurs noms, où une référence sur la donnée, ou encore le nom de l'évènement déclencheur tout simplement. Ce que je veux c'est pouvoir afficher "Event 1" ou "Event 2", en fonction de celui qui a déclenché l'évènement.

0 Compliments
Message 5 sur 13
4 487 Visites
Solution
Accepté par V.M

Tu as placé les 2 user event ensemble ... humm ... je pense que tu vas avoir du mal de récupérer la donnée.

(Si jamais cela "est possible" ... je suis intéressé de savoir "comment")

 

mais peut-être que de "simplement" pouvoir les différencier est suffisant, comme ceci : (VI joint LV2012)

 

 

yyyyyy.png

 

Tu as placé tes 2 Contrôles booléens en "switch when pressed" ...

à chaque tour de boucle, toutes les 50ms (la While du dessus),  tu peux ne générer aucun event ... ou alors, tu peux générer Event_1  ET / OU  Event_2

Si tu génères les deux ... l'ordre sera indéterminé.

0 Compliments
Message 6 sur 13
4 467 Visites

En effet, ce n'est pas possible de récupérer la donnée. UsrEventRef est un controle alors on ne peut pas le passer à un noeud de propriétés. On peut toujours récupérer la valeur du refnum (typecast to U32) mais on ne peut utiliser ça pour générer une référence valide à un contrôle car LabVIEW ferme automatiquement la référence lorsque qu'elle est passé par un événement dynamique (message d'erreur reference no longer valid).

 

La méthode de Ouadji est une alternative possible dans ce cas mais il faudrait également évaluer s'il est préférable de séparer les événements dynamiques.

 

Ben64

0 Compliments
Message 7 sur 13
4 460 Visites

@ ben64 : " UsrEventRef est un controle .... "

 

Mes excuses, mais je ne comprends pas ... que veux-tu dire par "UsrEventRef est un controle" ?

 

"On peut toujours récupérer la valeur du refnum (typecast to U32) ..."

 

désolé ... mais je ne comprends pas trop non plus ..

de toutes façon, que veux-tu faire avec une Référence qui serait sous la forme d'un U32 ?

 

"évaluer s'il est préférable de séparer les événements dynamiques"

 

personnellement ... je sépare.

0 Compliments
Message 8 sur 13
4 457 Visites

@ouadji wrote:

@ ben64 : " UsrEventRef est un controle .... "

 

Mes excuses, mais je ne comprends pas ... que veux-tu dire par "UsrEventRef est un controle" ?

 

"On peut toujours récupérer la valeur du refnum (typecast to U32) ..."

 

désolé ... mais je ne comprends pas trop non plus ..

de toutes façon, que veux-tu faire avec une Référence qui serait sous la forme d'un U32 ?

 

"évaluer s'il est préférable de séparer les événements dynamiques"

 

personnellement ... je sépare.


Excuses non nécessaires, je ne suis pas familier avec la nomenclature francaise de LabVIEW, j'ai toujours utilisé la version anglaise. C'est probablement plus simple de montrer ce que j'essaiyais de faire (la conversion U32 était pour récupérer la valeur numérique du refnum mais c'est finalement une étape inutile).

 

DynamicEventRef.jpg

Ben64

Message 9 sur 13
4 451 Visites

ok, compris, merci ben.

 

0 Compliments
Message 10 sur 13
4 449 Visites