Optocoupleur et fins de courses

Électricité, électronique
pobourger
Messages : 58
Enregistré le : 28 juil. 2019 17:45
Localisation : NANCY

Re: Optocoupleur et fins de courses

Message par pobourger »

mstrens a écrit : 01 févr. 2021 23:23 Encore un test simple.
Si tu déconnectes le module du 24V et même du STM32, que tu mets uniquement le 3.3 et le GND côté out, tu dois avoir 3.3V sur tous les OUT entre OUT et Gnd).
Si pas c'est mort.
Alors je confirme mon opto doit être mort,
- Sans rien dessus avec juste le STM32 côté OUT (3.3v + gnd) > en OUT j'ai 0v
- Sans rien dessus avec juste le STM32 côté OUT (3.3v + gnd) + GND 24V côté IN > en OUT j'ai 0v également

j'ai passé commande d'un nouveau,
mstrens
Messages : 2611
Enregistré le : 27 févr. 2018 12:58

Re: Optocoupleur et fins de courses

Message par mstrens »

Heureusement ce n'est pas cher comme composant.
Le plus embêtant est le temps d'attente.
Avatar du membre
HTheatre
Messages : 5910
Enregistré le : 31 mars 2019 08:21
Localisation : Rivesaltes

Re: Optocoupleur et fins de courses

Message par HTheatre »

Bonjour mstrens,

Du coup, tu as une idée de ce qui ne fonctionnerait pas alors dans le circuit que l'on a réalisé ?
Pourquoi, GRBL ne détecte pas l'ouverture des reed, alors que l'optocoupleur semble se comporter comme il doit ?

@+
mstrens
Messages : 2611
Enregistré le : 27 févr. 2018 12:58

Re: Optocoupleur et fins de courses

Message par mstrens »

Si la tension en OUT passe bien de 3.3V à 0.1V, il n'y a aucune raison pour que GRBL ne détecte pas le passage.

Je dirais de faire le test suivant:
- branches tout comme prévu (donc le OUT sur une pin fdc de la carte GRBL). Attention au fait que les 2 pins FDC sur la carte GRBL ne sont pas équivalentes. L'une est reliée directement à Gnd. C'est donc l'autre qui doit être reliée à OUT.
- connectes le voltmètre entre un OUT et le GND du STM32 et laisses le brancher pour contrôler que le voltage change bien
- mets la cnc en route.
- Active/désactive le reed avec un aimant.

Logiquement tu devrais voir le voltage changer et GRBL doit détecter le changement.
mstrens
Messages : 2611
Enregistré le : 27 févr. 2018 12:58

Re: Optocoupleur et fins de courses

Message par mstrens »

On est d'accord.
Ta procédure est logique.
En fait il y avait beaucoup plus simple.
Une des 2 pins est reliée (en direct sur la carte) à GND.
Tu pouvais donc mesurer à l'ohmmètre laquelle a une résistance nulle par rapport à GND.
Tu peu aussi trouver l'alignement où toutes les pins sont connectées entre elles (avec une résistance nulle)
Avatar du membre
HTheatre
Messages : 5910
Enregistré le : 31 mars 2019 08:21
Localisation : Rivesaltes

Re: Optocoupleur et fins de courses

Message par HTheatre »

Bonsoir mstrens, bonsoir pobourger,

Tout d'abord, désolé mstrens de t'avoir fait écrire pour rien. En effet, comme entre temps j'ai testé en réel sur la machine, j'en ai déduit tout seul que ma méthode d'identification des pins "signal" et GND des endstops sur la carte GRBL était bonne. Mais je n'ai pas pensé que tu étais pile poil en train de me répondre quand j'ai supprimé mon précédent post.

Finalement, je n'ai, pour l'instant, pas réalisé ton test, car le dispositif semble et j'écris bien "semble" fonctionner. Je m'explique.

Sur la machine, j'ai remarqué que quand j'approchais l'aimant d'un reed j'arrivais à coller l'aimant dessus sans voir apparaître le message "A1. Fin de course atteinte(P?)" sur l'écran, jusqu'à ce que je le recule légèrement. Je ne sais pas si je suis très clair. Je vais essayer d'expliquer différemment, lorsque j'approche l'aimant du reed en continue jusqu'à venir toucher le reed, aucun message n'apparaît sur l'écran. Si par contre j'avance l'aimant en continue jusqu'à ce qu'il se trouve à la distance minimale d'activation du reed (ouverture du reed), que je stoppe d'avancer l'aimant vers le reed -- toujours aucun message sur l'écran à ce stade -- et puis que je recule de quelques millimètres l'aimant, alors seulement, le message "A1. Fin de course atteinte(P?)" s'affiche bien sur l'écran.

Or sur mon banc de test, j'ai monté un reed sur une fin de course en le reliant classiquement aux 2 pins de la carte GRBL 32 bits (donc sans optocoupleur), et quand j'avance l'aimant en continu vers le reed, GRBL ne se comporte pas de la même manière. Dès que l'aimant a atteint la distance minimale d'activation du reed (ouverture du reed), le message "A1. Fin de course atteinte(P?)" apparaît sur l'écran.

Cette différence de comportement me fait craindre que ma RS-CNC32 ne s'arrêtera pas, si je lance un home.

Qu'en pensez-vous ?

J'ai également une autre question, purement firmware, et qui je pense est indépendante de l'utilisation de l'optocoupleur. Constatez-vous le même comportement que moi sur vos machines. Lorsque je mets ma RS-CNC32 sous tension j'ai le message ALARM en haut à droite. Si je presse le bouton "Débloqué", le statut de la machine passe en "IDLE", et si dans la foulée je fais un reset, soit en appuyant sur le bouton "Reset" sur l'écran, soit en appuyant sur le bouton reset (physique) qui se trouve en façade de la RS-CNC32, le statut de GRBL repasse en ALARM. Cela vous fait la même chose ?

@+
mstrens
Messages : 2611
Enregistré le : 27 févr. 2018 12:58

Re: Optocoupleur et fins de courses

Message par mstrens »

Le phénomène que tu observes peut sans doute s'expliquer de la façon suivante mais je devrais vérifier dans le code pour en être certain.

En fait GRBL ne lit pas en continu l'état du fin de course.
C'est géré par ce qu'on appelle des interruptions.
Le principe est que quand le STM32 détecte qu'une entrée passe d'un niveau à un autre, cela lui donne l'ordre de cesser son travail courant pour faire un traitement spécial (= interruption).Le STM32 peut être configuré pour réagir à tous les changements ou seulement à des "fronts" montant (passage de bas vers haut) ou au contraire "descendant" (passage de haut vers bas).

Quand un bouton poussoir se ferme/s'ouvre, en général la tension ne passe pas qu'une seule fois d'un niveau à l'autre. Il y a ce qu'on appelle un effet de rebond (qui ne dure que quelques milli secondes). Cela signifie donc que le processeur "voit" plusieurs fronts pour une seule activation.
Pour éviter ce phénomène on met habituellement un filtre (résistance + condo). C'est ce qui existe sur la carte de Romain.

Un optocoupleur met un certain temps à réagir et sert donc de filtre. C'est un des éléments qui fait qu'il protège des parasites.
Il se pourrait qu'il n'y ait pas cet effet rebond et que le STM32 ne réagisse qu'au moment de la dé-activation du fin de course et non à son activation. Si c'est le cas, il faudrait changer dans le programme le front (montant ou descendant) auquel est sensible le STM32.

A noter que pendant un homing, le fonctionnement est différent je pense.
Si je me rappelle bien, GRBL lit en continu l'état du fin de course et ne réagit pas seulement sur les fronts montants/descendants.
Il se pourrait donc que le homing fonctionne mais pas les alertes.
Tu peux l'essayer en faisant en home en partant de l'extrémité opposée et en activant le fdc manuellement avant que la cnc n'approche de la butée. Au besoin tu actives l'arrêt d'urgence si cela ne réagit pas comme prévu.
Avatar du membre
HTheatre
Messages : 5910
Enregistré le : 31 mars 2019 08:21
Localisation : Rivesaltes

Re: Octocoupleur et fins de courses

Message par HTheatre »

Alors j'ai essayé de réaliser un home avec les précautions que tu m'as indiquées, mais je n'ai pas réussi. Je dois avoir un problème sur le circuit du reed des Z... Quoi que vu ce que cela me fait, je ne suis pas certain que cela ne soit que ça.

En début de soirée, quand j'ai réalisé mes tests d'approche de l'aimant des reed et constaté ce que je t'ai indiqué dans mon précédent post, j'ai d'abord remarqué que mon reed en Z ne s'activait pas. J'ai en premier cru qu'il avait cassé, mais je l'ai contrôlé au testeur de continuité il il me paraît ok, puisque raccordé au multimètre, le multimètre bipe en continue jusqu'à ce que j'approche un aimant du reed et où là le multimètre cesse de biper. J'ai ensuite testé la continuité du fil qui va du reed jusqu'à l'entrée IN3 de l'optocoupleur, à laquelle le circuit du endstops des Z est raccordé. Le multimètre bipe également en continue. Enfin, j'ai mesuré la résistance depuis l'autre fil qui va du reed au +24V de l'alimentation 220VAC/24VDC, en passant par le résistor de 2KOhms, et j'ai trouvé une valeur de résistance de l'ordre de 0,350 KOhms qui varie de quelques 0,010 KOhms en permanence. Mon électronique étant déportée j'utilise 3 connecteurs à 3 broches (type aviation) à l'arrière de mon boîtier pour y raccorder chacun des endstops de la RS-CNC32. Pour tester l'optocoupleur, j'ai refais les soudures sur ces connecteurs, et ce faisant j'ai remarqué qu'il y en avait une qui me paraissait être en contact avec l'enveloppe métallique du connecteur... Mais je n'y ai pas prêté plus attention que cela et je ne me rappelle plus si c'était sur le connecteur 3 broches du endstop des Z. Je me rappelais simplement que la soudure en question était celle de la broche sur laquelle était soudé la tresse de blindage du câble. Je l'ai donc débranché du GND (V-) de l'alimentation 220VAC/24VDC et en remesurant à nouveau la résistance de mon fil (reed - résistor - 24V) j'avais trouvé pile-poil 2KOhms, et quand j'approchais l'aimant du reed cela semblait fonctionner : j'avais bien le message "A1.Fin de course atteinte(P?)", si bien entendu je reculais l'aimant de quelques millimètre lorsqu'il se trouvait à la distance minimal pour activer (en position ouvert) le reed. Il semble que mon problème sur le circuit du reed des Z ne soit pas totalement résolu. en effet, à l'instant j'ai essayé à nouveau d'activer le reed des Z avec un aimant en l'avançant sur le reed puis en le reculant, et je n'ai eu aucun message sur l'écran.
Je n'avais pas le multimètre avec moi dans le garage et j'avais la flemme d'aller le chercher.
En passant le circuit du endstop des Z sur IN4 et OUT4, je suis arrivé à avoir à nouveau le message "A1.Fin de course atteinte(P?)", j'ai donc tenté un home un aimant dans la main prêt à l'approcher du reed des Z et la surprise, quand j'ai appuyé sur le bouton home l'axe Z est descendu au lieu de monter et m'a affiché le message "A8.fin de course atteinte durant un homing". J'en déduis que j'ai déjà un souci sur le circuit du reed des Z qui doit être ouvert quelque part. J'ai vérifié et au nunchuk comme via le menu "bouger" l'axe Z se déplace dans le bon sens. Donc si je peux comprendre que j'ai un souci sur le circuit du reed des Z, je ne m'explique quand même pas pourquoi GRBL est parti à l'opposé du reed sur cet axe. Par contre, si je connecte le circuit du reed des Z sur IN1/OUT1 à la place du circuit du reed des X, et celui des X sur IN4/OUT4 à la place de celui des Z, et que je lance un home, GRBL fait bien monter l'axe vers le reed. Seul problème, j'ai dû percuter le bouton d'arrêt d'urgence ou il me m'arrachait le support du reed des Z et me défonçait, en prime, le dolly_top.

Sur ce, vu l'heure, j'ai arrêté d'essayer de faire des homing de peur de finir par faire une c*nn*r**. Je ré-essayerai demain, en re-contrôlant préalablement à nouveau mon circuit du reed des Z, en inversant cette fois les axes sur la carte GRBL 32 bits, de manière à ce que GRBL démarre la séquence de homing par l'axe X, qui si nécessaire me laisse un laps de temps d'intervention sur le bouton d'arrêt d'urgence plus important.

Avant d'éteindre la lumière et de quitté le garage, j'ai quand même testé la réaction de GRBL en déplaçant les chariots en direction des reed, via le menu "bouger". Pour Z, pas de surprise, j'arrive à coller l'aimant au reed sans qu'il ne se passe rien. Pour X et Y en revanche, bonne surprise, GRBL me stoppe et m'affiche bien le message "A1.Fin de course atteinte(P?)" quand j'arrive à quelques millimètres du reed.

Bref, je ne sais pas trop ce qui se passe : optocoupleur défectueux, circuit du reed des Z mal câblé/soudé, mais c'est vraiment la misère à mettre en œuvre ce dispositif.
J'essaye encore un peu demain matin (enfin ce matin, vu l'heure) et ensuite j'arrête, car, en plus, je ne fais même pas ce test pour moi ; je n'ai jamais eu un seul soucis sur mes fins de courses, même quand j'utilisais les microrupteurs mécaniques et les reeds en remplacement semblaient parfaitement fonctionner sans optocoupleur.

Et pour l'histoire du reset, tu ne m'as pas répondu mstrens. Cela te fait ça aussi ?
mstrens
Messages : 2611
Enregistré le : 27 févr. 2018 12:58

Re: Optocoupleur et fins de courses

Message par mstrens »

Comme tu le sais, quand GRBL fait un Home, il commence par aller dans la direction du fin de course et une fois celui-ci est atteint, il fait un retrait avant de repartir lentement à la rencontre du fdc.
Quand ton axe Z est parti dans la direction opposée, il se pourrait que le fdc était déjà activé et donc il a commencé tout de suite à faire le retrait. Toutefois celui-ci n'aurait pas dû dépasser la longueur prévue de quelques mm. Si le fdc ne se déactive pas à la fin du retrait, GRBL est sensé s'arrêter.
Est-ce que cette explication peut convenir?

A noter aussi que dans le montage traditionnel (sans optocoupleur), si un des 2 fils (mais pas n'importe lequel) du FDC avait par erreur un contact à la masse, cela n'avait de conséquence car de toute façon son extrémité était connectée à GND sur la carte GRBL.
Avec l'optocoupleur, c'est différent car aucun des 2 fils ne peut être en contact direct avec Gnd, l'un est en contact avec la résistance et l'autre avec la pin IN de l'optocoupleur.

Effectivement, il vaut mieux faire les tests avec les axes X ou Y pour avoir plus de temps pour réagir.
Tu peu aussi changer la vitesse à laquelle GRBL fait le homing (c'est un paramètre GRBL).

Tiens aussi compte de l'élément suivant dans tes tests pour debugger la situation:
- durant un homing, GRBL lit en permanence l'état du contact et réagit en conséquence
- durant un mouvement (clavier, nunchuk), GRBL ne réagit qu'au changement d'état. Donc si ton fin de course est déjà activé avant de lancer le mouvement, il n'empêchera pas le mouvement (enfin c'est ce que je pense).

Pour les tests, je te conseille de toujours laisser le multimètre branché entre OUT et Gnd pour être sûr de connaître ce que "voit" GRBL.
Probablement que tu peux même remplacer le multimètre par une LED+résistance pour voir l'état.

Je pense que GRBL repasse en alarm après un reset si les charriots étaient en mouvement (car comme il arrête instantanément les moteurs, il y a risque de perte de pas et il ne peut garantir la position). S'il y a un soft reset lorsqu'il n'est pas en mouvement, je pense que GRBL ne passe pas en alarme. C'est juste un raisonnement. Je n'ai pas testé (mon installation est actuellement démontée suite aux tests commencés avec le TFT 4")
Avatar du membre
HTheatre
Messages : 5910
Enregistré le : 31 mars 2019 08:21
Localisation : Rivesaltes

Re: Optocoupleur et fins de courses

Message par HTheatre »

Bonjour,

Mauvaise nouvelle. Je viens d'ouvrir la prise 3 pôles (type aviation) du endstop des Z, les soudures de celle-ci me paraissent pas mal du tout et aucune n'est en contact avec l'enveloppe métallique de la prise. Si j'avais bien identifié que sur une des 3 prises 3 pôles des endstops j'avais le blindage qui me semblait être en contact avec l'enveloppe métallique de la prise, et bien ce n'est pas sur celle-ci.

Je vais quand même dessouder les fils et les ressouder sur une prise neuve qu'il me restait et en profiter également pour remplacer le résistor qui est va d'une patte du reed au +24V de l'alimentation 220VAC/24VDC (même si je ne crois pas que le résistor puisse être en cause... à la rigueur une mauvaise soudure à l'une de ses pattes). Du coup, je soupçonne de plus en plus le reed lui même, même si d'après les tests que j'avais réalisé hier en fin de soirée, pris séparément et en y connectant le multimètre en mode testeur de continuité, celui-ci semblait se comporter normalement : bip en continue sans aimant, puis arrêt du bip lorsque l'on approchait l'aimant. Si je n'ai pas la flemme, je remplacerai le reed aussi, mais c'est un peu plus de boulot : impression d'un nouveau support de reed, soudure et installation du nouveau reed, ennoyage du reed à la colle époxy).

Je vous tiens au courant.

@+
Répondre