Cuando empiezas a leer un programa CNC, una de las primeras cosas que aparecen son letras y números: G00, G01, M03, M05, M08, M30… Al principio parece un idioma raro, pero cuando entiendes la diferencia entre códigos G y M en CNC, el programa empieza a tener mucha más lógica.
Los códigos G suelen indicar movimientos o formas de mecanizar. Los códigos M suelen controlar funciones de la máquina, como arrancar el husillo, parar, activar refrigerante o terminar el programa.
Dicho de forma sencilla: los códigos G le dicen a la máquina cómo moverse, y los códigos M le dicen qué funciones activar o desactivar.
En taller esto se nota mucho cuando revisas un programa antes de darle al ciclo. No miras solo si hay coordenadas; también miras si el husillo arranca, si el refrigerante entra cuando toca, si la herramienta se mueve en rápido o en avance de corte y si el programa termina correctamente. Muchas veces un susto se evita leyendo dos líneas antes de arrancar.
Qué son los códigos G en CNC
Los códigos G son instrucciones que controlan movimientos y modos de trabajo de la máquina. Sirven para indicar si la herramienta se mueve en rápido, si corta en línea recta, si hace un arco, si trabaja en milímetros o pulgadas, o si usa un sistema de coordenadas concreto.
Por ejemplo, en fresadora CNC puedes encontrar algo así:
G00 X50 Y20
Ese G00 indica un movimiento rápido. La máquina se desplaza hasta X50 Y20, pero no es una línea pensada para cortar material. Es un movimiento de posicionamiento.
En cambio:
G01 X80 F300
Ese G01 indica un movimiento lineal con avance de trabajo. Ahí la herramienta se mueve hasta X80 con un avance F300. Esa línea ya puede formar parte del mecanizado si la herramienta está en contacto con la pieza.
Un error típico al empezar es no diferenciar bien un movimiento rápido de uno de corte. En vacío no pasa nada, pero cerca de la pieza cambia todo. Si una herramienta baja o se mueve en rápido donde debería ir en avance controlado, puedes tener un golpe o una marca seria.
Qué son los códigos M en CNC
Los códigos M controlan funciones auxiliares de la máquina. No suelen definir la trayectoria de corte, sino acciones como encender o apagar el husillo, activar refrigerante, parar el programa o finalizarlo.
Por ejemplo:
M03
Suele usarse para arrancar el husillo en sentido horario.
M05
Suele usarse para parar el husillo.
M08
Suele activar el refrigerante.
M09
Suele apagar el refrigerante.
Y al final de muchos programas aparece:
M30
Que normalmente indica fin de programa y reinicio.
En máquina, los códigos M son de esas cosas que no puedes ignorar. Puedes tener una trayectoria perfecta, pero si el husillo no arranca, si el refrigerante no entra o si el programa no termina bien, el mecanizado no está preparado correctamente.
Me ha pasado ver programas donde el recorrido parecía estar bien, pero faltaba revisar una función básica. Antes de ejecutar, no cuesta nada mirar si está el M03, si las RPM están definidas con S, si el refrigerante tiene sentido y si el final del programa está correcto.
Diferencia principal entre códigos G y M
La diferencia principal es esta:
Los códigos G controlan movimientos y modos de mecanizado.
Los códigos M controlan funciones de la máquina.
Por ejemplo:
G01 X100 F250
Aquí la máquina se mueve en línea recta con avance.
M08
Aquí la máquina activa el refrigerante.
Una línea mueve la herramienta. La otra activa una función. Las dos son importantes, pero no hacen lo mismo.
Esto ayuda mucho al leer un programa. Si ves una línea con G01, sabes que tienes que mirar coordenadas y avance. Si ves una línea con M03, sabes que estás mirando una función del husillo. Si ves M08, estás mirando refrigerante.
Cuando empiezas a separar mentalmente estas dos cosas, el G-code deja de parecer una lista de códigos sueltos y empieza a parecer una secuencia lógica de trabajo.
Ejemplo sencillo de programa CNC
Mira este ejemplo básico:
G21
G54
S3000 M03
G00 X0 Y0
G00 Z5
G01 Z-2 F100
G01 X50 F300
G00 Z20
M05
M30
No es un programa completo para una pieza real, pero sirve para entender la estructura.
G21 indica trabajo en milímetros.G54 selecciona un sistema de coordenadas.S3000 M03 pone el husillo a 3000 RPM y lo arranca.G00 X0 Y0 posiciona la herramienta en rápido.G00 Z5 deja la herramienta a una altura segura.G01 Z-2 F100 baja en avance controlado hasta profundidad.G01 X50 F300 mecaniza en línea recta.G00 Z20 sube la herramienta en rápido.M05 para el husillo.M30 termina el programa.
En taller, al revisar algo así, lo importante es seguir la lógica: primero preparo unidades y cero, luego arranco husillo, posiciono con seguridad, bajo controlado, mecanizo, retiro herramienta y termino. Si ese orden no tiene sentido, hay que parar y revisar.

Códigos G básicos que conviene conocer
No hace falta memorizar todos los códigos desde el primer día. Pero sí conviene conocer algunos muy habituales.
G00 se usa para movimientos rápidos. Sirve para posicionar la herramienta sin cortar.
G01 se usa para movimientos lineales con avance. Es uno de los códigos más usados para mecanizar.
G02 y G03 se usan para movimientos circulares o arcos. Uno suele ser horario y el otro antihorario, dependiendo del control y la configuración.
G17, G18 y G19 seleccionan planos de trabajo. En fresadora, muchas veces se trabaja en G17, que corresponde al plano XY.
G21 suele indicar programación en milímetros.
G54, G55, G56 y similares seleccionan sistemas de coordenadas de trabajo.
Estos códigos aparecen mucho. No hace falta saberlo todo de golpe, pero sí entender qué papel cumple cada uno. Si sabes distinguir rápido, corte, arco, plano y cero de trabajo, ya tienes una base mucho más sólida para leer programas.
Códigos M básicos que conviene conocer
Con los códigos M pasa lo mismo. Hay muchos, y algunos cambian según la máquina o el control, pero hay varios que aparecen constantemente.
M03 suele arrancar el husillo en sentido horario.
M04 suele arrancarlo en sentido antihorario.
M05 para el husillo.
M08 activa refrigerante.
M09 desactiva refrigerante.
M00 puede hacer una parada programada.
M01 suele ser una parada opcional, si la máquina la tiene activada.
M30 termina el programa.
Un ejemplo muy real: si estás mecanizando aluminio y el refrigerante o aire no entra cuando toca, la viruta puede quedarse en la zona de corte. A veces el programa está bien en movimientos, pero falta una función auxiliar. Por eso los códigos M no son secundarios; también forman parte de que el trabajo salga bien.
No todos los controles son exactamente iguales
Aquí hay que tener cuidado. Muchos códigos son habituales, pero no conviene asumir que todos los controles funcionan igual al 100%.
Un Fanuc, un Heidenhain, un Siemens o un control de otra marca pueden tener diferencias en formato, ciclos, funciones y forma de escribir algunas instrucciones. Además, cada máquina puede estar configurada de una manera.
Por eso, cuando trabajas en una máquina real, lo correcto es mirar el manual del control, las normas del taller y los programas que ya se usan en esa máquina.
Esto es importante porque en internet se ven muchos ejemplos de G-code, pero no todos sirven tal cual para tu máquina. Copiar un programa sin entenderlo es mala idea. Puede parecer sencillo, pero una línea mal interpretada puede mover la herramienta donde no debe.
En taller, si una línea no se entiende, no se ejecuta “a ver qué pasa”. Se pregunta, se revisa o se simula.
Cómo revisar un programa antes de ejecutarlo
Antes de darle al ciclo, conviene leer el programa con una especie de checklist mental.
Primero mira si el programa usa el sistema de coordenadas correcto, por ejemplo G54. Después revisa si las RPM están definidas con S y si el husillo arranca con M03 o el código que corresponda.
Luego fíjate en los movimientos rápidos. Los G00 son útiles, pero cerca de la pieza hay que tener cuidado. Mira alturas de seguridad, bajadas en Z y cambios entre rápido y avance de corte.
También revisa el refrigerante si hace falta, el avance F, las profundidades en Z y el final del programa.
Un ejemplo típico: ves una bajada a Z-10 y antes de seguir piensas: “¿desde dónde está tomado el cero? ¿esa profundidad tiene sentido? ¿la herramienta llega bien? ¿hay altura segura antes de moverse?”. Esa forma de leer te evita muchos problemas.
No se trata de tener miedo a la máquina. Se trata de no confiar ciegamente en un programa solo porque carga sin errores.

Errores típicos al leer códigos G y M
Uno de los errores más habituales es pensar que si el programa no da alarma, está bien. No siempre. Puede no dar alarma y aun así tener una trayectoria peligrosa, un cero mal elegido o una función que falta.
Otro fallo es mirar solo las coordenadas y olvidarse del husillo o del refrigerante. Si la herramienta se mueve pero el husillo no arranca, el problema puede ser serio. Si no entra refrigerante donde hace falta, también puedes castigar la herramienta.
También pasa al revés: ver un M03 y no revisar la S. El husillo puede arrancar, sí, pero necesitas saber a cuántas RPM.
Y otro clásico es no revisar si el movimiento es G00 o G01. Un rápido mal colocado cerca de la pieza puede darte un susto. En programa se ve como una línea más, pero en máquina se nota mucho.
Conclusión
Los códigos G y M en CNC son parte básica para entender un programa. Los códigos G controlan movimientos y modos de mecanizado. Los códigos M controlan funciones de la máquina como husillo, refrigerante, paradas y final de programa.
Aprender esta diferencia ayuda mucho a leer programas con más seguridad. No hace falta memorizar todos los códigos desde el primer día, pero sí entender los más habituales y saber qué revisar antes de ejecutar.
En taller, un programa no se mira solo para ver si “parece bien”. Se revisa la lógica: unidades, cero, RPM, husillo, refrigerante, movimientos rápidos, avances, profundidades y final. Cuanto mejor entiendas esa secuencia, menos dependes de probar a ciegas y más control tienes sobre el mecanizado.
