From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.
We appreciate your patience as we improve our online experience.
From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.
We appreciate your patience as we improve our online experience.
le 08-10-2018 07:37 AM
Bonjour à tous
j'ai un problème de fin d’exécution d'une VI secondaire qui fait l’acquisition de donné d'un daq USB 6000 , de façon quand je clique sur la crois rouge pour quitter le VI principale labview interrompe directement l’exécution du VI secondaire , mon but est de terminer proprement l’exécution du vi secondaire avant de quitter .
vous trouvez ci-joint mon projet qui est basé sur modèle de state machine avec "queue" , pour voir l’exécution des états de la machine à états du VI secondaire je crée un fichier texte , si il y a un moyen de débogage de l’exécution du VI secondaire merci de m'aider aussi la dessus .
je code avec LabvieW 14 .
Merci
le 08-10-2018 08:45 AM
On n'a pas le vi secondaire alors c'est difficile de dire comment le terminer proprement. Il y a une variable globale USB 6000 qui contient une valeur Shutdown?, lors de l'événement Panel Close? tu peux donner à cette variable la valeur TRUE (si l'utilisateur confirme) ce qui j'imagine devrait arrêter le vi secondaire. Ensuite dans l'état shutdown tu utilise la méthode Remove VI du SubPanel USB 6000.
Ben64
le 08-10-2018 09:17 AM
Merci de votre raiponce ; la feuille secondaire et celle qui s’exécute dans le subpanel qui s'apelle Usb 6000.vi , le VI principale est le vi State machine.vi , qui sont tous joint dans le projet .
aussi j'ai déja essayer la méthode Remove VI qui ne ferme pas proprement le VI secondaire .
le 08-10-2018 09:57 AM
le 08-10-2018 03:07 PM
cela ne résolu pas le problème , toujours le vi state machine interrompe brusquement l’exécution du vi USB6000.vi , et les états Shutdown , et Exit ne sont pas exécuté dans le vi USB6000 , le grand problème est que la carte d’acquisition n'est plus vue lord du prochain lancement du programme .car la fonction clear task n'est pas executé .
le 08-10-2018 03:43 PM
Je n'ai pas ce problème en roulant ton vi. Quand j'assigne la valeur TRUE à la variable globale "Usb 6000 ShutDown ?" dans l'état ShutDown de "State Machine.vi" et que je ferme la fenêtre du vi principal (State Machine.vi) le vi Usb 6000.vi se termine par les états "Events" suivi de "Exit". Note que dans Events -> Timeout si Usb 6000 ShutDown est TRUE tu vas directement à l'état Exit (ce qui fait du sens car l'état shutdown ne fait que t'amener à l'état Exit). Comme je n'ai pas de USB-6000 pour rouler le code j'ai désactivé tous les codes DAQ mais je vois quelque chose que le USB-6000 peut ne pas aimer: dans l'état Exit tu écris dans la carte digitale avec autostart = TRUE pour ensuite immédiatement faire un Clear Task. Je te suggérerais d'insérer le vi DAQmx Wait Until Done.vi entre le DAQmx Write et le DAQmx Clear Task avec un timeout de 1 seconde (ce devrait être suffisant).
Ben64
Ben64
le 08-16-2018 03:24 AM
Bonjour
Merci , pour votre réponse , effectivement , ça marche , mon problème vient du faite que je travaille sur une copie sur un réseau local et dans le vi secondaire la variable globale "Usb 6000 ShutDown ?" dans la structure event timout n'est pas mis à jour .
encore une fois merci .