Discussions au sujet de NI LabVIEW

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

Graphique XY données en mémoire

Bonjour à tous, 

 

Dans un programme d'acquisition, enregistrement et traitement de mesures de température, j'affiche les données en temps réel via un graph XY des thermocouples séléctionnés via un sous-vi (acquisition thermocouple sélectionnables_V2 en pièce jointe). Puis j'affiche ce graphique dans mon programme principale (acquisition échangeur thermocouples V14 en pièce jointe). 

 

J'ai néanmoins un problème. Lors du premier lancement du programme, le graphique affiche le nombre de mesure à l'intervalle de mesure sélectionné dans le graph sans problème. Mais lorsqu'on arrête le programme et qu'on le relance pour une nouvelle acquisition, le graphique XY va afficher les données de la précédente exécution et celles de l'actuelle sur le graphique... 

 

J'ai déjà essayer avec des noeuds de propriétés de remettre à zéro le graph dans le Vi principal et le sous-VI ... sans succès. 

 

Un screen du problème en question:

Screen problème graph.png

 

-> ma première acquisition s'est éfectuée entre 14:48 et 14:49 et la seconde entre 14:50 et 14:51. et je ne voudrais que l'affichage de la seconde ...

 

Si vous voyez où peut se trouver la réponse au problème je suis preneur! 😉 

 

Merci d'avance, 

 

Vince. 

0 Compliments
Message 1 sur 19
5 243 Visites

Il y a-t-il une option qui permet de vider la mémoire d'un sous-vi lorsque l'on arrête le programme principal par exemple ? 

 

Une idée quelqu'un ? ... 

 

Vince. 

0 Compliments
Message 2 sur 19
5 216 Visites

Non, c'est à toi de gérer l'initialistion de ton/tes VIs pour qu'il s'adapte au besoin en cas de lancement multiple.

 

Le plus basique est de rajouter le noeud de propriété "rétablir valeur par défaut" au début du diagramme de ton Sous-vi.


Cela va remettre par défaut toutes les commandes / indicateurs.


Dans le cas des registres à décalage, tu fais leur initialisation, en cablant ta valeur par défaut en entrée de la boucle while.

 

“En science, la phrase la plus excitante que l'on peut entendre, celle qui annonce des nouvelles découvertes, ce n'est pas "Eureka" mais c'est "drôle"
Isaac ASIMOV
0 Compliments
Message 3 sur 19
5 213 Visites

Bonjour Michael,

 

J'ai effectué ce que tu m'as indiqué: 

Screen modif.png

 

lorsque j'execute le sous-vi seul, c'est exactement ce que je veux. 

 

Mais lorsque j'execute lr programme principal en sollicitant le sous-vi, celui-ci affiche les points de mesures en remplaçants les points de la mesure précédente. Ce qui fait que je n'ai plus d'heure en abscisse et plus de tracé du coup:

screen graph modif.png

 

0 Compliments
Message 4 sur 19
5 210 Visites

et juste avec le noeud de propriété, sans la mise à zéro des registres à décalage, le problème est le même qu'au début 

0 Compliments
Message 5 sur 19
5 209 Visites

J'ai lancé une exécution avec la loupiote depuis le programme principal et j'obtiens ca en sortie: 

 

Screen run.png

 

je suppose que pour avoir uniquement le tracé qui m'interesse, je dois a voir #0 ou #1 en sortie des données du graphiques. Mais je ne vois pas comment faire ... 

0 Compliments
Message 6 sur 19
5 205 Visites

Le #xxx indique le nombre d'éléments présents dans un tableau sur un lien donnée.


Au niveau de ton VI principal, il faut aussi que tu réinitialise le graphique, avec le noeud de propriétés du graphique : soit supprimer histoirique soit du cable un tableau VIde, au démarrage de ton script.


En effet, chaque instance de graphique déroulant (vi, sous vi, ....) va réaliser sa propre allocation mémoire, et conserver son propre historique.

 

Cdt,

Michael

“En science, la phrase la plus excitante que l'on peut entendre, celle qui annonce des nouvelles découvertes, ce n'est pas "Eureka" mais c'est "drôle"
Isaac ASIMOV
0 Compliments
Message 7 sur 19
5 203 Visites

C'est ce que j'ai effectué aussi en incluant des noeuds de propriétés "Valeur" = tableau vide avant la boucle FOR de mesure... toujours le le même problème. 

 

Je ne trouve pas le noeud de propriété ou de méthode "effacer historique" dont tu parles pour un graph XY 

0 Compliments
Message 8 sur 19
5 200 Visites

Normal, ce noeud de propriété n'est disponible que pour des graphiques déroulants quii comme son nom l'indique mémorise les valeurs au fur et à mesure.

 

Dans le cadre d'un graphique XY, le graphique n'a pas de mémoire propre, donc ton souci ne provient pas du graphique mais de ton tableau XY, c'est ce tabelau là qu'il te faut réinitialiser entre 2 runs.

 

Par contre je viens à nouveau de regarder ton screen, et je t'avoue être inquiet par le nombre de registre à décalage présent sur ton image.

 

Ne peux tu pas limiter ce nombre en adoptant un fil commun ?

Par exemple, il te suffit de passer à un tableau à 3 dimensions pour stocker toutes tes données dans un fil, améliorant la lisibilité de ton code, et soulageant ta recherche de bug ;).

 

Ou alors si tu veux quelques choses de plus "parlant" un tableau de cluster (chaine + tableau 2D), ainsi la chaine te donne le nom du traçé et le tableau 2D stocke les valeurs XY.

“En science, la phrase la plus excitante que l'on peut entendre, celle qui annonce des nouvelles découvertes, ce n'est pas "Eureka" mais c'est "drôle"
Isaac ASIMOV
0 Compliments
Message 9 sur 19
5 195 Visites

Je suis d'accord, mais alors sachant que j'utilise pour l'affichage des données de ce tableau un graphique XY, Quelle est l'astuce pour effacer l'historique du tableau des données X Y du graphique? j'ai essayer tout les noeuds de propriétés et de méthodes pour le tableau ou le graphique... sans succès. 

 

Merci de ton aide. 

0 Compliments
Message 10 sur 19
5 190 Visites