le 07-28-2014 06:27 AM
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...)
Résolu ! Accéder à la solution.
le 07-28-2014 07:41 AM
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
le 07-28-2014 08:00 AM
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.
le 07-28-2014 08:18 AM
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
07-28-2014 09:06 AM - modifié 07-28-2014 09:10 AM
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.
le 07-28-2014 09:47 AM
bon j'ai vu pire mais j'ai aussi vu mieux
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
le 07-28-2014 10:53 AM
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.
le 07-28-2014 01:40 PM
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
le 07-30-2014 02:51 AM
Bonjour Thomas,
Avez-vous pu implémenter la solution proposée par Titou ?
Cordialement,
Isabelle G.
National Instruments France
Été de LabVIEW 2014
12 présentations en ligne, du 30 juin au 18 juillet
le 07-30-2014 10:13 AM
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.