Initiation CNC

Bonsoir,
Saison1 - épisode4 : GCode
Bienvenue dans la nébuluse du GCode.
Sous le vocable GCode se cache beaucoup de choses, se terme générique regroupe souvent le gCode, le nCode, le oCode, le mCode, etc...

Les différents mots.

Un mot est une lette majuscule ou minuscule, autre que N, suivi d'un nombre réel. On sépare, la plupart du temps les lettres et les chiffres par un blanc pour améliorer la lecture mais ce n'est pas une obligation.
Les principales lettres utilisées sont :

Mot            Désignation

 F     Vitesse d'avance travail
 G     Fonction générales
 I     Décalage en X pour les arcs et dans les cycles G87
 J     Décalage en Y pour les arcs et dans les cycles G87
 K     Décalage en Z pour les arcs et dans les cycles G87
       Distance de déplacement par tour de broche avec G87
 L     Nombre de répétition dans un cycle de poche
 M     Fonction auxiliaire
 N     Numéro de ligne (pm) car n'est pas un mot au sens "gcodienne"
 P     Temporisation utilisée dans G4
       Mot clé utilisé avec G10
 R     Rayon d'arc ou plan de retrait
 S     Vitesse de rotation de la broche
 T     Numéro d'outil
 X     Axe X de la machine
 Y     Axe Y de la machine
 Z     Axe Z de la machine

Il en existe d'autres mais que nous n'aborderont pas ici (A, B, C, D, H, Q, U, V, W).
Les plus curieux pourront toujours consulter la notice RS274-NGC v3 du NIST.

Remarques sur les mots G et M :

  • Normalement les GCodes se trouvent dans la plage G00 à G99 mais, dans la pratique, on va jusqu'à G999
  • Normalement les MCodes se trouvent dans la plage M00 à G199 mais, dans la pratique, on va jusqu'à M999

L'imagination des constructeurs et l'explosion des imprimantes 3D ont engendré une multiplication de Mxxx et Gxxx pour leur application particulière.
Je vous rassure dans la pratique, le nombre de fonctions mises en oeuvre est bien plus faible que les 1000 Mcodes et les 1000 Gcodes. Les fonctions vraiment utilisées dans les CNC amateurs peuvent se réduire à quelques dizaines.
A titre d'exemple, GRBL traite 40 Gcodes et 10 Mcodes.

Avant d'aborder les fonctions préparatoires et auxiliaires, il faut préciser les points suivants :

Fonction préparatoire G

Fonction modale : Une fonction G modale appartient à un groupe de fonctions G qui se révoquent mutuellement. On ne peut pas travailler en mm et en pouces simultanément, de même que l'on ne peut pas utliser les coordonnées absolues et relatives simultanément, etc...

Fonction G non modale : Une fonction G non modale est uniquement valide dans le bloc où elle est programmée.

Fonctions incompatibles : Une fonction G est incompatible si sa programmation avec une aure n'est pas autorisée.

Groupes modaux des Gcodes

  Signification du groupe                               Mots G

Groupe 0  - Codes non nodaux            G04, G10, G28, G30, G53, G92, G92.1, G92.2, G92.3
Groupe 1  - Mouvements                  G00, G01, G02, G03, G33, G38.x, G73, G80, G81,
                                        G82, G83, G84, G85, G86, G87, G88, G89
Groupe 2  - Choix du plan de travail    G17, G18, G19, G17.1, G18.1, G19.1
Groupe 3  - Mode de déplacement         G90, G91
Groupe 4  - Mode de déplacement en arc  G90.1, G91.1
Groupe 5  - Mode de vitesse             G93, G94, G95
Groupe 6  - Unités machine              G20, G21
Groupe 7  - Compensation de rayon       G40, G41, G42, G41.1, G42.1
            outil      
Groupe 8  - Compensation de             G43, G43.1, G49
            longueur d'outil 
Groupe 10 - Plan de retrait cycle       G98, G99
            de perçage
Groupe 12 - Systèmes de coordonnées     G54, G55, G56, G57, G58, G59, G59.1, 59.2, G59.3
Groupe 13 - Mode contrôle de            G61, G61.1, G64 
            trajectoire
Groupe 14 - Mode contrôle vitesse       G96, G97
            broche
Groupe 15 - Mode diamètre/rayon         G07, G08
            sur les tours

Fonction auxiliaire M

Fonction modale : Une fonction M modale appartient à un groupe de fonctions M qui se révoquent mutuellement. On ne peut pas, par exemple faire tourner la broche dans le sens horaire et anti-horaire en même temps.

Fonction M non modale : Une fonction M non modale est uniquement valide dans le bloc où elle est programmée.

Fonction "avant" : Une fonction M "avant" est exécutée avant les déplacements programmés dans le bloc.

Fonction "après" : Une fonction M "après" est exécutée après les déplacements programmés dans le bloc.

Groupes modaux des Mcodes

  Signification du groupe                               Mots M

Groupe 4  - Type de fin de programme    M00, M01, M02, M30, M60
Groupe 5  - On/off I/O                  M6 Tn
Groupe 6  - Appel outil                 M6 Tn
Groupe 7  - Commande de broche          M03, M04, M05, M19
Groupe 8  - Arrosage                    M07, M08, M09 
                                        (attention : M07 et M08 peuvent être actifs en même temps)
Groupe 9  - Boutons de correction       M48, M49, M50, M51
            de vitesse
Groupe 10 - Définis par l'utilisateur   M100 à M199

Commentaires.

Des commentaires peuvent être ajoutés aux lignes de Gcodes pour clarifier le programme. Ils peuvent être placés sur une ligne en les encadrant par des paranthèses ou bien occuper tout le reste de la ligne à partir d'un point virgule.

Bonnes patiques.

  • Utiliser le bon nombre de décimales : 3 chiffres après la virgule pour les mm et 4 pour les pouces.
    Les contrôles de tolérance des arcs sont faits pour 0.001 et 0.0001 selon les unités,
  • Utiliser les espaces de manière cohérante,
  • Utiliser de préférence le format centre pour les arcs,
  • Placer les codes nodaux important en début de programme,
  • Ne pas mettre trop de choses sur une ligne,
  • Ne pas utiliser les numéros de ligne.

Si des points vous paraissent obscures ou erronés n'hésitez pas à me le signaler.
Prochaine épisode - Détails "g-code" - à suivre...