Soucis Port COM

Bonjour,

Etant nouvelle sur ce site, j'espère pouvoir vous apporter les éléments nécessaire à la compréhension de notre problème. Nous travaillons avec mon équipe sur une cellule robotisée contenant un bac vibrant commandée via un arduino zero. Cette board est reliée à un PC DELL par USB branché sur un port COM8.

Sans entrer dans les détail, le PC envoie l'ordre à l'arduino de lancer une vibration au bac lorsque cela est nécessaire, cependant, nous obtenons souvent un message sur notre PC " Access port COM8 refusé" ou "Un périphérique attaché au système ne fonctionne pas correctement". Ce soucis empêche notre robot d'aller chercher les pièces dans le bac et nous devons débrancher l'USB côté PC.

Je ne suis pas spécialiste de l'arduino malheureusement, ni mes collègues actuel.

Nous avons changer de port, vérifier que celui-ci était toujours présent lors d'un plantage mais nous sommes encore bloqués sur ce problème. Existerait-il une solution afin que notre client n'ait pas à débrancher/rebrancher l'USB ?

Merci de votre aide !

Pour autant que je sache, il n'y a pas de numéro attribué pour les ports com: vous pouvez avoir le port com8, l e 9 ... (faire le pari que ce sera toujours le port 8 est donc risqué). Une "solution" partielle et partiellement satisfaisante que j'utilise des fois sous GNUlinux (un peu moins chaotique que W$): donner un menu de ports potentiels, et laisser l'utilisateur sélectionner ...

Bonjour
L'installation des drivers pour cette carte a-t-elle eté effectuée correctement ?

Bonjour,

Merci à tous les deux pour vos réponses.

Concernant le port COM, nous avons branché le câble USB sur un autre port et son nom n’a pas bougé, il s’agit toujours du port COM8. Aujourd’hui, nous enregistrons nos données dans un xml contenant notre port COM8 que nous écrivons à la main après avoir regardé dans le “gestionnaire de périphériques”. Comme nous créons des robots, l’idée serait intéressante pour un prochain projet, celui-ci est terminé et installé chez le client mais voilà que ce bug arrive zut !

Pour les drivers, j’ai fais des updates assez récemment et il s’avère qu’il s’agit des plus récent… Merci quand même !

C’est assez désespérant car en cas de soucis (pic de courant dans la cellule par exemple), on reboot la carte, le robot se met en attente et ça repart après un moment. Mais le problème du port nous bloque complètement !
J’ai tenté plusieurs manipulations sans succès, si cela ne fonctionne toujours pas il faudra que notre client débranche l’USB du PC même si cela n’est pas la meilleure solution.

En tout cas merci, si d’autres idées vous viennent comme vous avez l’air de vous y connaitre, nous sommes preneur ! :slight_smile:

"Concernant le port COM, nous avons branché le câble USB sur un autre port et son nom n'a pas bougé, il s'agit toujours du port COM8. "
Le seul problème, c'est que rien ne garantit que ce sera *toujours le port 8... (le contre exemple le plus flagrant serait que vous branchiez deux ou trois arduini: ils ne seront pas tous numérotés huit....) donc il faut prévoir une procédure manuelle de selection du numéro de port....

+1
de plus, sauf erreur, les cartes Zero peuvent présenter deux ports USB (prorgamming, native)

Le seul problème, c'est que rien ne garantit que ce sera *toujours le port 8.

Peut-être que c'est intrinsèque à l'USB, ne pas oublier qu'il a été conçu avec la participation active de Microsoft -> toutes les inquiétudes sont permises .
Plus sérieusement il est plutôt adapté a des branchements "bureautique" qu'à des process industriels.

Dans ce cas c'est certain qu'il existe d'autres solutions plus professionnelles, je dis de suite je n'ai pas la réponse.
Comment fait-on dans le monde des automatismes ? Rechercher un port de communication à la main est inconcevable.

Est-ce qu'une liaison série ne serait pas plus maîtrisable ?
Ou une liaison basé sur un protocole particulier hors USB ?
Comment font nos professionnels ?

Une des méthodes utilisable est d'énumérer les liaisons série (il existe une fonction dans l'API windows) et de chercher dans le descripteur de chaque liaison une chaine spécifique (par exemple 'CH340' si on sait que la carte utilise un circuit CH340).
Ca suppose qu'on n'a qu'une carte avec un CH340 connectée.

Peut-on jouer sur le PID, VID de l'interface USB.
Il y a une partie qui peut se reprogrammer.

Connaissant le PID / VID de l'interface, il y a sans doute moyen de retrouver le numéro de port série par soft, mais je n'ai jamais essayé.

Je parlais de le modifier selon un code constructeur.
Par exemple le constructeur des robots modifie les PID/VID selon un code propriétaire ce qui permettrait de les identifier.

A ce que j'ai compris ces données sont volontairement modifiables pour pouvoir être personnalisées.
Pour savoir comment faire je sors mon jocker...

Sinon comment sont construites les appli professionnelles ?

Sans entrer dans les détail, le PC envoie l'ordre à l'arduino de lancer une vibration au bac lorsque cela est nécessaire, cependant, nous obtenons souvent un message sur notre PC " Access port COM8 refusé" ou "Un périphérique attaché au système ne fonctionne pas correctement". Ce soucis empêche notre robot d'aller chercher les pièces dans le bac et nous devons débrancher l'USB côté PC.

Il me semble que sous Windows le port attribué à un convertisseur USB / Série est toujours le même.
Il doit probablement se baser sur le N° de série ?
Ce qui fait qu'après une longue carrière en entreprise un PC attribue aux ports de COM un N° toujours plus grand. J'ai vu des PC avec des ports USB COM33 !

Je voudrais en revenir au post initial : "Access port COM8 refusé"

Cela n'indique pas que le port est absent, mais que l'accès est refusé.

Question : je suppose qu'une application particulière est utilisée sur le PC ?
Si oui, le port de COM est-il ouvert une bonne fois pour toutes dans cette application ou alors ouvert uniquement en cas de besoin et refermé ensuite ?

Deuxièmement : un port de COM s'utilise de manière exclusive. Une seule application à la fois a le droit d'y accéder.
Si une autre application (un terminal pas exemple) ouvre le port, l'application ne pourra pas l'ouvrir.

Bonjour,

J'avais bien compris que le port COM pouvait bouger mais dans cette application nous n'avons qu'une seule carte Arduino car notre robot est déjà en production chez le client mais nous constatons ce soucis qui apparaît peut souvent certes, mais quand apparaît tout de même. Nous n'allons pas pouvoir apporter de grosses modifications mais je souhaiterai me pencher sur ce soucis. Cependant, pour de prochaines applications, l'idée semble intéressante !

Après plusieurs recherches, j'en suis aussi venue à la conclusion qu'une autre application bloquait l'accès au port COM, j'ai tenté de voir sur internet comment voir si ce port était pris ou pas mais je trouve ça compliqué. Quelqu'un aurait une procédure à suivre?

Merci à tous de vos réponses, elles nous aide beaucoup mais ce sont des soucis qui sont compliqué à résoudre.

Bonjour

A tout hasard (S.G.D.G.)?

https://www.commentcamarche.net/forum/affich-2333515-comment-changer-le-numero-d-un-port-com

lire la réponse de Karimos.

Cordialement,
bidouilleelec