Lecture errone sur le port serie avec mscomm32

Signaler
Messages postés
3
Date d'inscription
mercredi 20 juin 2007
Statut
Membre
Dernière intervention
20 mars 2008
-
Messages postés
3
Date d'inscription
mercredi 20 juin 2007
Statut
Membre
Dernière intervention
20 mars 2008
-
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

Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
81
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)
Messages postés
3
Date d'inscription
mercredi 20 juin 2007
Statut
Membre
Dernière intervention
20 mars 2008

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.
Messages postés
3
Date d'inscription
mercredi 20 juin 2007
Statut
Membre
Dernière intervention
20 mars 2008

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.