le 07-28-2011 04:49 AM
Bonjour,
j'ai utilisé le protocole RS232 pour acquérir les données de mon régulateur de charge sur labview. Mais, celui ci me renvoie tout une trame de données. j'ai envie de tracer un graph avec les valeurs de tension et de courant dans la charge et d'après la doc technique de l'appareil ces valeurs sont notamment la 4 (118) et la 17 (0003) valeur de la trame! je ne sais pas comment extraire ces deux valeurs vers un tableau à deux dimension pour ensuite tracer les 2 graph repectivement! j'ai joint la doc technique, mon vi et une image de la face avant après exécution .
Résolu ! Accéder à la solution.
le 07-28-2011 06:12 AM
Il faut que tu transformes ta chaine de caractère en tableau de chaine pour commencer. Après tu fabriquera ton tableau à 2D quand tu arrivera à extraire toutes les valeurs interessantes pour toi.
Pour passer de ta String à un tableau:
Tu as plusieurs méthodes pour le faire en utilisant les "VIs Chaîne". Si ta chaîne a tout le temps le même nombre de champs, avec le Vi "chaîne au format tableur en tableau", tu devrais arriver à tes fins rapidement sinon tu te fabriques un VI qui scanne ta chaîne, recherche le caractère qui separe tes nombres (Espace ou tab). A chaque fois que tu trouves ton séparateur, tu mets la chaine d'avant dans une case d'un tableau puis tu reinjectes avec un registre à décalage la chaine restante et ainsi de suite jusqu'à la fin de chaîne...:)
Sinon, si tu n'y arrive pas, je te file le VI que j'ai fait et qui fait ce dont tu as besoin....
A+
le 07-28-2011 06:18 AM
Oui justement la logique pour arriver à mes fins je l'ai mais je ne sais du tout pas comment l'écrire sur labview ca fait juste deux semaine que je l'utilise. j'ai bien pensé à scanner ma chaine en recherchant le caractère de séparation mais je ne connais pas encore tous les outils me permettant de le faire sur labveiw
le 07-28-2011 07:01 AM
okay, je te file le VI que j'ai fait il y a très longtemps et qui fait ce que tu veux.
Dis moi si cela te va
A+
le 07-28-2011 07:35 AM
Oui j'aii vu ton VI mais au fait dans mon premier post j'ai join mon VI et quand j'essaye d'intégrer le tiens ca ne passe pas!. En fait c'est à la sortie du VIs read visa que j'ai la trame que je dois ranger dans un tableau. Alors,j'ai remplacé ton entrée string par ma sortie ( read buffer) et les fils ne se connectent pas je dois pécher quelque part! mais où?
le 07-28-2011 08:26 AM
le problème c'est que j'ai une version labVIEW 8.2 et je ne peux pas ouvrir ton VI, peux-tu faire des copies d'ecran et les mettre ne piece jointe afin que je puisse voir ton code et essayer de trouver ou se situe le problème ?
le 07-28-2011 08:36 AM
Merci c'est bon j'ai pu relier les deux et ca m'affiche fidèlement les données dans un tableau! mais comme j'ai dit plus haut c'est les données dans la 2,4,13,16et 17 case du tableau qui m'intéressent! et je souhaiterais les isolés dans un tableau à 4 colonnes c'est mon problème là en ce moment
le 07-28-2011 08:51 AM
ci joint les images du diagramme et des résutats sur la face avant!! mais j'aimerais créer un tableau de 4 colonnes à coté où la premier colonne aura les valeurs de la 2ème case du tableau actuelle multiplier par 100 et diviser par 35!! en fait c'est d'après la doc technique de l'appareil ( si je veux avoir le niveau de charge de la batterie je multiplie la 2èm valeur de la chaine par 100 et que je divise par 35) et ensuite pour la tension (je prend la 4èm valeur de la chaine que je multiplie par 0.032 et j'ajoute 9 au produit) et c'est avec ces valeurs que je dois remplis mon nouveau tbleau à 4 colonnes et n ligne.
le 07-28-2011 08:52 AM
donne moi 5 minutes que je te code ça, par contre, tu as 5 valeurs qui t'interesse donc tu auras un tableau à 5 colonnes....
le 07-28-2011 08:56 AM
okay, donc si je comprend bien car ma reponse à croisé la tienne, dans ta string complete, seule les cases 2 et 4 t'interessent ?
Ensuite tu fais des opérations sur ces 2 valeurs et tu en sors 2 autres résultats ce qui fait 4 valeur en tout ?
Après tu mets ces 4 valeurs dans un tableau ? C'est bien cela ?
Dans quels ordre tu les ranges dans le tableau ?