Lecture errone sur le port serie avec mscomm32

hiefgheni Messages postés 3 Date d'inscription mercredi 20 juin 2007 Statut Membre Dernière intervention 20 mars 2008 - 17 mars 2008 à 13:00
hiefgheni Messages postés 3 Date d'inscription mercredi 20 juin 2007 Statut Membre Dernière intervention 20 mars 2008 - 20 mars 2008 à 08:46
Bonjour,

Je suis en train d'ecrire un programme pour piloter un titrateur de laboratoire.
J'utilise l'activex mscomm32 pour acceder au port serie.

J'arrive a envoyer les instructions vers l'appareil et il les comprend (je peut lire sur l'ecran du titrateur son etat et il change conformement aux instructions que j'envoie)
Par contre, je n'arrive pas a lire correctement les données qu'il renvoie. Le premier caractere que je recoit est juste, puis tous les suivants correspondent a n'importe quoi.
par exemple, je m'attend a recevoir : Y<cr><lf> et je recoit : Y#q
Sur des chaines plus longues, meme constat : premiere lettre ok puis n'importe quoi.

l'appareil n'utilise que TxD RxD et GND

Est ce que quelqu'un a une idee sur ce phenomene?
Et, question subsidiaire, est t'il possible de visualiser une trame complete(bit start, bits de donnee, bits stop) en VB, pour voir si le decalage vient d'une mauvaise interpretation de la trame?

Merci

3 réponses

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
18 mars 2008 à 11:46
Salut
Plusieurs idées :
- Comme tu n'utilises que 3 fils, tu fonctionnes donc en contrôle de flux XOn/XOff
Vérifie la propriété HandShaking de ton MSComm
- Est-ce que les caractères qui suivent le Y sont toujours "#" et "q" ?
Non : Parasitage de la liaison --> Vérifie que le blindage du cable est relié à la masse d'un seul côté (si des 2 côtes, risque de création d'un effet condensateur). Normalement, dans ce genre d'installation, les cables ne sont pas très longs, donc peu de risque de recevoir des parasites.
Oui : C'est que ces caractères "#" et "q" (ascii 35 et 113) appartiennent à la trame ou à la trame suivante.
Vérifie le protocole utilisé pour les échanges

Jette aussi un oeil sur cette <excellente source>

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

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
hiefgheni Messages postés 3 Date d'inscription mercredi 20 juin 2007 Statut Membre Dernière intervention 20 mars 2008
20 mars 2008 à 08:45
Salut

Merci pour les pistes.

Le xon/xoff n'est pas suporté par l'automate, handshake est reglé a comnone et j'ecoute simplement l'entree, normalement jusqu'a recevoir chr(13) chr(10).

En faisant un test entre 2 pc, un sur lequel j'ai fait un emulateur de l'automate d'apres les specification du manuel et l'autre avec mon logiciel de pilotage. Et la, sur 3 fils, sans hanshake, tout fonctionne a merveille.

Depuis, j'ai pu me procurer le soft original de pilotage (il ne fait pas ce que je voudrais faire en terme de traitement des info recu, c'est pourca qu'il me faut en re-ecrire un), et la, meme symptome, mes ordres envoyé sont compris, mais les valeur retournées sont une suite de caractère bizare.

La source que tu m'indique, je l'avais deja essayée, et, chose etrange, je recoit des valeurs parfois superieures a 128 alors que mon apareil est sensé coder ces mots sur 7bits d'apres la doc. (mscomm.settings(4800,n,7,2)), drolement fort

Je penche donc pour un probleme de cable.
0
hiefgheni Messages postés 3 Date d'inscription mercredi 20 juin 2007 Statut Membre Dernière intervention 20 mars 2008
20 mars 2008 à 08:46
ah oui, j'ai oublier de preciser, il ne doit pas y avoir de parasites sur la ligne puisque a ordre egal, je recoit toujours la meme sequence de caractere.
0
Rejoignez-nous