Certains savent que je suis heureux propriétaire d'une fraiseuse CNC EMCO F3-CNC avec son contrôleur d'origine EMCOTRONIC M1.
Cette machine me donne satisfaction mais elle est franchement orientée programmes. Je veux dire pas du tout utilisation manuelle.
Par exemple, il n'est pas possible directement de faire un zéro pièce. Il faut passer par le mode Exec, entrer un G92 avec les valeurs absolues de l'origine pièce (en tenant compte de l'offset de l'outil déclaré) puis un G59 pour activer le changement d'origine et actionner la touche EXEC enfin revenir au mode Manuel ...
Tout ça éminemment logique et sans problème dans un programme mais trop compliqué à utiliser quand on veut juste faire une petite opération. Résultat : j'ai l'ardoise avec laquelle je note la position d'origine en coordonnées machine et la position que je cherche à atteindre en fin de passe par exemple. C'est loin d'être optimal. Bien entendu elle n'a pas non plus de fonctions avancées en mode manuel.
J'ai déjà bien amélioré la situation en ajoutant une commande de jog déportée de façon à pouvoir travailler face à ma pièce mais je souhaiterais aller plus loin.
Mon idée serait d'acheter une visu DRO 3 axes de ce genre ou plus simple (pour les fonctionnalités) mais au moins avec calcul de centre, compensation de pinule etc :
sachant que bon nombre de réglés chinoises sont au standard TTL il ne devrait pas avoir trop de difficultés a adapter ça sur des signaux step/dir qui eux aussi sont en TTL
sachant que bon nombre de réglés chinoises sont au standard TTL il ne devrait pas avoir trop de difficultés a adapter ça sur des signaux step/dir qui eux aussi sont en TTL
Les signaux d'entrée de DRO sont en quadrature ce n'est pas du step/dir mais avec un petit µcontroleur ou des portes logiques ce serait possible d'adapter @pailpoe devrais pouvoir aider ...
Les signaux d'entrée de DRO sont en quadrature ce n'est pas du step/dir mais avec un petit µcontroleur ou des portes logiques ce serait possible d'adapter
C'est exactement ce que je fais sur ma version ESP32 de Minithread créé par @pailpoe .
Comme je n'ai pas de règles je reboucle les infos Step/Dir sur les entrées X et Z .
Cela demande une modification de la programmation des compteurs en entrée .
Merci pour toutes vos réponses.
C'est ce que je me disais. Si je ne trouve pas de DRO acceptant directement les signaux Step/Dir, faire un triple convertisseur Step/Dir vers A/B quadrature.
Ce n'est évidemment pas la nature des signaux le problème, c'est du TTL asymétrique. Par contre, il faut que je me penche sur les signaux réels de la machine : durée, fréquence, synchro entre Dir et Step. @speedjf37 faut que je regarde votre fil, un ESP32, ça me parait une bonne idée. Il y aurait la possibilité d'avoir 3 canaux (paires S/D) en entrée et 3 en sortie (A/B) = 12 GPIO ? Ou alors il faut un ESP32 par canal ?
un ESP32, ça me parait une bonne idée. Il y aurait la possibilité d'avoir 3 canaux (paires S/D) en entrée et 3 en sortie (A/B) = 12 GPIO ? Ou alors il faut un ESP32 par canal
Il y a 8 PCNT (compteur hardware 16 bit ) dans 1 ESP32.
Je n'ai pas testé la génération de signaux en quadrature , j'utilise une lib FastStepper en sortie.
il y a 6 module PWM en sortie
Je n'ai pas besoin de compteurs et Cie, je veux juste prendre les paires S/D (2 entrée chacune) et faire les paires A/B correspondantes pour simuler une règle ou un encodeur en quadrature ce qui nécessite 6 entrées et 6 sorties.
Je ne suis pas trop d'accord avec ça. Le nom pour commencer est plus sur le fait que les signaux sont en quadrature de phase ce qui permet de déterminer le sens et effectivement de recouper le cycle en 4 étapes, un peu comme on fait des demi, quart de pas avec le moteur pas à pas.
Mais pour moi, un pas de mesure correspondrait à un cycle A ou un cycle B. Me trompe-je ??
Oui, c'est un domaine que je connais bien
Si on regarde les signaux des canaux A et B on a 4 possibilités. A partir de d'un signal Step il faut reproduire ces 4 possibilités.
En TTL il faut reproduire ces 4 possibilités. Il faut 2 compteurs et un inverseur pas axes. Le mieux serait de passer par une PLD.
Ah OK, TTL au sens portes logiques mais ça peut être du CMOS. Pas les caractéristiques du signal, tensions, niveaux logiques, limite de portes en sortie, etc ...
En résumé, ce sur quoi je m'interroge un peu c'est : si j'ai une impulsion Step (= 2,5µm sur ma machine) est-ce que je dois envoyer un cycle A = 1 état haut puis 1 état bas et aussi un cycle B (complet ?) pour que la DRO comprenne que c'est un incrément ?
Oui, oui mais ce n'est pas ce que je cherche à savoir.
Prenons le problème dans un autre sens : quel est le cycle sur A/B que comprend la DRO pour considérer qu'elle doit avancer son affichage de son incrément minimum ?
OK donc avec une impulsion Step de ma machine, je dois générer un cycle bas/haut/bas sur A et un cycle identique sur B mais retardé d'un quart (= front montant à moitié de haut du A).
Ceci pour un sens, naturellement.
Pour fixer les idées, j'ai relevé un oscillogramme du DIR et des STEPS à 3000mm/mn (vitesse maxi du G0) sur X avec un tout petit programme qui fait un aller et retour de 2/100mm :
On compte exactement 8 impulsions descendantes STEP pour chaque sens. Ça colle avec mes données sur la machine : 2,5µ/step.
On voit aussi que la ligne STEP reste à l'état haut pendant environ 50ms et que le changement de DIR se produit au milieu
La ligne DIR par contre reste dans son dernier état.
OK donc avec une impulsion Step de ma machine, je dois générer un cycle bas/haut/bas sur A et un cycle identique sur B mais retardé d'un quart (= front montant à moitié de haut du A).
Ceci pour un sens, naturellement.
Avec l'aide de CNCSERV j'avais créé un signal step /dir
Je pense que pour le signal TTL on doit pouvoir faire réutiliser deux fois le signal carré et décaler le timer entre les deux signaux d'un certain temps.
Après comment faire ça ? Bonne question...
Bonjour,
avec 2 bascules D (diviseur par 2) ?
le clk de de la première bascule D = step = voie A
et le clk de l'autre bascule D = step inversé = voie B
reste à inverser les entrées clk (ou les sorties de bascules) avec le DIR
A première vue sur les stm32 on peut avoir un timer pwm avec 2 channels
A voir comment les décaler et surtout compter le nombre de pulsations
Je lance ça comme ça, c'est à la limite de mes faibles connaissances
Bonjour,
avec 2 bascules D (diviseur par 2) ?
le clk de de la première bascule D = step = voie A
et le clk de l'autre bascule D = step inversé = voie B
reste à inverser les entrées clk avec le DIR
Désolé mais ça ne me va toujours pas !
On va dans le sens inverse = vouloir remonter à 4 impulsions à partir des deux signaux A/B alors que moi, c'est le contraire.
Si je fait une seule STEP, il se passe quoi ? Chez-moi, c'est une unité élémentaire, 2,5µm que sait gérer ma commande. Et ce n'est pas parce que je veux mes 2,5µm, à la limite le 1/100 me suffirait
Tu vois que une impulsion change une fois le A est une fois le B, ce n'est pas une quadrature. la DRO verra 2 changement pour un Step.
De plus les impulsions ne sont pas un signal carre donc les signaux A et B seront un peu boiteux.
Désolé mais ça ne me va toujours pas !
On va dans le sens inverse = vouloir remonter à 4 impulsions à partir des deux signaux A/B alors que moi, c'est le contraire.
Si je fait une seule STEP, il se passe quoi ? Chez-moi, c'est une unité élémentaire, 2,5µm que sait gérer ma commande. Et ce n'est pas parce que je veux mes 2,5µm, à la limite le 1/100 me suffirait
Là C'est pareil pour une implusion la DRO en comptera 4.
Il n'y a que mon graphique qui correspond a la quadrature car il faut 4 steps pour faire un cycle A B.
As an improvement to the simplest possible closed-loop servo system, I've been trying to design a circuit that will function as a quadrature divider: the input and output are both quadrature wavefo…