Programmation CNC HAAS — guide débutant G-code et spécificités
Le G-code HAAS est très proche du Fanucmais présente des différences subtiles qui piègent les programmeurs habitués à d'autres commandes. Ce guide couvre les 5 points de divergence principaux, les codes G et M propres aux HAAS (G101, G103, M97, M109), le Tool Life Management et les sous-programmes locaux M97.
HAAS — RÉFÉRENCE PROGRAMMATION & DIFFÉRENCES FANUC
G83 Q5000 en millièmes (vs Q5. Fanuc) ; (2) G84 taraudage rigide nécessite paramètre 57=1 ; (3) correcteurs H et D liés sur même ligne (H1=D1 = même outil) ; (4) variables #500-#699 persistantes hors tension ; (5) message opérateur MSG,"Texte" affichage écran. Codes propres HAAS : G101 miroir, G103 P1limitation look-ahead (debug), G110-G129 20 décalages supplémentaires, M97 P_ sous-programme local, M109 input opérateur interactif. Tool Life Management (TLM) : #[2001+T] = vie restante outil T, utilisable dans IF/GOTO pour alarme avant rupture. Compatibilité descendante : un programme Fanuc simple s'adapte HAAS en 5-10 minutes (vérifier Q-format + correcteurs).5 différences clés HAAS vs Fanuc
Les programmeurs venus de Fanuc tombent presque toujours dans l'un de ces 5 pièges lors de leur premier programme HAAS. Mémoriser ce tableau permet d'éviter 90 % des erreurs de portage.
| Aspect | Fanuc | HAAS |
|---|---|---|
| Cycle perçage G83 — paramètre Q | Q5. (millimètres décimaux) | Q5000 (millièmes de mm — ×1000 obligatoire) |
| Taraudage rigide G84 | F = N × pas (auto) | F = N × pas — paramètre 57=1 à activer |
| Correcteurs outil H et D | H et D indépendants par numéro | H et D liés sur la même ligne (H1=D1) |
| Variables macro persistantes | #500-#999 globales (souvent volatiles) | #500-#699 conservées hors tension |
| Message opérateur | M01 arrêt optionnel uniquement | M01 + MSG,"Texte" affichage écran console |
G83 Q5 sur HAAS signifie 5 millièmes de mm (= 0.005 mm), pas 5 mm. Conséquence : la machine débourrage tous les 5 µm au lieu des 5 mm prévus → temps de cycle astronomique ou casse foret. Toujours écrire Q5000 pour un débourrage de 5 mm sur HAAS. La règle : multiplier par 1000 le Q Fanuc pour obtenir le Q HAAS.Codes G et M spécifiques HAAS
Au-delà du G-code standard, HAAS propose une dizaine d'extensions propriétaires utiles pour la production en série. G103 P1 en particulier est précieux pour déboguer un programme : il force la lecture bloc par bloc et désactive la look-ahead.
| Code | Description | Exemple |
|---|---|---|
| G101 | Image miroir en X (HAAS uniquement) | G101 X0. — symétrie autour de X=0 |
| G103 | Limitation lecture anticipée (look-ahead) | G103 P1 — force 1 bloc à la fois (debug) |
| G110-G129 | Décalages d'origine supplémentaires (en plus de G54-G59) | G110 = 7e décalage, G129 = 26e |
| M97 | Appel sous-programme local (même programme) | M97 P1000 — saute à N1000 dans programme courant |
| M98 / M99 | Appel sous-programme externe (identique Fanuc) | M98 P1234 — appelle O01234.NC |
| M109 | Input opérateur interactif en cours de programme | M109 P#100 — opérateur tape valeur stockée #100 |
Tool Life Management (TLM) — compteur de durée de vie
Le TLM HAAS surveille le nombre de pièces usinées ou le temps de coupe par outil et déclenche une alerte (ou un arrêt) quand la limite est atteinte. Configurable dans la table Outils, accessible par macro variable #[2001+T]où T = numéro d'outil. Pratique pour anticiper le changement de plaquette en série.
; Tool Life Management HAAS — compteur de durée de vie ; Paramètres à régler dans la table Outils (onglet TLM) : ; T1 : 200 pièces maxi → HAAS alerte à 180 pièces (90 %) ; Dans le programme : lecture du compteur de vie restante #1 = #[2001+1] ; Lit la vie restante de T1 (variable TLM) IF [#1 LT 10] GOTO 200 ; Si < 10 pièces restantes → alarme ; ... usinage normal ... N200 M00 ; Arrêt — opérateur doit changer l'outil
Sous-programme local M97 — éviter les fichiers multiples
M97 appelle un sous-programme défini dans le même fichier (par son numéro de ligne N). Plus pratique que M98 pour les opérations répétitives dans un seul programme — pas besoin de fichier séparé en mémoire machine. Très utile pour les pièces avec géométries répétées (palettes multi-positions, réseaux de poches).
; Sous-programme local HAAS avec M97 ; Usinage de 3 poches identiques en 3 positions G54 G17 G40 G49 G80 G90 T1 M06 G43 H1 Z50. M03 S3000 ; Poche 1 G00 X0. Y0. M97 P100 ; Appel sous-programme local N100 ; Poche 2 G00 X80. Y0. M97 P100 ; Poche 3 G00 X160. Y0. M97 P100 G00 Z50. M05 M30 ; Sous-programme local — commence à N100 N100 G00 Z2. G01 Z-5. F300. ; Plongée G41 D1 G01 X10. F600. ; Contournage poche 40×30 G01 Y30. G01 X-10. G01 Y-30. G01 X0. G40 G00 Z10. M99 ; Retour au programme principal
Pour aller plus loin — articles connexes
Mémo Atelier CNC — Paramètres de coupe par matière
Vc, fz, Ra pour 10 matières (acier, inox, alu, titane, Inconel...) + 7 formules essentielles + checklist 16 points. 2 pages, format A4, à imprimer et garder près de la machine.
Aucun spam. Désabonnement en 1 clic. Données utilisées uniquement pour l'envoi de ressources CNCYRON, conformément à notre politique de confidentialité.
Questions fréquentes
Sources et références
- ISO 6983-1:2009 — Format de programme CNC, codes G/M standards (base commune Fanuc/HAAS).
- Haas Automation — Mill Operator's Manual + Lathe Operator's Manual (G/M codes complets).
- Haas Automation — Macro Programming Manual (variables #100-#699 + TLM).
- Fanuc — Operator's Manual Series 30i (référence comparaison G83 Q-format).