Comment assurer que les structures Événement gèrent les événements chaque fois qu'ils se produisent
- Mise à jour2025-08-27
- Temps de lecture : 3 minute(s)
LabVIEW commence à placer des événements en file d'attente dès que le VI s'exécute ou qu'il est réservé pour l'exécution. La structure Événement gère un événement placé en file d'attente lorsque le flux de données permet à la structure de s'exécuter. Par conséquent, LabVIEW peut générer des événements avant qu'une structure Événement attende de les traiter.
Comme LabVIEW place les événements en file d'attente pour toute la durée d'exécution d'un VI, LabVIEW peut mettre des événements en file d'attente après qu'un flux de données entraîne la fin de l'exécution d'une structure Événement. Par exemple, la boucle contenant la structure Événement peut terminer alors que le VI continue son exécution. Pour vous assurer que tous les événements de la file d'attente seront traités, configurez le VI pour qu'il termine son exécution peu après l'arrêt de l'exécution de la structure Événement.
Utiliser une boucle While pour que la structure Événement gère tous les événements
Placez la structure Événement dans une boucle While qui arrête de s'exécuter quand les événements ne peuvent plus avoir lieu. Par exemple, dans le diagramme suivant, la structure Événement est située à l'extérieur de la boucle While et le verrouillage de la face-avant est activé pour la condition Valeur changée du numérique.
Si vous changez la valeur de la commande numérique, un événement se produit. La structure Événement s'exécute une fois et gère l'événement de changement de valeur. Si vous changez à nouveau la valeur de la commande numérique, un autre événement se produit et l'interface utilisateur se bloque car le verrouillage de la face-avant est activé. La structure Événement s'est déjà exécutée une fois et comme elle n'est pas située dans une boucle While, elle ne peut pas s'exécuter à nouveau pour gérer le second événement. Si vous cliquez sur la commande booléenne stop pour arrêter la boucle While et le VI, celui-ci ne peut pas s'arrêter car le diagramme n'a pas encore géré le second événement et LabVIEW ne traite pas l'événement lorsque vous cliquez sur la commande booléenne stop tant que le diagramme ne gère pas l'événement. Vous pouvez éviter ce comportement en plaçant la structure Événement à l'intérieur de la boucle While.
Éviter d'utiliser une structure Condition pour déterminer quand une structure Événement gère les événements
Évitez de placer une structure Événement à l'intérieur d'une structure Condition. Par exemple, dans le diagramme de la figure suivante, la structure Événement est située à l'intérieur d'une structure Condition et le verrouillage de la face-avant est activé pour la condition Valeur changée.
Si vous cliquez sur la commande Obtenir la valeur, la face-avant se verrouille indéfiniment. La constante booléenne Faux câblée à la structure Condition empêche la structure Événement de gérer l'événement dans la condition Vrai. Comme le verrouillage de la face-avant est activé pour l'événement, la face-avant attend que la structure Événement s'exécute, mais le flux de données empêche cette dernière de gérer l'événement. Si vous désactivez le verrouillage de la face-avant pour cette application et que vous cliquez sur la commande Obtenir la valeur, la face-avant réagit de nouveau et le VI termine son exécution lorsque vous cliquez sur le bouton Stop. Cependant, la valeur numérique ne s'incrémente pas car la structure Événement ne peut toujours pas s'exécuter pour gérer l'événement.