GCODE-la syntaxe

le GCODE est un langage informatique a syntaxe simple. il est composé d’une succession de ligne de programme comportant des commandes qui décrivent des actions  a effectuer sur la base d’un code  a partir de lettres et de chiffres.

on distingue plusieurs type de commandes dont voici les principales lettres de codage:

  • les commandes de type G =>  liées a des fonctions préparatoires : en général des consignes de déplacements (linéaires, circulaires)
  • les commandes de type X/Y/Z/A/B/C=> liées aux coordonnées des déplacements sur les axes concernés
  • les commandes de type M=>  liées a des consignes spécifiques des machines( démarrage et arrêt de broches, lubrifications, etc..)
  • les commandes de type T=> liées aux outils ( Tools en anglais )
  • les commandes de type S=>  liées aux vitesses de rotation (Speed en anglais )
  • les commandes de type F=> liées aux vitesses de déplacemnt (Feed en anglais )

prenons un exemple très simple:

G00 X10 Y20  =>  cette ligne de programme  demande d’avancer en ligne droite en mode rapide (G00), jusqu’au point de coordonnée X10 et Y20.

LES TYPES DE DEPLACEMENTS

le GCODE ne connais que 2 type de déplacement :

  • le déplacement linéaire  (en ligne droite d’un point a un autre) avec 2 syntaxes de base:
    1. G00: déplacement linéaire en avance rapide
    2. G01:  déplacement a vitesse lente paramétrée ( valeur a définir dans le programme)

 

  • le déplacement circulaire ( arc de cercle d’un point a un autre) avec également 2 syntaxes de base:
    1. G02: déplacement circulaire dans le sens horaire (ClockWise en anglais)
    2. G03: déplacement circulaire dans le sens antihoraire (CounterClockWise en anglais)

LES AXES DE DEPLACEMENTS

en plus des axes classiques X-Y-Z du repère cartésien, le G CODE sait commander  des axes supplémentaires ce sont les axes A-B-C qui en général sont des axes “tournants” ( indexeurs ou plateaux tournants).

il existe egalement des axes U-V-W souvent utilisés par des portiques , des tourelles porte outils, etc ..

LES VITESSES

pour fixer une vitesse d’avance, on utilise la lettre F suivie d’un nombre qui caractérise la vitesse en mm/mn (millimetres par minutes) .

pour fixer une vitesse de rotation broche, on utilise la lettre S suivie d’un nombre qui caractérise la vitesse de rotation en Tr/mn (tours par minutes) .

 

EXEMPLES :

sur le principe de ces concepts de base, prenons un exemple:

G01 F300 X25 Y55 Z12 

si l’on prend dans l’ordre les consignes ont pourrait remplacer chaque code par du texte en francais:

GO1: avance en ligne droite  a vitesse  parametrée

F300: vitesse d’avance de 300 mm/mn

X25 Y55 Z12 : jusqu’au point de coordonnées X=25mm, Y=55mm et Z=12mm

traduit en bon francais cela donnerait donc la consigne suivante:: ” avance en ligne droite a la vitesse de 300 mm/mn en direction du point de coordonnées x25mm – y55mm – z12mm”

c’est en empilant ce type de lignes de code que l’on va faire exécuter une trajectoire complexe a l’outil.

exemple de trajectoire: partant du principe que l’outil est positionné au point d’origine (0,0), pour réaliser la trajectoire ci dessous a une vitesse d’avance fixe de 300 mm/mn:

voici le GCODE correspondant:

les concepteurs du GCODE ont fait en sorte de rendre l’écriture des programmes la plus simple possible. ils ont donc fait en sorte d’eviter de devoir écrire systématiquement les redondances , par exemple , il n’est pas nécessaire de répéter systématiquement le F300 dans chaque ligne . il suffit de le prendre comme une consigne simple et en écrivant le programme comme suit on obtient le même résultat:

 une fois la vitesse d’avance fixée a 300 mm/mn , plus besoin de le repréciser tant que la vitesse n’a pas besoin d’être changée.

pour faciliter la lecture  d’un programme, on peut numéroter les lignes de programme. la numérotation utilisée pour les lignes sera du type Nxx. de façon a pouvoir éventuellement intercaler des instruction ultérieurement sans devoir changer les numéros des lignes, on prends l’habitude de numéroter de 10 en 10. ainsi l’exemple précédent devient:

autre point important , comme pour le F300 , on peut eviter de répéter les coordonnées des axes qui ne changent pas . dans l’exemple ci dessous , vous constater que rien n’est jamais précisé concernant Z . cela veut dire que le Z ne bouge pas jusqu’a ce qu’une ligne de programme avec une valeur Z soit rencontrée.

de la même façon un code G qui ne change pas , ici le code G01 a chaque ligne, n’a pas besoin d’être répété. on pourrait ainsi simplifier l’écriture de l’exemple ainsi :

en effet , une fois le G01 rencontré en ligne 20 , plus besoin de le repeter en ligne 30 -40 – 50 et 60 . l’interpréteur GCODE sait qu’il faut continuer a appliquer un G01.

commentaires dans un programme=> comme pour un programme informatique, il peut etre necessaire de commenter un programme GCODE, pour cela il suffit de rajouter le commentaire entre parenthese soit en fin de ligne d’une ligne de commande pour commenter cette ligne de commande soit seul sur une ligne pour annoncer un bloc de programme. les caracteres ainsi transcrits entre parentheses, ne seront pas pris en compte par le logiciel de pilotage de la machine.

Exemple:

N10 F300     ( vitesse d’avance parametrée a 300 mm/mn)

Nous avons fait le tour des principales notions et principes a connaitre concernant  la syntaxe d’une ligne de commande et d’un programme en GCODE .