Discussions au sujet de NI LabVIEW

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

Reseting VI et application qui fige.

Bonjour à toutes et à tous, 

 

Voici mon problème : 

Dans le cadre de mon travail de master j'ai créé une application afin de contrôler une cigarette électronique et d’enregistrer les données qui en découlent via une communication série. 

Malheureusement cette application n'est pas stable et fige et indique parfois reseting VI. Le seul moyen est de passer par le gestionnaire des taches pour stopper l'application. 

 

J'ai déjà essayé de nombreuses façons de faire différentes mais je n'arrive pas à découvrir d'où vient le problème. 

Vous trouverez mon code joint. J'espère que vous pourrez m'éclairer sur les causes de mon problème. 

En vous remerciant d'avance je vous souhaite une belle soirée,

 

Steven. 

0 Compliments
Message 1 sur 13
2 682 Visites

Bonjour, je n'ai pas regardé ton code, je n'avais pas LabVIEW d'ouvert. 

Mais j'ai quelques questions:

> quelle version de LabVIEW?

> dans la fenêtre de reseting VI, il n'y a pas le nom du VI en erreur? as-tu une copie écran de cette fenêtre, qui indique le code qui ne répond plus.

> as-tu regardé la mémoire utilisée par le code? La RAM augmente ou pas? copie écran.

> as-tu du code, qui manipule un tableau avec la taille du tableau qui augmente? ou beaucoup de points? 

Je ne serai pas étonné de voir une fuite mémoire dans une partie du code. 

A suivre

banniere Luc Livre NXG Champion.png

Luc Desruelle | Mon profil | Mon blog LabVIEW | Auteur livre LabVIEW : Programmation et applications - G Web
Certified LabVIEW Architect (CLA) & Certified TestStand Developper (CTD) | LabVIEW Champion

MESULOG - LinkedIn site | NERYS - NERYS Group
| directeur CEO MESULOG
| CODIR - NERYS group

0 Compliments
Message 2 sur 13
2 646 Visites

Bonjour, 

Merci pour ta réponse. 

 

Je travaille avec LabView 16.0. 

La fenêtre suivante apparait (ci-joint) lorsque que je ferme la fenêtre du front panel. Le VI en question est mon VI principal (E-Cig_controlV8.vi). La RAM ne semble pas augmenter. 

En effet je mets en graphique et enregistre une dizaine de valeurs toute les 100ms. 

Je pense que tu vois juste mais je n'ai pas encore assez d'expérience en débogage.

Merci de ton aide. 

 

Steven

Tout télécharger
0 Compliments
Message 3 sur 13
2 641 Visites

 

Ca vient probablement du fait que ton VI XY_s.vi est en "shared clone reentrant execution". Essaie plutôt en "preallocated". De toute manière au vu de l'utilisation que tu en fais, ça me paraît mieux.

 

Message 4 sur 13
2 622 Visites

Bonjour, 


@Walker34  a écrit :

 

Ca vient probablement du fait que ton VI XY_s.vi est en "shared clone reentrant execution". Essaie plutôt en "preallocated". De toute manière au vu de l'utilisation que tu en fais, ça me paraît mieux.

 


J'ai effectué le changement mais toujours les mêmes problèmes surviennent. 

0 Compliments
Message 5 sur 13
2 610 Visites

Salut

 

je suis assez d'accord, le code de "XY_s.vi" ne me plait pas. Je pense que le problème peut venir de là.

Si je comprends bien ton code, tu as 2 boucles d'acquisitions (DAQmx et VISA) à 100ms, et tu mémorises les points dans 4 "XY_s.vi".

memorise XY_s.png Le nombre de point n'est pas limité (?) il y a 4 registres à décalages multiplié pas 4 vi. Si le code fonctionne longtemps, c'est la fuite mémoire assurée = crash.

Si je comprends bien le code, tu as voulu faire une FGV (zone mémoire avec registre à décalage).

 

Pour savoir quel code est le problème, je te propose de désactiver des morceaux de code, afin de cibler le code qui génère le problème. Commence par désactiver (supprimer, ou utiliser le nœud de désactivation de code) les 4 VIs "XY_s.vi". Exécute le code -> toujours le crash?

 

Tu fais un exécutable ou tu fonctionnes uniquement en code source?

 

Si tu veux faire un tableau de points, via une acquisition Point par point, tu peux utiliser le VI "Data Queue PtByPt. Il va mémoriser les points, dans un tableau tournant, et garder une taille fixe, pour éviter la fuite mémoire.

A suivreData Queue PtByPt.png

banniere Luc Livre NXG Champion.png

Luc Desruelle | Mon profil | Mon blog LabVIEW | Auteur livre LabVIEW : Programmation et applications - G Web
Certified LabVIEW Architect (CLA) & Certified TestStand Developper (CTD) | LabVIEW Champion

MESULOG - LinkedIn site | NERYS - NERYS Group
| directeur CEO MESULOG
| CODIR - NERYS group

0 Compliments
Message 6 sur 13
2 599 Visites

Bonjour, 

 


je suis assez d'accord, le code de "XY_s.vi" ne me plait pas. Je pense que le problème peut venir de là.


En effet, j'ai bien l'impression que le problème vient de ma mise en graphique  

Dans mon cas, le but de "XY_s.vi" est seulement de permettre la mise en graphique de plusieurs variables sur le même graph. Je n'ai pas trouvé de solution idéal pour cela. Je vais investiguer le VI "Data Queue PtByPt" et je reviendrai vers vous si besoin.

 


Tu fais un exécutable ou tu fonctionnes uniquement en code source?


J'ai peur de ne pas comprendre la question.

 

Merci beaucoup pour votre aide sur ce projet. 

0 Compliments
Message 7 sur 13
2 595 Visites

Bonjour,

Pour mettre à jour un graphique, il faut imaginer que le nombre de points ne peut pas être infini. Il y a les graphs et les charts. Regarde la différence entre les 2, via les exemples de NI (menu Help de LabVIEW).

Supprime le code, pour faire un test, et voir si le code crash toujours

banniere Luc Livre NXG Champion.png

Luc Desruelle | Mon profil | Mon blog LabVIEW | Auteur livre LabVIEW : Programmation et applications - G Web
Certified LabVIEW Architect (CLA) & Certified TestStand Developper (CTD) | LabVIEW Champion

MESULOG - LinkedIn site | NERYS - NERYS Group
| directeur CEO MESULOG
| CODIR - NERYS group

0 Compliments
Message 8 sur 13
2 581 Visites

sinon, à la question



Tu fais un exécutable ou tu fonctionnes uniquement en code source?


J'ai peur de ne pas comprendre la question.

 


il faut comprendre, qu'à partir de ton code source (les VI) tu peux générer un exécutable autonome, soit un ".exe".(cf spécification de construction, il faut le toolkit application builder).

C'est plus claire? ou pas?

A+

banniere Luc Livre NXG Champion.png

Luc Desruelle | Mon profil | Mon blog LabVIEW | Auteur livre LabVIEW : Programmation et applications - G Web
Certified LabVIEW Architect (CLA) & Certified TestStand Developper (CTD) | LabVIEW Champion

MESULOG - LinkedIn site | NERYS - NERYS Group
| directeur CEO MESULOG
| CODIR - NERYS group

0 Compliments
Message 9 sur 13
2 580 Visites

Hello, 

J'ai remplacé mes registres à décalages par le  VI "Data Queue PtByPt" pour ma mise en graphique mais le problème persiste (XY_s2.VI). Après documentation, j'ai bien compris la différence entre le chart et le graph. J'opterai pour le graph dans le cas de mes multiplots mais je ne suis pas sur qu'il soit le plus approprié. L'utilisation du Data Queue PtByPt devrait éviter le problème dans les deux cas. 

 

Il faut comprendre, qu'à partir de ton code source (les VI) tu peux générer un exécutable autonome, soit un ".exe".(cf spécification de construction, il faut le toolkit application builder).

C'est plus claire? ou pas?


Pour reponse à ta question ,mon but n'est pas de générer un exécutable mais seulement de passer par labview.

 

Steven 

Tout télécharger
0 Compliments
Message 10 sur 13
2 563 Visites