Probleme RS232 USB

loloestbeau Messages postés 3 Date d'inscription mardi 10 mai 2005 Statut Membre Dernière intervention 17 janvier 2006 - 17 janv. 2006 à 14:48
loloestbeau Messages postés 3 Date d'inscription mardi 10 mai 2005 Statut Membre Dernière intervention 17 janvier 2006 - 17 janv. 2006 à 23:41
Bonjour







J’ai un
soucis, j’ai un interface en RS232 qui me transmet en texte use valeur qui va
de -999.99 à + 999.99, avec VB6 et MSCOMM pas de problème , je reçois en string
caractère par caractère et je transcris en nombre.




Cette
interface et en RS232 et je l’ai modifié en USB en passant par un FTI232BM et
c’est la que ça se gâte je reçois <0>rÀ4Àè(<0>} à la place
de 6.01 .




Les paramètres sont les mêmes 9600 ,8,n,1 sur le port
virtuel COM3 et le MSCOMM







Quelqu’un
pourrait il m’orienter ?










Il reçois bien , mais pourquoi je reçois <0>rÀ4Àè(<0>} à la place
de 6.01 ?



merci

5 réponses

ScSami Messages postés 1488 Date d'inscription mercredi 5 février 2003 Statut Membre Dernière intervention 3 décembre 2007 24
17 janv. 2006 à 15:52
Je peux pas t'aider mais comme ça, à vu de nez, je tire ces conclusions (auquelles tu as aussi du arriver!) :
<0> Balises de début/fin
r => "6"
À4À => "."
é => "0"
( => "1"

Tu ne crois pas!!!

Reste à voir ce que ça donne sur ta table ASCII !!!

Enjoy

<hr size="2" width="100%">
( Si une réponse vous convient, cliquez sur le bouton "Réponse acceptée". )
0
loloestbeau Messages postés 3 Date d'inscription mardi 10 mai 2005 Statut Membre Dernière intervention 17 janvier 2006
17 janv. 2006 à 16:10
Hum !!



mais si je regarde la table ascii étendue le 'é' correspond en hexa à
82 et le zéro c'est 48, le 1 correspond à 61 en hexa , la je ne
comprends plus !
0
ScSami Messages postés 1488 Date d'inscription mercredi 5 février 2003 Statut Membre Dernière intervention 3 décembre 2007 24
17 janv. 2006 à 16:18
Petite correction... En fait, je pense que c'est plutôt :
r => "6"
À4 => "."
Àé => "0"
( => "1"

C'est vraie que c'est étrange comme code! Mais doit bien y avoir une logique là dessous!!!
Ou alors tu t'es planté et c'est pas ça qu'il faut regarder!!! Qui sait!
Enfin, moi, je ne peux pas dire grand chose de plus!

Enjoy

<hr size="2" width="100%">
( Si une réponse vous convient, cliquez sur le bouton "Réponse acceptée". )
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
17 janv. 2006 à 17:43
Salut Lolo
Je pense qu'il faut que tu convertisses les caractères en leur équivalent ascii.
Par exemple, le carré qu'on retrouve dans ton texte peu correspondre à un grand nombre de caractères non imprimable, donc on ne pourra pas te répondre.
Sachant qu'un code ascii est défini par une valeur entre 0 et 255, soit 00 à FF en hexa.
Convertion caractère -> ascii décimal : Asc(taLettre)
Convertion caractère -> ascii hexa : Hex(Asc(taLettre))

A mon avis, il doit y avoir un entête de donnée qui reste fixe, le 6.01 devant apparaitre ensuite, suivi d'un texte de queue pour la vérifiaction en checksum.

Converti chaque lettre en décimal et en hexa on revient nous voir et/ou compare le au même flux reçu sur ton port com standard.
D'où viennent ces données ? peut-être y a t-il aussi des données d'identification de la provenance (n° d'esclave)

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage. (Socrate)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
loloestbeau Messages postés 3 Date d'inscription mardi 10 mai 2005 Statut Membre Dernière intervention 17 janvier 2006
17 janv. 2006 à 23:41
Ok Vala

voici les valeurs quand je passe en direct avec la RS232, pour la valeur 11.84 en
Hex ça donne : 31 31 2E 38 34 0D 0A






Si j’envoie 11.84 par l’usb , je recois en ascii : gg´ì<0>
soit en hex :




67 67 B4 EC 19 00




Ou




01100111




01100111




10110100




11101100




00011001




00000000







En binaire







Cordialement
0
Rejoignez-nous