EMC2 tuto complet

Modérateurs: Beau94, rednexage, patduf33, jms, fabrice c, Domingo57

EMC2 tuto complet

Message non lupar Poussin » 23 Mai 2010, 13:39

Bonjours à tous,

Un tuto sur EMC2 est en ligne sur le site ID-Conception :-D , (enfin presque il me manque quelque image et vidéo sur l'usinage, je pense avoir le temps de faire ça se weekend :wink: )

Il est très complet, il se décompose en 5 parties :
- EMC2 Présentation
- EMC2 Installation
- EMC2 Configuration
- EMC2 Interface
- EMC2 Utilisation (bientôt disponible)

Avis perso
après avoir essayé EMC2 et Mach3, je vous conseil fortement EMC2.
Il y a tout se dont vous avez besoins pour faire fonctionner votre machine ID-CNC ou tout autre machine commandé par port //.

Quelques images pour vous donner envi :wink:
Image

Image

Bruno.
Poussin
habitué
habitué
 
Messages: 184
Inscription: 15 Mar 2009, 00:36

Publicité

Message non lupar horsot » 17 Aoû 2010, 14:41

Bonjour Bruno,

Beau tutoriel, bravo!

Comme tu t'en doutes :wink: j'ai 3 remarques (encore):

1 - Un "détail", dans ta page présentation il y a :
"L'autre particularité, c'est qu'il tourne sous linux, avec un noyau temps réel. Ainsi, les communications avec le port parallèle peu se faire avec une latence extrêmement faible"
La latence (retard) entre le processeur et le port parallèle ne dépend pas du logiciel mais de la structure matérielle, dans le cas du port // la latence est négligeable pour notre application (temps réel ou non). De plus le fait que le système d'exploitation soit "temps réel" donne une latence constante mais pas nécessairement faible, c'est le "Jitter" (les variations de latence) qui doit être le plus faible possible. En effet de manière générale la latence et, en général, les performances d'un système temps réel sont dégradé par rapport à un système classique. On peut comparer un système temps réel à un métronome, l'important c'est qu'il soit régulier pour entendre une mélodie correcte (pas qu'il soit rapide et irrégulier).

3- Une autre remarque, toujours dans la rubrique présentation : "Décélération entre 2 lignes"!?! Peux-tu détailler, je n'ai pas ce genre de phénomène et j'en ai jamais entendu parlé dans la liste de diffusion (où il discutent de point autrement plus pointus et fins). De plus EMC2 bufferise et préinterprête les lignes de G-codes afin de ne pas avoir de "blanc" dans la trajectoire. Pour tes exemples simples, l'ensemble du Gcode est en mémoire et est déjà interprété dès le départ du cycle.
Je vois une raison à cette décélération : l'accélération de tes axes est trop faible et lors de changement de direction (entre 2 lignes ou dans les trajectoires courbes) EMC2 limite la vitesse d'usinage pour en attendant que les axes aient atteint leur vitesse de croisière afin de respecter au mieux la trajectoire. Je te conseille d'essayer avec une accélération (bien) plus importante. Pour te convaincre que les "lignes" n'ont rien à voir avec ton souci, essaie de faire de petits segments (des centaines voir plus si tu veux) tous colinéaires et tu verras qu'il n'y a pas de ralentissement. Il y a une autre solution pour "gagner" en vitesse de trajectoire c'est de jouer avec les mots :
____"G61" trajectoire exacte, ie suivi de la trajectoire au mieux possible)
____"G61.1" point stop exact, ie la machine s'arrête brièvement à chaque fin de trajectoire)
____"G64 P- Q-" mode continu, qui te permettent d'être plus "laxiste" sur le suivi de trajectoire d'une tolérance "P" (il coupe un peu les coins) et ainsi limitant les ralentissements (utile pour les machine à fil chaud par exemple). L'option "Q" permet de simplifier la trajectoire (segments colinéaire, arcs en segments,...) tout en restant dans la tolérance "P".

3 - Une autre remarque, dans ta page "Configuration". Ubuntu 8.04 est hardy heron et non dapper, je crois qu'il y a eu inversion (mauvais script)? Le problème de ce script c'est qu'il rajoute un nouveau dépôt sans enlever l'ancien... Ça ne doit pas poser de soucis mais ce n'est pas propre de laisser de vieux dépots actif...

Sinon le reste me semble bon, en tout cas merci de tes contributions continue comme ça!

Comptes-tu continuer la série de tutos pour couvrir les aspects plus avancés (fichier de configs, HAL, Pyvcp,...)?

A bientôt

Xavier
Dernière édition par horsot le 17 Aoû 2010, 16:00, édité 1 fois.
horsot
pilier
pilier
 
Messages: 767
Inscription: 27 Mai 2009, 23:34
Localisation: Toulouse

Message non lupar wika58 » 17 Aoû 2010, 15:43

Super l'idée de ce tuto... :smt038

Je vais le potasser car je débute sur EMC2.
J'ai eu bcp d'aide pour la configuration, mais pour me lancer dans l'utilisation, cela me sera bien utile... :roll:
Pat.
Avatar de l’utilisateur
wika58
Modérateur
Modérateur
 
Messages: 7508
Inscription: 17 Déc 2006, 22:18
Localisation: F-54560 Longwy <>Thionville

Message non lupar Poussin » 17 Aoû 2010, 19:35

Oui tu me l'avais dit mais je n'ai pas eu le temps de modifier les pages, je suis très très pris en se moment.

Pour le ralentissement j'ai trouvé, il fallait augmenter la vitesse d'accélération je suis passé de 30 à 300.
L'histoire des fonction P- et Q- sont pas mal, il faut que j'essaie voir si je ne peux pas obtenir un lissage (programmation en ligne droite de forme 3D)

Je ne sais pas quelle version j'ai, celle de base proposé sur le site de EMC2.
Il va bientôt sortir sur la version Ubuntu 9

Perso je n'ai pas le temps de travailler avec ma machine donc découvrir de nouvelle fonction et en sortir un tuto ce n'ai pas prévu pour le moment.
A moins que tu le fasses et je le poste :-D


merci wika58, il y a encore des boulettes qui trainent mais les bases sont là tu pourras faire fonctionner ta machine.
Poussin
habitué
habitué
 
Messages: 184
Inscription: 15 Mar 2009, 00:36

Message non lupar dh42 » 17 Aoû 2010, 22:21

Bonjour à tous,

Petite précision concernant les ralentissements de la machine.

La valeur d'accélération est effectivement importante, mais il y a un autre paramètre à prendre en compte si vous utilisez CamBam.

Lors de la conversion en Polyligne (Edit/convert to/polyline) CamBam transforme tout en lignes ou arc, et pour cela il utilise un paramètre définissant la précision de suivie du tracé. Ce paramètre est malheureusement sans unité, autrement dit il ne change pas, que l'on travaille en pouce ou en mm.

Par défaut ce paramètre est réglé sur 0.001, autrement dit, lorsque l'on travaille en mm la précision du tracé n'autorise pas de déviation de plus de 0.001mm :shock: ce qui produit une quirielle de traits très court = Gros fichier G-Code et ralentissement de l'usinage.

Pour info, la même pièce (un cœur) passe de 970 lignes avec 0.001, 250 lignes avec 0.05 et 100 lignes avec 0.1 (sans que je vois la moindre différence sur l'aspect de la pièce) .... et les ralentissements on disparus :-D

le paramètre en question se trouve dans le menu: Tools/options

ligne: SplineToPolylineTolerance. (je tourne avec 0.1 pour du bois)

N'oubliez pas de le remettre à 0.001 si vous travaillez en pouces, sinon vous n'aurez qu'une précision de 2.5mm :eek: (0.1 pouce)

Vous pouvez jouer sur ce paramètre si vous utiliser une version de Mach3 limité à 500 lignes afin de faire maigrir le G-code :wink:

ATTENTION: il faut modifier le paramètre AVANT de commencer à convertir vos traits/splines.

La modif de ce paramètre nécessitera également d'augmenter la valeur de jointure (EDIT/join) sinon les traits ne se raccorderont pas (pour 0.1 en SplineToPolylineTolerance je tourne à 0.2/0.3 en jointure)

++
David
Avatar de l’utilisateur
dh42
pilier
pilier
 
Messages: 2656
Inscription: 04 Sep 2009, 20:53
Localisation: Près de St Etienne (42)

Message non lupar Poussin » 18 Aoû 2010, 09:40

Merci pour ses précisions :wink:
Poussin
habitué
habitué
 
Messages: 184
Inscription: 15 Mar 2009, 00:36

Message non lupar horsot » 18 Aoû 2010, 10:39

Bonjour à tous,
Il me semblait bien que je t'en avais déjà parlé mais je ne savais plus :smileyvieux:

Pour le "lissage" je pense que ça peut marcher.

Pour la version d'EMC2, normalement tu as la dernière la 2.4.3. La version est affichée en haut de la fenêtre d'AXIS (dans la barre). Le gestionnaire de mise à jour d'ubuntu va proposer les mises à jours automatiquement jusqu'à la version 2.5.x d'EMC2. Ensuite il faudra changer le dépot (emc2.4 par emc2.5) dans le gestionnaire de paquet. Ce n'est pas automatique car en général à chaque version mineure (ex: 2.4 => 2.5) il y a des petites incompatibilités de fichiers de configuration qui nécessitent d'être légèrement retouchés pour refonctionner.

Pour la version des scripts il y en a 2, un pour ubuntu "dapper" et un pour "hardy". La version ubuntu 8.04 est la "hardy heron" donc il faut prendre le script correspondant. De toute façon je conseille de mettre à jour la liste des dépots pour passer de la version 2.2 (présente sur le CD par défaut) à la version 2.3 au lieu d'utiliser ces scripts.

Ubuntu propose des versions toute les 2ans à support long (4 ans). les versions (année.mois) 6.04, 8.04 et 10.04 en sont. Il y a des problèmes d'intégration du noyau temps réel dans la dernière version d'ubuntu 10.04 .

Pour ce qui est du tutoriel, en ce moment je n'ai pas beaucoup de temps et pour être honnête je n'ai pas vraiment l'envie de m'y investir car j'ai déjà trop de "chantiers" en cours il faut faire des choix. Par contre si un jour tu l'écris, j'en ferai avec plaisir une relecture/critique (constructive). :wink:

Pour la remarque judicieuse de bh42, j'ai regardé de plus près cet effet de "saturation". Il semblerait que l'interpréteur de gcode ne soit pas temps réel donc ne soit limité que par la puissance de calcul du PC... Il y a de la marge surtout que la trajectoire interprété est pré-bufferisé (des centaines de mouvements segments et arc de cercles) avant d'être "exécuté" par le "contrôleur de mouvement". Par contre ce dernier est temps réel (à 1kHz, servo thread). Il semble ne prendre en compte que le mouvements en cours (un seul) pour savoir s'il est sur la trajectoire en cours, c'est ce point qui me semble limitant. Je pense que ceci pourrait expliquer le phénomène de saturation évoqué par dh42 et doit pouvoir se contourner avec "G64 P- Q-" si on souhaite être plus laxiste sur la trajectoire.

Sources (la première est très intéressante):
*http://wiki.linuxcnc.org/cgi-bin/emcinfo.pl?WhyManualWhilePausedIsHard
*http://linuxcnc.org/docs/2.3/EMC2_Developer_Manual.pdf.

Je tien à préciser que je suis loin d'avoir une vison d'ensemble d'EMC2, il y a 2 ans je ne connaissais (presque) rien en CNC. Tout ce que je sais vient de la lecture et relecture des différentes documentations (wiki et doc), de la lecture de la liste de diffusion, des quelques échanges sur l'IRC, de quelques timides excursions dans le code source.

Bonne journée

Xavier
horsot
pilier
pilier
 
Messages: 767
Inscription: 27 Mai 2009, 23:34
Localisation: Toulouse

Message non lupar emart » 28 Aoû 2010, 12:06

Merci pour ces tutos que je vais consulter avidement. J'envisage d'utiliser un poste dédié linux + emc2 pour mon micro tour
emart
 

Message non lupar boris » 07 Mar 2011, 20:49

Bonjour, je remonte ce topic car je souhaite savoir si certaines personnes comme moi n'arrive pas à installer emc2, il me parait énormement gourmand et pour cause, il demande au miminum 256mo de ram pour lancer l'install :\ je veux bosser sur un pc qui est équipé de 200mo de ram et j'ai pas envie de devoir racheter de la ram à prix d'or ou de devoir changer de config.

Y'a t il un moyen de pouvoir l'installer sans avoir besoin d'autant de ram ?
boris
habitué
habitué
 
Messages: 113
Inscription: 15 Mai 2007, 22:29

Message non lupar horsot » 08 Mar 2011, 14:18

Bonjour Boris,

boris a écrit:[...] il demande au miminum 256mo de ram pour lancer l'install [...]
Y'a t il un moyen de pouvoir l'installer sans avoir besoin d'autant de ram ?


C'est ubuntu qui demande 256Mo de ram pour fonctionner. Il y a moyen de le faire tourner avec moins mais l'installation devient plus complexe (installation d'un linux + patch noyau en temps réel RTAI + installation d'EMC2). Sinon un méthode peut-être de partir d'un CD "Xubuntu alternate" puis suivre la procédure d'installation manuelle d'EMC2 (voir wiki), ce doit être le plus simple.

Ensuite Je ne sais pas si ta configuration sera capable de faire tourner "AXIS" l'interface graphique 3D de EMC2. Il faudra peut être que tu te rabattes vers une solution plus légère.

En bref, à ta place je ne m'embêterai pas je récupèrerai un vieux PC (ami, famille, benne,...) avec 512Mo de RAM. Tu auras bien d'autres défis à configurer ta machine. :wink:

Bonne continuation

Xavier
horsot
pilier
pilier
 
Messages: 767
Inscription: 27 Mai 2009, 23:34
Localisation: Toulouse

Message non lupar boris » 08 Mar 2011, 19:12

oui je crois que je vais racheter une carte mere un peu plus recente avec un minimum de 512mo de DDR ca sera toujours mieu que ma sd ram PC100 de 200mo actuel
boris
habitué
habitué
 
Messages: 113
Inscription: 15 Mai 2007, 22:29

Message non lupar boris » 13 Mar 2011, 15:03

bon voila j'ai finalement changé de config et ca fonctionne, je vais utilisé ce tutoriel pour commencer à apprendre à me servir d'emc2 car je n'ai jamais utilisé emc2 ni linux, mais ca a l'air vraiment pas mal, je m'interesse aussi à la fonction HAL , y'a t il des tutos ou des topics qui en parle ?
boris
habitué
habitué
 
Messages: 113
Inscription: 15 Mai 2007, 22:29

Message non lupar xi » 01 Avr 2011, 18:42

Pour information, j'utilise un vieux Pentium III 1GHz (?) monté sur une carte mère Abit BH6 avec 640Mo de RAM et un disque dur de 6.4Go.
C'est hyper stable, jamais de plantage, jamais de problèmes et ca coute rien vu l'age que ca a (la carte mère doit dater de 1998 et le processeur un peu plus récent). Le PC est allumé non-stop depuis pas loin de 2 mois avec EMC2 qui tourne pratiquement tous les jours ...
xi
habitué
habitué
 
Messages: 126
Inscription: 21 Oct 2010, 13:43

Message non lupar ewidance » 30 Avr 2011, 06:40

Bonjour,

Je reviens sur un point cité par horsot et qui ne m'avais pas sauté aux yeux lors de la première lecture. Je cherchait l'origine de problèmes de rapidité, sur des usinages générés avec CAMBAM, et ou la multiplicité des segments (gravure) faisait que la broche n'atteignait jamais la vitesse maximum.

J'ai d'abord optimisé la vitesse d'accélération dans la configuration de la machine sous EMC2, et effectivement cela a été mieux. J'ai aussi testé l'optimisation de la génération des segments comme décrit dans le post de DH42, et effectivement cela était un peu plus rapide et surtout beaucoup plus compact, mais sans être spectaculaire sur certains usinages.

Le fond du problème semble bien que même avec le bon processeur (EMC2) Cambam est incapable de générer toutes les valeurs possibles des Gcodes G61/G64 pour le paramètre d'usinage global 'Velocity mode'.

Effectivement sur EMC2, G64 peut prendre un paramètre P (G64 Px.xx), avec une tolérance (x.xx). Cela active une fonction unique dans EMC2: le 'Naive CAM Detector'. C'est cette fonction qui permet d'optimiser les tracés tant qu'ils restent dans la tolérance indiquée en paramètre à P. Malheureusement CAMBAM ne peut pas générer ce paramètre. Et c'est bien dommage, car là, l'usinage se fait à la vitesse de l'éclair..

Comme il serait dommage d'éditer chaque fichier Gcode à la main pour ajouter ce paramètre, l'auteur de cambam a décrit un work around que je m'en vais décrire ci dessous.

Les post processeurs sont des fichiers XML qui permettent de paramétrer la façon dont le Gcode sera produit.

L'idée est de dupliquer le post processeur d'EMC2, et de le modifier afin qu'il génère un G64 P x.xxx au lieu d'un G64 tout court. La valeur de x.xxx sera par contre fixe, mais nous évitera de modifier systématiquement les fichiers gcode...


Les post processeurs sont dans c:\Documents dans Settings\all users\application data\cambam plus 0.9.8\post.

Dupliquer EMC2.cbpp en EMC2-speed.cbpp, et modifier la ligne:
{$units} {$distancemode} {$velocitymode} {$cuttercomp(off)}

Pour la transformer en :
{$units} {$distancemode} {$velocitymode} P0.05 {$cuttercomp(off)}

Ici, la précision a été fixée à 5 centièmes de mm, ce qui est très largement suffisant pour de la gravure, mais vous pourrez avoir à trouver votre valeur pour vos besoins.

Sélectionner ensuite votre profil post processeur "EMC2-speed", dans le paramètre "Postprocessor" de cambam, et "Velocity Mode" à "Constant Velocity" pour que la génération de gcode produise bien le G64 P0.05 attendu.

Ensuite, c'est miraculeux, ca avoine ;)
Cordialement JP Civade
http://www.civade.com -- DIY, CNC, électronique, open source et musique...
Avatar de l’utilisateur
ewidance
habitué
habitué
 
Messages: 256
Inscription: 04 Oct 2010, 08:45
Localisation: Montpellier

Re: EMC2 tuto complet

Message non lupar Domingo57 » 21 Déc 2011, 00:10

Salut, J'épingle ton post, puisqu'il a l'air complet, se sera plus facile pour ceux qui recherchent de l'aide :wink:

bonne nuit
Celui qui prétend tout savoir est un fou.
Celui qui refuse de l'aide quand il en a besoin, aussi.
Avatar de l’utilisateur
Domingo57
Modérateur
Modérateur
 
Messages: 536
Inscription: 28 Juin 2008, 08:54
Localisation: Munster, 57

Suivante

Retourner vers EMC2 / LinuxCNC

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 2 invités