Vous trouverez sur cette page les codes ISO (de la famille M) permettant de réaliser un programme d’usinage. Attention, ces codes sont ceux utilisés sur les machines HAAS de notre atelier, même si une bonne partie des codes sont standards il est tout de même bien plus prudent de se référer au guide fourni avec la machine pour connaitre les fonctions disponibles et leurs syntaxes. De plus les machines FANUC étant assez similaires aux machines HAAS, il est fort probable que ces codes fonctionnent aussi sur machines FANUC.

Cette page étant particulièrement longue, vous pouvez utiliser le sommaire présent sur la droite de la page afin d’accéder directement aux fonctions recherchées.

Les codes M sont des commandes diverses de la machine qui ne commandent pas de déplacement d’axe. Le format d’un code M est la lettre M suivie de deux ou trois chiffres, par exemple M03.
Seul un code M est permis par ligne de code. Tous les codes M prennent effet à la fin du bloc.

M00 -Arrêt programme-

Le code M00 est utilisé pour arrêter un programme. Il arrête les axes et la broche, et désactive le liquide d’arrosage (y compris la Liquide d’arrosage à travers la broche optionnel, le Jet d’air comprimé à travers l’outil, et le istoler à air comprimé / Lubrification à quantité minimum). Le bloc qui suit M00 est mis en surbrillance lorsqu’il est visualisé dans
l’éditeur de programme. L’appui sur [CYCLE START] permet de continuer l’exécution du programme du bloc en surbrillance.

M01 -Arrêt optionnel du programme-

Le code M01 est identique à M00, excepté le fait que l’arrêt n’aura lieu que si OPTIONAL STOP (arrêt optionnel) est activé sur le panneau frontal. CYCLE START sera utilisé pour continuer l’exécution du programme à partir du bloc suivant. Si l’option à fluide de refroidissement dans la broche est en fonction, M01 la mettra hors fonction.

M02 -Fin de programme-

Le code M02 fera arrêter l’exécution du programme de la même manière que M00, mais le pointeur de programme ne sera pas avancé au bloc suivant.

M03 -Rotation Broche, sens Horaire-

Le code M03 fera démarrer la broche en sens horaire, sans égard de la vitesse déjà réglée. L’activation du bloc sera retardée jusqu’à ce que la vitesse de la broche atteigne 90% de la vitesse commandée.

M04 -Rotation Broche, sens Anti-Horaire-

Le code M04 fera démarrer le mouvement de broche en sens anti-horaire, sans égard de la vitesse déja réglée.
Le bloc sera retardé jusqu’à ce que la vitesse de la broche atteigne 90% de la vitesse commandée.
Si le bit 10 du paramètre 278 (CNCR SPINDLE) est réglé à 1, l’activation de bloc ne dépendra pas du rapprochement de vitesse par la broche. Le mouvement d’interpolation ne sera pas initialisé avant d’atteindre la vitesse de broche, mais autres commandes, comme serait le mouvement d’avance rapide, seront. On ne recommande pas l’exécution de la commande M04 avec le fluide de refroidissement dans la broche, en
fonction.

M05 -Arrêt de Broche-

Le code M05 est utilisé à faire arrêter la broche. Le bloc est retardé jusqu’à ce que la vitesse de la broche devienne inférieure à 10 TR.PM.

M06 -Changement d’Outil-

Code M06 est utilisé pour l’initiation du changement d’outil. Si la broche est en fonction, elle sera arrêtée. On n’exige pas de commandes d’axe avant le changement d’outil s’il n’y a pas de problème avec l’espace de
sécurité outil/pièce/dispositif de serrage. L’axe Z se déplacera automatiquement à la position zéro de machine et l’outil sélectionné (Tnn) sera introduit dans la broche. La broche ne redémarrera pas après le changement d’outil sans commande, mais la vitesse Snnnn et l’étage de vitesse ne seront pas modifiées. La pompe de refroidissement sera arrêtée pendant le changement d’outil.
Quand le fluide de refroidissement dans la broche (TSC) est en fonction, M06 orientera la broche et déplacera l’axe Z en position changement d’outil, arrêtera la pompe TSC, fera purger le fluide de refroidissement de la barre, ensuite exécutera un changement d’outil. Le fluide de refroidissement dans la broche restera hors fonction jusqu’à l’appel d’une fonction M88.

M08 -Arrosage en Fonction-

Le code M08 mettra en fonction le système d’alimentation avec fluide de refroidissement. A remarquer que puisque les commandes de code M sont exécutées à la fin du bloc, si un mouvement est commandé dans le
cadre du même bloc, le système de refroidissement est mis en fonction après l’exécution de ce mouvement.
Le niveau du fluide de refroidissement ne sera vérifié qu’au début du programme de sorte que l’exécution du programme ne soit pas interrompue à cause du niveau bas de fluide de refroidissement.

M09 -Arrosage à l’arrêt-

Le code M09 mettra hors fonction le système d’alimentation avec fluide de refroidissement.

M10 -Serrage mandrin-

M10 bloque le mandrin et M11 le débloque.
La direction de blocage est contrôlée par le Réglage 282

M11 -Déserrage mandrin-

M10 bloque le mandrin et M11 le débloque.
La direction de blocage est contrôlée par le Réglage 282

M14 -Frein de broche principale engagé (Axe C optionnel)-

Ces codes M sont utilisés pour les machines équipées de l’axe C optionnel. M14 applique un frein de type étrier pour maintenir la broche principale, tandis que M15 relâche le frein.

M15 -Frein de broche principale désengagé (Axe C optionnel)-

Ces codes M sont utilisés pour les machines équipées de l’axe C optionnel. M14 applique un frein de type étrier pour maintenir la broche principale, tandis que M15 relâche le frein.

M17 -Rotation tourelle avant-

M17 et M18 font tourner la tourelle en sens avant (M17) ou en arrière (M18) lorsqu’un changement d’outil est effectué. Le code M17 du programme suivant fait se déplacer la tourelle porte-outil en avant vers l’outil 1 ou en arrière vers l’outil 1 si l’on a commandé un M18.
N1 T0101 M17 (Forward) ;
N1 T0101 M18 (Reverse) ;
Un M17 ou M18 restera en effet pendant le reste du programme.

M18 -Rotation tourelle inverse-

M17 et M18 font tourner la tourelle en sens avant (M17) ou en arrière (M18) lorsqu’un changement d’outil est effectué. Le code M17 du programme suivant fait se déplacer la tourelle porte-outil en avant vers l’outil 1 ou en arrière vers l’outil 1 si l’on a commandé un M18.
N1 T0101 M17 (Forward) ;
N1 T0101 M18 (Reverse) ;
Un M17 ou M18 restera en effet pendant le reste du programme.

M19 -Orientation de broche (Valeurs P et R – optionnelles)-

Le code M19 est utilisé pour l’orientation électronique de la broche en une position fixe. On peut ajouter une valeur P optionnelle qui spécifiera l’angle d’orientation (en degrés). Par exemple, M19 P270 orientera la broche à 270 degrés. Une valeur R optionnelle permet à l’opérateur de spécifier jusqu’à quatre positions décimales.
Une M19 R123.4567 positionnera la broche à l’angle spécifié par la valeur R.

M30 -Fin de programme et remise à zéro-

Le code M30 est utilisé à signaler la fin du programme. Il est aussi employèr à faire arrêter la broche et à mettre hors fonction le système de refroidissement. Les compteurs de pièces affichés dans le cadre des
commandes courantes seront aussi incrémentés. M30 sert aussi à annuler les corrections de longueur d’outil.
Lorsque l’option fluide de refroidissement dans la broche (TSC) est en fonction, M30 la mettra hors fonction et ensuite exécutera une opération M30.

M38 -Variation de la vitesse de broche
activée-

Spindle Speed Variation (SSV) est la variation de vitesse de broche qui permet à l’opérateur de spécifier un intervalle dans les limites duquel la vitesse de la broche varie continuellement. Cela est utile pour la suppression du broutage d’outil qui pourrait conduire à une finition inacceptable de pièces et/ou à des dommages de l’outil. Le contrôle varie la vitesse de broche en fonction des réglages 165 et 166. Par exemple, afin d’obtenir une variation de vitesse de broche de +/- 50 RPM par rapport à la vitesse actuellement commandée avec un cycle de 3 secondes, spécifier le réglage 165 sur 50 et le réglage 166 sur 30. En utilisant ces réglages, le programme suivant varie la vitesse de broche entre 950 et 1050 tr/min après la commande M38.

Exemple
%
o60381 (M38/39-SSV-SPINDLE SPEED VARIATION) ;
(G54 X0 Y0 is at the center of rotation) ;
(Z0 is on the face of the part) ;
(BEGIN PREPARATION BLOCKS) ;
T101 (Select tool and offset 1) ;
G00 G18 G20 G40 G80 G99 (Safe startup) ;
S1000 M3 (Turn spindle CW at 1000 RPM) ;
G04 P3. (Dwell for 3 seconds) ;
M38 (SSV ON) ;
G04 P60. (Dwell for 60 seconds) ;
M39 (SSV OFF) ;
G04 P5. (Dwell for 5 seconds) ;
G00 G53 X0 (X home) ;
G53 Z0 (Z home & C unwind) ;
M30 (End program) ;
%

M39 -Variation de la vitesse de broche
désactivée en tournage et Tourner la tourelle à outils en fraisage-

En fraisage:

Le code M39 s'utilise pour faire tourner la tourelle a outils sans effectuer de changement d'outil. Le numéro (Tn) de poche d'outil désiré doit être programmé avant M39.
Ce code M peut être utile pour faire déplacer une poche vide pour la faire affronter la broche. Cela n'est pas normalement exigé mais c'est utile à fins de diagnostic ou pour la récupération après un écrasement de
changeur d'outils. Retenir que la poche affrontant la broche doit être toujours vide pour un changement d'outil.

M41 -Basse vitesse-

Le code M41 est utilisé pour ajuster l'étage de vitesse de la broche impliquée par la commande Snnn. Dans le cas de M41, l'étage de vitesse sera toujours inférieure. Si la vitesse commandée est au-dessus de la limite inférieure de vitesse, la vitesse de broche sera la limite inférieure de vitesse. Ce code M ne fait la broche ni marcher ni s'arrêter. Si la broche se tournait avant cette commande, elle redémarrera. Si elle était arrêtée avant cette commande, elle sera laissée ainsi. M41 est ignoré s'il n'y a pas de boîte de vitesses.

M42 -Grande vitesse-

Le code M42 est utilisé pour ajuster l'étage de vitesse de la broche impliquée par la commande Snnn. Dans le cas de M42, l'étage de vitesse sera toujours supérieure. Retenir que cela peut réduire le couple à l'outil. Ce code M ne fait la broche ni marcher ni s'arrêter. Si la broche se tournait avant cette commande, elle redémarrera. Si elle était arrêtée avant cette commande, elle sera laissée ainsi. M42 est ignoré s'il n'y a pas de boîte de vitesses.

M51-M58 -Réglage codes M optionnels d'utilisateur-

Les codes M51 à M58 sont optionnels pour les interfaces d'utilisateur. Ils font activer l'un des relais (voir Paramètre 352) et le laissent activé. Ce sont les mêmes relais que ceux utilisés pour M21-M28. Utiliser M61-M68
afin de les désactiver. La touche RESET (remise à zéro) peut être utilisée à mettre hors fonction tous ces relais.

M59 -Réglage relais de sortie-

Ce code M fait directement activer un relais de sorties discrètes. Sa syntaxe serait M59 Pnn ou 'nn' indique le numéro du relais qui est activé. Il est possible d'utiliser une commande M59 afin d'activer l'un des relais de sorties discrètes de 1100 à 1155. Par exemple, M59 P1103 fait la même chose que #1103=1, excepté le fait traitement d'un code M (traitement à la sortie de la file d’attente, non pas à l'entrée dans la queue). Il faut utiliser M69 afin de désactiver un relais.

M82 -Débridage d'outil-

Ce code est utilisé à libérer l'outil de la broche. Il n'est pas normalement nécessaire, car les opérations de changement d'outil exécutent ceci automatiquement et le bouton TOOL RELEASE est disponible à l'opérateur.
On NE RECOMMANDE PAS l'utilisation de ce code M, car L'OUTIL TOMBERA de la broche et l'outil, la machine ou la configuration PEUVENT S'ENDOMMAGER.

M97 -Appel sous-programme local-

Ce code est utilisé à appeler une routine référencée par un numéro de ligne N dans le cadre du même programme. Il faut y avoir un code Pnnnnnnn qui corresponde au numéro de ligne dans le cadre du même
programme. Cela est très utile pour les sous-routines simples dans le cadre d'un programme, évitant les complications supposées par un programme séparé. Il faut que la sous-routine finisse par un M99. Un
compteur L dans le bloc M97 fera répéter l'appel de la sous-routine pour le nombre respectif de fois.

Exemple
%
O69701 (M97 LOCAL SUBPROGRAM CALL) ;
M97 P1000 L2 (L2 will run the N1000 line twice) ;
M30 ;
N1000 G00 G55 X0 Z0 (N line that will run after M97 P1000 is
run) ;
S500 M03 ;
G00 Z-.5 ;
G01 X.5 F100. ;
G03 ZI-.5 ;
G01 X0 ;
Z1. F50. ;
G28 U0 ;
G28 W0 ;
M99 ;
%

M98 -Appel de sous-programme-

M98 appelle un sous-programme dans le format M98 Pnnnn, où Pnnnn est le numéro du programme à appeler, ou M98 (/Onnnnn), où est le chemin du dispositif qui conduit au sous-programme.
Le sous-programme doit contenir un M99 pour le retour au programme principal. Vous pouvez ajouter un compte Lnn au M98 bloc M98 pour appeler un sous-programme nn fois avant de poursuivre avec le bloc suivant.
Lorsque votre programme appelle un sous-programme M98, le contrôle recherche le sous-programme dans le répertoire du programme principal. Si le contrôle ne peut pas trouver le sous-programme, il recherche dans l’emplacement spécifié dans le Réglage 251.
Une alarme se déclenche si le contrôle ne peut pas trouver le sous-programme.

Exemple
Le sous-programme est un programme séparé (O00100) du programme principal
(O00002).

%
O00002 (PROGRAM NUMBER CALL);
M98 P100 L4 (CALLS O00100 SUB 4 TIMES) ;
M30 ;
%

%
O00100 (SUBPROGRAM);
M00 ;
M99 (RETURN TO MAIN PROGRAM) ;
%

%
O00002 (PATH CALL);
M98 (USB0/O00001.nc) L4 (CALLS O00100 SUB 4 TIMES) ;
M30 ;
%

%
O00100 (SUBPROGRAM);
M00 ;
M99 (RETURN TO MAIN PROGRAM) ;
%

M99 -Retour ou boucle de sous-programme-

Ce code a trois utilisations principales :

  1. Un M99 est utilisé à la fin d’un sous-programme, sous-programme local ou macro, pour revenir dans le programme principal.
  2. Un M99 Pnn fait sauter le programme sur le Nnn correspondant dans le programme.
  3. Un M99 dans le programme principal fait revenir le programme en arrière jusqu’au démarrage et exécute jusqu’à ce que l’on appuie sur [RESET].
    Remarques sur la programmation - Le comportement Fanuc peut être simulé en utilisant le code suivant :

HAAS
O0001 (Principal)

N50 M98 P2
N51 M99 P100

N100 (continuer ici)

M30

O0002 (Sous programme)
M99

FANUC
O0001

N50 M98 P2

N100 (continuer ici)



O0002 (Sous programme)
M99 P100

M104 -Extension du bras de palpeur (Optionnel)-

Le bras optionnel du palpeur de réglage d’outil est étendu et rétracté à l’aide de ces codes M.

M105 -Retour du bras de palpeur (Optionnel)-

Le bras optionnel du palpeur de réglage d’outil est étendu et rétracté à l’aide de ces codes M.

M130 -Afficher média-

M130 vous permet d’afficher la vidéo et des images fixes pendant l’exécution du programme. Voici quelques exemples d’utilisation de cette fonctionnalité :
• Fournir des repères visuels ou des instructions de travail durant le fonctionnement du programme
• Fournir des images aidant à l’inspection des pièces lors de certains points du programme
• Faire la démonstration de certaines procédures en vidéo

Le format de commande correct est M130(file.xxx), dans lequel file.xxx est le nom du fichier, plus le chemin, si nécessaire. Il est également possible d’ajouter un commentaire entre parenthèses qui apparaîtra en tant que commentaire en haut de la fenêtre média.

Les formats de fichiers autorisés sont : MP4, MOV, PNG, et JPEG.

Vos médias apparaissent dans l’onglet Média sous Commandes en cours. Le média s’affiche jusqu’à ce que la M130 suivante affiche un fichier différent, ou que M131 efface le contenu de l’onglet média.

M131 -Annuler afficher média-

M130 vous permet d’afficher la vidéo et des images fixes pendant l’exécution du programme. Voici quelques exemples d’utilisation de cette fonctionnalité :
• Fournir des repères visuels ou des instructions de travail durant le fonctionnement du programme
• Fournir des images aidant à l’inspection des pièces lors de certains points du programme
• Faire la démonstration de certaines procédures en vidéo

Le format de commande correct est M130(file.xxx), dans lequel file.xxx est le nom du fichier, plus le chemin, si nécessaire. Il est également possible d’ajouter un commentaire entre parenthèses qui apparaîtra en tant que commentaire en haut de la fenêtre média.

Les formats de fichiers autorisés sont : MP4, MOV, PNG, et JPEG.

Vos médias apparaissent dans l’onglet Média sous Commandes en cours. Le média s’affiche jusqu’à ce que la M130 suivante affiche un fichier différent, ou que M131 efface le contenu de l’onglet média.

M133/M134/M135- Mouvement d’outillage motorisé avant/inverse/arrêt (Optionnel)-

M133 active la broche à outil motorisé dans la direction avant. M134 active la broche à outil motorisé dans la direction inverse. M135 arrête la broche à outil motorisé.
La vitesse de la broche est commandée par un code d’adresse P. Par exemple, P1200 commanderait une vitesse de broche de 1200 tr/min.

M138/M139 -Variation vitesse de broche activée/désactivée-

La variation de vitesse de broche (Spindle Speed Variation, SSV) vous permet de spécifier une plage dans les limites de laquelle la vitesse de la broche varie continuellement. Cela est utile pour la suppression du broutage d’outil qui pourrait conduire à une finition inacceptable de pièces et/ou à des dommages de l’outil. Le contrôle varie la vitesse de
broche en fonction des réglage 165 et 166. Par exemple, afin d’obtenir une variation de vitesse de broche de +/- 100 tr/min par rapport à la vitesse actuellement commandée avec un cycle de 1 seconde, spécifier le Réglage 165 sur 100 et le Réglage 166 sur 1.
La variation que vous utilisez dépend du matériau, de l’outillage et des caractéristiques de votre application, mais 100 tr/min en 1 seconde représente un bon point de départ.

Exemple
M138 P500 E1.5 (Turn SSV On, vary the speed by 500 RPM, cycle every 1.5 seconds);
M138 P500(Turn SSV on, vary the speed by 500, cycle based on setting 166);
M138 E1.5 (Turn SSV on, vary the speed by setting 165, cycle every 1.5 seconds);

M154/M155 -Engagement d’axe C/Dégagement d’axe C (Optionnel)-

Ce code M est utilisé pour mettre en marche ou arrêter le moteur sur axe C optionnel.