le 06-12-2009 05:46 AM
Bonjour,
alors voilà mon problème : après avoir utilisé la fonction VISA read et la fonction "String byte to array" pour convertir la valeur en décimal, je souhaite envoyer ces valeurs dans un tableau 1D. Or je ne sais pas trop comment m'y prendre car j'ai essayé de mettre un tableau après mais les valeurs n'y sont pas conservées, impossible de les retrouver dans le tableau.
Merci.
PS : j'utilise la version 7.0 de Labview
le 06-12-2009 06:51 AM
Bonjour,
Le StringToArray va te donner le code ASCII de chaque caractère sous forme de tableau de U8.
Si tu veux envoyer chaque valeur dans un tableau tu peux utiliser "insérer dans un tableau" dans la palette tableau ou tu utilises un registre à décalage.
Bon courage
le 06-12-2009 07:42 AM
Merci bien.
J'ai essayé "Insérer dans un tableau" en mettant la sortie de "String to byte array" sur "n dim array" et la sortie sur le tableau, mais il semble qu'il faut mettre quelque chose sur "n or n-1 dim array". J'ai essayé de connecter aussila sortie de "string to byte array" mais toujours le même problème. Et si je sors le tableau de la boucle while j'ai plus rien qui s'affiche.
le 06-12-2009 09:13 AM
Si la chaîne de caractère lue avec Visa read est un nombre décimal alors tu peux directement le convertir en double avec "Fract/Exp String To Number".
Jean-Marc
le 06-12-2009 10:10 AM
Je travaille sous LV 8.5 et je ne peux pas d'envoyer d'exemple en LV 7.0.
Ci joint Diagramme VI modifié.
le 06-13-2009 08:08 AM
le 06-13-2009 08:57 AM
le 06-13-2009 12:19 PM
Dans l'exemple de Phil_NTA, ce que vous n'arrivez pas à identifier est un property node (noeud de propriété?). Avec ce dernier, il initialise "tableau de valeurs" en vecteur vide de double (ce que j'aurais du faire dans mon exemple). Donc, avant d'entrer dans la boucle while il s'est assuré que "tableau de valeur" soit vide.
Si les tableaux sont vides ("tableau de valeurs" pour l'exemple de Phil_NTA ou Dble [] dans mon cas) alors c'est que votre lecture série est probablement en cause. Pour être en mesure de vous aider il faudrait plus de détails dont, entre autres, de combien de caractères est composé le message que vous désirez lire? Est-ce que l'appareil avec lequel vous communiquez émet périodiquement un message (moins fréquent, par exemple un GPS) ou il répond à une question que vous lui posez? Je serais porté à croire, si votre port série est paramétré correctement, que vous êtes face à ce deuxième cas. Si vous ne posez pas de question à l'appareil alors il restera muet. D'ailleurs votre VI est construit de cette façon. À chaque itération vous regarder combien il y a d’octets (bytes) disponibles dans le buffer et vous faites un VISA serial read pour ce nombre d’octets : s'il est égal à zéro alors vous lirez zéro octet.
Donc avant d'aller plus loin il serait utile d'avoir plus de détails sur votre application.
Jean-Marc
le 06-14-2009 10:08 AM
Merci beaucoup de m'aider.
Alors mon message est composé au maximum de 8 bits. Avec ce VI, je souhaite lire une valeur de température grâce à un automate. Mais pour l'instant pour mettre au point le VI, j'utilise un programme qui, quand j'active une entrée, envoie une valeur numérique vers l'ordinateur. Donc j'active cette entrée, j'ai bien la bonne valeur numérique qui apparaît.
le 06-15-2009 03:23 AM
Bonjour,
il fonctionne le VI. Si tu reçois juste la valeur tu peux utiliser la méthode du VI.
Tu peux envoyer un imprimécran de ce que tu lis sur ton port série.