Programación de Torno CNC: G-code Básico para Fanuc y Siemens
La programación en G-code es la base del mecanizado CNC. Aunque hoy los softwares CAM generan el código automáticamente, entender el G-code te permite corregir programas en máquina, optimizar ciclos y resolver problemas sin depender del ordenador. Esta guía explica los códigos G y M más usados en tornos CNC Fanuc y Siemens, con ejemplos prácticos de programas reales.
Estructura de un programa CNC
Un programa de torno CNC en G-code tiene siempre la misma estructura básica:
- Número de programa — identifica el programa en la memoria del control (ej. O0001 en Fanuc)
- Bloque de inicio — selección de herramienta, activación del refrigerante, definición del punto de referencia
- Bloques de mecanizado — secuencia de movimientos y operaciones que definen la pieza
- Bloque de fin — retorno al punto de cambio, parada del husillo, fin de programa
Cada línea del programa se llama bloque y contiene uno o varios códigos con sus valores. Un bloque típico tiene: número de bloque (N), código de movimiento (G), coordenadas (X, Z), velocidad de avance (F) y velocidad de husillo (S).
N100 G01 X40.0 Z-50.0 F0.25 S1200 M03
N100 = nº bloque · G01 = movimiento lineal · X40 Z-50 = coordenadas destino · F0.25 = avance 0,25mm/rev · S1200 = 1200 RPM · M03 = husillo en marcha sentido horario
Sistema de ejes en el torno CNC
En el torno CNC solo hay dos ejes lineales:
- Eje Z — paralelo al eje de rotación del husillo. Movimiento positivo (+Z) aleja la herramienta del plato; negativo (-Z) la acerca.
- Eje X — perpendicular al eje de rotación. Positivo (+X) aleja la herramienta del eje de la pieza; negativo (-X) la acerca. En el torno, el valor X es siempre el diámetro de la pieza (no el radio), por convención.
Códigos G más usados en torno CNC
| Código | Función | Ejemplo |
|---|---|---|
| G00 | Movimiento rápido (posicionamiento) | G00 X100 Z5 |
| G01 | Interpolación lineal (mecanizado) | G01 X40 Z-80 F0.3 |
| G02 | Interpolación circular sentido horario | G02 X50 Z-30 R10 |
| G03 | Interpolación circular antihorario | G03 X50 Z-30 R10 |
| G04 | Pausa (tiempo en segundos) | G04 X2.0 |
| G21 | Programación en milímetros | G21 |
| G28 | Retorno al punto de referencia | G28 U0 W0 |
| G40 | Cancelar compensación radio herramienta | G40 |
| G41/G42 | Compensación radio herramienta izq/dcha | G42 |
| G50 | Velocidad máxima de husillo (límite) | G50 S3000 |
| G70 | Ciclo de acabado (Fanuc) | G70 P100 Q200 |
| G71 | Ciclo de desbaste longitudinal (Fanuc) | G71 U2.0 R0.5 |
| G76 | Ciclo de roscado (Fanuc) | G76 P010060 Q50 R0.05 |
| G96 | Velocidad de corte constante (m/min) | G96 S200 |
| G97 | Velocidad de husillo constante (RPM) | G97 S1500 |
Códigos M más usados
| Código | Función |
|---|---|
| M00 | Parada de programa (requiere confirmación del operario) |
| M01 | Parada opcional (solo si está activada en el panel) |
| M02 / M30 | Fin de programa (M30 rebobina al inicio) |
| M03 | Husillo en marcha sentido horario (normal para exterior) |
| M04 | Husillo en marcha sentido antihorario |
| M05 | Parada del husillo |
| M06 | Cambio de herramienta (en centros de mecanizado) |
| M08 | Refrigerante activado |
| M09 | Refrigerante desactivado |
| M41/M42 | Selección de rango de velocidades bajo/alto |
Ciclos fijos de torneado (Fanuc)
Los ciclos fijos son las herramientas más potentes de la programación en torno CNC. En lugar de programar bloque a bloque cada pasada de desbaste, un ciclo fijo hace el cálculo automáticamente:
- G71 — Ciclo de desbaste longitudinal: define el perfil final de la pieza y el ciclo realiza automáticamente todas las pasadas de desbaste necesarias hasta dejar el stock de acabado programado. Ahorra decenas de bloques de programación.
- G70 — Ciclo de acabado: ejecuta el perfil final definido en G71 en una sola pasada de acabado con los parámetros de avance y velocidad de acabado.
- G75 — Ciclo de ranurado: para ranuras transversales. Define el ancho, la profundidad y el avance de ranurado automáticamente.
- G76 — Ciclo de roscado: el más complejo. Define el perfil de rosca, el número de pasadas, el paso y la sobremedida de acabado. Ejecuta automáticamente todas las pasadas necesarias para conseguir la rosca completa.
Programa completo de ejemplo
Cilindrado exterior de un eje de Ø50mm a Ø40mm, longitud 60mm, en acero S235. Control Fanuc 0i:
G21 G97 G40 (milímetros, RPM constantes, cancelar compensación)
G28 U0 W0 (retorno referencia)
T0101 (herramienta 1, corrector 1)
G96 S180 M03 (Vc=180m/min, husillo en marcha)
G50 S3000 (límite máximo 3000 RPM)
G00 X55.0 Z2.0 (aproximación rápida)
G71 U1.5 R0.5 (desbaste: pasada 1,5mm, retroceso 0,5mm)
G71 P100 Q200 U0.3 W0.1 F0.25 (stock acabado X=0,3 Z=0,1)
N100 G00 X40.0 (inicio perfil acabado)
G01 Z-60.0 F0.15 (cilindrado a Ø40 longitud 60mm)
N200 G00 X55.0 (fin perfil)
G70 P100 Q200 (pasada de acabado)
G00 X100.0 Z50.0 (retirada)
M05 (parada husillo)
M30 (fin programa)
¿Buscas un torno CNC para tu taller?
Disponemos de tornos CNC Fanuc y Siemens nuevos y de ocasión. Asesoramiento técnico incluido.
Diferencias principales Fanuc vs Siemens Sinumerik
| Aspecto | Fanuc | Siemens Sinumerik |
|---|---|---|
| Fin de programa | M30 | M30 o M02 |
| Ciclo desbaste | G71 | CYCLE95 |
| Ciclo roscado | G76 | CYCLE97 |
| Velocidad corte constante | G96 | G96 (igual) |
| Subprogramas | M98 / M99 | L… / RET |
| Variables | #1 — #999 | R0 — R299 |
| Curva de aprendizaje | Estándar | Algo más compleja en ciclos |
Conclusión
Entender el G-code de torno CNC — aunque uses CAM para generar el código — te da autonomía total en la máquina: puedes corregir un error de programación directamente en el control, optimizar un ciclo sin volver al ordenador y resolver problemas en producción sin depender del programador.
Los códigos G00, G01, G71, G70 y G76 cubren el 90% de los programas de torneado habituales. Domínalos y tendrás base suficiente para programar cualquier pieza de complejidad media directamente en el control.