Programmation de commande numérique

La programmation de commande numérique sert à piloter des machine-outils à commande numérique.



Catégories :

Application de l'informatique - Génie mécanique - Usinage

La programmation de commande numérique (CN) sert à piloter des machine-outils à commande numérique.

C'est le directeur de commande numérique (DCN) qui interprète les instructions, reçoit les informations des capteurs et agit (par l'intermédiaire d'un variateur électronique) sur les moteurs.

Il existe plusieurs fabricants de DCN : Fanuc, NUM, Heidenhain, Siemens, Philips, Makino, Fagor, Selca, Fidia, Real Meca, MAZAK.

Langage

Au départ, le langage de programmation était le G-code, développé par l'EIA au début des années 60, et finalement normalisé par l'ISO en février 1980 sous la référence RS274D/ (ISO 6983) .

Compte tenu de l'absence de développements ultérieurs, de la grande variété des configurations de machines-outils, et du peu de demande pour une réelle interopérabilité, peu de contrôleurs à commande numérique respectent ce standard. Des extensions et variantes ont été ajoutées indépendamment par divers fabricants, ce qui fait que les opérateurs doivent connaître les différents dialectes et particularités des machines qu'ils utilisent, et les dispositifs de CFAO doivent se limiter au plus petit dénominateur commun des machines qu'ils commandent.

Énormément de fabricants ont essayé de contourner cette difficulté à rester compatible en suivant la route tracée par Fanuc. Malheureusement, Fanuc n'est pas conforme à la norme RS-274 ou à ses précédents standards, et a été lent à ajouter de nouvelles fonctionnalités ainsi qu'à utiliser la puissance croissante des ordinateurs. A titre d'exemple, ils ont transformé la commande g70/g71 en g20/21; ils ont utilisé des parenthèses pour les commentaires, ce qui à causé des problèmes lors de l'introduction des calculs mathématiques; ils n'ont commencé à utiliser les nanomètres que récemment (ce qui requiert 64 bits) ; ils ont introduit les nurbs pour compenser le faible débit des blocs depuis la mémoire (au lieu de mettre en place un cache).

Depuis l'établissement de la norme ISO 6983, et les technologies évoluant rapidement, de nombreuses extensions ont été ajoutées pour tenir compte des nouveautés et des nouvelles capacités des machines-outil. Ces extensions, quoique fréquemment utiles chez des constructeurs différents de Directeur de Commande Numérique, n'entrent pas dans la norme et compliquent la tâche des logiciels de Fabrication assistée par ordinateur, qui doivent créer les lignes de ce langage pour un DCN spécifique. À 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, en plus de l'ISO, des langages propres aux constructeurs de DCN (symbolique, C, etc) mais aussi des interfaces de programmation conversationnelle conçues pour simplifier la programmation (voir CN Mazak, Heidenhain ou Selca).

Les codes

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
V position Relative
w position Relative
M code Fonction "Machine" ou "Modale" (un autre type d'action ou de code machine (*) ) (quelquefois référencé comme fonction'diverse' ("Miscellaneous" en anglais)

Permet aussi de contrôler des entités externes à la machine lui-même (magasin auxiliaire, refroidisseur, compteur ETC)

D association d'un correcteur de jauge outil
F vitesse de déplacement
S vitesse de rotation
C s'il est integré dans un bloc de cycle fixe ebauche ou finition, C sert à désigner un chanfrein
N numéro de ligne

Le numéro de bloc n'est pas obligatoire à chaque ligne avec les commandes ISO Fanuc, il sert à désigner juste un lieu du programme où on peut ordonner un saut d'opération ou un départ d'opération, le plus fréquemment avant un changement d'outil

V sert à 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 par ex)
T Sélection d'outil
I Axe X des données d'un arc
J Axe Y des données d'un arc
K Axe Z des données d'un arc
D diamètre de coupe/décalage pour l'épaisseur d'outil
H décalage pour la hauteur de l'outil

(*) Les codes M contrôlent la totalité de la machine, donnant la possibilité son démarrage, son arrêt, la mise en route de l'arrosage, etc. Tandis que les autres codes concernent le cheminement de l'outil.

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. Certains ont déclaré que le G-code "Fanuc" est standard, ce qui est faux. C'est simplement l'un des plus simple et des plus commun.

Une version standardisée du G-code connue sous l'expression BCL est utilisée, mais sur particulièrement peu de machines.

Le G-code est interprété par les traceurs photographique Gerber, les contrôleurs de machine-outil et certains de leurs opérateurs.

Les fichiers G-code sont produits par des programmes de CFAO tels que GŒlan, SmartCAM, Gibbscam, SolidCAM, Featurecam, Artcam, Edgecam, Surfcam, Mastercam, OneCNC, Router-CIM, Alphacam, TopSolid'Cam, e-NC etc. Ces applications utilisent généralement des convertisseurs nommés post-processeurs pour optimiser le code en vue de son utilisation sur une machine spécifique. Les post-processeurs sont le plus souvent modifiables par l'utilisateur afin d'optimiser leur usage. 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 complètement le G-code. Quelques exemples populaires sont Mazak Mazatrol, Hurco Ultimax et le langage interactif Mori Seiki's CAPS.

Common Fanuc G Codes
G00 Déplacement rapide
G01 Interpolation linéaire
G02 Interpolation circulaire (sens horaire)
G03 Interpolation circulaire (sens anti-horaire)
G04 Arrêt programme et ouverture carter (pour nettoyer) (temporisation - suivi de l'argument F ou X en secondes)
G10/G11 Écriture de données/Effacement de données
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
G31 Saute la fonction (utilisé pour les capteurs et les mesures de longueur 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
G79 Saut de bloc
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
G96/G97 Vitesse de coupe constante (vitesse de surface constante) /Vitesse de rotation constante ou annulation de G96

Codes CNC ISO de base FANUC

|
M03, M04, M05 Broche sens horaire, sens antihoraire, arrêt
M21 Activation pression broche /M121 à M127 Palier pression selon outils
M07, M08, M09 Mise en route arrosage/ arrêt arrosage
M02 Arrêt du programme
M30 Fin du programme, réinitialisation, rembobinage
M99 Fin du sous-programme
M00, M01 Arrêt du programme, arrêt optionnel ou avec condition
|
G96, G97 : vitesse de coupe constante, Vitesse de rotation constante
G92 Vitesse de broche maximum
G95, G94 Déplacement mm par tour, 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 envisageable 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.

Les codes de la famille G52, G53, G54, G55... sont utilisés pour :

Certains codes G de la famille G60 G70 peuvent être utilisés par les fabricants de DNC pour :

Les codes G90 G91définissent la programmation absolue ou incrémentale des cotes.

Des cycles préprogrammés sont aussi accessibles sur la majorité 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.

Changement outil automatique ou manuel M6.

Mise en route de l'arrosage N°1 M8. Arrêt par M9.

Mise en route de l'arrosage N°2 M7 Arrêt par M9

Fonction de fin de programme M2 ou M30.

Fonction d'arrêt programme M0.

Fonction d'arrêt optionnel programme M1

Fonction d'activation d'axe angulaire à la place de broche tournage "M88-89" (selon commande- Sauf mazak qui gere automatiquement)

Origines

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 trouve les autres éléments de la cellule élémentaire de production. La dimension vectorielle est 3. Il y a par conséquent une endomorphisme d'espaces vectoriels entre l'espace articulaire de la machine et l'espace travail. Il est par conséquent complètement inutile de représenter le zéro mesure comme un point concourant de l'ensemble des axes dans l'espace travail. C'est un sophisme.

(POM ou OM) + PREF = OPP OPP + DECALAGE = OP

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 servant à 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.

Comprendre le fonctionnement d'une machine à commande numérique. - Application à la MOCN - Un modèle pour quoi faire ? sur http ://www. cfc-technic. com, 2006

Corrections

Correction de la machine servant à tenir compte des différentes longueurs et diamètres d'outil.

De plus, la correction d'outils en cours d'usinage nommée "correction dynamique" sert à compenser l'usure de l'outil.

Axes

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éplacant 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 un peu en longueur et en diamètre. (Attention : Ceci est un programme typique, il pourrait ne pas fonctionner sur une machine réelle! Soyez spécifiquement attentifs au point 5 ci-dessous. )

Cheminement de l'outil
Exemple
N01 M216 (Mise en route du contrôleur de charge)
N02 G00 X20 Z20 (Déplacement rapide en dehors de la pièce, pour donner le point de départ de l'outil)
N03 G50 S2000 (Définit la vitesse de rotation maximum de la broche)
N04 T03 (Choisit l'outil #3 dans le carrousel)
N05 G96 S854 M42 M03 M08 (Découpe à vitesse variable, 854 pieds/min, grande vitesse de broche, démarrage de la broche en rotation horaires, démarrage de la lubrification)
N06 G00 X1.1 Z1.1 T0303 (Déplacement rapide vers un point localisé à 0.1 pouce du bout de la barre ainsi qu'à 0.05 pouce du bord, en utilisant les valeurs de réglage de l'outil #3)
N07 M01 (Arrêt optionnel)
N08 G01 Z1.0 F. 05 (Avance horizontalement, en avance de travail, jusqu'à ce que l'outil soit à 1 pouce de la référence)
N09 X0.0 (Descend jusqu'à ce que l'outil soit au centre - en face du bout de la barre)
N10 G00 Z1.1 (Avance rapide à 0.1 pouce du bout de la barre)
N11 X1.0 (Avance rapide jusqu'à la position correspondant au diamètre extérieur fini)
N12 G01 Z0.0 (Avance horizontalement, en avance de travail, en coupant la barre à 1 pouce de diamètre jusqu'à la référence)
N13 G00 X1.1 (Avance rapide en s'écartant de 0.05 pouce de la surface de la pièce)
N14 X20 Z20 (s'éloigne de la pièce, toujours en avance rapide)
N15 M05 M09 (Arrête la broche et coupe l'arrosage)
N16 M215 (Coupe le contrôleur de charge)
N17 M02 (Fin du programme)

Quelques remarques :

  1. On peut développer un style de programmation, même sur un programme aussi court. Le groupement des codes de la ligne N05 aurait pu être distribué sur plusieurs lignes. Ceci favoriserait le suivi pas à pas de l'exécution du programme.
  2. Énormément de codes sont "Modaux" ce qui veut dire qu'ils restent actifs tant que l'ordre n'a pas été annulé ou remplacé par un ordre contradictoire. A titre d'exemple, après avoir choisi la vitesse de coupe variable (G97), elle reste active jusqu'à la fin du programme. En service, la vitesse de broche va augmenter au fur et à mesure que l'outil se rapproche du centre de façon à maintenir une vitesse de coupe constante. De la même manière, après avoir choisi la vitesse de déplacement rapide (G00) l'ensemble des mouvements seront rapides jusqu'à ce qu'une vitesse de déplacement (G01, G02, G03) soit choisie.
  3. Il est habituel courant d'avoir un contrôleur de charge/vitesse sur une machine à commande numérique. Ce contrôleur va arrêter la machine si la broche ou les vitesses de déplacement dépassent des valeurs prédéfinies lors du paramétrage de la machine. Le rôle du contrôleur de charge est d'éviter la casse machine en cas de bris d'outil ou d'erreur de programmation. De plus, dans une certaine mesure il peut donner une information sur un outil qui devient trop usé et nécessite un remplacement ou un réaffutage.
  4. Il est habituel courant d'amener l'outil rapidement à un point "sûr" proche de la pièce - dans ce cas à 0, 1 pouce - et ensuite de démarrer le déplacement lent de l'outil. La distance de sécurité requise dépend du savoir faire et de l'aisance du programmeur.
  5. Si le programme est faux, la probabilité d'un crash machine est élevée! Ceci peut être particulièrement coûteux. Il est envisageable de prévoir à intervalles réguliers des arrêts optionnels (code M01) qui permettent au programme d'être exécuté par séquences. Les arrêts optionnels restent dans le programme mais sont négligés lors d'une exécution normale. Heureusement, la majorité des programmes de CFAO sont livrés avec des simulateurs de déplacements affichant les mouvements lors de l'exécution du programme. Énormément de machines CNC modernes permettent aussi au programmeur d'exécuter une simulation et de vérifier les paramètres opératoires de la machine en tout point de l'exécution. Ceci permet au programmeur de découvrir des erreurs sémantiques (par opposition aux erreurs de syntaxe) avant de perdre des matériaux ou des outils avec un programme erroné.

Exemple d'un programme simple de tournage CNC FANUC

%

O1234
G50 S2000
G96 S300 M03
M6 T06D06 (OUTIL D'ÉBAUCHE DE TOURNAGE)
G18 X37. Z0.
G01 X-1. F0.2
Z1.
G00 X30.
G01 Z-20.
X33.
X35. Z-21.
Z-25.
X37.
G00 X150. Z300.
M01
M6 T01D01 (PERCAGE 18MM)
G97 S1000
G19 M03
X0. Z5.
G01 Z-25. F100
G00 Z5.
X150. Z300.
M05
M30

%

Exemple d'un programme simple de fraisage CNC Fanuc

Un exemple simple peut être un rectangle de 40 mm sur 20. Le code de base pourrait se lire comme suit :

O100;
M6 T1;
GO G90 G40 G54 X0 Y-5;
M13 S2500;
G0 G43 H1 Z-4;
G1 F150 Y20;
X40;
Y0;
X-5;
M9;
M5;
G0 G53 Z0;
G0 G53 Y0;
M30;
Ligne 1 numéro de programme
Ligne 2 appel en broche de l'outil n°1 (qui est en réalité un appel du sous-programme pilotant le changeur d'outil (M6) avec le paramètre T1
Ligne 3 déplacement rapide (G0) à un point (X0 Y-5) donner en absolu (G90) depuis l'origine programme numero 1 (G54) G40 pour anulé tout correcteur en memoire dans la machine
Ligne 4 mise en rotation de l'outil à 2500 tours/min (S2500) et mise selon l'arrosage (M13) (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 par conséquent valable pour l'ensemble des points suivants.
Ligne 10 arrêt de l'arrosage (M9)
Ligne 11 arrêt de la broche (M5)
(nota : sur fanuc seul un code M est permis par ligne de programme. )
Ligne 12 à 13 Déplacement rapide (G0) avec le dispositif 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 par conséquent pas obligatoires ils sont positionnés en ligne 10 et 11 pour laisser quelques secondes d'égouttage au dispositif 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 coté). Une commande G-code doit être utilisé pour corriger le cheminement de l'outil.
...
GO G90 G54 X-10 Y-5 
M13 S2500
G0 G43 H1 Z-4
G1 G41 D21 F150 X0 ; Correction d'outil a gauche (G41) en utilisant le rayon d'outil n°21, 6mm (fraise de diamètre 12mm)
Y20
X40
Y0
X-5
...
Le point de départ a été changer 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 hors du tracé de découpe. Désormais 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 indispensable. A titre d'exemple, un laser avec un faisceau particulièrement fin peut nécessiter une correction de . 005 pouce, tandis 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.

Aide à la programmation de profils complexes

La Programmation Géométrique de Profil (P. G. P. ) du fabricant de DNC NUM permet d'utiliser directement les cotes du dessin de définition pour écrire le programme.

Principe :

Éléments géométriques :

  • É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.

Voir aussi

Liens

Recherche sur Google Images :



"pour la programmation de"

L'image ci-contre est extraite du site directindustry.fr

Il est possible que cette image soit réduite par rapport à l'originale. Elle est peut-être protégée par des droits d'auteur.

Voir l'image en taille réelle (249 x 300 - 12 ko - jpg)

Refaire la recherche sur Google Images

Recherche sur Amazone (livres) :




Ce texte est issu de l'encyclopédie Wikipedia. Vous pouvez consulter sa version originale dans cette encyclopédie à l'adresse http://fr.wikipedia.org/wiki/Programmation_de_commande_num%C3%A9rique.
Voir la liste des contributeurs.
La version présentée ici à été extraite depuis cette source le 05/12/2009.
Ce texte est disponible sous les termes de la licence de documentation libre GNU (GFDL).
La liste des définitions proposées en tête de page est une sélection parmi les résultats obtenus à l'aide de la commande "define:" de Google.
Cette page fait partie du projet Wikibis.
Accueil Recherche Aller au contenuDébut page
ContactContact ImprimerImprimer liens d'évitement et raccourcis clavierAccessibilité
Aller au menu