Dominando la Programación CNC: Fundamentos Esenciales de G-Code y M-Code
El acrónimo CNC (Computer Numerical Control) en "máquina CNC" significa Control Numérico por Computadora. Cuando pensamos en mecanizado CNC, imaginamos la máquina-herramienta, pero hoy "máquina CNC" es un término más amplio: robots industriales y máquinas de medición controladas por computadora también son máquinas CNC.
En 1952, por la necesidad de mecanizado preciso en aviación, John T. Parsons, junto con IBM y el MIT, desarrolló la primera fresadora CNC. Desde entonces, la producción industrial inteligente se generalizó y el mecanizado CNC llegó a todas las industrias, junto con el auge de los lenguajes de programación CNC: G-code y M-code.
¿Qué son el G-Code y el M-Code?
En los 70 años de historia del CNC, se han usado varios lenguajes, no solo G y M. Inicialmente, la máquina de Parsons se programaba con cintas perforadas; en 1956 surgió el lenguaje APT (Automatically Programmed Tools) para CNC.
El RS-274 (G-code), del que trata este artículo, se creó en la misma década. El G-code deriva del APT, que contenía datos de geometría/ubicación de herramienta y funciones no geométricas (velocidad husillo, refrigeración, etc.). El RS-274 (funciones G y M) hereda los fundamentos de APT con modificaciones que acortan y simplifican los programas para la unidad de control (MCU).
| APT | G y M codes |
| GO TO {X, Y, Z} | G1, G2, G3 {X, Y, Z} |
| FEDRAT | F |
| SPINDLE CW / CCW | S M3 / M4 |
| COOLNT ON / OFF | M8 M9 |
| FINI | M30 |
El RS-274 se llama a menudo "G-code" porque consiste principalmente en funciones G, pero contiene igualmente importantes funciones M. Es necesario definir claramente:
- ¿Qué son los códigos G?
- ¿Qué son los códigos M?
- ¿Cuáles son las diferencias entre G-code y M-code?
El G-code (funciones G), a diferencia del M-code, se relaciona principalmente con la definición de geometría. La "G" significa "Geometry". Incluyen: selección de sistema de coordenadas, plano de trabajo, unidades de programación, modo de programación (absoluto/incremental), movimiento de herramienta en rápido y en trabajo, etc.
Los M-codes (funciones M) se refieren a funciones de operación de la máquina. La "M" significa "Machine". En programación CNC típicas incluyen: encendido/apagado del husillo principal, refrigeración on/off, cambio automático de herramienta, etc.
Diferencias entre G-Code y M-Code
Los G-codes definen estrictamente la geometría del proceso de mecanizado; los M-codes, funciones individuales de la máquina. Se puede decir que los G-codes muestran "cómo se mueve la herramienta respecto a la pieza" y los M-codes "qué hace la máquina durante el mecanizado".
Además de las principales funciones G y M en RS-274, existen numerosas funciones auxiliares:
- X, Y, Z – coordenadas de punto de posicionamiento
- I, J, K – coordenadas de la distancia entre punto inicial y centro de círculo ("CC" en ejemplos)
- F – velocidad de interpolación (avance)
- S – velocidad de husillo
- T – número de herramienta
- H – número de compensación de altura de herramienta
- D – número de compensación de radio de herramienta
Lista de Códigos G Básicos
| Función Principal | Descripción | Funciones Auxiliares |
| G0 | Posicionamiento rápido (lineal) | X, Y, Z |
| G1 | Interpolación lineal | X, Y, Z, F |
| G2 | Interpolación circular en sentido horario | X, Y, Z, I, J, K, F |
| G3 | Interpolación circular antihorario | X, Y, Z, I, J, K, F |
EJEMPLO 1:
G1 X10 Y50 F100 → La herramienta va linealmente al punto (X=10 mm, Y=50 mm) a 100 mm/s.
G2 X10 Y50 I10 J40 F100 → Circular horario al punto (X=10, Y=50) a 100 mm/s; centro del círculo relativo al inicio: +10 mm en X, +40 mm en Y.
G02 X50 Y10 I40 J-10 F75 → Circular horario al punto (X=50, Y=10) a 75 mm/s; centro relativo: +40 mm en X, -10 mm en Y.
| Función Principal | Descripción | Funciones Auxiliares |
| G17 | Seleccionar plano XY | / |
| G18 | Seleccionar plano ZX | / |
| G19 | Seleccionar plano YZ | / |
| G20 | Unidades: pulgadas (inch) | / |
| G21 | Unidades: milímetros (mm) | / |
| G41 | Compensación radio herramienta – izquierda | D, X, Y, Z |
| G42 | Compensación radio herramienta – derecha | D, X, Y, Z |
| G40 | Compensación radio herramienta – off | / |
| G43 | Compensación offset altura herramienta | H, Z |
| G49 | Compensación offset altura herramienta – off | / |
| G54 | Sistema coordenadas máquina | / |
| G55–G59 | Sistemas coordenadas de trabajo (WCS) | / |
EJEMPLO 2:
G21 G17 G55 → Unidades mm; plano XY; sistema WCS G55.
G43 H1 Z100 → Compensación altura herramienta H1 (valor guardado en memoria CNC) y mover a Z=100 mm.
G41 D1 X15 → Compensación radio izquierda D1 (valor guardado) y mover a X=15 mm; la herramienta se desplaza lentamente a la izquierda completando la compensación al llegar.
G40 G49 → Cancelar compensación radio; cancelar compensación altura.
| Función Principal | Descripción | Funciones Auxiliares |
| G90 | Programación absoluta: coordenadas relativas al WCS | / |
| G91 | Programación incremental: coordenadas relativas a posición actual | / |
Lista de Códigos M Básicos
| Función Principal | Descripción | Funciones Auxiliares |
| M00 | Parada de programa | / |
| M03 | Husillo ON (horario) | S |
| M04 | Husillo ON (antihorario) | S |
| M05 | Husillo OFF | / |
| M06 | Cambio automático de herramienta | T |
| M08 | Refrigerante ON | / |
| M09 | Refrigerante OFF | / |
| M30 | Fin de programa | / |
| M98 | Llamada a subprograma | "Nombre subprograma" |
| M99 | Retorno de subprograma | / |
Cómo Programar una Máquina CNC
La programación CNC es la formateación de datos alfanuméricos (códigos G y M) sobre geometría y tecnología de las piezas a mecanizar, más otra programación que suelen realizar los fabricantes de máquinas.
La programación con G-code es mayormente basada en sentencias (bloques), como se vio en los ejemplos. Existen varios métodos para generar códigos G y M:
- Programación manual
- Programación en la máquina (en operación)
- Programación con sistemas CAD/CAM
Programación Manual
El programador, basándose en su conocimiento, experiencia e información disponible (máquinas, herramientas, accesorios, modos de corte, instrucciones de programación), escribe manualmente la información geométrica y tecnológica para completar el programa alfanumérico. Actividades básicas:
- Definir planes de mecanizado, referencia y utillaje
- Traducir información geométrica del plano de taller para planificación de trayectorias
- Seleccionar herramientas y ordenarlas en bloques según orden de mecanizado
- Escribir y completar programas en hoja de programa (G-code)
- Transferir información de la hoja a la memoria de la unidad de control
Programación en Operación (en la máquina)
Para mejorar la programación CNC y llevarla a la propia máquina, algunos fabricantes ofrecen unidades de control que soportan programación directa en la máquina. Aunque desde el inicio existía el modo MDI (Manual Data Input), la "programación en operación" es un método totalmente nuevo.
La unidad de control integra funciones adicionales que evitan la programación clásica con G-code. Se reduce a un diálogo interactivo operador-unidad de control (teclado + interfaz gráfica), generando contornos simples y ciclos predefinidos. La unidad calcula trayectorias y genera automáticamente el G-code.
Programación con Sistemas CAD/CAM
La geometría de piezas en aeronáutica, militar, etc., es muy compleja (superficies de segundo orden) y requiere mecanizado multieje (3, 4, 5 ejes). Los programas complejos requieren miles de bloques; su escritura manual es dura y lenta. Por eso se usan computadoras para la preparación tecnológica (programación CNC basada en G/M-code).
La programación CAD/CAM es programación CNC asistida por computadora. La integración CAD-CAM ha mejorado la programación NC, simplificándola. El programador no define geometría (lo hace el software CAD/CAM); su labor es añadir información técnica (agarre, referencia, sujeción, herramientas, modos de corte) mediante interacción activa. Existe integración con CAPP (Planificación de Procesos Asistida por Computadora).
Procedimiento en entorno CAD/CAM:
- Modelado de modelos CAD
- Planificación de mecanizado con estrategias CAM, cálculo de trayectorias y obtención de archivo CL (Cutter Location)
- Simulación de trayectorias y desbaste para verificación y detección de errores/colisiones
- Post-procesado del archivo CL y obtención del G-code usando postprocesador para la máquina seleccionada
- Transferencia del G-code a la unidad de control. Preparación de herramientas y piezas. Referenciado de la pieza en la máquina
- Verificación de condiciones y modos de corte, velocidades y aceleraciones (afectan calidad)
- Mecanizado de la pieza en la máquina
Aunque hoy existen métodos que no requieren conocer G y M (programación en operación, CAD/CAM), un programador debe conocerlos, porque situaciones especiales exigirán programación manual. Lo positivo es que el lenguaje G y M es universal: sabiéndolo, se pueden programar todas las máquinas CNC, con mínimas diferencias de sintaxis que se dominan rápido si se conocen los fundamentos.
¿Preocupado por encontrar un programador CNC profesional para su diseño? No se preocupe: WayKen es fabricante con más de 20 años de experiencia en mecanizado CNC, tecnología avanzada e ingenieros CNC experimentados, listos para satisfacer sus necesidades de diseño de producto. ¡Obtenga una cotización instantánea hoy!