Discussions au sujet de NI LabVIEW

annuler
Affichage des résultats de 
Rechercher plutôt 
Vouliez-vous dire : 

écrire une donnée en base hexa

Résolu !
Accéder à la solution

Bonjour a tous,

 

je fais du labview depuis 2 mois et j'ai un petit soucis dont je n'arrive pas à trouver de solution.

Vous me direz qu'il est simple d'écrire une donnée au format hexadécimal mais je n'obtiens pas ce que je voudrais avoir.

 

Voici mon problème:

 

je dialogue en liaison rs232 avec une machine, je lui envoi des trames en haxadecimal et elle me répond de la même manière.

L'une de mes trames sert à connaitre l'adresse logique de l'appareil afin de la réutiliser pour les autres trames, je reçois l'info que je veux et le seul moyen que j'ai trouver pour l'instant pour réutiliser cette donnée est de le réecrire

en chaine hexadecimal pendant le programme mais je voudrais que tout soit automatiser.

 

lorsque je récupère cette info de la trame de réponse, j'obtiens une constante en affichage normal mais pour que je puisse renvoyer une trame correctement il faudrait que celle ci soit écrit au format hexa.

Exemple: je reçois 80, j'aimerais donc réutiliser cette données en hexa mais en hexa cela donne 3830. Ce que je veux c'est que en affichage haxa il y ai écrit 80.

 

J'ai essayé plusieurs solution je n'arrive jamais à obtenir ce que je veux, ce qui fausse le calcul de mes trames suivantes.

 

Voici un petit VI d'explication au cas où cela ne serait pas clair. Si besoin ai, j'enverrai une partie de mon VI principal.

 

Merci à la communauté

Mehdi

0 Compliments
Message 1 sur 5
4 714 Visites

Bonjour,

 

Je pense que ton problème vient juste de la représentation de ta chaîne. Si tu fait un clic droit sur une constante chaîne, ou un contrôle ou indicateur chaîne, tu peux sélectionner Affichage Hex ou Hex Display. Dans ce cas, tu écris ou tu lis en Hexadecimal.

 

Cordialement

Maxime R.  

  CLA - Certified LabVIEW Architect / Architecte LabVIEW Certifié
  CTA - Certified TestStand Architect / Architecte TestStand Certifié

Message 2 sur 5
4 712 Visites

Bonjour,

 

Justement c'est là où est le problème.

Mon appareil me répond avec une trame écrite en hexa mais quand je récupère tronque la chaine pour garder uniquement le troisième bit, labview me l'écrit en affichage normal, du coup quand je fais le clic droit pour le mettre en affichage hexa j'obtiens 3830. Or ce que je veux obtenir c'est 80 en affichage hexa (symbole € en affichage normal)

 

C'est une petite subtilité que je n'ai pas réussi à résoudre car la valeur enregistré dans la constante ad.log est bien 80, mais en affichage normal. je voudrais enregistré 80 en affichage hexadecimal car je dois réutiliser cette valeur plus tard.

 

Voici mon VI principal en pièce jointe

 

dans la deuxième condition il y a une variable ad, qui est une commande char, je réecris dedans au format hexadecimal la valeur renvoyé par mon appareil (ad.log) qui lui est au format normal.

 

pour mieux comprendre:

 

je reçois une trame en hexa dont j'extirpe le 3eme bit et l'enregistre dans ad.log mais:

 

ad.log = 80 en affichage normal

ad.log = 3830 en affichage hexa.

 

j'aimerais que en affichage hexa j'ai 80 mais la fonction que j'utilise me le mets en affichage normal donc il s'agit d'une valeur totalement différente de ce dont j'ai besoin.

 

après avoir obtenu cette valeur, dans ma face avant, pendant l'execution du programme, je réecris la valeur qui apparait dans une commande texte que j'ai mis en affichage hexa, ainsi

 

ad = 80 en afiichage hexa = € en affichage normal.

 

 

J'aimerais éviter de réecrire cette valeur manuellement, mais comme cette valeur n'est jamais la même je dois faire en fonction de ad.log

0 Compliments
Message 3 sur 5
4 706 Visites
Solution
Accepté par l'auteur du sujet Mehdi94

J'ai finalement trouvé la solution.

 

Je la poste et la laisse, cela pourrait servir à quelqu'un d'autre

 

Cordialement

Mehdi

Message 4 sur 5
4 700 Visites

Bonne nouvelle. Il est souvent plus facil de manipuler ces informations en U8, ca évite souvent les mauvaises manipulations ou les écarts d'affichage. Sachant que sur un U8, on peut ajouter l'affichage du radix pour savoir dans quelle base on est. AU moins c'est clair à l'affichage.

 

Cordialement.

Si la réponse à aidé, pense à mettre un compliment. Ca fait toujorus plaisir.

Maxime R.  

  CLA - Certified LabVIEW Architect / Architecte LabVIEW Certifié
  CTA - Certified TestStand Architect / Architecte TestStand Certifié

0 Compliments
Message 5 sur 5
4 696 Visites