Programmation de Commande Numérique - Wikipédia
Programmation de Commande Numérique - Wikipédia
Programmation de Commande Numérique - Wikipédia
numérique
La programmation de commande numérique (CN) permet de définir des séquences
d'instructions permettant de piloter des machines-outil à commande numérique. Cette
programmation est actuellement fortement automatisée à partir de plans réalisés en CAO.
Dans le cas d'une commande numérique physique, c'est le directeur de commande numérique
(DCN) qui interprète les instructions contenues dans les séquences, reçoit les informations des
capteurs et agit sur les actionneurs.
On trouve aussi des pilotes de commande numériques qui sont des programmes (logiciels)
informatiques s'exécutant sur un PC, avec éventuellement une délégation partielle des calculs vers
une carte spécialisée.
Sommaire
Langage
Pour quelle utilisation
Les codes
Codes spéciaux
Codes CNC ISO de base
Fonctions préparatoires G
Fonctions auxiliaires M
Origines
Corrections
Axes
Exemple
Exemple d'un programme simple de fraisage CNC
Exemple d'un programme simple de tournage CNC
Aide à la programmation de profils complexes
Notes et références
Voir aussi
Articles connexes
Liens externes
Langage
À l'origine, le langage de programmation était le G-code, développé par l'EIA au début des années
1960, et finalement normalisé par l'ISO en février 1980 sous la référence RS274D/ (ISO 6983 (h
ttp://www.iso.org/iso/fr/CatalogueDetailPage.CatalogueDetail?
CSNUMBER=13540)).
Pendant longtemps, les programmes étaient directement écrits par les opérateurs des machines
CNC. Depuis le développement des ordinateurs personnels, des programmes de FAO (fabrication
assistée par ordinateur, ou en anglais CAM, Computer Aided Manufacturing) ont été développés
afin d'écrire les séquences de code ISO automatiquement à partir de fichiers de dessin et des
paramètres des outils finaux. Les interventions directement dans le code sont devenues
marginales.
Pour vérifier le bon fonctionnement des séquences d'usinage, il existe des programmes de
simulation d'usinage permettant une visualisation de la pièce telle qu'elle sera conçue lors de
l'usinage.
CAO (conception assistée par ordinateur) → FAO (développement des séquences) → Simulation
de coupe → Exécution de la fabrication.
À côté de l'ISO, de nouveaux codes sont apparus, différents selon le Directeur de Commande
Numérique. Ils intègrent de plus en plus de l'ISO, des langages propres aux constructeurs
(symbolique, C, etc.) ainsi que des interfaces de programmation interactives destinées à simplifier
la programmation.
Les codes
Fonctions préparatoires (G), fonctions d'appel de mode d'interpolation (G 0), cycle machine
Coordonnées de points (X, Y, Z, A, B, C, I, J, K)
Vitesses, avances… (S, F)
Fonctions auxiliaires (M) qui permettent d'enclencher la lubrification, de changer d'outil, ou
de déclencher des accessoires.
X position absolue
Y position absolue
Z position absolue
A position (rotation autour de l'axe X)
B position (rotation autour de l'axe Y)
C position (rotation autour de l'axe Z)
U position relative ou axe secondaire
V position relative ou axe secondaire
W position relative ou axe secondaire
M code fonction "machine" ou "modale" (un autre type d'action ou de code machine(*))
(parfois référencé comme fonction 'diverse' (Miscellaneous en anglais)
Permet aussi de contrôler des entités externes à la machine proprement dit (magasin auxiliaire,
refroidisseur, compteur ETC, embarreur)
Le numéro de bloc n'est pas obligatoire (l'ordre numérique des numérotations de blocs "N" n'est
pas non plus obligatoire) à chaque ligne avec les commandes ISO, il désigne juste un endroit du
programme où l'on peut ordonner un saut d'opération ou un départ d'opération, le plus souvent
avant un changement d'outil, ou au départ d'une boucle.
V permet de contrôler une vitesse de rotation dans une machine avec diverses
configurations
R Rayon d'arc ou option passée à un sous programme
P Temps de pause ou option passée à un sous programme ou appel de sous programme
(Précédé de M98, ou G65 par ex dans un appel de Macro_programme intégrant des calculs)
T Sélection d'outil
I Centre X des données d'un arc
J Centre Y des données d'un arc
K Centre Z des données d'un arc
D diamètre de coupe ou décalage pour l'épaisseur d'outil
H décalage pour la hauteur de l'outil
(*) Les codes M contrôlent l'ensemble de la machine, permettant son démarrage, son arrêt, la mise
en route de l'arrosage, etc. Alors que les autres codes concernent le cheminement de l'outil.
Les fonctions M (de M00 à M09) sont communes à tous les types de CNC, les différents
constructeurs de machines CNC proposent leurs propres fonctions M (à partir de M10 jusqu'à
M89... ensuite au-dessus de M100).
Des machines différentes peuvent utiliser le même code pour effectuer des fonctions différentes :
même les machines qui utilisent le même contrôleur CNC.
Une version standardisée du G-code connue sous la dénomination BCL est utilisée, mais sur très
peu de machines.
Le G-code est aussi produit par certains programmes de CAO spécialisés dans la conception de
circuit imprimé. De tels programmes doivent être adaptés pour chaque type de machine outil.
Quelques machines CNC utilisent des programmes "interactifs", qui permettent de programmer
avec des agents en cachant partiellement ou totalement le G-code. Quelques exemples populaires
sont Mazak Mazatrol, Hurco Ultimax et le langage interactif Mori Seiki's CAPS.
Common G Codes (avec certaines extensions non standardisées)
G00 Déplacement rapide
G01 Interpolation linéaire
G02 Interpolation circulaire (sens horaire, anti-trigo)
G03 Interpolation circulaire (sens anti-horaire, trigo)
Arrêt programme et ouverture carter (pour nettoyer) (temporisation - suivi de l'argument F ou X en
G04
secondes)
Écriture de données / Effacement de données (suivi de l'argument L suivant le type de données à
G10/G11
écrire)
G17 Sélection du plan X-Y
G18 Sélection du plan X-Z
G19 Sélection du plan Y-Z
G20 Programmation en pouces
G21 Programmation en mm
G28 Retour à la position d'origine
Saute la fonction (mode Interrupt utilisé pour les capteurs et les mesures pièces et de longueur
G31
d'outil)
G33 Filetage à pas constant
G34 Filetage à pas variable
G40 Pas de compensation de rayon d'outil
G41 Compensation de rayon d'outil à gauche
G42 Compensation de rayon d'outil à droite
G54 à
Activation du décalage d'origine pièce (Offset)
G59
G68 /
Activation du mode "Plan incliné" (Tilted plane working) pour les centres d'usinage 5 axes
G68.1
G70 Cycle de finition
G71 /
Cycle d'ébauche suivant l'axe Z (appel de profil balisé entre les arguments P et Q)
G71.7
G75 Cycle de gorge
G76 /
Cycle de filetage
G76.7
G83 Cycle de perçage débourrage
G69 Annulation du mode Tilted plane working (Plan incliné)
G84 Cycle de taraudage rigide
G90 Déplacements en coordonnées absolues
G91 Déplacements en coordonnées relatives
G94/G95 Déplacement en pouces par minute/pouce par tour
Vitesse de coupe constante (vitesse de surface constante) ; Vitesse de rotation constante ou
G96 ; G97
annulation de G96
Codes spéciaux
Spécifique à certains constructeurs
Suivant le paramétrage du système et la résolution décimale, il est nécessaire (ou pas) de
programmer les valeurs avec le "dot" (point)
#1 à #33 = variables locales (#1 à #26 correspondent aux lettres de l'alphabet pour les arguments
de cycles de macros personnalisées si la machine est équipée de l'option "CUSTOM MACRO")
Spécifique NUM
Les 0 ne sont pas obligatoires (DEVANT un autre chiffre : M02 peut s’écrire M2. Par contre
M30 reste M30 sinon ça deviendrait M3....)
M00, M01 : arrêt du programme, arrêt optionnel ou avec condition
M02 : arrêt du programme
M03, M04, M05 : broche sens horaire, sens antihoraire, arrêt de broche
M06 : changement d'outil
M07, M08, M09 : mise en route arrosage, arrêt arrosage
M21 : activation pression broche ; M21 à M27 : palier pression selon outils
M30 : fin du programme, réinitialisation, rembobinage
M99 : fin du sous-programme
G96, G97 : vitesse de coupe constante, vitesse de rotation constante
G92 / G50 : vitesse de broche maximum
G95, G94 : déplacement mm/tr, déplacement mm/min
G00, G01 : mouvement rapide, interpolation linéaire (coupe suivant une ligne droite)
F : vitesse de déplacement
S : vitesse de broche
Coordonnées d'axes X, Y, Z, A, B, C
Fonctions préparatoires G
La fonction d'interpolation linéaire rapide G0 (interpolation linéaire en mode rapide).
La fonction d'interpolation linéaire (à la vitesse programmée) G1 (interpolation linéaire en
mode de travail).
La fonction d'interpolation circulaire G2 (interpolation circulaire sens horaire) et G3
(interpolation circulaire sens trigonométrique).
La fonction de temporisation (programmable avec F,X ou P) G4.
La fonction d'arrêt précis en fin de bloc G9.
Il est aussi possible sur certains pupitres de programmation d'utiliser ces deux codes (G2 G3) pour
créer une interpolation circulaire, des fonctions d'interpolation à base de courbe NURBS G6.2.
Sur les fraiseuses équipées de tête birotative les codes G17,G18,G19 définissent l'axe des cycles de
perçage, taraudage... et le plan dans lequel seront réalisées les interpolations circulaires et activé le
correcteur de rayon d'outil.
Des cycles préprogrammés sont également accessibles sur la plupart des machines : G 81, 82,
83... pour les cycles de perçage, taraudage, etc. avec l'annulation par G 80. D'autres cycles
peuvent être présents selon le type de machine (tour "cycle d'ébauche G71,G72,G73...", fraiseuse,
aléseuse, fil...).
Fonctions auxiliaires M
Mise en rotation broche M3 horaire, M4 anti-horaire. Arrêt par M5. (Selon les CN M3 peut
activer un laser de découpe ou faire tourner un servomoteur et M4 arrêter le laser ou faire
tourner un servomoteur : par exemple commandes numériques de traçage "CNC plotter")
Changement outil automatique ou manuel M6.
Mise en route de l'arrosage externe M8. Arrêt par M9.
Mise en route de l'arrosage par le centre de la broche M7 Arrêt par M9
Fonction de fin de programme M2 ou M30.
Fonction d'arrêt programme M00.
Fonction d'arrêt optionnel programme M01
Fonction d'activation d'axe angulaire en remplacement de broche tournage "M88-89" (selon
commande- Sauf mazak qui gère automatiquement)
Origines
Origine programme (OP) : c'est le point origine du programme à partir duquel les
mouvements de la machine sont programmés.
Origine Machine (OM): Cette expression existe dans des manuels de constructeurs de
machines-outils sans pour autant apporter de réponse, voire sans fondement. L'origine
machine est une coordonnée mesure particulière. Lors de l’initialisation de l’axe (dans le cas
de capteurs relatifs) au passage du top zéro de la règle, le processus d’initialisation permet
de forcer la valeur du registre du point courant par la valeur de l’axe dans le registre P16
(cas d’un DCN NUM). Cette valeur est souvent non nulle qui remet en cause la notion d’
« origine » d’une part, et « machine » d’autre part puis que c’est une coordonnée mesure
particulière. Cette expression est sans fondement dans le cas de technologie de règle
absolue, et sans fondement tout court.
Origine mesure (Om) : L'origine mesure est propre à chaque axe asservi. Dans le cas d'une
structure articulaire de type RRPPP (rotoïde, rotoïde, prismatique, prismatique, prismatique)
il existe 5 origines mesures. Chaque axe mesure est constitué d'une origine et d'une
dimension. La dimension de l'espace vectoriel de cette structure est de dimension 5. Suivant
le type de technologie des capteurs permettant l'asservissement des axes, il est nécessaire
de procéder à l'initialisation de la partie opérative avec la partie commande. Dans le cas de
capteur relatif, les POM (Prise d'origines mesure) servent à établir les références de la
mesure sur chaque axes des machines outils ne possédant pas de règles avec des capteurs
absolus (détection du zéro du capteur de mesure).
Les origines mesures appartiennent à l'espace articulaire (espace de la structure cinématique de la
machine en robotique). L'espace travail, ou de la tâche est celui où se trouvent les autres éléments
de la cellule élémentaire de production. La dimension vectorielle est 3. Il y a donc un
endomorphisme d'espaces vectoriels entre l'espace articulaire de la machine et l'espace travail. Il
est donc totalement inutile de représenter le zéro mesure comme un point concourant de tous les
axes dans l'espace travail. C'est un sophisme.
En synthèse, les définitions des différentes origines sont issues d'un modèle de structure
articulaire de machine constitué de liaisons prismatiques cartésiennes. Le modèle géométrique
permettant de lier l'espace travail à l'espace articulaire est l'identité, amalgamant les origines
mesures de la structure articulaire avec l'origine des solides dans l'espace travail.
Corrections
Correction de la machine permettant de tenir compte des différentes longueurs et diamètres
d'outil.
Axes
Les axes X et Y sont disposés suivant un repère orthonormé direct par rapport à Z.
L'axe X est celui qui permet la plus grande distance de déplacement. Le dernier axe étant
l'axe Y ; sur certaines machines, on trouve des axes supplémentaires appelés Axe A, B, C.
Les axes A, B, C sont des axes rotatifs, A tournant autour de X, B autour de Y, C autour de
Z.
Mouvements de rotation A, B, C
Le sens de rotation positif des axes A, B, C sont comptés en s'imaginant qu'une vis pas à droite,
tournant dans le sens des aiguilles d'une montre avance en direction +X, +Y, +Z en se considérant
à la place de l'outil. Si c'est un axe déplaçant la pièce au lieu de l'outil, on inverse le sens des axes,
le positif devient négatif.
Exemple
Ceci est un programme typique qui montre l'usage du G-Code pour tourner une pièce de 1 pouce
de diamètre et 1 pouce de long. On part de l'hypothèse que la barre de matière est déjà dans la
machine et qu'elle dépasse légèrement en longueur et en diamètre. (Attention : Ceci est un
programme typique, il pourrait ne pas fonctionner sur une machine réelle ! Soyez particulièrement
attentifs au point 5 ci-dessous.)
En principe on ne met pas des numéros qui se suivent pour les lignes. Cela permet d'en intercaler
de nouvelles si nécessaire. Plutôt que de faire : N1, N2, N3, etc. On inscrit N10, N20, N30, etc.
Comme ça, si l'on doit rajouter des lignes de modification, on peut le faire. N50, N60 peut ainsi
devenir N50, N52, N54, N60...
Quelques remarques :
Ligne 2, appel en broche de l'outil no 1 (qui est en réalité un appel du sous-programme pilotant le
changeur d'outil (M6) avec le paramètre T1
Ligne 3, - donné en absolu (G90), -travail suivant plan X,Y(G17), -Annulation des cycles perçage-
taraudage (G80), annulation tout correcteur en mémoire dans la machine(G40),
-origine pièce Offset (G54), -déplacement rapide (G0) à un point (X0 Y-5)
Ligne 4, mise en rotation de l'outil à 2 500 tr/min (S2500) et mise en fonction de l'arrosage (M8)
(M13 replace les codes M3, sélectionne le sens de rotation, et M8, marche arrosage)
Ligne 5, déplacement rapide a Z-4 (profondeur de coupe) en prenant en compte la longueur d'outil
(G43) du correcteur n°1 (H1)
Ligne 6 à 9, déplacements en vitesse de travail (G1), G1 est une fonction modale et est donc valable
pour tous les points suivants.
Ligne 10, déplacement rapide (G0) a un point (Z200)
Ligne 12 à 13, Retour au origine machine (G28), Distance avec relatif (G91), -déplacement rapide
(G0) avec le système de coordonnées de la machine (G53) à Z0 Y0 (outil en haut, table au plus près
de l'opérateur)
Ligne 14, M30 fin de programme (M30 inclus M5 et M9 ceux-ci ne sont donc pas obligatoires ils
sont placés en ligne 10 et 11 pour laisser quelques secondes d'égouttage au système d'arrosage,
avant les manipulations de l'opérateur.)
Notez que le programme ne prévoit rien pour le cheminement de l'outil. Si la machine est une
fraiseuse et utilise une fraise de rayon 6 mm, la pièce sera en pratique 12 mm plus petite que
définie (6 mm par côté). Une commande G-code doit être utilisé pour corriger le cheminement de
l'outil.
%
O1234
G50 S2500 (VITESSE DE ROTATION LIMITÉE À 2500 TOURS PAR MINUTE)
G97 M03 S1000
T0606 (OUTIL D'ÉBAUCHE DE TOURNAGE)
G00 X22. Z0.
G96 S150
G01 (RPT.N50)N40
X-1. F0.15
G00 Z1.
X18.
G01 Z-35. F0.2
X22.
G00 Z1.
X16.
G01 Z-25.
X22.
G00 Z300.
X150.
M01
Il est de bon aloi d'abuser des commentaires entre parenthèses (), afin d'indiquer les opérations,
les outils utilisés, afin que n'importe quel utilisateur puisse comprendre le code.
...
GO G90 G54 X-10 Y-5
M13 S2500
G0 G43 H1 Z-4
G1 G41 D21 F150 X0 ; correction d'outil à gauche (G41) en utilisant le rayon d'outil no 21, 6 mm (fraise de
diamètre 12 mm)
Y20
X40
Y0
X-5
...
Le point de départ a été changé pour permettre de "prendre la correction de rayon", car elle
se fait suivant le sens déplacement du point précédant (X-10) au point de passage en G41
(X0) l’outil ne se déplacera en réalité que de 4 mm et non pas 10, du fait de la correction.
Dans ce cas, le contrôleur voit la première ligne et ajuste la position de l'outil de coupe à 6
mm à l'extérieur du tracé de découpe. Maintenant la machine va créer une pièce conforme à
celle dessinée. Selon l'outil de coupe utilisé, la correction peut être définie si nécessaire. Par
exemple, un laser avec un faisceau très fin peut nécessiter une correction de 0,005 pouce,
alors qu'une machine à jet d'eau avec une buse de diamètre intérieur 0,060 pouce va
nécessiter une correction de 0,030 pouce.
Principe :
Élément d'angle EA
Élément congé EB+
Élément chanfrein EB-
Élément tangent ET
Élément sécant ES
Discriminant E+ / E-
Le langage PROGET 2' du constructeur SELCA utilise 5 codes G, pouvant être assimilés à 5
instruments du dessinateur industriel.
Notes et références
1. « GO2cam International, éditeur de logiciel FAO, de solutions FAO: dentaire, mécanique,
prototypage » (http://www.go2cam.fr/), sur www.go2cam.fr (consulté le 19 février 2018)
Voir aussi
Articles connexes
Commande numérique
Liens externes
Exemple Gcode Simulateur CNC HTML (http://www.ange-softs.com/SIMULCNCHTML/index.
html)
en anglais : en:Numerical control et en:G-code
Droit d'auteur : les textes sont disponibles sous licence Creative Commons attribution, partage dans les mêmes
conditions ; d’autres conditions peuvent s’appliquer. Voyez les conditions d’utilisation pour plus de détails, ainsi que
les crédits graphiques. En cas de réutilisation des textes de cette page, voyez comment citer les auteurs et
mentionner la licence.
Wikipedia® est une marque déposée de la Wikimedia Foundation, Inc., organisation de bienfaisance régie par le
paragraphe 501(c)(3) du code fiscal des États-Unis.