05-28-2009 05:33 AM
Bonjour
Avec Labview, je souhaite recevoir 3 données différentes par la liaison série en ascii, les trier, les convertir en binaire, effectuer des calculs, afficher le résultat puis le stocker en Excel. Ce sont 3 donnes qui proviennent d’un capteur accéléromètre : accélération selon X, accélération selon Y, et température.
1) Je possède le VI d’exemple pour recevoir les données en liaison série RS232 (capture jointe). Les données sont 2 caractères ASCII utiles et un troisième arbitraire qui sert au tri. Je ne sais pas comment faire le tri ?
2) Une fois que j’ai isole mes données, je voudrais toutes les convertir en binaire. J’utilise ce VI (capture asciitobin.jpg). Quand je le teste, la conversion (Ascii vers binaire) ne se fait pas en simultanée/temps réel.
3) Sur mon mot de 16 bit en binaire, seulement 12 sont utiles, je voudrais ensuite les convertir selon cette formule plus bas en masquant les 4 de gauche puis en les multipliant comme dans la formule.
4) Je souhaiterai afficher le résultat de la conversion
5) Je souhaiterai stocker le résultat dans un tableau de 4 colonnes : numéro de la mesure, accélération selon X, accélération selon Y, température
Merci
05-28-2009 06:55 AM
Voici une première étape avec un VI montrant une manière de calculer l'accélération à partir de la chaîne de caractères.
L'utilité du troisième octet servant pour le tri ne m'est pas claire. Sert-il à différencier les données X, Y et température ?
Pour afficher les données en binaire, hexadécimal... il suffit de modifier le format d'affichage de l'indicateur/contrôle (clic-droit pour afficher le menu contextuel >> Display Format >> onglet Display Format) . Dans mon exemple, la représentation des données des trois contrôles d'entrée est binaire mais pourrait tout aussi bien être décimale par exemple. Ceci sans le moindre code.
05-28-2009 07:46 AM - edited 05-28-2009 07:49 AM
Merci pour l'aide.
Le troisieme octet, je le fixe de maniere arbitraire pour differencier la donnée.
Je vais prendre le signal de "actual bytes to read" sur le VI rs232.
Je pense recevoir 3 paquets de 8bits qui correspondent au code ASCII et le mettre dans le VI "calcul acceleration". Il me manque la fonction pour deconcatener et les mettre dans les 3 blocs de calcul acceleration, comment s'appelle t elle?
Merci d'avance,
05-28-2009 07:57 AM
bloch75 a écrit:Merci pour l'aide.
Le troisieme octet, je le fixe de maniere arbitraire pour differencier la donnée.
Je vais prendre le signal de "actual bytes to read" sur le VI rs232.
Je pense recevoir 3 paquets de 8bits qui correspondent au code ASCII et le mettre dans le VI que "calcul acceleration". Il me manque la fonction pour deconcatener, comment s'appelle t elle?
Merci d'avance,
Où définissez-vous ce troisième octet ? Dans le code LabVIEW ou programmez-vous vous-mêmes l'accéléromètre ?
Est-ce que le nombre d'octets envoyés par l'accéléromètre est le même (3) pour les trois types de données ? Ou ce nombre permet-il de les différencier ?
Si cet octet est défini dans le code LabVIEW, il est nécessaire de connaître à l'avance le type de données qu'il est censé coder. Le serpent qui se mord la queue ! Ou ai-je manqué une information ? J'avoue ne pas bien saisir...
La fonction de lecture (VISA READ) vous retournera une chaîne de caractères. Il vous suffit de modifier mon VI (supprimer les 3 contrôles permettant de simuler les données reçues) pour relier directement cette chaîne lue à la fonction String to Byte Array.
06-02-2009 03:43 PM
Bonjour,
Je vous remercie pour votre precieuse aide.
J'ai reussi a faire ce que je voulais. Je presente donc mon probleme et ma solution.
Mon objectif: recevoir les donnees d'un capteur-accelerometre ADIS 16003 de Analog Devices.
Ma solution, un microcontroleur PIC recoit les donnees par la liaison SPI et les transfert simultanement par l'UART vers le PC sous labview pour traitement.
Le microcontroleur transmet 2 caracteres ASCII correspondant a l'axe X (ou Y) de maniere sequentielle. Le pic concatene avant chaque acceleration le caractere X ou Y.
Le VI que je laisse en piece jointe receptionne les donnees emises par le capteur. Elles sont converties en mG grace au code de JB. J'ai rajoute un stockage en tableau. Il doit enregistrer en excel. ( je ne sais pas le faire), mais le code me convient tel quel.
Pour le finir, il faudrait faire un tableau qui rentre 3 parametres: le temps, puis les deux accelerations et les enregistre sous excel.
Je le laisse si il peut aider quelqu'un pour son projet.
Merci JB pour votre aide.