IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Composants VCL Delphi Discussion :

Utilisation TComPort et convertisseur USB/Série


Sujet :

Composants VCL Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 149
    Par défaut Utilisation TComPort et convertisseur USB/Série
    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 !

  2. #2
    Membre Expert

    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    1 296
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2002
    Messages : 1 296
    Par défaut
    Un test à effectuer serait de mettre un hub usb (alimentation externe). Pour être sûr de l'alimentation du port.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 149
    Par défaut
    J'ai vraiment pas moyen de faire ce test dans l'immédiat, mais pour un simple convertisseur USB/Série ça m'étonne que l'alimentation puisse être faiblarde, surtout qu'il s'agit d'UCs et pas de portables, qu'on a le problème sur toutes les UCs de ce type et sur 2 types de convertisseurs différents.

    Dans le cas d'une alimentation insuffisante il me semblait que Windows affichait un message en conséquence, non ?

    Merci en tout cas pour ta participation :-) !

  4. #4
    Membre Expert

    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    1 296
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2002
    Messages : 1 296
    Par défaut
    L'alimentation n'est peut-être pas la bonne explication, mais on avait eu le problème (windows ne reconnaissait plus le port com au bout d'un temps aléatoire) chez un client, (je ne connais pas la marque des adaptateurs, il les avaient fourni), et on l'a résolu par un hub usb auto-alimenté.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 149
    Par défaut
    Merci pour ta réponse.
    Vous avez mis combien de temps à trouver le problème juste par curiosité ?
    Moi je log tout ce qui se passe avec "PortMon" et au bout d'un moment sur une écriture dans le port COM j'obtiens le résultat "0xc0000001" (STATUS_UNSUCCESSFULL), ensuite toutes les commandes envoyées au port COM retournent "DELETE_PEND".... je ne sais pas trop quoi penser pour le moment, on dirait bien un problème hardware quand même, pourtant ces convertisseurs fonctionnent sans problème sur beaucoup d'autres machines... en plus on le problème avec deux modèles différents, étonnant...

    Je continue mes recherches sur ce qui peut causer cette erreur (STATUS_UNSUCCESSFULL).

  6. #6
    Membre Expert

    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    1 296
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2002
    Messages : 1 296
    Par défaut
    Rapidement (moins d'une semaine, pas le choix enregistrement de machines temps réel, avec watchdog, si le port com plante, la machine sarrête) mais on l'a fait au feeling.

    Une solution intéressante techniquement aussi est un serveur de port série (mais bon d'autres contraintes se posent).

Discussions similaires

  1. Ecran bleu a l'utilisation d'une Clé USB
    Par lemotard dans le forum Windows XP
    Réponses: 10
    Dernier message: 11/11/2006, 19h07
  2. erreur d'execution avec l'utilisation TCOMPORT
    Par thony76 dans le forum C++Builder
    Réponses: 10
    Dernier message: 27/07/2006, 15h47
  3. Utiliser TComPort sans TComDataPacket
    Par giloutho dans le forum Composants VCL
    Réponses: 3
    Dernier message: 18/04/2006, 09h25
  4. utilisation d'un driver USB
    Par AiSpirit dans le forum Windows
    Réponses: 8
    Dernier message: 07/01/2006, 01h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo