Bonjour,
Voilà mon problème (qui commence à durer) et pour lequel je ne trouve pas de solution.
Mon programme communique (bidirectionnel) avec des appareils via des ports COM (RS232), pour cela j'utilise simplement le composant TComPort. Seulement voilà sur plusieurs postes mon programme s'arrête de fonctionner aléatoirement. Si je "log" les erreurs je m'aperçois que l'erreur est la suivante :
"Exception "EComPort" lors de l'appel à "Cpt_DrvCom.write", message = WriteFile function failed (win error code: 5)!!!!"
En fait en recherchant plus longuement (j'en ai eu le temps) les erreurs sont diverses mais le résultat est le même : plus de communication entre l'appareil et mon programme.
De temps en temps je récupère d'abord un code d'erreur 31 ("ERROR_GEN_FAILURE" = "A device attached to the system is not functioning") puis ensuite des codes erreur = 5 (ERROR_ACCESS_DENIED).
Le problème est que si je redémarre mon programme, j'obtient toujours la même erreur = 5 (ERROR_ACCESS_DENIED) lorsque j'essai d'ouvrir le port COM. J'ai essayé de débrancher/rebrancher physiquement le port com (puisqu'il s'agit d'un convertisseur sur USB) mais cela ne règle pas le problème, il faut redémarrer l'ordinateur pour que le port COM devienne fonctionnel à nouveau.
J'ai essayé avec deux modèles différents de convertisseur USB/RS232, un modèle isolé optiquement (Optobridge) et un modèle non isolé plus classique : et j'ai le problème sur les deux !! A noter que sur le modèle non isolé le fait de débrancher/rebrancher le convertisseur semble régler le problème, pas besoin de rebooter la machine).
Pour l'instant je n'ai pas assez de recul mais il semblerait que le problème ne se produit pas si je me branche directement sur un port COM intégré à l'unité centrale, mais cela n'est pas une solution car l'unité centrale n'a pas suffisament de port COM disponible et surtout il faut que ceux-ci soient isolés optiquement, ce qui n'est pas le cas des ports COM standards des PCs.
Ma question est : Qu'est-ce qui cause ce problème ? Est-ce un mauvais drivers USB ? un processus qui arriverait à me prendre le port COM (alors que je suis en train de communiquer dessus, cela me semble peu probable) ? Une incompatibilité matérielle (mais là encore bizarre car j'ai le même symptôme avec deux modèles différents). Je suis un peu perdu, j'ai tenté de monitorer les événements sur le port COM avec un logiciel spécifique mais pour le moment je n'ai pas réussi à le faire au moment où l'erreur a lieu, car celle-ci ne se manifeste pas régulièrement (tantôt plusieurs fois par jour, tantôt une fois en 2 ou 3 jours).
Merci d'avance pour quiconque pourra m'aider !
Partager