CNCYRON
Connexion

G31 — Cycle palpeur (Skip cycle)

G31 arrête un déplacement dès la réception d'un signal externe (contact palpeur) et mémorise la position dans les variables système #5021–#5025. Utilisé pour la mesure longueur outil, la prise d'origine pièce automatique, le contrôle en cours et la détection de bris outil — sur Fanuc, Siemens et Heidenhain.

PROGRAMMATION — CYCLE PALPEUR G31

G31 sans lecture de #5023 après le bloc est inutile. Si le palpeur ne touche rien avant Z_fin, #5023 contiendra la position de fin de course programmée — la macro calcule une longueur fausse sans alarme et sans détection d'erreur. Toujours vérifier après G31 : IF [#5023 EQ Z_fin]#3000 = alarme (palpeur non touché). Programmer un Z minimum de sécurité (Z_lim)nettement sous le palpeur pour limiter la course en cas de non-contact. Vitesse d'approche recommandée F = 100-300 mm/minpour répétabilité < 0.005 mm.

Codes G31 — référence Fanuc

4 variantes du skip cycle Fanuc — code, fonction, groupe modal et note d'usage.
CodeFonctionGroupeNote
G31Skip cycle — déplacement jusqu'au contact palpeur (saut de bloc)1Non-modal : actif seulement sur le bloc où il est programmé
G31 P1Skip cycle avec signal discret 1 (Fanuc 30i/31i/32i)1Permet multi-palpeurs sur la même CN
G31 P2Skip cycle avec signal discret 21Palpeur broche + palpeur table simultanément possibles
G04Temporisation (souvent associé à G31 pour laisser le palpeur se stabiliser)G04 P100 = 100 ms

Syntaxe G31

G31 X__ Y__ Z__ F__    ; Déplacement jusqu'au contact palpeur
                        ; X Y Z = position cible (si pas de contact)
                        ; F     = vitesse d'approche (100–300 mm/min recommandé)

; Position capturée dans #5021 (X), #5022 (Y), #5023 (Z)
; Si le palpeur touche avant X Y Z : arrêt et saut du bloc suivant
; Si pas de contact : le déplacement s'arrête à X Y Z programmé

4 applications de G31 en atelier

4 cas d'usage de G31 atelier : TLM, WPS, contrôle in-process, détection bris outil (TBC).
ApplicationDescription
Mesure longueur outil (TLM)L'outil descend sur un palpeur fixe sur la table. G31 arrête le déplacement dès le contact. La position Z (#5023) est lue et stockée dans la table des correcteurs (H).
Prise d'origine pièce (WPS)Un palpeur de broche (Renishaw, Marposs) palpe les faces de la pièce. G31 capture les positions X/Y/Z et les macro calculent et écrivent le décalage G54.
Contrôle dimensionnel en cours (in-process)Après usinage, le palpeur vérifie une cote critique. Si hors tolérance, la macro corrige le correcteur outil et relance la passe de finition.
Détection de bris outil (TBC)G31 vérifie que l'outil touche bien le palpeur à la hauteur attendue. Si pas de contact avant Z_limite → macro alarme "BRIS OUTIL" et arrêt programme.

Variables système — positions au contact

Variables système Fanuc capturées au moment du skip signal — coordonnées pièce (WCS) et machine (MCS).
VariableAxeContenuNote
#5021XPosition X au moment du contact (skip signal)Coordonnée pièce (WCS G54/G55…)
#5022YPosition Y au moment du contactCoordonnée pièce
#5023ZPosition Z au moment du contactLa plus utilisée pour la longueur outil
#5024A / 4e axePosition A au moment du contactSi 4e axe configuré
#5025B / 5e axePosition B au moment du contactSi 5e axe configuré
#5061–#5065X→5ePosition machine (MCS) au skip — précision maximaleCoordonnée machine, indépendante des décalages

Exemple 1 — Macro mesure longueur outil (TLM)

Le palpeur fixe est à Z = −200.000 mm (coordonnée pièce, G54). Longueur outil = position Z palpeur − position Z contact.

O0100  (MACRO MESURE LONGUEUR OUTIL)
#500 = -200.0          ; Z référence palpeur table (coordonnée pièce)
#501 = 1               ; Numéro correcteur H à écrire

G90 G54                ; Mode absolu, origine G54
G43 H#501 Z50.0        ; Approche sécurité avec correcteur actuel (peut être 0)
G04 P200               ; Attente stabilisation broche à l'arrêt (M05 avant)

G31 Z-210.0 F120       ; Descente vers palpeur — F lente pour précision
                        ; Z-210 = course maxi (sécurité sous palpeur)

#502 = #5023           ; Capture position Z au contact
#503 = #502 - #500     ; Longueur = Z_contact - Z_ref_palpeur

IF [#503 LT 0.0] GOTO 99  ; Sécurité : valeur incohérente → alarme

#[2000 + #501] = #503  ; Écriture dans table H (#2001 = H1, #2002 = H2…)

G0 Z50.0               ; Dégagement sécurité
M99                    ; Fin sous-programme

N99                    ; Alarme longueur incohérente
#3000 = 101 (LONGUEUR OUTIL INVALIDE)
M30

Exemple 2 — Prise d'origine pièce (WPS) en X

Palpage face gauche + face droite → calcul centre → écriture décalage G54 X.

O0200  (PRISE ORIGINE PIECE — CENTRE EN X)
G90 G54 G00 Z50.0      ; Dégagement Z avant palpage

; --- Palpage face gauche ---
G00 X-80.0 Y0          ; Approche côté gauche (pièce ≈ 120 mm large)
G00 Z5.0               ; Descente rapide au niveau palpage
G31 X-30.0 F150        ; Palpage vers X+ jusqu'à contact face gauche
#510 = #5021           ; Mémorise X_gauche

G00 X-80.0             ; Dégagement

; --- Palpage face droite ---
G00 X80.0              ; Approche côté droit
G31 X30.0 F150         ; Palpage vers X- jusqu'à contact face droite
#511 = #5021           ; Mémorise X_droite

G00 X0 Z50.0           ; Dégagement

; --- Calcul centre et écriture G54 ---
#512 = [#510 + #511] / 2      ; Centre pièce en X
#5221 = #5221 - #512          ; Correction décalage G54 X
                               ; #5221 = valeur X de G54 (variable système)

M99

Équivalents Siemens 840D — MEAS / MEASA

; Siemens 840D / 828D — skip cycle = MEAS ou MEASA

MEAS=1  X__ Y__ Z__ F__   ; Mesure sur 1 signal (équiv. G31)
MEASA=1 X__ Y__ Z__ F__   ; Mesure toutes directions simultanées

; Position capturée dans :
$AA_IW[X]    ; équiv. #5021 Fanuc
$AA_IW[Y]    ; équiv. #5022 Fanuc
$AA_IW[Z]    ; équiv. #5023 Fanuc

; Exemple mesure longueur outil sur Siemens :
MEAS=1  Z=-210 F=120
R10 = $AA_IW[Z]    ; Capture position Z
R11 = R10 - (-200) ; Longueur = Z_contact - Z_ref

Pièges atelier et conseils terrain

INFO
Vitesse d'approche F = 100-300 mm/min
Trop rapide → la CN ne freine pas assez vite → rebond et erreur. Trop lent → temps cycle. Idéal : 2 passes (F=500 dégrossie, F=100 précision). Avec F=100 mm/min et latence palpeur 1 ms → erreur max ≈ 0.0017 mm.
DANGER
Toujours vérifier #5023 après G31 — sinon longueur fausse silencieuse
Si le palpeur n'a pas été touché, #5023 contiendra la position de fin de course (Z programmé). La macro calcule une longueur fausse sans alarme. Tester systématiquement : IF [#5023 EQ Z_cible]#3000 = 1 alarme.
CONSEIL
Utiliser G91 pour les approches relatives
G91 G31 Z-30.0 F120 : descend de 30 mm depuis la position courante. Plus sûr quand la position absolue de la pièce est inconnue (montage différent, sous-programme générique).
ATTENTION
M05 avant palpage broche en rotation
Palpeur Renishaw à contact : nécessite broche arrêtée. Exception : palpeurs laser (Blum) fonctionnent broche en rotation (avec outil en rotation pour contrôle outil tournant). Toujours vérifier la doc constructeur du palpeur.
INFO
Répétabilité : toujours faire 2 mesures
Moyenne de 2 palpages G31 consécutifs → élimine les valeurs aberrantes. Comparer : si [ABS[#5023_meas1 - #5023_meas2] GT 0.005] → alarme "PALPEUR INSTABLE".
📄 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

Aller plus loin — calculateurs et ressources

Macros Fanuc #variables/programmation-cnc/g-code/macros-fanuc/Variables #1-#999, opérateurs et structures IF/GOTO/WHILE pour automatiser les macros palpeur.G43 / G44 — compensation longueur outil/programmation-cnc/g-code/g43-g44/Activation correcteur H — table H mise à jour par le cycle TLM via G31.Cycles fixes de perçage/programmation-cnc/g-code/cycles-percage/G81-G85 — référence Fanuc avec syntaxe et paramètres.Bris d'outil en usinage CNC/problemes-usinage/bris-outil/Détection bris outil (TBC) avec G31 + macro alarme #3000.Côtes hors tolérances/problemes-usinage/cotes-hors-tolerances/Contrôle in-process G31 + correction wear offset après usinage.Calculateur tolérances ISO/calculateurs/tolerance-iso/ISO 286 (H7/h6) — choisir la tolérance avant validation par palpage.