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 — sur Fanuc 0i / 16i / 30i.
PROGRAMMATION — MACROS FANUC CUSTOM MACRO B
#500 = 0). Ne jamais assumer qu'une variable #500-#999 est à zéro au démarrage machine. Pour les arguments paramétriques : G65 (récursivité 4 niveaux, arguments A-Z → #1-#26) — pas M98 qui ne passe rien.Types de variables Fanuc
| Plage | Type | Description | Exemple |
|---|---|---|---|
| #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
| Syntaxe | Opération | Exemple |
|---|---|---|
| #var = valeur | Affectation | #100 = 10.5 |
| #var = #var1 + #var2 | Addition | #100 = #100 + 1 |
| #var = #var1 - #var2 | Soustraction | #1 = #1 - 0.5 |
| #var = #var1 * #var2 | Multiplication | #2 = #1 * 3.14159 |
| #var = #var1 / #var2 | Division | #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 et WHILE/DO/END
| Structure | Syntaxe | Description |
|---|---|---|
| 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 (≤). |
| 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. |
Exemple IF / GOTO — saut conditionnel
#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
Exemple WHILE / DO / END — boucle structurée
#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 | #1 | I | #4 |
| B | #2 | J | #5 |
| C | #3 | K | #6 |
| D | #7 | L | (répétitions) |
| E | #8 | M | #13 |
| F | #9 | Q | #17 |
| H | #11 | R | #18 |
| X | #24 | Y | #25 |
| Z | #26 | S | #19 |
Pièges atelier et conseils terrain
#500 = 0) en début de programme.IF [#5003 GT -100] GOTO N10 — continue si Z au-dessus de -100.Mémo Atelier CNC — Paramètres de coupe par matière
Vc, fz, Ra pour 14 matières (acier, inox, alu, titane, Inconel, fonte, bronze, plastiques techniques...) + classification ISO P/M/K/N/S/H + 9 formules essentielles + checklist lancement 16 points + checklist changement de série 6 points. 4 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é.