CNCYRON
Connexion
ProgrammationHAAS10 avril 2026 · 7 min de lecture

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

Le G-code HAAS est compatible Fanuc à ~95 %. 5 différences clés : (1) 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.

AspectFanucHAAS
Cycle perçage G83 — paramètre QQ5. (millimètres décimaux)Q5000 (millièmes de mm — ×1000 obligatoire)
Taraudage rigide G84F = N × pas (auto)F = N × pas — paramètre 57=1 à activer
Correcteurs outil H et DH et D indépendants par numéroH 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érateurM01 arrêt optionnel uniquementM01 + MSG,"Texte" affichage écran console
DANGER
Le piège n°1 : Q-format millièmes sur G83
Erreur la plus fréquente du portage Fanuc → HAAS : oublier que 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.
ATTENTION
Correcteurs H/D liés — tester avant production
Sur HAAS, H1 et D1 partagent la même ligne de correcteur : modifier H1 (longueur) ne touche pas D1 (rayon), mais ils sont stockés ensemble. Conséquence : pour deux outils différents, utiliser numéros différents (H1 + D1 pour outil 1, H2 + D2 pour outil 2). Sur Fanuc, on peut utiliser H1 + D7 pour le même outil sans souci — pas sur 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.

CodeDescriptionExemple
G101Image miroir en X (HAAS uniquement)G101 X0. — symétrie autour de X=0
G103Limitation lecture anticipée (look-ahead)G103 P1 — force 1 bloc à la fois (debug)
G110-G129Décalages d'origine supplémentaires (en plus de G54-G59)G110 = 7e décalage, G129 = 26e
M97Appel sous-programme local (même programme)M97 P1000 — saute à N1000 dans programme courant
M98 / M99Appel sous-programme externe (identique Fanuc)M98 P1234 — appelle O01234.NC
M109Input opérateur interactif en cours de programmeM109 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
INFO
M97 ou M98 — quand choisir lequel ?
M97 = sous-programme local, défini dans le même fichier après M30. Idéal pour 3-5 répétitions au sein d'une seule pièce. M98 = sous-programme externe, fichier O distinct stocké en mémoire machine. Idéal pour bibliothèque d'opérations partagées entre plusieurs programmes (sous-routine de palpage, séquence de changement d'outil maison, etc.).

Pour aller plus loin — articles connexes

G-code pour débutants/blog/gcode-debutant-guide-complet/14 codes G/M essentiels — base portable HAAS / Fanuc / SiemensInterpolation circulaire G02/G03/blog/g02-g03-interpolation-circulaire-cnc/Arcs et cercles — syntaxe identique HAAS / FanucCoordonnées polaires G15/G16/blog/coordonnees-polaires-g15-g16-cnc/G15/G16 disponibles HAAS — identiques à FanucSous-programmes et paramètres/blog/programmation-cnc-sous-programmes-parametres/M98/M99 — base commune Fanuc et HAASCycles Siemens SINUMERIK/blog/siemens-sinumerik-cycles-usinage-programmation/Comparer programmation HAAS vs SINUMERIK 840DAlarmes HAAS/alarmes-cnc/haas/Codes alarmes HAAS — causes, tests rapides, solutions
📄 OUTIL ATELIER — PDF À IMPRIMER

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

Calculer paramètres avant programmation

Vitesse de broche N/calculateurs/vitesse-broche/N = (1000 × Vc) / (π × D) — paramètre S avant programmeVitesse de perçage/calculateurs/percage/N et avance pour cycles G81/G83 (rappel Q-format HAAS)Temps usinage/calculateurs/temps-usinage/Temps total — utile pour calibrer TLM Tool Life