hiefgheni
Messages postés3Date d'inscriptionmercredi 20 juin 2007StatutMembreDernière intervention20 mars 2008
-
17 mars 2008 à 13:00
hiefgheni
Messages postés3Date d'inscriptionmercredi 20 juin 2007StatutMembreDernière intervention20 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?
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 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
hiefgheni
Messages postés3Date d'inscriptionmercredi 20 juin 2007StatutMembreDernière intervention20 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
hiefgheni
Messages postés3Date d'inscriptionmercredi 20 juin 2007StatutMembreDernière intervention20 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.