Discussions au sujet de NI LabVIEW

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

Tracer plusieurs courbe sur le meme graphique.

Résolu !
Accéder à la solution

Bonjour,

Mon probleme est le suivant:

 

J'ai un recepteur qui recoit des mesures de vibrations de differents capteurs. Actuelement ce recepteur transmet la mesure a l'ordinateur via port serie et labview affiche la derniere mesure recu, en indiquant le numeros du capteur a cote. J'aimerais que sur ce meme graphique pouvoir afficher une courbe pour chacun de mes capteurs (qui correspondrait a la derniere mesure envoyee par ce capteur). Chaque capteur envoi ces mesures avec une frequence differente, mais le recepteur recoit en plus de la mesure de vibration un identifiant pour savoir de quel capteur cela provient.

Cela vous semble-t-il possible?

 

Merci. (desole pour les accents...)

0 Compliments
Message 1 sur 11
8 475 Visites

oui, c'est possible.

 

tu as le choix entre un graph XY ou un waveform graph.

 

un graph XY attend un tableau 1D de cluster, 1 cluster = 1 courbe = un tableau de X et un tableau d'Y.

un waveform attend un tableau 1D de waveform (le waveform est un type de donnée), waveform = T0 + dt + tableau d'Y + variant pour les métadonnées.

 

le meilleur choix dépend de comment est structurée ton appli, est ce que tu as une ou plusieurs boucle pour l'acquisition de tes appareils?

si tu as un VI qui fonctionne déjà, montre le qu'on voit comment on peut t'aider à inbtégrer ton graph multicourbe dedans.

 

je te suggère de jeter un oeil aux exemples qui sont dans LabVIEW : Help >> find examples >> onglet "search"


We have two ears and one mouth so that we can listen twice as much as we speak.

Epictetus

Antoine Chalons

Message 2 sur 11
8 469 Visites

J'ai essaye ces solutions, mais je ne parvient pas a regler mon probleme pour la raison suivante:

Je n'ai qu'une entree a mon graph, un seul cluster, qui se met a jour a chaque reception de mesure (tout provient de la meme boucle). A un temps donnees ce cluster correspond donc a mon capteur 1, puis au capteur 2 ect ect. Pour utiliser cette solution il faudrait que je puisse separer ce cluster en different cluster chacun correspondant a un capteur, c'est l'etape ou je bloque. 

0 Compliments
Message 3 sur 11
8 465 Visites

est ce que c'est vraiment un graph et pas plutôt un chart (=graph déroulant)?

 

si tu veux utiliser un chart il faut que tes poins de tes n courbes arrivent en même temps, donc si j'ai bien compris ton besoin, ça ne va pas...

est ce que tu peux poster ton VI ou au moins un screenshot?


We have two ears and one mouth so that we can listen twice as much as we speak.

Epictetus

Antoine Chalons

0 Compliments
Message 4 sur 11
8 463 Visites

Aie, bon en faite je n'avais jamais fait de labview avant, du coup mon VI marche bien mais c'est surement "tres sale" pour un abitue.

 

Je joint une capture d'ecran da la zone qui m'interresse, quelque explication: pour chaque mesure de vibration j'ai 3 graphe, un pour chaque axe (x, y, z). la boucle for de 126 iteration correspond au 126 point que j'ai sur chaque graphe. Tout cela est dans une "case structur" qui s'active quand je recoi une mesure de type vibration.

 

Actuelement cela marche tres bien: a chaque nouvelle mesure de vibration les 3 graphe se mettent a jour. mon probleme etant que j'aimerais sur chaque graphe afficher une courbe pour chaque capteur (les courbe ne se metterais donc pas a jour en meme temps, je ne recoit pas les mesure de facon simultane).

 

Desole pour les explications surement pas tres claire. Je te donne pas le VI complet car en faite ce n'est qu'une toute petite partie, je recois plein d'autre type de mesure ect, et vu l'organisation tres defaillante de mon code je ne pense pas que ce soit util.

0 Compliments
Message 5 sur 11
8 460 Visites
Solution
Accepté par l'auteur du sujet thomas14

bon j'ai vu pire mais j'ai aussi vu mieux Smiley très heureux

 

pour faire ce que tu veux il serait bon de travailler sur la structure... dans tes graphs (qui sont des graphs XY), tu dois à chaque fois apporter les données de toutes tes courbes, tu ne peux pas donner un coup la courbe 0, un coup la courbe 1, etc...

donc je pense que le mieux est que tu construises tes 3 courbes indépendemment pour chaque chaque capteur, dès que tu reçois des données d'un capteur tu ajoutes les données aux 3 courbes correspondantes.

pas simple à expliquer sans diagramme...

 

je me demande si mon vi n'est pas plus compliqué que ce qu'il te faut... fait le tourner pour voir ce que ça donne côté IHM et dis moi si c'est bien le bon type de fonctionnement.

 


We have two ears and one mouth so that we can listen twice as much as we speak.

Epictetus

Antoine Chalons

Message 6 sur 11
8 448 Visites

Merci beaucoup, je pense que cela correspond exactement a ce que je recherchais 🙂 

j'implemente cela dans mon VI demain, je vous tient au courant.

0 Compliments
Message 7 sur 11
8 445 Visites

note quand même qu'au niveaux gestion de la mémoire c'est pas top... faire des "build array" à chaque nouvelle arrivée de donnée, c'est pratique mais ça a ses limites.

si tes acquisition ne durent pas trop longtemps ça va, mais si tu veux que ça puisse durer longtemps il faudra mettre en place une technique différente pour faire en sorte de ne pas garder tout l'historique des données en mémoire. D'autant plus que si chacun de tes appareils a une fréquence d'acquisition fixe il vaut mieux utiliser des waveform graph que du graph XY.

dans le code que je t'ai fait pour chaque courbe tu as ton tableau d'X est le même... c'est pas top, si tu utilises un waveform tu n'as que le tableau d'Y pour chaque courbe + un dt.

 

bon courage


We have two ears and one mouth so that we can listen twice as much as we speak.

Epictetus

Antoine Chalons

0 Compliments
Message 8 sur 11
8 439 Visites

Bonjour Thomas,

 

Avez-vous pu implémenter la solution proposée par Titou ?

 

Cordialement,

 

0 Compliments
Message 9 sur 11
8 407 Visites

Voila, un peu en retard mais oui c'est fait, et cela marche tres bien, merci beaucoup pour le temps passe Titou.

 

Pour ce qui est des problemes de performance, dans mon cas ce n'est pas un probleme, mais merci pour les precisions, sa peut toujours etres util 🙂

 

En bonus un petit screen des mes graphs.

Message 10 sur 11
8 393 Visites