Discussions au sujet de NI LabVIEW

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

Prrogramme ne s'executant pas (Labvew 2012)

Bonjour,

 

Je vous met en lien ce programme, qui fonctionne en tant que tel, n'a pas d'erreur quand je force labview a le recompiler.


Aussi quand je le lance, le programme s'execute bien et quand on lance l'execution détaillée, on voit que le programme tourne correctement.

 

Cependant le graph qui devrait etre mis a jour en temps réel n'affiche rien, et le programme ne réagis pas.

 

Je vous ai mis en piece jointe les VI qui sont susceptible de causer cette erreur.


Par mail, je peux vous envoyer le reste des VI's si vous le désirez.

 

Le principe de ce programme est l'acquisition des réactions électriques d'un capteur de pression, soumis à une impulsion de pression. Ceci afin de calculer sa sensibilité.

 

Je dispose pour cela d'un conditionneur de signal, qui fonctionne. Un NI BNC 2110, qui fonctionne aussi, relié au pc par un cable dont je ne me rappelle plus le nom mais qui fonctionne très bien aussi. Le programme a été réalisé sous Labview 2012 (daqmx 9.8)

 

J'en appelle donc à votre aide pour m'aider a trouver pourquoi ce programme pourtant a mes yeux OK, s'execute sans vraiment s'executer. Est - ce du à un problème de version labview? une boucle infinie (que je ne vois pas)?

 

En vous remerciant d'avance,

 

 

Tout télécharger
0 Compliments
Message 1 sur 4
4 191 Visites

Bonjour Shazy,

 

Je ne sais pas ce qui ne fonctionne pas avec le graphe mais en ouvrant le code je peux faire plusieurs suppositions ou en tout cas propositions d'amélioration.

 

1 / Je ne suis pas sûr de la pertinence d'utiliser une boucle While dans une boucle While, elle même dans une autre boucle While. Je ne pense pas que cela ait un sens d'un point de vue programmation pure.

2 / De façon générale, le code de la boucle While principale n'est pas assez bien rangé. Il conviendrait de simplifier au maximum le diagramme et de réarranger les fils et les fonctions afin d'avoir un diagramme lisible, compréhensible, et donc modifiable.

3 / Il manque des sous-VI dans le code que tu as envoyé, mais il me semble que tu crées une tache à chaque tour de boucle While. Si celle-ci ne change pas, il n'y a pas de raison de la recréer, aussi il serait plus correct de la créer en amont de la boucle While. Dans le même esprit, il faut supprimer la tache une fois qu'elle ne servira plus, souvent en sortie de la boucle While. Je te conseille de regarder les exemples NI DAQmx (en continu) pour voir ce principe et le réutiliser au mieux ici.

 

En espérant que cela puisse t'aider à avancer,

Bonne journée!

M-Junior

 

0 Compliments
Message 2 sur 4
4 174 Visites

Respect à Marc-Junior pour son intervention et remarques ... justifiées, précises et pertinentes.

 

Quant à moi, je dirai plus simplement :

 

comment arrives-tu à travailler avec une "chose" comme ça ?

Tu as de tout .. du flux inversé, des objets cachés ... tu as même le terminal d'itération de la while principale caché sous une autre boucle.

Il faudrait commencer par prendre 1hr pour tout recabler et "rendre propre".

 

Tu dois "repenser" ta façon globale d'envisager un programme écrit en LabVIEW, tu y gagnerais beaucoup.

 

 

aaaa.png

 

Voici deux liens qui pourraient t'aider à progresser.

 

The LabVIEW Style Book     et      LabVIEW Style Checklist 

 

 

Message 3 sur 4
4 169 Visites

j'ajoute la gestion de l'erreur, qui peut expliquer "fonctionne en source" mais pas en exe, mais pas de gestion de l'erreur dans le code. A+

banniere Luc Livre NXG Champion.png

Luc Desruelle | Mon profil | Mon blog LabVIEW |
LabVIEW Architect (CLA) & TestStand Developper (CTD) | LabVIEW Champion
MESULOG | NERYS

0 Compliments
Message 4 sur 4
4 148 Visites