Skip to main content
CNC.wikiCNC.wiki

G90 y G91: Guía Completa de Programación Absoluta e Incremental en CNC

Domine los códigos G90 y G91 en controles Fanuc, Siemens y Mitsubishi. Evite colisiones catastróficas y optimice el tiempo de ciclo en su CNC.

Hakan Gündoğdu
Hakan Gündoğdu

Cofundador de CNC CARE

Introducción

Una fresa de planear de metal duro se estrella a toda velocidad de avance rápido contra una mordaza de sujeción (vise jaw) de acero templado, fracturando el husillo (spindle) y proyectando metralla metálica por toda la cabina. Este tipo de colisión mecánica severa, que genera costosos tiempos de inactividad no planificados (tiempo de inactividad) y miles de dólares en piezas rechazadas (scrap), casi nunca se debe a un fallo mecánico; es la consecuencia directa de un simple error en el cambio del estado modal de coordenadas. Cuando el intérprete del CNC confunde una coordenada absoluta (G90) con un movimiento incremental (G91), o viceversa, la herramienta pierde su referencia matemática respecto al cero pieza activo. Validar el parámetro adecuado antes de la producción elimina la causa más frecuente de parada no planificada en este comando. En entornos de mecanizado de alta precisión, la gestión rigurosa de las coordenadas absolutas (G90) e incrementales (G91) es fundamental para proteger el husillo, evitar colisiones y mantener el tiempo de ciclo bajo un estricto control operativo. Si no se verifica este parámetro antes de producción, la desviación dimensional se acumula ciclo a ciclo y solo se detecta en la inspección final como pieza rechazada.

El posicionamiento absoluto (G90) y el posicionamiento incremental (G91) actúan como filtros de traducción de coordenadas para todos los comandos de movimiento automatizados. Mientras que G90 vincula la trayectoria de la herramienta a un único origen de coordenadas invariable, G91 desplaza la referencia de coordenadas dinámicamente con cada línea, interpretando los destinos como desplazamientos de distancia relativos a la ubicación activa de la herramienta. Descuidar el estado modal de estos comandos, o configurar incorrectamente los parámetros de inicio del sistema que establecen sus valores predeterminados, puede hacer que la herramienta se desplace de forma impredecible. Esta guía lleva a cabo una investigación rigurosa de múltiples marcas en controles Fanuc, Siemens y Mitsubishi, detallando sus variantes de sintaxis, parámetros del sistema, códigos de alarma y reglas de aplicación concretas para garantizar una ejecución segura y libre de colisiones en el taller.

Resumen Técnico

Atributo TécnicoEspecificación y Restricciones
Códigos de ComandoG90 (Dimensionado Absoluto), G91 (Dimensionado Incremental)
Grupo de ModalidadGrupo 03 / Modal
Función PrimariaDetermina si los comandos de coordenadas representan posiciones relativas al cero pieza activo (G90) o distancias incrementales desde la posición actual de la herramienta (G91).
Marcas CompatiblesFanuc, Siemens, Mitsubishi
Parámetros de Arranque/ResetFanuc: Parameter 3402 bit 3; Siemens: MD20154 $MC_EXTERN_GCODE_RESET_VALUES[10]; Mitsubishi: Parameter #1073 I_Absm
Excepciones en Torno (Sistema A)Los tornos estándar con Sistema A utilizan direcciones de coordenadas paralelas (X/Z para absoluto, U/W para incremental) sin necesidad de alternar el estado modal G90/G91.
Restricciones de ProgramaciónEl estado modal activo modifica los resultados de compensación programable G10; Siemens no permite el uso simultáneo de modificadores conflictivos AC/IC en el mismo eje; Mitsubishi evalúa todos los centros de arco (I, J, K) y el radio (R) estrictamente como incrementales.

Lectura Rápida

  • Interpretación Principal: Alternar entre los modos absoluto (G90) e incremental (G91) dicta si las entradas de los ejes se trazan desde el origen de coordenadas activo o se evalúan como vectores de distancia relativos desde la posición actual de la herramienta.
  • Partición de Direcciones en Torno: El Sistema A de G-code estándar para tornos (Fanuc y Mitsubishi) elude por completo el uso de los códigos modales G90/G91, asignando X, Z, C para movimientos absolutos y U, W, H para pasos incrementales para prevenir errores de seguimiento.
  • Extensiones Inline de Siemens: Siemens permite ejecutar movimientos absolutos e incrementales simultáneos en un solo bloque utilizando los modificadores no modales AC(...) e IC(...) añadidos directamente a palabras de ejes específicas sin alterar el estado modal general.
  • Valores Predeterminados de Arranque: Los estados de inicio de la máquina están definidos por parámetros; Parameter 3402 bit 3 en Fanuc, MD20154 en Siemens y el parámetro #1073 en Mitsubishi determinan si el sistema se inicializa en modo absoluto (G90) o incremental (G91).
  • Peligro de Compensación G10: Ejecutar la entrada programable de datos (G10) en sistemas Fanuc bajo G90 sobrescribe por completo las compensaciones existentes, mientras que bajo G91 las modifica de manera aditiva, lo que hace obligatorio verificar el modo de coordenadas activo.
  • Restricciones de Centro de Arco: Mitsubishi ignora el estado modal G90 para interpolaciones circulares, evaluando los centros de arco (I, J, K) y el radio (R) estrictamente como dimensiones incrementales desde el punto de inicio.
  • Seguridad en Intervenciones Manuales: Las interrupciones manuales mediante manivela requieren extrema precaución; recuperar la trayectoria bajo G91 puede dar lugar a trayectorias inesperadas si los parámetros (como el Parameter 7001 de Fanuc) fuerzan vectores de desplazamiento distintos.

Conceptos Básicos

Tanto el comando G90 (absoluto) como el G91 (incremental) son G-codes modales pertenecientes al Grupo 3 que determinan si las dimensiones de destino de los ejes se evalúan en relación con el origen del sistema de coordenadas de la pieza activo (cero absoluto) o en relación con la ubicación física actual de la herramienta. Mientras que G90 permite un posicionamiento preciso respecto a un punto de referencia fijo, G91 se utiliza ampliamente para subprogramas, ciclos fijos o bucles de interpolación simples. En los centros de mecanizado, estos modos se alternan típicamente a través de los comandos estándar G90 y G91. En los tornos, la programación estándar puede utilizar letras de dirección de ejes directas (X/Z para absoluto, U/W para incremental) sin modificar los estados modales, aunque tanto Fanuc como Mitsubishi proporcionan parámetros de configuración para habilitar el cambio modal G90/G91 al estilo de fresado en sus sistemas de torno. Los programadores y operadores deben mantener una conciencia constante del modo de coordenadas activo durante intervenciones manuales a mitad de ciclo y operaciones de preparación para evitar errores posicionales catastróficos, piezas de trabajo arruinadas o colisiones severas del husillo.

La elección entre programación absoluta e incremental representa una decisión estratégica crítica durante la definición de la trayectoria de la pieza y la programación de CNC. Las coordenadas absolutas permiten a los programadores establecer un vínculo directo e invariable con el plano de diseño, asegurando que si se ordena una coordenada específica, la herramienta regresará a esa coordenada física exacta sin importar dónde comenzó el ciclo. Por el contrario, la programación incremental define las trayectorias de los ejes como saltos discretos desde la ubicación actual de la herramienta, lo que la hace ideal para patrones geométricos repetitivos (como matrices de agujeros o fresado de roscas), ya que el subprograma se puede repetir en cualquier lugar de la pieza simplemente desplazando la posición de inicio. Sin embargo, esta flexibilidad introduce un alto riesgo: un solo olvido al cambiar de regreso a G90 hará que las posiciones absolutas posteriores se lean como saltos de distancia relativos, acumulando los movimientos de los ejes hasta que el eje alcance su límite de software o colisione con obstáculos. Los programadores deben tener precaución al cambiar los modos de dimensionado mientras la compensación de herramienta está activa. Alternar G90/G91 durante la activación de la compensación de radio de fresa y punta de herramienta (G40, G41, G42) puede generar desviaciones inesperadas en la trayectoria de la herramienta, provocando la rotura de herramientas o piezas rechazadas.

Estructura de Comandos

En la programación estándar de CNC, los bloques de comando se ejecutan secuencialmente por el intérprete. Cuando se lee un comando de coordenada modal como G90 o G91, este cambia el modo de cálculo interno del generador de trayectoria del controlador. Una vez que se programa G90, este permanece activo para todos los bloques de movimiento posteriores hasta que se comande explícitamente un G91, y viceversa. Es vital notar que estos comandos no causan movimiento de ejes por sí mismos; en su lugar, actúan como filtros matemáticos que dictan cómo las palabras de coordenadas posteriores (como X, Y, Z, A, B, C) se decodifican en rotaciones del servomotor.

Al diseñar un programa de CNC, la integración de estas coordenadas requiere un formato de sintaxis estricto para asegurar que el parser del control lea los bloques correctamente. El espaciado, el uso de decimales y la presencia de direcciones duplicadas en el mismo bloque se evalúan de manera diferente según la marca. Por ejemplo, los centros de mecanizado generalmente permiten especificar G90 y G91 múltiples veces o junto con otros G-codes, mientras que los sistemas de torno pueden activar códigos de alarma si los parámetros absolutos e incrementales se combinan de forma conflictiva para el mismo eje. A continuación se presenta un desglose estructurado de los formatos de sintaxis y la configuración de parámetros que rigen estos cambios de coordenadas.

Formatos de Sintaxis y Direccionamiento

  • Fanuc:
    • Centros de Mecanizado: G90 X[coordenada] Y[coordenada] Z[coordenada] ; (Absoluto) o G91 X[distancia] Y[distancia] Z[distancia] ; (Incremental).
    • Tornos (G-code Sistema A): Utiliza letras de ejes paralelas sin G90/G91: X_ Z_ C_ ; para posicionamiento absoluto y U_ W_ H_ ; para posicionamiento incremental.
  • Siemens:
    • Alternancia Modal: G90 (estado modal absoluto) o G91 (estado modal incremental).
    • Modificadores no modales en línea: <eje>=AC(<valor>) fuerza el dimensionado absoluto para esa palabra de eje en el bloque, mientras que <eje>=IC(<valor>) fuerza el incremental.
    • Trayectoria más corta/dirección en ejes rotativos (solo ejes rotativos): <eje>=DC(<valor>) (absoluto por trayectoria más corta/directa), <eje>=ACP(<valor>) (absoluto positivo) o <eje>=ACN(<valor>) (absoluto negative).
  • Mitsubishi:
    • Centros de Mecanizado: G90 X_ Y_ Z_ ; (Absoluto) o G91 X_ Y_ Z_ ; (Incremental).
    • Tornos: X_ Z_ ; (Absoluto) y U_ W_ ; (Incremental) por defecto bajo Lathe Sistema A, o bien G190 X_ Z_ ; / G191 X_ Z_ ; (listas de G-code 6 y 7).

Parámetros de Configuración del Sistema

MarcaParámetroFunción y Rango de Valores
FanucParameter 3402 Bit 3 (G91)Controla el estado predeterminado de Group 3 de G-codes modales en el arranque o reset. 0 = Predeterminado a absoluto (G90); 1 = Predeterminado a incremental (G91).
Parameter 3401 Bit 4 (MAB) & Bit 5 (ABS)Controla el comportamiento de las coordenadas en el panel de Entrada Manual de Datos (MDI). Si MAB=1, ABS=0 fuerza todo MDI a incremental, y ABS=1 fuerza MDI a absoluto. Si MAB=0, MDI sigue el modo activo G90/G91 del programa.
Parameter 7001 Bit 1 (ABS)Determina el comportamiento de recuperación de trayectoria después de una intervención manual con absolute manual activo. 0 = Recorre trayectorias diferentes en G90 y G91; 1 = Fuerza la misma trayectoria absoluta en ambos modos.
Parameter 5500 Bit 4 (G90)Determina el movimiento del eje para tablas de indexación. 0 = Evalúa según el modo activo G90/G91; 1 = El eje de indexación queda fijado permanentemente a comandos absolutos.
SiemensMD20154 $MC_EXTERN_GCODE_RESET_VALUES[10]Define el estado inicial de G-code Group 3 al arrancar el sistema o resetear el canal. Configurado directamente como G90 o G91.
SD42440 $SC_FRAME_OFFSET_INCR_PROGRige el desplazamiento de decalaje de coordenadas de trabajo activo durante el dimensionado incremental G91. 0 = Solo se recorre la trayectoria programada; 1 = Los decalajes de trabajo se recorren aditivamente en movimientos incrementales.
SD42442 $SC_TOOL_OFFSET_INCR_PROGDetermina el desplazamiento de la compensación de longitud de herramienta (G43, G44, G49) durante un movimiento de eje incremental. 0 = Las compensaciones no se recorren concurrentemente; 1 = Los cambios en la compensación de longitud se recorren concurrentemente con G91.
MD30455 $MA_MISC_FUNCTION_MASK (Bit 2)Configura el comportamiento exacto de posicionamiento absoluto G90 al ejecutar movimientos en ejes rotativos de modulo 360 grados.
MitsubishiParameter #1073 I_AbsmEstablece el modo de coordenadas predeterminado al encender la máquina o reiniciar el sistema. 0 = Por defecto a incremental (G91); 1 = Por defecto a absoluto (G90).
Parameter #1076 AbsIncConfigura la selección de eje absoluto/incremental para sistemas de torno. 0 = Alterna mediante códigos modales G90/G91; 1 = Alterna mediante direcciones de eje distintas (X/Z absoluto vs. U/W incremental).
Parameter #1126 PB_G90Parámetro de Playback G90. Determina cómo se guardan los desplazamientos de avance manual (jog) durante la Edición Playback. 0 = Se registran como valores incrementales; 1 = Se registran como valores absolutos.

Aplicaciones de Marca

Fanuc

Dentro del ecosistema Fanuc, la programación absoluta e incremental está regida por parámetros que permiten una profunda personalización del sistema para prevenir errores de los operadores. Una característica clave es la bifurcación nativa de la lógica de entrada de coordenadas entre los centros de mecanizado (serie M) y los tornos (serie T). Para los centros de mecanizado de la serie M, G90 y G91 son alternancias modales que cambian la forma en que el controlador decodifica las palabras de coordenadas. Sin embargo, los tornos de la serie T bajo el G-code Sistema A eluden por completo el seguimiento modal al emparejar explícitamente los ejes físicos con letras de dirección distintas para absoluto (X, Z, C) e incremental (U, W, H) dentro del mismo bloque. Esto elimina el riesgo de que un estado incremental activo cause un salto inesperado de la herramienta durante las operaciones posteriores. Si un torno se cambia a los sistemas B o C de G-code mediante parámetros de configuración, se comporta como una fresadora y depende de los comandos modales G90/G91 en su lugar.

Fanuc también permite a los fabricantes de máquinas aislar completamente la lógica de coordenadas del panel de Entrada Manual de Datos (MDI) con respecto al estado modal del programa activo. Al configurar el Parameter 3401 bit 4 (MAB) y bit 5 (ABS), el controlador puede forzar que todas las ejecuciones MDI sean estrictamente absolutas o incrementales, independientemente de si el programa automático se pausó en G90 o G91. Además, el Parameter 7001 bit 1 (ABS) controla el comportamiento de recuperación de trayectoria después de que un operador realiza una intervención manual mediante manivela (alejando la herramienta para inspeccionar una pieza). Si ABS se establece en 0, el CNC puede reconstruir trayectorias diferentes para los modos G90 y G91 al reanudar la ejecución automática, mientras que establecer ABS en 1 fuerza al control a seguir la misma trayectoria absoluta, protegiendo a la máquina de colisionar con piezas de trabajo o bridas de sujeción durante los retornos a mitad de ciclo. Para mesas giratorias, el Parameter 5500 bit 4 (G90) puede bloquear el eje de indexación para interpretar los comandos como estrictamente absolutos, ignorando por completo los modos G91.

Siemens

Los controles Siemens gestionan el dimensionado de coordenadas utilizando una arquitectura avanzada de extensión de direcciones no modales integrada directamente en el código base. En el modo nativo de Siemens (G290) y en ISO Dialect B/C (G291), los comandos estándar G90 y G91 alternan el estado de coordenada modal. En el legado ISO Dialect Sistema A, el comando G91 no está disponible y los programadores deben utilizar las letras de ejes paralelas U, V, W y H para pasos incrementales. Sin embargo, lo que distingue a Siemens son sus modificadores de dirección en línea sumamente singulares. Al añadir AC(...) (Coordenada Absoluta) o IC(...) (Coordenada Incremental) directamente a una palabra de eje, los programadores pueden comandar que un eje se mueva a una coordenada absoluta estricta mientras otro realiza un desplazamiento relativo de forma simultánea dentro del mismo bloque (por ejemplo, X=AC(100.0) Z=IC(-5.0)). Esto elimina la necesidad de alternar los modos G90 y G91 de un bloque a otro, simplificando las transiciones complejas de trayectorias de herramientas.

Siemens también cuenta con un marco especializado para el dimensionado de ejes rotativos y husillos. Independientemente del modo G90/G91 activo, los operadores pueden programar coordenadas de destino de husillo o eje rotativo utilizando DC(...) (aproximación directa, tomando la trayectoria más corta a un ángulo), ACP(...) (dirección absoluta positiva, girando en sentido horario hacia el objetivo) o ACN(...) (dirección absoluta negativa, girando en sentido antihorario hacia el objetivo). Internamente, Siemens coordina la programación incremental con los frames activos. El parámetro de datos de máquina SD42440 $SC_FRAME_OFFSET_INCR_PROG controla si los decalajes de cero activos se evalúan y recorren aditivamente durante un movimiento incremental G91, y SD42442 $SC_TOOL_OFFSET_INCR_PROG determina si los cambios en la compensación de longitud de herramienta se recorren de forma concurrente durante los movimientos G91, porporcionando a los desarrolladores una amplia personalización cinemática en segundo plano.

Mitsubishi

Los controles CNC Mitsubishi ofrecen un direccionamiento de coordenadas fluido, caracterizado por la capacidad única de procesar múltiples modos G90 y G91 dentro del mismo bloque (por ejemplo, G90 X300. G91 Y100. ;). Esto permite a los programadores conducir simultáneamente un eje a una coordenada absoluta mientras desplazan otro en una distancia relativa sin necesidad de escribir líneas separadas. Los sistemas estándar de fresado utilizan los comandos modales G90 y G91, mientras que los tornos utilizan direcciones alfabéticas distintas (X/Z para absoluto, U/W para incremental) por defecto. Sin embargo, Mitsubishi proporciona el parámetro #1076 AbsInc para desacoplar esta restricción de dirección de torno; establecer #1076 en 0 permite que los controles de torno estándar alternen las coordenadas a través de los códigos modales G90/G91. En las configuraciones de torno que ejecutan las listas de G-code 6 o 7, los comandos G190 y G191 reemplazan a G90/G91, y el uso de los códigos estándar G90/G91 en estas listas activará una alarma de error de programa P34.

Otra característica destacable de Mitsubishi es el parámetro #1126 PB_G90 (Playback G90). Este parámetro determina cómo se registran las coordenadas de los ejes tras los desplazamientos manuales (jog) durante la Edición Playback. Si se establece en 1, los movimientos de jogging se registran como coordenadas absolutas; si se establece en 0, se registran como distancias incrementales, acelerando los ciclos manuales de autoaprendizaje en el taller. A pesar de esta versatilidad, Mitsubishi elude el uso de G90 absoluto para la interpolación circular: todos los centros de arco (I, J, K) y los radios de arco (R) se evalúan como valores estrictamente incrementales desde el punto de inicio del arco, incluso si el modo absoluto G90 está activo. Intentar programar coordenadas absolutas para los centros de arco distorsionará la trayectoria de la herramienta y arruinará la pieza. Además, al utilizar ciclos avanzados como G54.4 (Compensación de Errores de Instalación de la Pieza de Trabajo), los operadores deben programar inmediatamente un comando absoluto G90 en el primer bloque de movimiento; un comando incremental G91 emitido inmediatamente después de G54.4 hace que la máquina se sumerja en relación con la ubicación física no compensada, provocando colisiones de herramientas.

Comparación de Marcas

CaracterísticaFanucSiemensMitsubishi
Sintaxis y Alternancia de CoordenadasCódigos modales G90/G91 en la serie M. El torno serie T utiliza direcciones absolutas (X/Z/C) e incrementales (U/W/H).Códigos modales G90/G91 en los modos nativo/ISO. Soporta las extensiones no modales en línea AC(...), IC(...), DC(...), ACP(...) y ACN(...).Códigos modales G90/G91 en la serie M. Los tornos utilizan códigos de dirección (X/Z vs. U/W) o comandos modales G90/G91 mediante el parámetro #1076. Las listas 6/7 de G-code de torno utilizan G190/G191.
Bloques Mixtos (ABS e INC en el Mismo Bloque)No soportado en centros de mecanizado. Soportado en tornos mediante letras de dirección X/Z y U/W distintas.Soportado nativamente mediante modificadores no modales en línea AC(...) / IC(...) en ejes específicos.Soportado nativamente al permitir múltiples definiciones de coordenadas modales G90 y G91 en un solo bloque.
Interpretación de Radio y Centro de ArcoInterpretado basándose en el modo activo G90/G91 o en la configuración del sistema.Interpretado según el estilo de programación; soporta modificadores en línea AC e IC para los centros de arco.Evaluado estrictamente como valores incrementales (I, J, K, R), sin importar si G90 está activo.
Posicionamiento de Eje Rotativo y HusilloBasado en el modo G90/G91 modal, o bloqueado permanentemente a absoluto mediante el Parameter 5500 bit 4.Soportados nativamente los modos absoluto por trayectoria más corta (DC), absoluto positivo (ACP) y absoluto negativo (ACN).Los movimientos G90 en los ejes de indexación deben alinearse con el parámetro predefinido de incremento de indexación para evitar alarmas.
Registro de Jog en Playback— (no hay origen)— (no hay origen)Configurable mediante el parámetro #1126 (0 = registrado como incremental, 1 = registrado como absoluto).
Bloqueo de Coordenadas en Modo MDISoportado mediante el Parameter 3401 (bits MAB/ABS) para forzar que el MDI se ejecute como coordenadas absolutas o incrementales.— (no hay origen)— (no hay origen)

Análisis Técnico

Una evaluación analítica de los controladores Fanuc, Siemens y Mitsubishi revela filosofías arquitectónicas divergentes en la gestión de coordenadas. Fanuc pone énfasis en márgenes de seguridad robustos y aislamiento físico. Al bloquear el G-code Sistema A de torno a letras de dirección distintas (X/Z/C vs. U/W/H) y permitir las anulaciones del panel MDI a través del Parameter 3401, Fanuc prioriza la prevención estructural de los errores del operador, asegurando que las entradas manuales y los programas activos permanezcan aislados matemáticamente. Por el contrario, Siemens ofrece una densidad de programación y una flexibilidad cinemática inigualables. Al incrustar los modificadores no modales (AC e IC) directamente en el intérprete base, Siemens elimina la necesidad de alternar entre los modos G90 y G91, permitiendo a los programadores ejecutar transiciones espaciales complejas (como entradas en rampa) en una sola línea compacta de código. Además, el posicionamiento exclusivo de husillos y ejes rotativos modulo de Siemens (a través de DC, ACP, ACN) proporciona un profundo control cinemático sin alterar el estado de coordenadas del programa principal.

Mitsubishi ocupa un terreno intermedio sumamente versátil, fusionando la sintaxis absoluta/incremental tanto de Fanuc como de Siemens al tiempo que ofrece sus propias soluciones fluidas. Mitsubishi es único al permitir múltiples definiciones modales dentro del mismo bloque (por ejemplo, G90 X... G91 Y...), igualando la capacidad de coordenadas mixtas de Siemens pero utilizando G-codes estándar en lugar de funciones en línea. Sin embargo, Mitsubishi impone restricciones matemáticas estrictas, como evaluar las dimensiones de centro de arco (I, J, K) y el radio de arco (R) como permanentemente incrementales. Esta es una diferencia crucial con respecto a Fanuc y Siemens, donde la interpolación del centro del arco puede seguir el modo de coordenada absoluta activo dependiendo de los parámetros. Mitsubishi también incorpora herramientas especializadas para el taller como el parámetro #1126, que determina cómo se guardan los movimientos de jogging manual durante la edición conversacional por playback, porporcionando un alto grado de adaptabilidad para las preparaciones manuales.

Ejemplos de Programas

Ejemplo de Programación en Fanuc

O1001 (FANUC MILLING DEMO) ;
G90 G54 G00 X0. Y0. Z10. ; (Posicionamiento absoluto relativo al cero pieza G54)
G43 H01 Z2. ; (Aplicar compensación de longitud de herramienta)
G01 Z-5. F200 ; (Penetración lineal en modo absoluto G90)
G91 X50. Y30. ; (Cambiar a incremental; se mueve X+50mm, Y+30mm desde la posición actual)
X20. ; (Paso incremental; se mueve otros X+20mm)
G90 X100. Y50. ; (Retornar a absoluto; la herramienta se mueve directamente a la coordenada X100.0, Y50.0)
G00 Z10. ; (Retraer la herramienta a Z10.0 en absoluto)
M30 ;

Análisis de la Trayectoria en Ejecución en Seco (dry run) de Fanuc

  • Bloque 2 (G90 G54 G00 X0. Y0. Z10.): El intérprete establece la programación absoluta. Los ejes se desplazan en rápido a las coordenadas X = 0.0, Y = 0.0, Z = 10.0, en relación con el cero de referencia del sistema de coordenadas de la pieza (G54) activo.
  • Bloque 3 (G43 H01 Z2.): Activa la compensación de longitud de herramienta (G43) utilizando el valor de decalaje guardado en el registro H01, posicionando la cara del husillo de forma segura en Z = 2.0.
  • Bloque 4 (G01 Z-5. F200): El husillo avanza linealmente hasta una profundidad de exactamente -5.0 mm bajo el cero pieza con una velocidad de avance de 200 mm/min.
  • Bloque 5 (G91 X50. Y30.): Alterna la interpretación de las coordenadas a incremental. La herramienta recorre X+50.0 mm e Y+30.0 mm desde su posición actual, alcanzando las coordenadas absolutas X = 50.0, Y = 30.0.
  • Bloque 6 (X20.): Continúa en el estado modal G91. La herramienta avanza otro paso de X+20.0 mm, llegando a las coordenadas absolutas X = 70.0, Y = 30.0.
  • Bloque 7 (G90 X100. Y50.): Alterna las coordenadas de regreso al modo absoluto G90. La herramienta se desplaza directamente a la coordenada física X = 100.0, Y = 50.0.
  • Bloque 8 (G00 Z10.): Se desplaza en rápido verticalmente hasta la coordenada Z = 10.0, librando la pieza de trabajo de forma segura.

Ejemplo de Programación en Siemens

N10 G290 (Cambiar al modo nativo de Siemens)
N20 G90 G00 G54 X0 Y0 Z10 T1 D1 S2500 M03 (Posicionamiento absoluto modal, activar cero pieza y decalajes de herramienta)
N30 G01 Z2 F500 (Avanzar a Z2 absoluto)
N40 X50 Y50 (Avance lineal a la coordenada X50, Y50)
N50 X=IC(30) Y=AC(80) (Mezclar absoluto e incremental en un solo bloque: X se mueve +30mm relativo, Y se mueve a absoluto 80mm)
N60 G91 X20 Y10 (Cambio modal a incremental: X se mueve +20mm, Y se mueve +10mm)
N70 G90 Z50 (Cambio modal a absoluto: Z se retrae a la coordenada absoluta de 50mm)
N80 M30

Análisis de la Trayectoria en Ejecución en Seco de Siemens

  • Bloque N20 (G90 G00 G54 X0 Y0 Z10): El intérprete activa el posicionamiento absoluto modal (G90) y selecciona el origen de la pieza utilizando el sistema de coordenadas de la pieza (G54). El husillo se desplaza en rápido a las posiciones de coordenadas X = 0.0, Y = 0.0, Z = 10.0.
  • Bloque N30 (G01 Z2 F500): El husillo avanza linealmente hasta la profundidad absoluta Z = 2.0 a 500 mm/min.
  • Bloque N40 (X50 Y50): La herramienta avanza hasta las coordenadas absolutas X = 50.0, Y = 50.0.
  • Bloque N50 (X=IC(30) Y=AC(80)): Un bloque de dimensionado mixto no modal. El eje X recorre una distancia incremental de +30.0 mm desde su posición actual, llegando a la coordenada absoluta X = 80.0. Simultáneamente, el eje Y se desplaza a la posición de coordenada absoluta Y = 80.0. El estado modal general G90 no se ve afectado.
  • Bloque N60 (G91 X20 Y10): El estado modal cambia a incremental G91. La herramienta recorre distancias relativas de X+20.0 mm e Y+10.0 mm, alcanzando las coordenadas absolutas X = 100.0, Y = 90.0.
  • Bloque N70 (G90 Z50): La interpretación de coordenadas regresa a absoluto modal G90. El eje Z se retrae directamente a la coordenada objetivo absoluta Z = 50.0.

Ejemplo de Programación en Mitsubishi

% (MITSUBISHI MIXED DEMO)
N10 G90 G00 G54 X0. Y0. Z20. S2000 M03 ; (Rápido absoluto al cero pieza G54)
N20 G01 Z2. F600 ; (Avanzar a Z2.0 absoluto)
N30 G90 X200. G91 Y50. ; (X absoluta e Y incremental simultáneas en el mismo bloque)
N40 X10. G90 Y150. ; (Resolución de conflicto de comandos: X es incremental 10mm, Y es absoluto 150mm)
N50 G90 G00 Z20. ; (Retracción absoluta a Z20.0)
N60 M30 ;
%

Análisis de la Trayectoria en Ejecución en Seco de Mitsubishi

  • Bloque N10 (G90 G00 G54 X0. Y0. Z20.): Activa el modo absoluto G90, posicionando la herramienta en relación con el cero de referencia del sistema de coordenadas de la pieza (G54). El husillo se desplaza en rápido a las posiciones de coordenadas X = 0.0, Y = 0.0, Z = 20.0.
  • Bloque N20 (G01 Z2. F600): El husillo avanza linealmente hasta la profundidad objetivo absoluta Z = 2.0 a 600 mm/min.
  • Bloque N30 (G90 X200. G91 Y50.): Procesa múltiples comandos de coordenadas. El eje X se desplaza directamente a la posición de coordenada absoluta X = 200.0. Concurrentemente, el eje Y recorre una distancia incremental de +50.0 mm en relación con su ubicación inicial (Y = 0.0), alcanzando la coordenada absoluta Y = 50.0.
  • Bloque N40 (X10. G90 Y150.): Como G91 fue el comando de cierre en el bloque N30, el estado modal activo es G91 incremental. El eje X recorre una distancia incremental de +10.0 mm (alcanzando X = 210.0). Al mismo tiempo, el comando en línea G90 fuerza al eje Y a desplazarse directamente a la posición de coordenada absoluta Y = 150.0.
  • Bloque N50 (G90 G00 Z20.): Reestablece el modo absoluto G90 modal. El husillo se desplaza en rápido verticalmente hasta la coordenada absoluta Z = 20.0.

Análisis de Errores

Marca y Código de AlarmaCondición de ActivaciónSíntoma del OperadorCausa Raíz / Solución
Fanuc: PS5074Se programan direcciones absolutas e incrementales duplicadas para el mismo eje dentro del mismo bloque de torno bajo G-code Sistema A (por ejemplo, programar X y U en la misma línea).Parada inmediata del ciclo; el control de la máquina muestra el mensaje de alarma 'ADDRESS DUPLICATION ERROR'.Programe los movimientos absolutos e incrementales en bloques separados. Asegúrese de que los programas de torno no mezclen caracteres de dirección (como X y U) en una misma línea de coordenadas.
Fanuc: PS1090 / SR1090Error de formato de programa donde el parámetro ESL está configurado en 0 y los bloques se comandan sin el espaciado o los puntos decimales adecuados.El intérprete deja de leer el programa NC y muestra 'PROGRAM FORMAT ERROR'.Corrija la sintaxis del formato añadiendo el espaciado requerido y puntos decimales explícitos (por ejemplo, escriba G90 G01 X100.0 Y50.0 ; en lugar de G90G01X100y50 ;).
Siemens: Alarm 61805Una palabra de coordenada de eje recibe modificadores absolutos e incrementales conflictivos simultáneamente en el mismo bloque (por ejemplo, programar X=AC(100) y X=IC(10)).Se deshabilita el NC Start; el ciclo se detiene inmediatamente con la alarma 'Value programmed absolute and incremental'.Identifique y elimine los modificadores de dirección duplicados o conflictivos del bloque de ejes. Asegúrese de que solo un modificador absoluto o incremental esté activo por palabra de eje.
Siemens: Alarm 10255 / 15100Invocar ciclos de mecanizado continuo (como el desbaste G71) bajo el modo ISO Dialect sin insertar los códigos de transición estándar G00/G01 y G90/G94.El ciclo se aborta durante la ejecución; el controlador muestra un error de transición de coordenadas o de formato del dialecto.Inserte los comandos de movimiento de transición (G00/G01) y de coordenadas (G90) correctos en las líneas NC inmediatamente anteriores a la llamada del ciclo.
Mitsubishi: Error de Incremento de IndexaciónUn comando absoluto G90 dirige el eje de una mesa de indexación a una coordenada que no es un múltiplo entero del parámetro de incremento de indexación predefinido.El programa se detiene de inmediato durante la ejecución; la pantalla muestra un mensaje de error de programa.Modifique la coordenada programada para alinearla matemáticamente con el parámetro de incremento de indexación del sistema (por ejemplo, alineando el destino del eje con incrementos de 2 o 5 grados).
Mitsubishi: Alarma P34El programador comanda G90, G91, G190 o G191 en una configuración de máquina cuya lista de G-code estándar activa no soporta ese formato de comando.Salto de bloque inmediato o parada del ciclo; la pantalla muestra 'P34 Program Error'.Verifique y programe el código de alternancia de coordenadas correcto que sea compatible con la lista de G-code activa de la máquina (por ejemplo, utilizando G190/G191 en lugar de G90/G91 en las listas de torno 6/7).

Nota de Aplicación

Una colisión catastrófica del husillo y la consiguiente acumulación de piezas rechazadas (scrap) son los resultados inevitables de no gestionar minuciosamente los parámetros de coordenadas en segundo plano del CNC. Por ejemplo, al ejecutar intervenciones manuales con manivela para verificar el desgaste del cortador en controles Fanuc, el operador corre el riesgo de sufrir un choque severo al reanudar la ejecución si no comprende la configuración del Parameter 7001 bit 1 (ABS). Si este parámetro se deja en 0, el CNC calculará una trayectoria de retorno matemática totalmente diferente en modo G91 comparada con G90. Al presionar el botón de inicio de ciclo, la máquina intentará reconstruir el paso incremental de manera errónea, lanzando la herramienta directamente contra una mordaza de sujeción (vise jaw) de acero o una brida de amarre (clamp) fija. Validar el Parameter 7001 elimina la causa más frecuente de parada no planificada en este comando, evitando semanas de costoso tiempo de inactividad y reparaciones costosas del husillo.

En los controles Mitsubishi, se presenta una vulnerabilidad crítica de tiempo de ciclo al combinar la compensación avanzada de errores de instalación de la pieza G54.4 con el código modal G91. Debido a que el bloque de activación G54.4 aplica un decalaje matemático de la cuadrícula tridimensional sin ejecutar movimiento físico, programar inmediatamente después un comando G91 forzará a la máquina a realizar su primer avance incremental desde su coordenada física real, no compensada. El husillo se hundirá a ciegas siguiendo el vector incremental erróneo, colisionando violentamente contra el plato del torno (chuck) giratorio. Si no se verifica este comportamiento antes de la producción, la desviación dimensional se acumula ciclo a ciclo y solo se detecta en la inspección final como pieza rechazada.

De manera similar, en la arquitectura de Siemens, los programadores de moldes o piezas complejas deben estar alerta al emplear el parámetro SD42440 $SC_FRAME_OFFSET_INCR_PROG y el parámetro SD42442 $SC_TOOL_OFFSET_INCR_PROG. Estos parámetros definen si los decalajes de cero y las compensaciones de longitud de herramienta se aplican aditivamente durante la ejecución de bucles de aproximación en G91. Configurar incorrectamente estas directivas genera microdesviaciones acumulativas en cada repetición del ciclo, arruinando las tolerancias críticas del material. Para garantizar una fiabilidad de proceso absoluta, los talleres CNC deben forzar la declaración explícita de G90 en los bloques de aproximación iniciales y estandarizar la verificación de los parámetros de arranque del sistema, como el Parameter 3402 bit 3 de Fanuc y el parámetro #1073 en Mitsubishi, garantizando que el sistema no inicie operaciones bajo un estado modal imprevisto.

Red de Comandos Relacionados

  • G54 a G59 (Sistemas de Coordenadas de Trabajo): Selecciona el origen del sistema de coordenadas de la pieza de trabajo al que hacen referencia los comandos absolutos (G90) para trazar las coordenadas de los ejes.
  • G10 (Entrada Programable de Datos): Actualiza dinámicamente los registros de decalajes de trabajo y herramientas, sobrescribiendo los valores por completo en modo absoluto G90 o modificándolos de forma aditiva en modo incremental G91.
  • G92 (Ajuste del Sistema de Coordenadas de Trabajo / Limitación de Velocidad del Husillo): Desplaza manualmente el origen de coordenadas de la pieza de trabajo activo sin desplazamiento físico del eje, modificando directamente los objetivos de coordenadas G90 subsiguientes.
  • G00 y G01 (Interpolación Rápida / Lineal): Comandos de movimiento cuyos argumentos de coordenadas de ejes se interpretan como coordenadas de destino absolutas o vectores de distancia incrementales basándose en el estado modal activo.
  • G290 y G291 (Alternancia del Modo de Lenguaje Siemens/ISO): Dicta cómo el intérprete de Siemens decodifica los comandos modales G90/G91 y las direcciones paralelas asociadas del dialecto ISO (como U, V, W).

Conclusión

Garantizar la fiabilidad del proceso mecanizado y maximizar el tiempo de actividad de la planta exige que los talleres de mecanizado adopten protocolos estrictos e inquebrantables para el control de los códigos modales G90 y G91. En lugar de tratar estos códigos como simples comandos de conmutación, los programadores deben considerarlos filtros matemáticos que dictan cada rotación del servomotor. La estandarización de las líneas de seguridad al inicio de los programas (headers), asegurando que se declare explícitamente G90 antes de cualquier movimiento de aproximación y validando que parámetros clave como el Parameter 3402 de Fanuc y el #1073 de Mitsubishi se ajusten para arranques seguros en absoluto, reduce drsticamente las tasas de piezas rechazadas (scrap) y evita colisiones del husillo catastróficas. Cada segundo invertido en la auditoría y simulación de estas transiciones de coordenadas a pie de máquina se traduce directamente en la eliminación de paradas no planificadas, la protección del valioso utillaje mecánico y una notable optimización del tiempo de ciclo general en la línea de producción.

Preguntas Frecuentes (FAQ)

¿Por qué mi torno CNC se comporta de forma errática al usar coordenadas incrementales si no declaré G91?

En muchos tornos CNC modernos que utilizan el G-code Sistema A de torno (como los de Fanuc y Mitsubishi), los comandos G90 y G91 están desactivados por defecto. El control distingue los movimientos absolutos e incrementales según las letras de dirección empleadas: si introduce por descuido caracteres como U o W en lugar de X o Z, la herramienta ejecutará un movimiento incremental inmediato desde su posición actual. Esta conmutación implícita de direcciones suele provocar graves colisiones si el programador asume que la máquina interpreta todas las líneas en absoluto. Acción práctica: Verifique siempre la configuración del parámetro #1076 en sistemas Mitsubishi o configure el sistema a G-code lista B/C en Fanuc si prefiere unificar sus programas usando las directivas modales G90 y G91 estándares de fresadora.

¿Cómo puedo evitar que el cambio de compensaciones con G10 altere las coordenadas de origen de mi pieza?

El bloque de comando G10 utiliza el estado modal G90/G91 activo como un filtro crítico de interpretación: en modo G90, los datos del comando G10 sobrescriben por completo el registro de compensación seleccionado, mientras que en modo G91, los datos se suman de manera incremental a la compensación actual. Ejecutar un cambio de registro bajo un modo de coordenadas erróneo puede corromper los decalajes base y generar piezas defectuosas en masa. Acción práctica: Escriba siempre de forma explícita el código modal G90 o G91 correspondiente dentro del propio bloque de comando de Entrada Programable de Datos (por ejemplo, programando G90 G10 L2 P1 X...), aislando la sintaxis de cualquier estado de trayectoria activo en el programa automático.

¿Por qué los centros de arco y los radios se desvían de la trayectoria física si programo en absoluto (G90)?

En sistemas como los controles Mitsubishi, las definiciones de coordenadas circulares para los centros de arco (empleando las direcciones I, J, K) y el radio de arco (R) se evalúan como distancias estrictamente incrementales desde el punto inicial de la interpolación circular, independientemente de que el modo G90 absolute esté activo. Si intenta forzar coordenadas absolutas en estas direcciones, el intérprete trazará una trayectoria deformada o detendrá el ciclo con un error de formato, estropeando la superficie de la pieza física. Acción práctica: Desarrolle sus programas evaluando los vectores de radio I, J, K siempre de forma incremental respecto al inicio de la curva, y realice una ejecución en seco en vacío antes de autorizar el primer corte de producción.

¿Aún no se ha resuelto?

Pregunta a nuestro asistente de IA sobre este tema en lenguaje natural. Basado en fuentes verificadas, sin alucinaciones.

Preguntar al asistente de IA
Hakan Gündoğdu
Hakan Gündoğdu
  • CNC CARE Co-Founder (May 2025 - Present)
  • Mitsubishi Electric NC Sales & Service Section Manager (2008 - 2025)
  • Reis CNC Service Engineer (2003 - 2005)
  • Ören Kalıp CNC Mold Line Team Leader (1999 - 2002)

Con más de 25 años de experiencia trabajando en todas las áreas de la industria de máquinas CNC, continúo mis actividades como cofundador de CNC CARE, donde ofrecemos servicios de consultoría, ingeniería y repuestos originales independientes de la marca.

Artículos relacionados

Otros artículos sobre este tema