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
#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
| Code | Fonction | Groupe | Note |
|---|---|---|---|
| G31 | Skip cycle — déplacement jusqu'au contact palpeur (saut de bloc) | 1 | Non-modal : actif seulement sur le bloc où il est programmé |
| G31 P1 | Skip cycle avec signal discret 1 (Fanuc 30i/31i/32i) | 1 | Permet multi-palpeurs sur la même CN |
| G31 P2 | Skip cycle avec signal discret 2 | 1 | Palpeur broche + palpeur table simultanément possibles |
| G04 | Temporisation (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
| Application | Description |
|---|---|
| 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
| Variable | Axe | Contenu | Note |
|---|---|---|---|
| #5021 | X | Position X au moment du contact (skip signal) | Coordonnée pièce (WCS G54/G55…) |
| #5022 | Y | Position Y au moment du contact | Coordonnée pièce |
| #5023 | Z | Position Z au moment du contact | La plus utilisée pour la longueur outil |
| #5024 | A / 4e axe | Position A au moment du contact | Si 4e axe configuré |
| #5025 | B / 5e axe | Position B au moment du contact | Si 5e axe configuré |
| #5061–#5065 | X→5e | Position machine (MCS) au skip — précision maximale | Coordonné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)
M30Exemple 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
#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.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).[ABS[#5023_meas1 - #5023_meas2] GT 0.005] → alarme "PALPEUR INSTABLE".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é.