Aller au contenu

Programmation de machine à commande numérique

Une page de Wikiversité, la communauté pédagogique libre.


Logo de la faculté
Cette page est une ébauche. Avant de recréer une ressource du même type, essayez d'abord de compléter celle-ci ; si c'est impossible, remplacez son contenu par le vôtre. Si vous êtes l'auteur(e) de cette page et que vous souhaitez la continuer, retirez ce bandeau.


En 1952 John Parsons de la Parsons Works, sous-traitant de l’US Air Force 1, se voit attribuer la mission d’améliorer la chaîne de production des pales d’hélicoptère. Assisté par son ingénieur Frank Stulen, ils imaginent différents concepts dont l’un consiste à motoriser les axes des machines concernées. Avec un calculateur IBM pour commander le déplacement d’une table sur une glissière mue par une vis à billes couplée à un moteur électrique, Parsons Works inventa la première machine à commande numérique.

Peu de temps après la commercialisation de cette solution, le langage de programmation de ces machines se développe au début des années 1960 sous le nom de G-Code [1]. Il sera finalement normalisé en février 1980 et nommé ISO.

Le développement industriel des machines à commande numérique favorise l’essor de nombreux fabricants de machines. Compte tenu de la grande variété des configurations des machines-outils, peu de contrôleur à commande numérique respectent de manière stricte le standard de l’ISO. Des extensions et des variantes de commandes ont été implémentées indépendamment par divers fabricants et concepteurs de machines.

C’est pourquoi la majorité des fabricants de machines utilisent le langage ISO, mais sous une forme qui leur est propre.

Dans ce module de formation sur la programmation de commande numérique vous apprendrez à lire et écrire le langage ISO, afin de pouvoir commander une machine à commande numérique.

Objectif du cours

[modifier | modifier le wikicode]
  • Lire et écrire le langage ISO
  • Connaître les différences entre le langage ISO et d'autres langages
  • Apprendre de programmation des commandes numériques
  • Connaître les commandes de fraisages et de tournage de programmation et les structures associées
  • Reconnaître et décoder un programme simple
  • Écrire et modifier un programme

Notion des opérations d’obtention de pièces finit en tournage et fraisage https://fr.wikiversity.org/wiki/Usinage

Les axes de programmation sur les machines à commandes numérique

[modifier | modifier le wikicode]

Centre d’usinage 3 axes

[modifier | modifier le wikicode]

Afin de programmer correctement les déplacements des machines sur les programmes, il est important de connaitre quels sont les axes des machines et comment celles-ci se déplacent.

Pour les fraises traditionnelles, les trois axes principaux sont les suivants : X Y et Z.

Les plus commun sont les fraiseuses verticales. L’axe Z correspondant à la montée descente de la broche et le X et Y étant le déplacement de celle-ci sur la table.

Pour les tours deux axes traditionnels, le Z correspond à l’axe de rotation de la pièce et le X le déplacement au rayon.

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)

Positionnement des points pour la programmation

[modifier | modifier le wikicode]

Pour générer les volumes indiqué sur les plans, l’opérateur doit ordonner à la machine les déplacements à effectuer pour réaliser ladite forme. C’est une base à maitriser avant de commencer la programmation.

Langage de programmation

[modifier | modifier le wikicode]

Dans ce cours, nous allons principalement aborder le langage ISO, qui est le langage le plus communément utilisé dans l’industrie. Nous le comparerons au langage NUM qui est une variante de l’ISO. Ce langage comporte quelques différences (notamment certaines commandes) mais sa structure reste le même.

Chaque début de ligne du programme doit comporter la lettre N avec le numéro de la ligne. Pour simplifier les modifications l'incrément des numéros de ligne se fait de dix en dix.

Exemple : N10 G0 G53 X0 Y0 Z0

N20 T1 D1 M6

Les différentes commandes ISO/NUM

[modifier | modifier le wikicode]
Initialisation d’un programme
Début de programme %NOM DU PROGRAMME %ONOM DU PROGRAMME lettre “O”
Retour aux origines mesure G0 G52 X0 Y0 Z0 G0 G53 X0 Y0 Z0
Choix de l’origine programme Calcul à partir des vecteurs PREF et DEC G54
Changement d’outils et validation des jauges T1 D1 M6

(Appel outil 1 et correcteur 1)

G49 (annulation jauges précédentes)

T1 M6

G43 H1 Z.. (Valeur de Z au-dessus de la pièce)

D1

Mise en route de lubrifiant M8
Au démarrage d’un programme, celui-ci doit avoir un nom. Ce nom permet de le référencer sur la machine et commence %O. On initialise ensuite les origines de mesures et on sélectionne l’origine programme utilisé pour servir de référence. On effectue ensuite un changement d’outil en indiquant le numéro, le diamètre et la gauge outil correspondante.
Déplacement machine
Déplacement en avance rapide G0
Déplacement en avance travail G1
Les déplacements hors de la matière s’effectuent en G0 et les déplacements dans la matière en G1. Cela permet de gérer les potentiomètres associés.
Paramètres
Mise en rotation de la broche M3 (sens horaire, outil à droite de la pièce)

M4 (sens trigo, outil à gauche de la pièce)

Arrêt de broche M5
Déclaration d’une vitesse de rotation en tournage G97 S1000 (Rotation à 1000 tr/min)
Limitation de la vitesse de broche (tournage) G92 S2500 (Vitesse limitée à 2500tr/min)
Déclaration d’une vitesse de rotation en tournage G96 S200 (Vitesse de coupe = 200 m/min, la machine adapte N en permanence à partir de N= 1000Vc) / (πD)
Déclaration de la vitesse d’avance en tournage G95 F0.1 (f = 0.1 mm/tr)
Déclaration des paramètres de coupe en fraisage S1500 (N en tr/min)

F200 (Vf en mm/min)

On définit ensuite les paramètres de coupes pour l’opération que l’on va effectuer. On définit l’avance, la vitesse de rotation de la broche (en tournage on détermine aussi la vitesse de rotation maximal)
Commandes d’interpolation et de correction
Interpolation circulaire où longueur d’arc <180° G2 X… Y… R… (sens horaire)

G3 X… Y… R… (sens trigo)

Interpolation circulaire où longueur d’arc >180° G2 (ou 3) X… Y… I… J…

(I et J coordonnées du centre du cercle dans le repère programme)


G1 X0 Y-10 (point de départ)

G2 X10 Y0 I0 J0 (point d’arrivée)

G2 (ou 3) X… Y… I… J…

(I et J coordonnées du centre du cercle dans le repère programme)



G1 X0 Y-10

G2 X10 Y0 I0 J0

Correction de rayon à gauche G41
Correction de rayon à droite G42
Annulation de la correction de rayon G40
Opérations sur les programmes
Rappel des lignes avec retour à N+1 G77 N10N120

(rappel des lignes de 10 à 120)


Saut de lignes sans retour G79 N120 (saut à ligne 120)


Appel de sous-programme

avec retour à N+1

G77 H2050 (avec 2050 numéro du sous-programme) M98 P2050 (avec 2050 numéro du sous-programme)

Sous-programme clos par M99

Fin et arrêt de programme
Arrêt de lubrification M9
Arrêt de programme M0
Fin de programme G0 X60 Z120

M2

G0 G53 X0 Y0 Z0

M30

Les différentes commandes tournage/fraisage en ISO

[modifier | modifier le wikicode]
Instruction ISO fraisage ISO tournage
Début de programme %ONOM DU PROGRAMME lettre “O”
Ajout d’un commentaire #ajout d’un commentaire dans un programme d’usinage
Retour à l’origine machine G0 G28 U0
    G28 V0 (uniquement pour 4 axes, déplacement sur y)  
 
    G28 W0  
M228
Choix de l’origine programme G54
Déclaration du brut (utile pour simulation graphique préalable) G1902 B70 (cote pièce sur X)

D70 (cote pièce sur Y)

H21 (cote pièce sur X)

I20 (Position sur X, par rapport à l’origine, X0 et Y0)

J20 (Position sur Y, par rapport à l’origine, X0 et Y0)

K10 (Épaisseur sur Z)

G1900 D40(Diamètre) L80 (Longueur) K10(Surépaisseur sur Z)
Changement d’outils et validation des jauges G49 (annulation des jauges précédentes)

T1 M6

G43 H2 Z25 (prise en compte du correcteur de longueur 2 et déplacement à un point d’approche sur Z obligatoire)

D2 (prise en compte du correcteur de rayon 1)

T0101 (chargement de l’outil 1 et prise en compte de ses correcteurs outils)
Déclaration d’une vitesse de rotation en tournage /


G97 S1200 (Rotation à 1200 tr/min)
Limitation vitesse de broche / G50 S2000 (Vitesse de rotation maxi=2000 tr/min)
Déclaration d’une vitesse de rotation en tournage / G96 S300 (Vitesse de coupe = 300 m/min, la machine adapte N en permanence à partir de N= 1000Vc) / (πD)
Déclaration de la vitesse d’avance en tournage / G95 F0.2 (f = 0.2 mm/tr)

G98 F200 (f = 200 mm/min, utilisé pour des opérations de fraisage sur un tour (exemple : gravage)

Déclaration des paramètres de coupe en fraisage S1500 (N = 1500tr/min)

F200 (Vf = 200 mm/min)

/
Interpolation circulaire avec longueur d’arc < 180° G2 X… Y… R… (sens horaire)

ou

G3 X… Y… R… (sens trigonométrique)

Interpolation circulaire avec longueur d’arc > 180° G2 X… Y… I… J… ou G3 X… Y… I… J…

ou I et J la projection d’un vecteur partant du point de départ de l’interpolation et rejoignant le point de centre de l’interpolation (Vecteur AOpr dans le dessin ci-contre)




G1 X0 Y-10

G2 X10 Y0 I0 J10

Arrêt programmé M0
Saut de lignes sans retour GOTO30

(Saut à la ligne N30)

Appel de sous-programme avec retour à N+1 M98 P2050 (avec 2050 le numéro du sous-programme (%O2050))

Le sous-programme est clos par M99

Fin de programme M228 G91 G28 Z0

M30 OU G28 X0 Y0

G0 G28 V0 (uniquement utiles si 4 axes)

G28 U0

G28 W0

M30

Les autres langages de programmation

[modifier | modifier le wikicode]

Dans le monde de l’industrie, il existe d’autres langage de programmation tel que le Fanuc, Simpl, Mazatroll... Le plus communément utilisé reste le langage ISO et le NUM. La majorité des machines peuvent lire leur propre langage ainsi que l’ISO. Cette base de connaissance sur ce langage vous permettra de programmer sur n’importe quelle machine du marché.

Coordonnées de programmation

[modifier | modifier le wikicode]

Identifier les points de programmation de cette pièce de tournage


photo


Position de départ X...Y...

N G X Z
N1
N2
N3
N4
N5
N6
N G X Z
N1 G0 X50 Z1
N2 G1 X50 Z-25
N3 G1 X75 Z-25
N4 G1 X100 Z-75
N5 G1 Z100 Z-100
N6 G1 Z100.5 Z-100

Question de cours

[modifier | modifier le wikicode]

Quelle est la signification du code : M6T1 ?  

Réponse : Changement d’outil pour l’outil en position 1


Quelle est la signification du code : S1500 F200 ?

Réponse : Définition de la vitesse de rotation à 1500 tr/min. Définition de la vitesse d’avance à 200 mm/min.  


Quelle est la signification du code : M3 et M4 ?  

Réponse : M3 (sens horaire → Fraisage et tournage) M4 (sens trigonométrique → Tournage)


Quelle est la signification du code : G41, G42, G40 ?

Réponse : G41 Correction d’outil à gauche

G42 Correction d’outil à droite  

G40 Annulation de la correction d’outil


Quelle est la signification du code : M0 ?  

Réponse : M0 Arrêt programmé  

Programme de tournage ISO exercice niveau 1

[modifier | modifier le wikicode]

Rédiger un programme simple de fraisage pour effectuer un perçage sur un tour avec le foret en position 101. Vous utiliserez une vitesse de rotation de 1000 tr/min (sens horaire) et une avance de 200 mm/min. La position du perçage devra être sur l’origine programme et sa profondeur de 20 mm.

N0 %ONOM DU PROGRAMME

N10 ...

N20 ...

N30 ...

N40 ...

N50 ...

N60 ...

N70 ...

N80 ...

N10 T0101 (FORET DIAM 18MM) ← Changement d’outil en position 0101  

N20 G97 M03 S1000 ← Déclaration de la vitesse de rotation horaire  

N30 G00 X0. Y0. Z2. ← Déplacement en avance rapide à la pos X0 Y0 Z2

N40 G01 Z-20 F0.2 ← Déplacement en avance travail à 200 mm/min

N50 G00 Z2. ← Déplacement en avance rapide à la pos Z2

N60 X150. Z250. ← Retour à une position sûre (position parking)

N70 M05 ← Arrêt de la broche  

N80 M30 ← Fin de programme

Programme de tournage ISO exercice 2

[modifier | modifier le wikicode]

L’usinage de cette pièce consiste à dresser et charioter en ébauche avec l’outil T01 et laisser 0.1 mm de surépaisseur. Faire ensuite la finition avec l’outil T03.


photo

N10 G0 X150 Z250 Approche rapide vers le point de changement d’outil

N20 G92 S2500 Limitation de la vitesse de rotation à Smax=2500 tr/min


(Ebauche)

N30 G96 F0.4 S160 Rotation de la broche à Vc=160 m/min avance de 0.4 mm/min

T0101 M4 Choix de l’outil n°1 avec le correcteur 1_ rotation sens horraire

N40 G0 X52 Z0.1 M8 Déplacement rapide _ activation de l’arrosage  

N50 G1 X0 Dressage en ébauche de la face avant

N60 Z2 Sortie de l’outil en Z

N70 G0 X45,1 Interpolation linéaire en rapide vers le point de coordonné X45.1 Z2

N80 G1 Z-75 Chariotage en ébauche du diamètre X45.1

N90 X52 Sortie de l’outil en X

N100 G0 Z2 Interpolation linéaire en rapide vers le point d’abscisse Z=2

N110 X40.1 Interpolation linéaire en rapide vers le point d’ordonné X=40.1

N120 G1 Z-50 Chariotage en ébauche du diamètre X=40.1

N130 X51 Sortie de l’outil en X

N140 G0 X150 Z250 Interpolation linéaire en rapide vers le point de changement d’outil

(Finition)

N150 T303 Appel de l’outil 3 avec son correcteur

N200 G96 F0.15 S180 Changement de la vitesse de coupe et de l’avance

N210 G0 X52 Z0 Déplacement en rapide

N220 G1 X0 Dressage en finition de la face avant

N230 Z2 Sortie de l’outil en Z

N240 G0 X40 Interpolation linéaire en rapide vers le point d’ordonnée X45

N250 G1 Z-50

N260 X45 Chariotage simultané en finition du diamètre X=40 et X=45

N270 Z-75

N280 X52 Interpolation linéaire en rapide vers le point de changement d’outil

N290 G0 X150 Z50 M9 Désactivation de l’arrosage

N300 M30 Fin du programme

Exercice de fraisage  

[modifier | modifier le wikicode]

On souhaite usiner le contournage de cette pièce de fraisage. Dans un premier temps en programmation centre fraise puis avec une correction de rayon.  


Ci-dessus les points nécessaires à la programmation sont présentés ci-dessus.  

photo



Correction programmation centre fraise
[modifier | modifier le wikicode]

%2002 (Nom du programme)  

N10 G0 G52 X0 Y0 Z0 (Retour à l’origine mesure en vitesse rapide)  

N20 M6 T1 D1 (Appel de l’outil n°1 et du correcteur 1 fraise de 5)  

N30 X-10 Y-10 Z50 (Déplacement au point P1)  

N40 M3 M41 S1591 M8 (Rotation broche + arrosage)  

N50 Z44 (Déplacement au point P2)  

N60 G1 Y0 F239 (Déplacement en vitesse travail au point P3)  

N70 X60 (Déplacement en vitesse travail au point P4)  

N80 Y-45 (Déplacement en vitesse travail au point P5)  

N90 X0 (Déplacement en vitesse travail au point P6)  

N100 Y10 (Déplacement en vitesse travail au point P7)  

N110 G0 Z50 M5 M9 (Déplacement en vitesse rapide au point 8 + arrêt broche et arrêt arrosage) N120 G52 X0 Y0 Z0 (Retour à l’origine mesure en rapide)  

N130 M2 (Fin de programme)


Correction programmation avec correction de rayon G41
[modifier | modifier le wikicode]

%2002 (Nom du programme)  

N10 G0 G52 X0 Y0 Z0 (Retour à l’origine mesure en vitesse rapide)  

N20 M6 T1 D1 (Appel de l’outil n°1 et du correcteur 1 fraise 5)  

N30 X-10 Y-10 Z50 (Déplacement au point P1)  

N40 M3 M41 S1591 M8 (Rotation broche + arrosage)  

N50 Z44 (Déplacement au point P2)  

N60 G1 G41 Y-2.5 F239 (Déplacement en vitesse travail au point P3 avec correction de rayon)  

N70 X57.5 (Déplacement en vitesse travail au point P4)  

N80 Y-42.5 (Déplacement en vitesse travail au point P5)  

N90 X2.5 (Déplacement en vitesse travail au point P6)  

N100 Y10 (Déplacement en vitesse travail au point P7)  

N110 G0 G40 Z50 M5 M9 (Déplacement en vitesse rapide au point 8 + arrêt broche et arrêt arrosage)  

N120 G52 X0 Y0Z0 (Retour à l’origine mesure en rapide)  

N130 M2 (Fin de programme)