CNCYRON
Custom Macro B — Fanuc 0i / 16i / 30i

Macros Fanuc — variables et structures de contrôle

Les macros Fanuc (Custom Macro B) permettent la programmation paramétrique : boucles, conditions, calculs trigonométriques, lecture des positions machine. Indispensable pour les sous-programmes génériques, les palettiseurs et les cycles de mesure.

Types de variables

#1 – #33

Variables locales

Locales à l'appel de macro (G65). Réinitialisées à chaque appel. #1–#26 correspondent aux arguments A–Z de G65.

#1 = 25.0 ; Argument A du G65
#100 – #199

Variables communes (groupe 1)

Persistantes pendant toute la session. Partagées entre tous les programmes en mémoire. Remises à zéro à la mise sous tension.

#100 = 0 ; Compteur pièces
#500 – #999

Variables communes (groupe 2)

Persistantes même après coupure d'alimentation (stockées en mémoire non volatile). Idéales pour les paramètres machine permanents.

#500 = 1.5 ; Usure correcteur permanent
#1000 –

Variables système (read-only)

Variables machine : #1000 = DIO entrées, #2001+ = correcteurs outils (longueur), #3001 = horloge, #5001–#5005 = positions axes.

#5001 = [position X courante]

Opérateurs et fonctions mathématiques

SyntaxeOpérationExemple
#var = valeurAffectation#100 = 10.5
#var = #var1 + #var2Addition#100 = #100 + 1
#var = #var1 - #var2Soustraction#1 = #1 - 0.5
#var = #var1 * #var2Multiplication#2 = #1 * 3.14159
#var = #var1 / #var2Division#3 = #1 / #2
SIN[#var]Sinus (degrés)#4 = SIN[45] ; → 0.707
COS[#var]Cosinus (degrés)#4 = COS[60] ; → 0.5
SQRT[#var]Racine carrée#4 = SQRT[2] ; → 1.414
ABS[#var]Valeur absolue#4 = ABS[-5.2] ; → 5.2
ROUND[#var]Arrondi#4 = ROUND[3.7] ; → 4
FIX[#var]Partie entière (floor)#4 = FIX[3.9] ; → 3

Structures de contrôle

IF / GOTO — saut conditionnel

IF [condition] GOTO N___

Si la condition est vraie, saute au bloc N. Sinon, continue au bloc suivant. Opérateurs : EQ (=), NE (≠), GT (>), GE (≥), LT (<), LE (≤).

#100 = 0
N10 IF [#100 GE 10] GOTO N99   ; Sauter si #100 ≥ 10
#100 = #100 + 1                ; Incrémenter
G01 X[#100 * 5] F200           ; Déplacement variable
GOTO N10                       ; Boucle
N99 G00 Z100.                  ; Fin

WHILE / DO / END — boucle

WHILE [condition] DO n
... END n

Boucle tant que la condition est vraie. n = 1, 2 ou 3 (niveau d'imbrication). Maximum 3 niveaux de WHILE imbriqués.

#1 = 1                         ; Compteur
WHILE [#1 LE 5] DO 1           ; Répéter 5 fois
  G91 G01 Z-2. F150            ; Descente 2mm
  G04 P500                     ; Pause 0.5s
  #1 = #1 + 1                  ; Incrémenter
END 1                          ; Fin boucle
G90 G00 Z100.

Appel macro G65 — correspondance arguments/variables

G65 P9001 A25. B10. R5. F200.  ; Appel O9001 avec arguments
; Dans O9001 :  #1 = 25. (A),  #2 = 10. (B),  #18 = 5. (R),  #9 = 200. (F)
Arg.Var.Arg.Var.
A#1I#4
B#2J#5
C#3K#6
D#7L(répétitions)
E#8M#13
F#9Q#17
H#11R#18
X#24Y#25
Z#26S#19

Note : Les lettres G, L, N, O, P ne peuvent pas être utilisées comme arguments G65 (réservées au CN). L = nombre de répétitions de la macro (L1 à L9999).

Sous-programmes M98/M99 →Guide Fanuc →← Programmation CNC