Macros Fanuc B — variables, conditions et boucles
Les macros Fanuc Custom B permettent de programmer des cycles utilisateurs, des boucles, des conditions et de la mesure en cours. Ce guide couvre les variables système, les fonctions arithmétiques et 3 exemples concrets d'application.
Activation : Les macros Custom B nécessitent l'option Fanuc "Custom Macro B" (paramètre 6001#0 = 1). Vérifier auprès du constructeur machine si l'option est active.
Types de variables
| Plage | Type | Persistance | Utilisation | Exemple |
|---|---|---|---|---|
| #1–#33 | Locales | Effacées fin appel macro | Arguments transmis par G65 (A=#1, B=#2, D=#7…) | #1 = valeur arg. A |
| #100–#199 | Communes | Jusqu'au reset/M30 | Variables de calcul dans programme principal | #100 = [#1 * 2] |
| #500–#599 | Persistantes | Permanentes (SRAM) | Paramètres atelier, offsets correcteurs outils | #500 = décalage zéro pièce |
| #1000–#1999 | Système E/S | Temps réel | Lecture entrées/sorties numériques, capteurs | #1000 = état entrée DI[0] |
| #2001–#2999 | Correcteurs outil | Permanentes | Lire/écrire correcteurs H et D depuis programme | #2001 = correction H1 longueur |
| #5001–#5999 | Positions machine | Temps réel | Position axe en cours, positions SKIP G31 | #5001 = pos. X actuelle |
Fonctions arithmétiques
| Fonction | Description | Exemple |
|---|---|---|
| ABS[#x] | Valeur absolue | #100 = ABS[#1] |
| INT[#x] | Partie entière (troncature vers zéro) | #100 = INT[3.7] → 3 |
| ROUND[#x] | Arrondi au plus proche | #100 = ROUND[3.5] → 4 |
| SQRT[#x] | Racine carrée | #100 = SQRT[4] → 2.0 |
| SIN[#x] / COS[#x] / TAN[#x] | Trigonométrie (degrés) | #100 = SIN[30] → 0.5 |
| ATAN[#y]/[#x] | Arc tangente (résultat 0–360°) | #100 = ATAN[1.0]/[1.0] → 45 |
| LN[#x] / EXP[#x] | Logarithme naturel / exponentielle | #100 = EXP[1] → 2.718 |
| #0 (null) | Variable non définie — génère erreur si utilisée sans initialisation | IF [#1 EQ #0] THEN ... |
Structures de contrôle
(Condition simple — IF/THEN)
IF [#1 GT 50.0] THEN #100 = 1
IF [#2 EQ #0] GOTO 999 (variable non définie)
(Boucle WHILE — itérations)
WHILE [#100 LT 10] DO1
G01 X[#100 * 5] F200
#100 = #100 + 1
END1
(Opérateurs de comparaison)
EQ = égal | NE = différent | GT = > | GE = >=
LT = < | LE = <= | AND / OR / XOR (logique)
3 exemples concrets
📖 Voir aussi : Sous-programmes M98/M99 — guide complet · Référence codes G et M