1GM 
Sciences et Techniques Industrielles 
Page 1 sur 8
Productique - Cours 
 En version PDF
Génie Mécanique – Première 

 

 
 
 
 
 
 
 
1 – 
FORMAT GÉNÉRAL DES DONNÉES ET DÉFINITION DES ADRESSES
 
 
 
 
 
 
%nnnn 
Numéro de programme (4 chiffres maxi) 
Nnnnnn 
Numéro de séquence ou de ligne (5 chiffres maxi – de N0 à N32767) 
Gnn 
Fonction préparatoire (2 chiffres maxi). 6 fonctions maxi dans un bloc 
Hnnnn 
Numéro d’appel de sous-programme dans une séquence comportant un G77 
(4 chiffres maxi) 
Xnnnnn,nnn 
Ynnnnn,nnn 
Znnnnn,nnn 
Mouvements principaux sur les axes (8 chiffres maxi) 
Innnnn,nnn 
Jnnnnn,nnn 
Knnnnn,nnn 
Coordonnées du centre en interpolation circulaire en G2 ou G3 
ou pas de l’hélice en interpolation hélicoïdale 
ou pas du filet en filetage au grain 
Innnnn,nnn 
Jnnnnn,nnn      Prise de passe latérale en G45 
Unnnnn,nnn 
Vnnnnn,nnn 
Wnnnnn,nnn 
Mouvements parallèles aux axes X, Y et Z 
Annnnn,nnn 
Bnnnnn,nnn 
Cnnnnn,nnn 
Coordonnées angulaires autour des axes X, Y et Z 
Pnnnnn,nnn      Valeur de la première pénétration en G83 ou G87 
ou sens de l’outil suivant X ou U en G16 
Pnnnn,nnn        Prise de passe en ébauche G45 (7 chiffres maxi) 
Qnnnnn,nnn      Valeur de la dernière pénétration en G83 ou G87 
ou sens de l’outil suivant Y ou V en G16 
Qnnnn,nnn       Prise de passe latérale en ébauche G45 
Rnnnnn,nnn      Rayon du cercle en interpolation circulaire ou hélicoïdale (8 chiffres maxi) 
ou sens de l’outil suivant Z ou V en G16 
Fnnn,nn 
Vitesse d’avance en mm/tr en G95 (5 chiffres maxi) 
Fnnnnn,nn Vitesse d’avance en mm/min en G94 (7 chiffres maxi 
Fnn,nn 
Valeur de la temporisation en seconde en G4 (4 chiffres maxi. Durée maxi : 99.99 s) 
Fn 
Nombre de filet en G33 (1 chiffre. 9 filets maxi) 
Mnnn 
Fonctions auxiliaires (3 chiffres maxi. 32 décodées. 224 codées) 
Snnnn 
Fréquence de rotation de la broche en tr/min en G97 (4 chiffres maxi) 
ou nombre de répétition d’un sous programme en G77 
Tnnnnn 
Numéro d’outil (5 chiffres maxi. De 0 à 65535) 
Dnnn 
Numéro du correcteur (3 chiffres maxi. De 0 à 255) 
Lnnn 
Variables programmes (3 chiffres maxi. De 0 à 19 et de 100 à 199) 
Ennnnn 
Paramètres externes (5 chiffres) 
 
2 – 
STRUCTURE GÉNÉRALE D’UN PROGRAMME
 
pg_0002
 
 
Page 2 sur 8
 
 
 
La programmation structurée permet dans un premier temps d’analyser et de concevoir plus 
rapidement un programme de commande numérique. 
En effet, dans un programme, toutes les opérations d’usinage font appel à un certain nombre de 
fonctions identiques (appel d’outil, rotation de broche, conditions de coupe, dégagement d’outil …). Il 
est donc intéressant de choisir une programmation structurée commune pour toutes ces opérations. 
Enfin, tous les commentaires utiles à la compréhension et à l’analyse du programme doivent être 
rajoutés entre parenthèses. 
 
 
 
 
3 – 
ORIGINES ET POINTS CARACTÉRISTIQUES
 
 
Om     Origine mesure 
Liée au bâti de la machine 
Opp    Origine porte-pièce 
Liée à la mise en position du porte-pièce sur la machine 
Op     Origine pièce 
Liée à la mise en position de la pièce sur le porte-pièce 
OP     Origine Programme 
Placée par le programmeur pour faciliter l’écriture du programme 
Pr      Point de référence 
Lié à la mise en position du porte-outil sur la machine 
Pc      Point courant 
Point de l’outil produisant la surface usinée sur la pièce 
pg_0003
 
 
Page 3 sur 8
 
 
 
4 – 
DÉCALAGES ET JAUGES
 
 
Définition 
Appartient à 
Valeur utilisables sur NUM 
Opp / Om 
Machine 
PREF 
Op / Opp 
Montage 
DEC1 ou DEC3 
OP / Op 
Pièce 
Décalage programme (G59) 
Pc / Pr 
Outil (et porte-outil) 
Jauge Outil 
 
5 – 
INTRODUCTION DES DÉCALAGES : PREF, DEC, G59 ET JAUGES
 
 
Ces valeurs appartenant à différentes parties du poste de travail, il est important d’identifier ou ces 
décalages sont introduits. 
 
PREF 
Ces valeurs n’appartiennent qu’à la machine. 
Dans le cas d’un atelier ou les concepts présentés sur ce document sont appliqués 
systématiquement, il suffit de les introduire une fois pour toute dans le directeur de commande 
numérique, ces valeurs n’étant changées que lors du déréglage de la machine (collision par 
exemple). 
Si les conditions précédentes ne sont pas vérifiées, il peut être intéressant de créer un sous 
programme de rappel de ces valeurs systématiquement appelé en début de programme pièce. 
 
DEC1 ou DEC3 
Ces valeurs appartiennent au porte-pièce. 
Elles sont déterminées par les cotes d’aptitude du porte-pièce. 
Elles peuvent être contrôlées hors machine en MMT par exemple, et peuvent être gravées sur le 
porte-pièce (porte-pièce dédié). 
Elles devront être introduite dans le DCN : 
- soit manuellement, 
- soit par téléchargement. 
- si le porte-pièce d’une fabrication est unique et parfaitement identifié, on peut envisager de 
les faire apparaître dans le programme sous forme de paramètres E6X001. 
 
DECALAGE G59 
Ces valeurs font parties intégrantes du programme pièce et ne doivent pas être modifiées. 
 
JAUGES 
Ces valeurs appartiennent à l’outil et au porte-outil. 
Elles peuvent être contrôlées hors machine sur banc de contrôle par exemple. 
Elles devront être introduite dans le DCN : 
- soit manuellement. 
- soit par téléchargement. 
 
6 – 
LES CODES
 ISO
 
 
 
 
 
 
pg_0004
 
 
Page 4 sur 8
 
 
 
Fonctions G en tournage 
 
CODE 
DÉSIGNATION 
RÉVOCATION 
G00    Interpolation linéaire en rapide 
G01-02-03-33 …
G01*    Interpolation linéaire à la vitesse programmée 
G00-02-03-33 …
G02    Interpolation circulaire à la vitesse tangentielle programmée, sens anti-
trigonométrique 
G00-01-03-33 …
G03     Identique à G02 mais en sens trigonométrique 
G00-01-02-33 …
G04    Temporisation programmable avec l’adresse F 
Fin de bloc 
G09    Arrêt précis en fin de bloc avant l’enchaînement sur le bloc suivant 
Fin de bloc 
G10 
Arrêt d’usinage par acquisition du signal « butée fin de bloc » ou sur 
détection d’un seuil mesuré, et saut à un autre bloc ou enchaînement 
sur le bloc suivant. 
Fin de bloc 
G12     Survitesse par manivelle 
Fin de bloc 
G16*    Définition de l’axe de l’outil à l’aide des adresses PR 
Fin de bloc 
G20*    Programmation en X et Z 
G21 
G21    Programmation cartésienne sur le couple d’axes rotatifs (C) et rectiligne 
(X) 
G20 
G33    Cycle de filetage à pas constant 
G00-01-02-03 
G38     Filetage enchaîné sur cône 
G00-01-02-03 
G40*     Annulation de correction suivant le rayon 
G41-G42 
G41     Correction de rayon d’outil à gauche du profil 
G40-G42 
G42     Correction de rayon d’outil à droite du profil 
G41-G40 
G52    Programmation absolue des cotes par rapport à l’origine mesure 
Fin de bloc 
G53     Suspension du zéro programme par rapport au zéro machine 
G54 
G54*    Validation du zéro programme par rapport au zéro machine 
G53 
G59    Décalage d’origine programmé. S’ajoute aux décalages. Validé par G54 
Fin de bloc 
G64    Cycle d’ébauche paraxial 
G80 
G65    Cycle d’ébauche de gorge 
Fin de bloc 
G66     Cycle de défonçage 
Fin de bloc 
G70     Entrée des données en pouce 
G71 
G71*    Entrée des données en métrique 
G70 
G75    Validation d’un sous programme de dégagement d’urgence 
Fin de bloc 
G76    Transfert des données courantes des paramètres dans le programme 
pièce 
Fin de bloc 
G77    Appel inconditionnel d’un sous programme ou d’une suite de séquence 
avec retour 
Fin de bloc 
G79     Saut conditionnel ou inconditionnel à une séquence sans retour 
Fin de bloc 
G80    Annulation de cycle d’usinage 
G64-83-87 
G83    Cycle de débourrage 
G80-64-65-66-87
G87    Cycle de brise-copeaux 
G80-64-65-66-83
G90*    Programmation absolue par rapport à l’origine programme 
G91 
G91    Programmation relative par rapport au point de départ du bloc 
G90 
G92 
Sxx     Limitation de la vitesse de broche 
M2 
G92 
 X ou Z   Présélection de l’origine programme 
Fin de bloc 
G94*    Vitesse d’avance exprimée en mm/min 
G93-95 
G95    Vitesse d’avance exprimée en mm/tr 
G93-94 
G96     Vitesse de coupe constante 
G97 
G97*    Vitesse de broche en tr/min  (choix automatique de gamme) 
G96 
G98    Définition du rayon ou du diamètre de départ lors de l’usage d’un 
plateau interpolé avec X ou Z pour le seul calcul de la vitesse de rotation 
 
 
* : fonctions initialisées à la mise sous tension ou à la suite d’une remise à zéro. 
pg_0005
 
 
Page 5 sur 8
 
 
 
Fonctions M en tournage 
 
FONCTION 
CODE 
AVANT 
APRÈS 
DÉSIGNATION 
RÉVOCATION 
M00 
 
Arrêt programmé 
Action sur DCY
M01 
 
Arrêt optionnel 
Action sur DCY
M02 
 
Fin de programme pièce 
% ou EOR 
M03 
 
Rotation broche sens anti-trigonométrique M4-M5-M0-M19
M04 
 
Rotation broche sens trigonométrique 
M3-M5-M0-M19
M05* 
 
Arrêt de broche 
M3-M4 
M06 
 
Changement d’outil 
Compte rendu 
M07 
 
Arrosage N°2 
M9-M0 
M08 
 
Arrosage N°1 
M9-M0 
M09* 
 
Arrêt des arrosages 
M7-M8 
M10 
 
Blocage d’axe 
M11 
M11 
 
Déblocage d’axe 
M10 
M19 
 
Indexation broche 
M3-M4-M5 
M40 à 
M45 
 
6 gammes de broches (suivant CNC) 
 
M48* 
 
Validation des potentiomètres de broche et 
d’avance 
M49 
M49 
 
Inhibition des potentiomètres de broche et 
d’avance 
M48 
M64* 
 
Commande broche N°1 
M65 
M65 
 
Commande broche n°2 
M64-M2 
M66* 
 
Utilisation mesure broche 1 
M67 
M67 
 
Utilisation mesure broche 2 
M66-M2 
M998* 
 
Mode MODIF, IMD et appel de sous-
programme par l’automate autorisé 
M999 
M99 
 
Masquage par programmation des modes 
MODIF, IMD et appel de sous-programme 
par l’automate 
M998-M2 
 
* : fonctions initialisées à la mise sous tension ou à la suite d’une remise à zéro. 
 
Remarques
 :  
 
Seule la fonction M6 n’est pas modale (1) ; elle est remise à zéro dès la détection par la CNC du 
compte rendu M. 
Plusieurs fonctions M décodées peuvent être programmée dans un bloc. 
Des fonctions M codées peuvent être définies par le constructeur. Ce sont des fonctions « après ». 
Une seule de ces fonctions est autorisée par bloc. 
 
(1) modale : une fonction est dite modale lorsqu’elle reste active jusqu’à sa révocation. 
 
Exemple : si G1 est programmé dans un bloc, cette fonction est active, tous les déplacements 
suivants seront en G1 jusqu’à la rencontre d’un G0, G2 ou G3 … 
 
 
 
pg_0006
 
 
Page 6 sur 8
 
 
 
Fonctions G en fraisage 
 
CODE 
DÉSIGNATION 
RÉVOCATION 
G00     Interpolation linéaire en rapide 
G01-02-03-33 …
G01*    Interpolation linéaire à la vitesse programmée 
G00-02-03-33 …
G02     Interpolation circulaire à la vitesse tangentielle programmée, sens anti-
trigonométrique 
G00-01-03-33 …
G03     Identique à G02 mais en sens trigonométrique 
G00-01-02-33 …
G04     Temporisation programmable avec l’adresse F 
Fin de bloc 
G09     Arrêt précis en fin de bloc avant l’enchaînement sur le bloc suivant 
Fin de bloc 
G10 
Arrêt d’usinage par acquisition du signal « butée fin de bloc » ou sur 
détection d’un seuil mesuré, et saut à un autre bloc ou enchaînement 
sur le bloc suivant. 
Fin de bloc 
G12     Survitesse par manivelle 
Fin de bloc 
G16*    Définition de l’axe de l’outil à l’aide des adresses PR 
Fin de bloc 
G17*    Choix du plan XY pour l’interpolation circulaire et la correction de rayon 
G18 – G19 
G18    Choix du plan ZX pour l’interpolation circulaire et la correction de rayon 
G17 – G19 
G19    Choix du plan YZ pour l’interpolation circulaire et la correction de rayon 
G17 – G18 
G31    Filetage au grain 
G80 à G89 
G40*    Annulation de correction suivant le rayon 
G41-G42 
G41    Correction de rayon d’outil à gauche du profil 
G40-G42 
G42    Correction de rayon d’outil à droite du profil 
G41-G40 
G45    Cycle de poche 
Fin de bloc 
G51     Validation ou invalidation de la fonction miroir à l’aide des adresses 
d’axes 
Fin de bloc 
G52     Programmation absolue des cotes par rapport à l’origine mesure 
Fin de bloc 
G53     Suspension du zéro programme par rapport au zéro machine 
G54 
G54*    Validation du zéro programme par rapport au zéro machine 
G53 
G59     Décalage d’origine programmé. S’ajoute aux décalages. Validé par G54 
Fin de bloc 
G70     Entrée des données en pouce 
G71 
G71*    Entrée des données en métrique 
G70 
G73*    Annulation du facteur d’échelle 
G74 
G74     Validation du facteur d’échelle 
G73 
G75     Validation d’un sous programme de dégagement d’urgence 
Fin de bloc 
G76     Transfert des données courantes des paramètres dans le programme 
pièce 
Fin de bloc 
G77     Appel inconditionnel d’un sous programme ou d’une suite de séquence 
avec retour 
Fin de bloc 
G79     Saut conditionnel ou inconditionnel à une séquence sans retour 
Fin de bloc 
G80     Annulation de cycle d’usinage 
G64-83-87 
G81     Cycle de perçage centrage 
G80, G82 à G89 
G82     Cycle de perçage chambrage 
G80, G81,  
G83 à G89 
G83     Cycle de débourrage 
G80-64-65-66-87
G84     Cycle de taraudage 
G80 à G83 
G85 à G89 
G85     Cycle d’alésage 
G80 à G84 
G86 à G89 
G86     Cycle d’alésage avec arrêt de broche indexé en fond de trou 
G80 à G85 
G87 à G89 
G87     Cycle de brise-copeaux 
G80-64-65-66-83
 
* : fonctions initialisées à la mise sous tension ou à la suite d’une remise à zéro. 
 
pg_0007
 
 
Page 7 sur 8
 
 
 
FONCTIONS G EN FRAISAGE (SUITE) 
CODE 
DÉSIGNATION 
RÉVOCATION 
G88     Cycle d’alésage et de dressage de face 
G80 à G87 G89 
G89     Cycle d’alésage avec arrêt temporisé en fond de trou 
G80 à G88 
G90*    Programmation absolue par rapport à l’origine programme 
G91 
G91     Programmation relative par rapport au point de départ du bloc 
G90 
G92 
Sxx      Limitation de la vitesse de broche 
M2 
G92     Présélection de l’origine programme 
Fin de bloc 
G92     Présélection de l’origine programme 
Fin de bloc 
G93     Vitesse d’avance exprimée en inverse du temps (V/L) 
G94 
G94*    Vitesse d’avance exprimée en mm/min 
G93-95 
 
Fonctions M en fraisage 
 
FONCTION 
CODE 
AVANT 
APRÈS 
DÉSIGNATION 
RÉVOCATION 
M00 
 
Arrêt programmé 
Action sur DCY 
M01 
 
Arrêt optionnel 
Action sur DCY 
M02 
 
Fin de programme pièce 
% ou EOR 
M03 
 
Rotation broche sens anti-trigonométrique 
M4-M5-M0-M19 
M04 
 
Rotation broche sens trigonométrique 
M3-M5-M0-M19 
M05* 
 
Arrêt de broche 
M3-M4 
M06 
 
Changement d’outil 
Compte rendu 
M07 
 
Arrosage N°2 
M9-M0 
M08 
 
Arrosage N°1 
M9-M0 
M09* 
 
Arrêt des arrosages 
M7-M8 
M10 
 
Blocage d’axe 
M11 
M11 
 
Déblocage d’axe 
M10 
M19 
 
Indexation broche 
M3-M4-M5 
M40 à 
M45 
 
6 gammes de broches (suivant CNC) 
 
M48* 
 
Validation des potentiomètres de broche et 
d’avance 
M49 
M49 
 
Inhibition des potentiomètres de broche et 
d’avance 
M48 
M64* 
 
Commande broche N°1 
M65 
M65 
 
Commande broche n°2 
M64-M2 
M66* 
 
Utilisation mesure broche 1 
M67 
M67 
 
Utilisation mesure broche 2 
M66-M2 
M998* 
 
Mode MODIF, IMD et appel de sous-programme 
par l’automate autorisé 
M999 
M99 
 
Masquage par programmation des modes 
MODIF, IMD et appel de sous-programme par 
l’automate 
M998-M2 
* : fonctions initialisées à la mise sous tension ou à la suite d’une remise à zéro 
Remarques : 
 
Seule la fonction M6 n’est pas modale (1) ; elle est remise à zéro dès la détection par la CNC du compte 
rendu M. 
Plusieurs fonctions M décodées peuvent être programmée dans un bloc. 
Des fonctions M codées peuvent être définie par le constructeur. Ce sont des fonctions « après ». Une seule 
de ces fonctions est autorisée par bloc. 
(1) modale : une fonction est dite modale lorsqu’elle reste active jusqu’à sa révocation. 
Exemple : si G1 est programmé dans un bloc, cette fonction est active, tous les déplacements suivants seront 
en G1 jusqu’à la rencontre d’un G0, G2 ou G3 … 
 
pg_0008
 
 
Page 8 sur 8
 
 
 Exercices de programmation ISO
7 – 
EXEMPLES - STRUCTURES
 
 
 
 
 
Pour réaliser une opération d’usinage, le DCN doit accomplir des tâches principales qui sont : 
- positionner le bon outil, 
- approcher l’outil en rapide, 
- adapter les conditions de coupe, 
- réaliser l’opération d’usinage, 
- dégager l’outil en rapide.