Discussions au sujet des autres produits NI

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

partage voie d'entrée

Résolu !
Accéder à la solution

Bonjour,

Pour un si petit programme, je ne pense pas que cela nuise au performance de votre système( on peut toujours faire le test pour le savoir).

Mais dans le cas d'un programme plus lourd, je vous conseil dans la mesure du possible d'éviter d'imbriquer les boucles while les une dans les autres.

Votre code sera ainsi plus lisible et plus propre.

Donc si vous souhaitez réutiliser ce code dans un autre projet, je vous conseil de n'utiliser qu'une seule boucle si cela est possible.

Cordialement

Yann C.

France

0 Compliments
Message 11 sur 13
1 208 Visites

Vraiment merci beaucoup ça marche nickel.

 

J'ai  fusionné vos deux exemples pour avoir le partage de la voie et ignorer l'erreur du timeout. C'est beaucoup plus simple et clair que ce que j'avais réussi à faire.

 

Ce que je ne comprends pas c'est :

1) pourquoi vous mettez une attente de 1 ms dans la boucle

2) pourquoi la tâche "compteur d'impulsions" consomme beaucoup plus de ressources que la tâche "mesure de fréquence"

3) comment se fait t'il qu'il n'y ait pas besoin d'insérer un vi "attendre la fin de la tâche" pour éviter que les deux tâches ne se chevauchent.

 

Encore une fois merci.

0 Compliments
Message 12 sur 13
1 206 Visites

Bonjour,

 

1) L'attente dans une boucle while permet de liberer les ressources pour windows. Si vous créez une boucle while, votre boucle va s'executer le plus vite possible, elle prend toutes les ressources disponibles pour son execution. Si windows doit executer d'autre tâche (mise à jour de la Face-Avant, accès au disque dur,...), il ne pourra pas car il n'y aura plus de ressource disponible. Vous devez donc temporiser votre boucle et libérer des ressources processeur. Windows n'etant pas un OS temps réel, vous ne pouvez pas descendre en dessous de 1ms.

De plus si vous mettez plusieurs boucles while en parallèle sans cadencement, toutes les ressources vont être utilisé et vous ne pourrez plus fermer LabVIEW, votre PC aura freezé.

 

2) Dans votre application, la mesure de fréquence est plus lente que la mesure d'impulsion, donc elle demande moins de ressource.

 

3) Grâce au flux de données, LabVIEW sait quel VI doit s'executer avant un autre. Vous voyez que le cluster d'erreur est d'abord cablé sur le VI arreter une tache puis sur executer. Si le premier n'a pas finis de s'executer alors le deuxième ne peut commencer. C'est un des principes fondamentales de LabVIEW.

 

Si vous souhaitez en apprendre plus sur LabVIEW, National Instruments propose des formations: Formations et certifications

 

Cordialement,

0 Compliments
Message 13 sur 13
1 190 Visites