CNC CODIGOS M
- solucioneszener
- Jun 11
- 5 min read

Lista de códigos M que se encuentran comúnmente en FANUC y controles diseñados de manera similar para fresado y torneado.
Nota: La marca Hass ha inventado sus propios códigos y ha sobreescrito códigos base con con sus propias interpretaciones, a continuación hemos agregado las diferencia en los códigos que se ha implementado. No estamos tomando en cuenta los códigos de M100 en adelante, puesto que esos se consideran códigos libres para que cada marca pueda agregar movimientos, alarmas u otros misceláneos que sus competidores no tengan.
Código | Descripción | Fresa ( M ) | Torno ( T ) | Información Complementaria |
M00 | Parada Obligatoria | M | T | No opcional: la máquina siempre se detiene al llegar a M00 en la ejecución del programa. |
M01 | Paro Opcional | M | T | La máquina solo se detiene en M01 si el operador presiona el botón de parada opcional. |
M02 | Fin del Programa | M | T | Fin del programa; la ejecución puede o no volver al inicio del programa (según el control); puede o no restablecer los valores de los registros. M02 era el código original de fin de programa, ahora considerado obsoleto, pero aún compatible con versiones anteriores. Muchos controles modernos consideran M02 equivalente a M30. Consulte M30 para obtener más información sobre el estado del control al ejecutar M02 o M30. |
M03 | Encender Husillo (rotación en sentido horario) | M | T | • La velocidad del husillo se determina mediante la dirección S, ya sea en revoluciones por minuto (modo G97; predeterminado), pies superficiales por minuto o [CSS] en G20 o G21. La regla de la mano derecha permite determinar qué dirección es horaria y cuál antihoraria. • Los tornillos de hélice derecha que giran en la dirección de apriete (y las ranuras de hélice derecha que giran en la dirección de corte) se definen como M03 y se denominan “horario” por convención. La dirección M03 siempre es M03, independientemente del punto de observación local y de la distinción entre horario y antihorario. |
M04 | Encender Husillo (rotación en sentido antihorario) | M | T | Ver comentario arriba en M03. |
M05 | Apagar Husillo | M | T | |
M06 | Cambio de Herramienta Automática (ATC) | M | T (a veces) | • Muchos tornos no utilizan M06 por que la propia dirección T indexa la torreta. • La programación de cualquier máquina requiere conocer el método que utiliza. Para comprender el funcionamiento de la dirección T y su interacción con M06, es necesario estudiar los diversos métodos, como la programación de la torreta del torno, la selección de herramientas fijas con ATC, la selección de herramientas con memoria aleatoria con ATC, el concepto de “próxima herramienta en espera” y las herramientas vacías. |
M07 | Anticongelante Encendido (rociar) | M | T | |
M08 | Anticongelante Encendido (chorro) | M | T | |
M09 | Anticongelante Apagado | M | T | |
M10 | Abrazadera de PALET Encendido | M | Para centros de maquinado con cambiadores de palets. | |
M11 | Abrazadera de PALET Apagado | M | Para centros de maquinado con cambiadores de palets. | |
M13 | Husillo Encendido (horario) y encendido de Anticongelante (chorro) | M | Este código M realiza la función M03 y M08. No es inusual que ciertos modelos de máquina tengan comandos combinados, lo que permite programas más cortos y rápidos de escribir. | |
M19 | Orientación de Husillo | M | T | • La orientación del husillo se denomina más frecuentemente dentro de los ciclos (automáticamente) o durante la configuración (manualmente). La abreviatura OSS (tope del husillo orientado) se refiere a un tope orientado dentro de los ciclos. • La relevancia de la orientación del husillo ha aumentado con el avance de la tecnología. Si bien el fresado de contornos de 4 y 5 ejes y el maquinado CNC de un solo punto se han basado en codificadores de posición del husillo durante décadas, antes de la llegada generalizada de las herramientas vivas y los sistemas de fresado-torneado/torneado-fresado, no era tan relevante en el maquinado convencional (no especial), excepto en ciertos contextos (como el cambio de herramienta o los ciclos de barrenado de precisión G76 con reacción de herramienta controlada). El fresado de características indexadas alrededor de una pieza torneada se realizaba con operaciones separadas en las configuraciones del cabezal indexado. En cierto sentido, los cabezales indexadores se inventaron originalmente como equipos independientes, para su uso en operaciones independientes, lo que permitía una orientación precisa del husillo en un mundo donde, de otro modo, prácticamente no existía (ni era necesario). A medida que el maquinado CAD/CAM y CNC multieje con múltiples ejes de corte rotativo se convierte en la norma, incluso para aplicaciones habituales (no especiales), los operativos ahora se preocupan con frecuencia por mover casi cualquier husillo en sus 360º con precisión. |
M21 | Reflejo, Eje-X | M | ||
M21 | ContraPunto hacia Adelante | T | ||
M22 | Reflejo, Eje-Y | M | ||
M22 | Contrapunto hacia Atrás. | T | ||
M23 | Reflejo Apagado | M | ||
M23 | Achaflanado fuera de Roscado Encendido | T | ||
M24 | Achaflanado fuera de Roscado Apagado | T | ||
M30 | Fin del programa, con retorno al inicio del programa. | M | T | Hoy en día, M30 se considera el código estándar de fin de programa y devuelve la ejecución al inicio del programa. La mayoría de los controles también siguen siendo compatibles con el código original de fin de programa, M02, generalmente tratándolo como equivalente a M30. Información adicional: Compare M02 con M30. Primero, M02 se creó cuando se esperaba que la cinta perforada fuera lo suficientemente corta como para empalmarse en un bucle continuo (razón por la cual, en los controles antiguos, M02 se activaba al rebobinar la cinta). El otro código de fin de programa, M30, se añadió posteriormente para dar cabida a cintas perforadas más largas, que se enrollaban en un carrete y, por lo tanto, debían rebobinarse antes de que pudiera comenzar otro ciclo. En muchos controles más nuevos, ya no hay diferencia en cómo se ejecutan los códigos: ambos actúan como M30. |
M41 | Marcha Engrane 1 | T | Selección de rango de velocidad 1. | |
M41 | Marcha baja | HAAS | Los tornos HAAS no tienen mas que dos velocidades de engranajes, se divide en bajo y alto. | |
M41 | Marcha Engrane 1 | T | Selección de rango de velocidad 2. | |
M42 | Marcha alta | HAAS | Los tornos HAAS no tienen mas que dos velocidades de engranajes, se divide en bajo y alto. | |
M43 | Marcha Engrane 3 | T | Selección de rango de velocidad 3. | |
M43 | Desbloqueo de la Torreta | HAAS | Permite que la torreta se deslice hacia afuera para el cambio de herramientas | |
M44 | Marcha Engrane 4 | T | Selección de rango de velocidad 4. | |
M44 | Bloqueo de la Torreta | HAAS | Es para uso de mantenimiento y no se utiliza durante las operaciones de mecanizado regulares. La torreta debe estar desbloqueada para realizar operaciones de maquinado. | |
M48 | Anular Velocidades de F y S | M | T | Habilita la anulación de la velocidad de avance y la velocidad del husillo. Esto permite al operador ajustar manualmente la velocidad durante la operación, superando la velocidad programada en el código G. |
M49 | NO permitir Anular Velocidades F y S (cancela M48) | M | T | Sirve para deshabilitar las anulaciones de avance (F) y velocidad (S). Elimina el control manual sobre la velocidad de la máquina y la velocidad del husillo, permitiendo que la máquina siga las velocidades predefinidas en el programa NC. |
M52 | Descargar la última herramienta del husillo | M | T | También Vaciar el husillo. |
M60 | Cambio Automático de Palets (APC) | M | Para centros de maquinado con cambiadores de palets. | |
M98 | Llamada de subprograma | M | T | Toma una dirección P para especificar qué subprograma llamar, por ejemplo, “M98 P8979” llama al subprograma O8979. |
M99 | Fin de subprograma | M | T | Generalmente se coloca al final del subprograma, donde devuelve el control de ejecución al programa principal. El control predeterminado retoma al bloque siguiente a la llamada M98 en el programa principal. Se puede especificar el retorno a un número de bloque diferente mediante una dirección P. M99 también se puede usar en el programa principal con salto de bloque para un bucle infinito del programa principal en tornos (hasta que el operador active el salto de bloque). |




