CNCYRON
Fanuc · Siemens · Heidenhain

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.

Codes G31 — référence Fanuc

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

📏 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

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

Bonnes pratiques et sécurités

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).

Toujours vérifier #5023 après G31

Si le palpeur n'a pas été touché, #5023 contiendra la position de fin de course (Z programmé). Tester : IF [#5023 EQ Z_cible] → alarme.

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.

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).

Répétabilité : toujours faire 2 mesures

Moyenne de 2 palpage G31 consécutifs → élimine les valeurs aberrantes. Comparer : si [ABS[#5023_meas1 - #5023_meas2] GT 0.005] → alarme "PALPEUR INSTABLE".

Macros Fanuc #variables →G43 / G44 longueur outil →← Programmation CNC