Gestion de servo+ frein avec Emc2

  • Auteur de la discussion biduleur34
  • Date de début
B
biduleur34
Compagnon
Bonjour,
ma cnc avance et je commence a me posé des question sur la partie elctrique .
J'ai recupere des servos moteurs, qui ont un frein par manque de courant, en gros quand il ne sont pas alimenté le moteur est bloqué.
Savez vous si Emc2 peu gerer le deblocage des freins, et si oui, comment.

Est t'il possible de faire une getion inteligente des freins ?


merci de vos conseils.

++
Léo
 
horsot
horsot
Compagnon
Bonsoir Léo,

Si j'ai bien compris, tu veux que lorsque les amplificateurs sont actifs (enable) les freins se désengagent? Dans ce cas il suffit d'utiliser le signal enable de tes axes dans hal et de le relier à la sortie voulue de ton port // par exemple.

Sinon EMC2 a une foule de signaux interne (HAL) qui donnent l'état de la machine et il y en a plus qu'il n'en faut. Tu peux réellement faire un réglage ultra fin grâce à HAL. Je te conseille forment de lire le manuel de l'intégrateur d'EMC2 pour bien comprendre comment intégrer ta machine.

Dans quelle conditions tu voudrais que tes freins soit libérés (machine on, début programme, jog,...)? et freiné (fin de programme,...)?

Bonne soirée

Xavier
 
B
biduleur34
Compagnon
Ben j'aimerai que les frein soit bloqué quand, un axe est pas utilisé pendent un certain nombre de step, Un peu comme en fraisage traditionel quand on bloque physiquement un Axe.

++
 
horsot
horsot
Compagnon
Ok je vois, pour l'engager c'est pas très dur, le souci c'est qu'il va falloir qu'il se libère très vite dès que l'axe redémarre et je pense que c'est physiquement impossible. En effet le "step" sera déjà parti que le moteur sera toujours freiné, ton correcteur va forcer pour corriger l'erreur et une fois vraiment libéré cela va entrainer un dépassement de consigne et des oscillations. En fait tout dépend du temps de réaction de ton frein, s'il est très rapide ça peut être simple (et que l'accélération de tes axe est "faible") ça peut marcher.

A ma connaissance il n'y a pas de façon de savoir si l'axe va être utilisé dans les prochaines secondes. A mon avis la seule façon est de regarder ce qu'a le "trajectory planner" dans son buffer... ce n'est pas vraiment accessible sans modifier le noyau d'EMC2.

Sinon je pense que le plus sûr est d'engager/désengager le frein dans le gcode après/avant chaque utilisation de l'axe (avec un mot Gcode personnalisé). Si tu sais programmer ce n'est pas très difficile à faire un script qui te rajoute ces commandes. Cela t'arrêtera ta trajectoire à chaque fois.

Est-ce que le jeu en vaut la chandelle?

Xavier
 
B
biduleur34
Compagnon
A vrai dire je ne sais pas si le jeu en vaut la chandelle, mais le frein je ne peu pas les demonter de mes servo donc a les faire fonctionné autant que ce soit de maniere inteligente.

++
 
nopxor
nopxor
Compagnon
Bonsoir,

Autrefois on mettait les mains dans le moteur...
Maintenant il est question de mettre les mains dans HAL (Hardware Abstraction Layer :wink: )
Cela me rapelle un film de Stanley Kubrick !
Non ne le déconnectez pas :shock:
 
T
taramop
Apprenti
Salut à tous

Aprés avoir lue bon nombre de sujet sur EMC2 j'ai tous un tas de question car étant windowsofil j'ai un peut de crainte avec linux est c'est lignes de commandes.

L'avantage avec emc2 c'est noyaux en temps réel donc pas besoin de carte d'interpolation en plus?
Emc2 exsiste t'il en version tournages?
la programation est elle plus simple que sous ninos ou mach3 par ex?
Peut on faire du filetage avec (projet d'un tour numérique)

Autre avantage c'est que l'intégration de servo moteur (brushlesse) est plus faciles est à priorie moins couteusse?

Pour le cas d'un servo moteur il faut un capteur angulaire incréméntal en plus au cul du moteur ( http://www.shop.cncdrive.com/index.php?categoryID=80) pour le retour en asservisement?

Peut on montée des régles optique avec un signal incrémental( http://www.heidenhain.fr/fileadmin/pdb/ ... 470-31.pdf page 9) à la places pour le même retour en asservissement?

Voilà j'ai due oublié des questions mais quand elles me reviendront en tête je ne manquerais pas de les poser.

bonne journée à tous
a+++
 
horsot
horsot
Compagnon
taramop a dit:
Salut à tous

Aprés avoir lue bon nombre de sujet sur EMC2 j'ai tous un tas de question car étant windowsofil j'ai un peut de crainte avec linux est c'est lignes de commandes.
Je vais être honnête, si tu ne veux pas de lignes de commandes alors linux n'est pas fais pour toi :wink: . Ensuite une ligne de commande c'est juste une "commande" avec des paramètres qui sont en général bien documentés. Il faut prendre le temps de lire (survoler) le manuel de chaque commande. Personnellement je n'en connais qu'une dizaine et encore pour les paramètres je regarde la doc à chaque fois.
Enfin tu n'est pas obligé de passer par les lignes de commandes mais souvent c'est nécessaire lorsqu'il y a des soucis et pour l'aide sur le forum c'est bien plus simple de dire "sudo apt-get install emc2" que de dire "tu vas dans le menu Système puis Préférence puis Gestionnaire de paquet synaptic puis tu cherches le paquet "emc2" avec le bouton recherche, tu le coches pour l'installation, tu valides les dépendances,..."
taramop a dit:
L'avantage avec emc2 c'est noyaux en temps réel donc pas besoin de carte d'interpolation en plus?
Le noyau temps réel peu remplacer un interpolateur jusqu'à un certain point en vitesse (signaux <50kHz). Sinon il existe des cartes (mesa ou autre) qui s'occupent de la génération de signaux et donc s'affranchissent de cette limite.
taramop a dit:
Emc2 exsiste t'il en version tournages?
EMC2 n'a qu'une seule "version" qui peut commander des centaines de machines différentes, tout est une question de configuration. Mais en effet il peut commander un tour et Axis (l'interface graphique d'EMC2) permet de prévisualiser le chemin et l'outil.

taramop a dit:
la programation est elle plus simple que sous ninos ou mach3 par ex?
Peut on faire du filetage avec (projet d'un tour numérique)
La programmation se fais en Gcode dont tu trouveras une liste ici la version anglaise est un peu plus à jour (gcode avancé). On peut bien sûr programmer du filetage sans problèmes avec G33 (une passes) ou G76 (multipasses).

taramop a dit:
Autre avantage c'est que l'intégration de servo moteur (brushlesse) est plus faciles est à priorie moins couteusse?
Les brushless DC ne semblent pas convenir au positionnement. Les servomoteur brushed DC ou brushless AC sont tout de même couteux (surtout les AC). Dans le cas d'une utilisation avec EMC2, c'est lui même qui fait la fermeture de la boucle et gère le correcteur PID. C'est dans ce sens où le driver est plus simple car un simple "amplificateur" suffit pour es servomoteurs DC brushed.
taramop a dit:
Pour le cas d'un servo moteur il faut un capteur angulaire incréméntal en plus au cul du moteur ( http://www.shop.cncdrive.com/index.php?categoryID=80) pour le retour en asservisement?
oui pour pouvoir avoir le retour de la boucle d'asservissement.

taramop a dit:
Peut on montée des régles optique avec un signal incrémental( http://www.heidenhain.fr/fileadmin/pdb/ ... 470-31.pdf page 9) à la places pour le même retour en asservissement?
Oui, il faut juste faire attention à ce que le signal soit en quadrature pour être facilement exploitable (comme sur les encodeurs incrémentaux rotatifs).

Bonne journée à toi aussi

Xavier
 
wika58
wika58
Compagnon
Bonjour,

Je suis débutant en CNC et comme sur ma X2, les jeux sont limites, je comptais mettre des freins (pneumatiques) sur les 3 axes.

Et donc en voyant ce sujet, je serais intéressé de savoir si la problématique est la même avec des moteurs PAP?

J'avais aussi envisagé d'utiliser l'Enable des cartes d'axes... :roll:

Mais l'idée d'un G-Code spécial est intéressante... :eek: Je ne savais pas qu'on pouvais faire des codes perso... 8-)
 
horsot
horsot
Compagnon
Bonjour Wika58,

Dans EMC2 (je pense que MACH3 doit avoir une fonction similaire), il y a 100 codes personnalisés qui sont de "M100" à "M199" et appellent des scripts (ou exécutables) du même nom. La doc correspondante en Français :
http://linuxcnc.org/docs/html/gcode_main_fr.html#sub:M100-a-M199

Pour moi et dans nos applications, la majorité du Gcode peut être fait à la main ou par de petits scripts personnalisés (bout de gcode basiques et paramétrables). Ça permet aussi de faire de l'utilisation de CNC semi-automatique pour ajuster une cote (nos machines/outils ne sont pas vraiment très précis).

Sinon avec une gestion de post-pro dans les logiciel de FAO l'ajout de commandes personnalisés doit être faisable.

Xavier Horsot
 
wika58
wika58
Compagnon
Merci Xavier, encore un lien bien intéressant...

A ton avis avec des freins pneumatiques (qui appuient sur les lardons à la place de la vis de blocage d'origine) tu crois que ça irait avec le "Enable".
Je crois qu'on peut paramétrer la rampe d'accélération dans EMC2 :roll:
Et donc en mettant une faible pente d'accélération... de toute façon, je suis un peu limite avec les PAP et je ne dois pas aller trop vite sinon ca décroche à certains endroits de la course... :P
 
P
pierrepmx
Compagnon
Salut,

je m'étais posé la question du freinage, mais pour un (hypothétique) 4ème axe qui aurait un frein (pouvant alors servir d'indexeur, même avec un moteur PAP avec une force de maintient "relativement" faible) sur un portique CNC.

Effectivement, je n'ai trouvé aucun moyen simple de réaliser ça hormis un code personnalisé et un "dwell" (un delai) pour laisser le temps d'un blocage en douceur.

Pour du code écrit "à la mano", il suffit de les insrer aux bons endroits.

Dans le cas où la source est un code généré automatiquement par un soft de CFAO, cela pourrait être fait automatiquement par un préprocesseur qui pourrait avoir une double forme: plugin python pour Axis + standalone python ou autre.
Le principe est:
- Génération de [déblocage frein + délai] avant mouvement impliquant le 4ème axe,
- Génération [blocage frein + délai] après à la fin d'un bloc consécutif de mouvement impliquant l'axe 4.
- Des exceptions comme des commandes modales (comme changement de système de coordonnées) pourraient ne pas être prises en compte pour l'évaluation de la fin du bloc (pour ne pas ralentir le programme inutilement par certains délais évitables)

Ça pourrait être transposable au problème initial (c.a.d. généralisé à tous les axes): on fait l'analyse d'utilisation/non utilisation de chaque axe, en parallèle, et de façon indépendante.

Par contre, dans ce cas, il me semble que sur des tracés très "dynamiques", genre angle raide à grande vitesse, l'effet des différents mode d'interpolation sera légèrement différent en fonction des micros délais insérés (sauf normalement pour le mode qui oblige à passer par tous les points programmés).

Bon, il y a peut-être un truc que je n'ai pas vu et cette solution est peut-être stupide :-D

Pierre.
 
Haut