Graphe en temps réel par tableau de valeurs

Bonjour,
Je cherche à programmer une IHM en liaison avec un microcontrolleur.
Une des fonctions à réaliser est de recevoir les données envoyées par le microcontrolleur, de les traiter et de les afficher.
J'ai du mal au niveau de l'affichage pour l'instant, et je me demandais si vous pourriez m'aider.
Le protocole mis en place est la réception d'un tableau de maximum 20 valeurs toutes les secondes.
Ce que je n'arrive pas à effectuer est l'affichage "temps réel" des valeurs. C'est à dire que je souhaite actualiser l'affichage du graphe avec les nouvelles valeurs reçue, ainsi qu'en affichant en abcisse le temps t et non pas le nombre de valeurs.
Ce n'est peut-être pas très clair donc je vous link mon VI test à ce propos.
Su ce VI je génère des valeurs aléatoires que je traite. Ensuite j'essaye de les envoyer par array de 20 sur mon graph.
Les problèmes rencontrés sont :
_ Les nouvelles valeurs sont rajoutées "à gauche" du graph, c'est à dire au niveau du 0 de l'axe des abcisses et pas "à la suite" du graph précédent
_ Les valeurs de mon tableau se remplissent également dans le mauvais sens : la dernière valeur du tableau correspond à l'index 0 alors que je souhaiterais le contraire
Merci d'avance pour votre aide.
Résolu !
Accéder à la solution.
Pièces jointes :
concatenate graph v1.0.vi ‏21 KB

Voici les résultats que j'obtiens en cherchant graph XY dans l'aide. Cf pièce jointe.
Mon logiciel est en anglais, mais je ne pense pas que les exemples soient différents d'un language à l'autre.
Les seuls VI proposés ayant comme nom graph XY sont ceux permettant de mettre un graph dans Excel ou Word, ce qui n'est pas ce que je recherche.
Cet exemple ne serait-il pas présent sur ma version de Labview ?
Pièces jointes :
forum labview01.png ‏56 KB

Similar Messages

  • Graphe + (affichage temps réel) des données d'un tableau

    bonjour,
    voila j'ai un léger probleme avec mon vi ,
    j'ai deux tableaux , un avec la température et un avec le temps, lorsque j'execute mon eurotherm reagit bien 50°C pendant 30 secondes
    pas de souci.
    cependant je voudrai que ceci s'affiche en temps réel sur un graphique déroulant ou xy or celui-ci réagit bizarrement
    et je ne sais pas comment faire pour le faire bien apparaitre
    j'utilise une fonction assembler por assembler les 2 tableaux contenant la température et la durée cependant ca ne amrche pas comme je veux ejk vous joins mon vi, voyez si vous pouvez y a pparter des modifications.
    merci d'avance
    Attachments:
    température=f(temps).vi ‏46 KB

    Hi,
    thanks to post your questions in english, otherwise you can post any questions you want in french in the french community of the forum.
    Please also try to avoid creating several treads for the same question. This tread is transfered to the link below:
    graphe + (affichage temps réel) des données d'un tableau
    Regards,
    ClémentG

  • Comment traduire un tableau de valeur en format GPIB?

    Bonjour,
    je suis stagiaire en laboratoire  de recherche, et dans ce cadre,
    je developpe actuellement un programme qui assure la recuperation des
    paramètres d'erreur d'un analyseur de réseau vectoriel, qui seront par
    la suite traités, puis réenvoyés à cet appareil.
    Je suis confronté au soucis suivant :
    la liaison GPIB n'accepte qu'un format de donnée précise, je
    souhaiterai savoir si il est possible de "traduire" de facon
    instantanée un tableau de valeur sous format reconnu par la liaison
    GPIB (à savoir le +1.000000000E+00 au lieu de 1).
    Ceci est un détail relativement simple, cependant je lutte depuis 2 jours avec sans trouver de solution ^^"
    En vous remerciant
    Tayuuya

    Voici une manière simple pour réaliser cette transformation. Je vous invite à consulter l'aide pour la définition des codes de conversion en chaîne de caractères.
    Il faudra encore faire une petite manipulation si deux chiffres sont nécessaires pour l'exposant.
    Message Edité par JB le 05-22-2008 08:19 AM
    Attachments:
    Example_VI.png ‏3 KB

  • Creer un tableau de valeur

    Bonjour,
    Je travaille sous labview 8.2. 
    Je souhaite créer un tableau de valeur "al" qui va de 0 à la valeur (M/2 - 1)  et de -M/2 à -1.
    J'arrive a créer la première partie de 0 à (M/2 - 1) mais je n'arrive pas à faire l'autre partie.
    J'utilise la fonction "opposé" mais je ne comprends pas pourquoi l'opposé de 1 devient 4294967295???
    Merci d'avance. 
    Résolu !
    Accéder à la solution.
    Pièces jointes :
    creation al.vi ‏13 KB

    Merci a vous! pas bien réveillé en ce lundi...
    Pièces jointes :
    creation al.vi ‏13 KB

  • Remplir un tableau à partir d'un graphe, en temps réel

    Bonjour,
    J’ai un petit problème avec mes thermocouples, le signal qu’elles renvoient à l’acquisition est très bruité, j’ai donc filtré passe-bas ce signal. Mon principal problème se situe à l’étape suivante, celle du traitement du signal.En effet je voudrais relever des valeurs toutes les minutes et remplir un tableau avec la date et l’heure de ces relevés.
    J’ai donc créé une table qui affiche les valeurs relevé mais le problème est que la table se remplie vraiment très vite, je n’arrive pas à le régler le système de façon à relever le signal comme je voudrais.
    De plus je ne sais pas qu’elles sont celle du signal filtré et celle du signal non filtré.
    Est-ce que quelqu’un pourrait m’éclairer svp ?
    Merci d’avance pour vos réponses !
    Résolu !
    Accéder à la solution.

    Voila le VI.
    J'ai oublié de préciser que j'ai simulé un signal dent de scie avec un bruit blanc pour effectuer les essais et que les thermocouples seront cablées par la suite et reliées à un DAQ.
    Pièces jointes :
    exemple filtre 2.1.vi ‏74 KB

  • Problème graphe en temps relatif

    Bonjour,
    J'ai crée un VI d'acquisition de tension avec un port USB NI9219 qui mesure différentes tension d'entrée à une fréquence élevée(ex : 100 Hz). De plus mon VI enregistre les mesures que lorsque la tension mesurée change de 0,01v. Le VI trace également les courbes de tension dans un graphe déroulant qui comporte tous les points enregistrés (et seulement ceux la) depuis le lancement de l'application.
    C'est sur ce point que je n'arrive pas à avoir un graphe déroulant avec plusieurs courbes (4 maximum) avec une échelle des x en temps relatif. C'est à dire de t=0 (ex : minutes) jusqu'a t=fin du VI
    Lorsque je met les x en temps relatif il ne me met pas de temps mais des valeurs abérantes. De plus il n'incrémente pas du temps éffectué entre 2 mesures, il incrémente le temps de 1.
    (ex : on a t=5min entre 2 mesure enregistrées mais la courbe incréménte le temps de 1 sur la valeur abérante).
    Avez vous des solutions pour mon problème. Merci.
    Cordialement.
    Solved!
    Go to Solution.

    Cette valeur correspond à l'heure de la mesure, 952500:36:41 correspondant à 14h36 et 41s.
    Cela permet d'horodater les points plus précisément.
    Si vous souhaitez recréer votre échelle de temps en X, il faudra modifier le T0 de votre courbe.
    Pour cela vous allez devoir utiliser la fonction Construire une waveform permettant d’insérer votre courbe et aussi de modifier le t0, on insère cette fonction dans une boucle For afin de traiter les 4 courbes.
    Au départ du VI on initialise un registre à décalage à 0 afin que nos premiers points commencent à 0, puis on devra multiplier l’horloge d’échantillonnage par le nombre de point afin de définir le t0 des tours de boucles suivants.
    Cela devrait résoudre votre probléme.
    Cordialement
    Christophe S.
    FSE East of France І Certified LabVIEW Associate Developer І National Instruments France

  • Visualisation d'un graphe en temps reel à travers une subroutine

    Bonjour tous,
    Je développe un programme dans lequel je fais intervenir plusieurs subroutines. L'une d'entre elles me permet de visualiser un graphe (courbe d'hystérésis) en temps réèl. Malheureusement, ce graphe qui fonctionne très bien lorsque cette subroutine tourne seule ne fonctionne plus lorque cette subroutine est incorporée dans le programme principal. En effet, je n'obtiens que deux demi-courbes (rampe montante-rampe descendante) une fois qu'elles sont effectuée dans leur intégralité. Ces deux demi courbes correspondent à deux boucle while effectuées l'une après l'autre.
    Comment faire donc pour garder ce sous programme (que je vous envoie) en tant que subroutine facilement incorporable dans le programme principal tout en ayant la possibilité de visualiser la construction du graphe point par point (et non demi courbe après demi courbe).
    Merci à ceux qui ont essayé de comprendre, et grand merci (+ chocolats à Noël) pour ceux qui m'auront donné une solution.
    Attachments:
    hystérésis visible.vi ‏124 KB

    Bonjour,
    Pour visualiser une acquisition en continu à partir d'un programme principale plusieurs solutions existent :
    Le plus simple est de modifier la structure du programme pour que le sous-VI ne contienne pas la boucle while et que celle-ci soit présente dans le programme principal.
    Une autre solution simple est d'afficher la face avant du sous-VI contenant le graphique déroulant en premier plan lorsque vous faîtes appel à ce sous-VI. Vous avez aussi éventuellement la possibilité d'inclure la face avant du sous-VI dans un conteneur de face avant secondaire.
    Le problème que vous rencontrez fait appel à des notions abordées durant nos journées de formation.
    Vous pouvez également consulter les différentes ressources pédagogiques disponibles à l'addresse suivante :
    http://digital.ni.com/worldwide/france.nsf/web/all/F32FE08B3CE85FB6C1256EEF0045AEE3?opendocument&node=200102_f
    Salutations,
    Marc Larue
    Ingénieur d'application
    NIF

  • Graphe + tableau

    salut tout le monde!
    je veux faire un graphe de temps à partir d'un tableau comme indique les photos!!
    est t-il possible de faire n graphe pareil! 
    merci pour l'aide
    Pièces jointes :
    table event.PNG ‏7 KB
    graphique.PNG ‏29 KB

    Salut malmou,
    Ta question a suscité mon intérêt, je suis arrivé à faire quelque chose qui ressemblait à ce que souhaites faire:
    La méthode:
    - A période régulère, tu enregistre l'état de l'événement: actif (1) ou non actif (0)
    - Tu utilises un cluster pour envoyer les données dans un Graphe déroulant
    Ensuite tout est fait dans la config du graphe:
    - superposer les courbes
    - mode d'interpolation (carré)
    - remplissage sous la courbe jusqu'à 0
    Francis M | Voir mon profil
    Certified LabVIEW Developer

  • Effacer graphe XY avec tableau indexé

    Bonjour
    Je cherche à effacer un graphe XY avec ses tableaux en amont qui sont indexés par un registre à décalage sur la boucle While.
    Je n'arrive pas à effacer les tableaux de valeurs (j'utilise certainement une mauvaise solution)
    Ci joint un VI simplifié mettant en évidance ce que je veux faire.
    Résolu !
    Accéder à la solution.
    Pièces jointes :
    Graphe XY à effacer.vi ‏17 KB

    D'abord, mettre le bouton d'effacement dans la boucle. Ensuite, ce sont les registres à décalage qui doivent être ré-initialisés, pas le graphe !
    Chilly Charly    (aka CC)
             E-List Master - Kudos glutton - Press the yellow button on the left...        
    Pièces jointes :
    Graphe XY à effacer.vi ‏15 KB

  • Récupérer la valeur lue par une commande dans un tableau

    Bonjour à tous,
    Je vous explique mon problème : je récupère un tableau de valeurs. J'aimerais envoyer les valeurs de ce tableau dans une commande qui permettra alors de modifier la valeur de la fréquence en fonction de ce tableau de valeurs. 
    Seul soucis : Les fréquences générées sont bel et bien toutes envoyées par la commande (Vérification à l'oscilloscope, tout va bien). Par contre, sous labview je ne peux pas afficher ma fréquence maximale dans le tableau final (il y a apparition du caractère # dans la première case). Comment faire pour récupérer toutes les valeurs envoyées par mes commandes dans le tableau final (avec la fréquence maximale qui apparait dans le tableau au final). J'ai beau cherché je vois pas comment faire...
    Exemple : Frequence min = 30 Frequence max = 300
    Je me retrouve avec un Tableau de 30 40 50 60 70 80 90 100 et 200 mais j'aimerai que 300 apparaisse (en supprimant si possible le caractère # ?)
    J'espère que j'ai pu m'exprimer de manière claire, je vous envoie ci-joint mon programme en intégralité.
    En vous remerciant.
    Cordialement,
    Reborn
    Pièces jointes :
    Detection synchrone.vi ‏44 KB

    Bonjour,
    Merci d'avoir posté sur le forum NI.
    Pourriez vous poster un VI simplifié reproduisant l'erreur que vous rencontrez (sans utiliser les VI de communication ou autre) afin qu'ils soit plus simple pour les membres de cette communauté de pouvoir vous aider?
    Cordialement,
    Nicolas M.
    National Instruments France
    #adMrkt{text-align: center;font-size:11px; font-weight: bold;} #adMrkt a {text-decoration: none;} #adMrkt a:hover{font-size: 9px;} #adMrkt a span{display: none;} #adMrkt a:hover span{display: block;}
    Journées Techniques LabVIEW 2012 : du 27 septembre au 22 novembre
    2 sessions en parallèle : Débuter a...

  • Comment obtenir les coordonnée​s de la souris par rapport au repère du graphe ?

    Bonjour,
    Je voudrais savoir comment récupérer les coordonnées du curseur de ma souris lorsque celle-ci passe sur un graphe. Pas les coordonnées en pixel par rapport au coin du VI, mais les coordonnées par rapport au repère orthogonal du graphe. Je ne peux par contre pas utiliser de curseurs pour cela. Je suis étonné de ne pas avoir trouvé de fonction le permettant.
    J'utilise LV 2013.
    Merci :-)

    Bonjour,
    Pourtant cette fonction existe bien
    Cordialement,
    Da Helmut
    Pièces jointes :
    exemple.vi ‏24 KB

  • Modifier dynamiquement les échelle d'un graph et si possible faire une double échelle pour l'axe x et y

    Bonjour,
    j'ai un tableau de données représentant un signal. Dans mon exemple joint, il sagit d'un signal carré.
    Dans mon cas, ce tableau fait 2508 points.
    Le graph actuelle que j'ai, affiche en x l'indice du point, donc de 0 à 2508, et en y les valeurs dans le tableau.
    ceci me convient presque, sauf qu'a partir d'une variable d'entrée sur mon schéma, je souhaite initialiser le tableau avec x à 3000 points.
    alors je pourrais le faire dans les propriétés du graph et ne plus y toucher, sauf que dans mon programme cette variable d'entrée peut avoir par exmple les valeurs 1000, 3000, 6000, etc...
    Cette variable se trouve dans un menu déroulant
    je pense qu'il faut créer un noeud de propriété pour ce graphique, je ne trouve pas quoi choisir.
    Dans le cas où ça fonctionne, est il possible d'avoir un double axe x. 1 avec le nombre de points, et un second axe qui correspondrait à un temps, c'est à dire le numéro du point multiplié par une constante temps. ?
    Merci d'avance.
    Je travaille sous Labview 2010sp1 avec l'ensemble des toolkits et j'ai sauvegardé le fichier en version 8.5
    je mets en fichier joint un vi avec le tableau des données, le grah.
    Résolu !
    Accéder à la solution.
    Pièces jointes :
    graph - double échelle.vi ‏14 KB

    Bonjour,
    Le plus simple est de cliquer avec le bouton droit sur l'étiquette de l'échelle déja présente (ici "Temps") et de faire "Dupliquer l'échelle". Ceci créera une deuxième échelle pour l'axe des X.
    Cordialement,
    Da Helmut

  • Comment utiliser les données à la sortie de AI-Read (tableau mis à l'échelle)?

    Comment faire pour utiliser les données à la sortie de AI-Read (Type : Tableau mis à l'échelle)?
    Je souhaite écrire tous les points en colonne dans un fichier texte pour pouvoir les exploiter dans Excel. J'ai relié les données telles quelles au module 'Ecrire dans un fichier', mais quand j'ouvre le fichier texte, les données sont toutes les unes à la suite des autres : inexploitable dans Excel (dans mon cas, j'ai 1000 points par balayage, ceci étant répété jusqu'à la fin de la séquence et je veux pouvoir utiliser tous ces points). J'ai également essayé de reformater le tableau 2D en tableau 1D, mais quand je fais cela, je perds énormément de points. Je voudrais pouvoir les reformater pour les mettre en colonne, et ensuite tracer la courbe sous Excel.
    De plus, je souhaiterai utiliser ces points pour tracer la courbe sur la face avant de Labview (si possible en graph déroulant).
    Merci d'avance.
    Hélène

    Bonjour,
    Je vous conseille dans un premier temps de regarder et tester l'exemple d'enregistrement continu de données dans un fichier texte au format tableur qui est fournit avec LabVIEW (Menu Aide >> Recherche d'exemples... puis E/S Matérielles >> DAQ Traditionnel >> Entrées analogiques >> Stream to disk >> "Cont Acq to Spreadsheet File.vi").
    Cet exemple permet de stocker les points lus dans le buffer d'acquisition (sortie du AI Read) dans un fichier texte au format tableur (type Excel).
    Attention, les temps d'écriture dans le fichier ASCII et les temps de formatage des tableaux de données en chaîne de caractères au format tableur sont des facteurs limitants pour la fréquence d'acquisition (risque d'overwrite du buffer).
    Si vous voulez stocker en continu les données avec des cadences d'acquisition élevées, préférez le format binaire (sortie du AI Read au format I32 puis écriture directe par bloc des data). La aussi des exemples standards sont disponibles dans LabVIEW.
    Bonne continuation.
    Matthieu Gourssies
    National Instruments France.

  • Définir les ordonnées sur un graphe déroulant

    Salut à tous,
    Tout d'abord désolé pour cette question qui, je pense, est très bête, mais je ne sais pas, je ne maitrise pas du tout le sujet pour le coup.
    Je capte des températures à un certain intervalle de temps (défini par l'utilisateur), je les mets dans un tableau (DBL). Parallèlement à ça, je crée un tableau avec la date et l'heure (STRING). L'ensemble sort sur un fichier de type tableur. Je peux donc savoir, pour n'importe quelle date et heure (et à la seconde près), quelle température a été relevée.
    Je voudrais qu'à chaque fois qu'une température est relevée, qu'elle s'affiche dans un graphe déroulant. Jusque là pas de soucis j'y arrive. mais je voudrais que l'axe des ordonnées affiche au moins les minutes et les secondes pour chaque mesure de température. C'est là que ça coince, j'ai fait tout un tas d'essais cet après midi, mais rien ne va dans ce que je fais, je ne sais même plus quoi utiliser comme graphe... Bref, je suis perdu.
    Quelqu'un pour m'éclairer ?
    D'avance merci
    Résolu !
    Accéder à la solution.

    Merci, mais effectivement ce n'est pas tt à fait ça...
    sur ce lien; http://forums.ni.com/t5/Feedback-on-NI-Discussion-Forums/Quick-Introduction-to-the-Forums-for-New-Us... est expliqué
    "Accepted Solutions: If you reply to a question with what the original poster believes is the solution to his or her problem, then your post might be flagged as an Accepted Solution.  This will mark your reply with a green border, indicating that it was the key to a working resolution.  Like Kudos, accepted solutions are visible to all – so, the more you have, the more trusted you will be!"
    Je n'ai pas de post ouvert donc je ne peux pas tester mais à priori en haut à droite des réponse il y a un menu déroulant, avec un texte bleu (Options je crois) qui permet de définir un post comme "solution acceptée".
    Francis M | Voir mon profil
    Certified LabVIEW Developer

  • Graph X-axis format

    Hello,
    I would like to change my X-axis (time axis) values of graduation. I want to make a numeric operation with each graduation.
    For example, now I have got all my graduation from 0 to 0,05 and I want them from 0 to the result of 0,05 / 2E-5. I want to make this operation over all graduation, since when I will zoom on the graph, the scale must be adapted with the operation.
    Cordially,
    BD
    Bonjour,
    Je souhaiterais formater l' axe des abscisses de mon graphe (axe des temps). Je voudrais changer la valeur de mes intervalles en appliquant une opération numérique.
    Par exemple, mon graphe est gradué de 0 à 0,05, et je voudrais qu'il soit de 0 à 0,05 / 2E-5. J'aimerais faire cette opération sur toutes les graduations, pour que lors d'un zoom, je puisse retrouver cette nouvelle échelle.
    Cordialement,
    BD
    ~ La programmeuse compile le C. ~
    http://www.pmeonline.fr.st
    http://www.nihon-fr.com
    http://www.cinemasie.com
    http://ippai.free.fr

    You may use Proprety Nodes to set axis format in your program. Right click on your graph terminal and select Create >> Proprety Node. It initially has one terminal (Visible by default), and you can set the proprety or get the current state of the proprety.
    You can modify the proprety your program will use by right clicking on th terminal and select the proprety you need.
    I think you will find all you need in Proprety >> Scale >> Range.
    To modify the read/write mode of the terminal, right clik on it and select Change To Read or Change To Write.
    Regards,
    Mathieu
    Message Edité par Mathieu R. le 10-17-2005 07:40 AM
    .mrLeft{float:left} .mrInfo{border-left:solid 1px #989898;font-size:x-small;color:#989898}
    Mathieu R.  
      CTD - Certified TestStand Developer / Développeur TestStand Certifié  
      CLAD - Certified LabVIEW Associate Developer  
    Attachments:
    XScaleSample.vi ‏30 KB

Maybe you are looking for