Guía de Desfase de Origen Axial Absoluto G58 en Siemens SINUMERIK
Aprenda a programar el desfase axial absoluto G58 en controles Siemens SINUMERIK. Evite colisiones y optimice el tiempo de ciclo en su centro de mecanizado CNC.
Introducción
El reposicionamiento accidental del turret o del spindle tras una interrupción del cycle puede guiar la herramienta de corte directamente hacia un choque destructivo contra las mordazas de un chuck o la estructura de un fixture. Si un operador realiza un reset o mueve manualmente los ejes sin aplicar un comando de supresión de frame, los desplazamientos modales de G58 permanecen activos en la memoria del control Siemens. Al reiniciar la producción bajo este origen desplazado, el recorrido de los ejes ignora las márgenes físicas de seguridad, colisionando el tool carrier contra la mordaza de un vise jaw o los clamps de la mesa de mecanizado. Este impacto catastrófico destruye el spindle, dobla los husillos de bolas y genera alarmas por sobrecorriente en los servomotores, elevando el tiempo de inactividad. Validar el parámetro MD 24000 elimina la causa más frecuente de parada no planificada en este comando.
Resumen Técnico
| Especificación Técnica | Detalles / Valores |
|---|---|
| Código de Comando | G58 |
| Grupo Modal | Grupo 3 (desfases programables, limitaciones de área de trabajo y programación de polos) |
| Marcas Soportadas | Siemens SINUMERIK (en modo G290 nativo) |
| Parámetros Críticos | MD 24000 $MC_FRAME_ADD_COMPONENTS (componente fine offset de frame activo, debe configurarse en 1) |
| Restricción Principal | Debe programarse en un bloque NC independiente sin otros comandos de movimiento |
Lectura Rápida
- G58 es un comando de frame axial absoluto de sustitución que sobrescribe únicamente el componente de traslación gruesa del desfase de origen actualmente activo.
- Programe G58 en su propio bloque NC dedicado para garantizar que el intérprete de Siemens procese el desplazamiento de frame antes de ejecutar los movimientos de los ejes.
- Asegúrese de que el parámetro de datos de máquina MD 24000 esté configurado en 1, de lo contrario, la ejecución de G58 activará inmediatamente el Alarm 18312 y detendrá el control.
- Tenga en cuenta que G58 modifica solo el componente de traslación gruesa, preservando el componente de fine offset activo que se actualiza a través de G59.
- Verifique los estados de las coordenadas después de cualquier interrupción del cycle y utilice SUPA para retraer la máquina de forma segura al cero máquina físico.
- Configure las limitaciones de área de trabajo activas utilizando G25 y G26 para formar un límite de seguridad electrónico que proteja el tool turret, el chuck y los fixtures.
Conceptos Básicos
La implementación del desfase de origen axial absoluto G58 en los controles Siemens SINUMERIK proporciona un método dinámico para gestionar los desplazamientos de coordenadas durante el mecanizado. A diferencia de los controles Fanuc y Mitsubishi, donde G58 se utiliza simplemente para seleccionar un sistema de coordenadas de pieza estático, Siemens evalúa G58 como un frame de sustitución axial absoluto programable. Esto permite a los programadores reemplazar temporalmente los componentes de traslación gruesa absoluta de ejes específicos dentro de un bloque, en relación con el desfase de origen activo (como G54). Esto es particularmente útil para modificaciones localizadas de trayectorias en fixtures de cavidades múltiples donde se requieren ajustes gruesos menores sin alterar la configuración básica de la pieza de trabajo. Los cambios de coordenadas recalculan dinámicamente los desfases de herramienta activos sin desactivarlos.
Estructura de Comandos
En el modo nativo de Siemens SINUMERIK (G290), G58 opera como una función preparatoria activa de forma modal que pertenece al G-code Grupo 3. Este comando se comporta como una instrucción de frame de sustitución en lugar de una aditiva. Cuando se procesa un bloque G58, el control reemplaza el componente de traslación gruesa del desfase de origen actualmente activo para los ejes designados, dejando intactos los fine offsets y los ejes no modificados.
Debido a que el comando anula los niveles de traslación de coordenadas existentes, debe aislarse con cuidado. El intérprete requiere que G58 se ingrese en un bloque NC independiente. Mezclar comandos de movimiento con la sustitución de coordenadas en el mismo bloque provocará errores de validación de sintaxis o trayectorias de eje impredecibles durante la ejecución del cycle.
Sintaxis del Comando
G58 X__ Y__ Z__ A__ ;
Parámetros del Comando
- X, Y, Z, A: Especifica los valores de coordenadas axiales absolutos para reemplazar el componente de traslación gruesa absoluta programable del frame activo.
- MD 24000 $MC_FRAME_ADD_COMPONENTS: Parámetro de datos de máquina que debe configurarse en 1 para habilitar los componentes de fine offset axial. Un valor de 0 provoca una falla del sistema al procesar G58.
- MD 28080 $MC_NUM_USER_FRAMES: Configura el número total de desfases de origen configurables por el usuario (G54 a G57, G505 a G599) asignados en la memoria del control, con un rango de 1 a 93.
- MD 10760 $MN_G53_TOOLCORR: Determina si las compensaciones de longitud y radio de herramienta se suprimen o se mantienen al suprimir los frames de coordenadas.
Aplicaciones de Marca
Siemens
Los controles Siemens SINUMERIK procesan G58 dentro del modo nativo (G290) como un frame de sustitución de traslación absoluta axial. Este desfase modifica el componente grueso (coarse) del desfase de origen activo para ejes específicos, mientras mantiene intacto el componente fino aditivo. Los operadores deben verificar que el parámetro MD 24000 esté habilitado antes de ejecutar el código.
La ejecución de G58 desplaza el origen de coordenadas escribiendo directamente en la pila de frames del Grupo 3. Esto se demuestra al configurar montajes de cavidades múltiples, donde los desplazamientos de ejes individuales se programan secuencialmente para guiar el spindle a través de diferentes mordazas de vise jaws.
| Elemento de Control | Especificación / Configuración | Propósito y Comportamiento de Alarmas |
|---|---|---|
| MD 24000 $MC_FRAME_ADD_COMPONENTS | Valor: 1 | Habilita los frames de fine offset. Si se establece en 0, la ejecución de G58 detiene el sistema con el Alarm 18312. |
| MD 28080 $MC_NUM_USER_FRAMES | Rango: 1 a 93 | Establece la cantidad de desfases configurables por el usuario almacenados en memoria. |
| Versiones del Modo de Torneado | 840D sl vs. 802D sl | El control avanzado 840D sl admite los comandos del Grupo 20 (G51.2/G50.2) para torneado de filos múltiples (multi-edge turning); el compacto 802D sl no lo hace. |
| Alarm 14800 | Activación: Feedrate = 0 | Se activa si se ordena movimiento bajo un frame G58 mientras la velocidad del path se calcula como cero. |
Advertencia: Aísle siempre G58 en su propio bloque NC. Combinar G58 con G-codes de movimiento (como G01 o G00) en la misma línea provoca fallas de sintaxis en el intérprete o movimientos inesperados de la trayectoria.
Comparación de Marcas
| Series de Control Siemens | Torneado de Filos Múltiples (Grupo 20) | Asignación de Frames de Usuario (MD 28080) | Capacidades de Memoria y Apilamiento de Frames |
|---|---|---|---|
| SINUMERIK 840D sl / ONE | Totalmente soportado (G51.2 torneado de filos múltiples ON, G50.2 OFF) | Hasta 93 desfases de origen (G54 a G57, G505 a G599) | Pila de frames multinivel de alta capacidad con división dinámica de traslación gruesa/fina |
| SINUMERIK 828D | Soporte limitado / dependiente de la aplicación | Hasta 93 desfases de origen (G54 a G57, G505 a G599) | Pila de frames estándar que admite desfases absolutos gruesos (G58) y finos aditivos (G59) |
| SINUMERIK 802D sl | Omitido (comandos del Grupo 20 completamente incompatibles) | Asignación básica de memoria de frames | Búfer de frames compacto; solo modificaciones básicas de desfases de origen axiales |
Análisis Técnico
Tres comportamientos programáticos y arquitectónicos clave distinguen claramente a los controles Siemens SINUMERIK de los controles Fanuc y Mitsubishi durante la gestión de desfases de origen:
Primero, Siemens opera con un modelo de compilador bilingüe conmutado (G290/G291). Mientras que los controles Fanuc y Mitsubishi interpretan los desfases de coordenadas y los cambios de registro de forma nativa dentro de un flujo de programa continuo único, Siemens requiere que el programador cambie explícitamente el compilador al modo ISO Dialect a través de G291 para compilar bloques que contienen estilos ISO heredados (como las entradas de desfase G10). Luego, el programa debe ordenar G290 para volver al modo nativo de SINUMERIK para procesar frames paramétricos avanzados (TRANS, ROT, SCALE, MIRROR) y desfases de origen nativos.
Segundo, Siemens gestiona los desfases de origen como componentes dinámicos y modulares de una pila de memoria de frames multinivel. G58 se trata como un componente de sustitución específico del eje programable del Grupo G 3. Funciona en conjunto con G59 (desfase fino axial aditivo) para dividir las traslaciones de coordenadas absolutas y finas en capas de pila independientes, mientras que Fanuc y Mitsubishi tratan los sistemas de coordenadas de pieza (WCS G54–G59) como ubicaciones absolutas monolíticas de registro único.
Tercero, Siemens cuenta con un comando de supresión absoluta dedicado, SUPA. Cuando se programa, SUPA suprime todos los desfases de origen activos, desfases programados, desfases básicos y desfases de volante para retraer los ejes de forma segura al cero de coordenadas de la máquina. Los controles Fanuc y Mitsubishi carecen de un comando de bloque de supresión multinivel como SUPA, confiando en su lugar en comandos estándar de supresión de coordenadas no modales como G53.
Ejemplos de Programas
; N10 G290 ; Cambiar al modo SINUMERIK nativo
; N20 G54 ; Activar el desfase de origen de pieza primario
; N30 TRANS X10 Y10 Z10 ; Establecer desfase grueso absoluto en X10 Y10 Z10
; N40 ATRANS X5 Y5 ; Agregar componente fine offset X5 Y5 (Desfase activo total: X15, Y15, Z10)
; N50 G58 X20 ; Sustituir desfase grueso de X con X20 (Desfase activo total: X25, Y15, Z10)
; N60 G59 X10 Y10 ; Sustituir fine offsets con X10 Y10 (Desfase activo total: X30, Y20, Z10)
; N70 G01 X0 Y0 F150 ; Realizar mecanizado lineal con feedrate 150
; N80 SUPA ; Suprimir todos los desfases de coordenadas para retraer los ejes de forma segura
; N90 M30 ; Fin de la ejecución del programa
Ejecución en seco (dry run)
Durante la ejecución en seco del programa, el bloque N10 cambia el compilador al modo SINUMERIK nativo. N20 carga el desfase de origen base. El bloque N30 aplica un desplazamiento de coordenadas grueso TRANS, estableciendo el origen del sistema de coordenadas en X10, Y10, Z10. El bloque N40 aplica un fine offset ATRANS aditivo, acumulando un desplazamiento de X15 e Y15. El bloque N50 ejecuta G58, que sobrescribe el desfase X grueso de 10 con 20, desplazando el origen de la trayectoria de herramienta activa a X25 mientras Y permanece en 15. El bloque N60 llama a G59 para sustituir los fine offsets, lo que resulta en un desplazamiento total de X30 e Y20. Después del mecanizado G01 en el bloque N70, el bloque N80 llama a SUPA para suprimir instantáneamente los desplazamientos de G58, G59 y G54, retornando de forma segura el portaherramientas del spindle al cero máquina.
Análisis de Errores
| Código de Alarma Siemens | Descripción y Mensaje de Alarma | Condición de Activación | Causa Raíz / Solución del Operador |
|---|---|---|---|
| Alarm 18312 | channel %1 block %2 frame: Fine offset not configured | El intérprete NC procesa G58 o G59 mientras MD 24000: FRAME_ADD_COMPONENTS está configurado en 0. | El fine offset de frame está desactivado en los parámetros. Configure el parámetro de datos de máquina MD 24000 en 1, luego reinicie el control. |
| Alarm 14800 | Channel %1 Set %2 programmed path velocity is less than or equal to zero | Un comando de movimiento axial (por ejemplo, G01) se ejecuta bajo un desfase G58 activo, pero el feedrate del path se calcula en F0. | El feedrate del path está establecido en cero sin feedrates fijos activos. Especifique un feedrate distinto de cero (por ejemplo, F150) en el bloque de movimiento. |
| Alarm 61000 | Tool offset not active | Un desplazamiento de desfase o cycle fijo se ejecuta sin un número D de compensación de herramienta activo válido. | Traslación de coordenadas realizada con un desfase de herramienta no configurado. Programe un código de compensación de herramienta válido (por ejemplo, D1) antes del mecanizado. |
Nota de Aplicación
El disparo inmediato del Alarm 18312 ocurre cuando el intérprete de SINUMERIK procesa el comando G58 con el parámetro MD 24000 $MC_FRAME_ADD_COMPONENTS configurado en 0. Esta desactivación impide la inicialización de los frames de desfase fino axial en la memoria del canal. 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. Para neutralizar este riesgo de piezas rechazadas y evitar costosas paradas imprevistas que aumentan el tiempo de inactividad, el programador debe asegurar que MD 24000 esté configurado en 1. Asimismo, si se programa un bloque G01 bajo la influencia de G58 pero la velocidad del path se calcula en cero, el control Siemens interrumpirá el mecanizado arrojando el Alarm 14800. Los operadores deben consolidar zonas virtuales de protección electrónica mediante los límites de área de trabajo G25 y G26 (habilitados por WALIMON y deshabilitados por WALIMOF) para blindar el turret, el spindle y los vise jaws de la máquina.
Red de Comandos Relacionados
- g53-suppress-current-frame: Suprime los frames configurables activos y los desfases programados para permitir movimientos seguros en coordenadas máquina.
- g54-settable-zero-offset: Establece el origen de coordenadas de la pieza sobre el cual se aplican los desfases axiales (G58/G59).
- g52-local-coordinate-system: Opera como un desplazamiento del sistema de coordenadas local, que funciona en una jerarquía diferente a la pila G58 basada en frames de Siemens.
Conclusión
La correcta implementación de G58 en los controles Siemens SINUMERIK requiere una estricta disciplina de programación aislada y validación de parámetros para maximizar la eficiencia y optimizar el tiempo de ciclo. Ejecutar siempre G58 en un bloque de control independiente antes de cualquier interpolación evita interpretaciones erróneas de trayectoria que generan piezas rechazadas. La recomendación fundamental para los programadores es integrar rutinas de limpieza al inicio y al cierre de cada programa NC utilizando el comando de supresión absoluta SUPA o la instrucción TRANS, garantizando que el punto cero del fixture regrese a sus coordenadas de referencia iniciales antes del siguiente cycle y reduciendo drásticamente el tiempo de inactividad.
Preguntas Frecuentes (FAQ)
¿Cómo evitar piezas rechazadas al interrumpir un cycle con G58 activo?
Cuando se interrumpe un cycle a la mitad, la sustitución absoluta de G58 permanece en la memoria del control. Mover manualmente la máquina o presionar reset no borra este desfase, lo que desplaza el origen de la siguiente pieza. Agregue siempre un bloque de seguridad con la instrucción SUPA al inicio de su programa principal para purgar cualquier frame activo y prevenir colisiones del turret.
¿Por qué el control Siemens muestra Alarm 14800 tras activar G58?
Esta alarma se activa cuando se ordenan movimientos de ejes bajo un frame G58 activo pero el feedrate programado es cero (F0), impidiendo que el intérprete calcule el desplazamiento. Asegúrese de declarar explícitamente el feedrate (por ejemplo, F150) inmediatamente después del bloque G58 para que la velocidad del path sea válida.
¿Cuál es la diferencia de compatibilidad de G58 entre SINUMERIK 840D sl y 802D sl?
El control avanzado SINUMERIK 840D sl procesa G58 dentro de una pila de frames multinivel que admite funciones de torneado de filos múltiples (multi-edge turning) en el Group 20, como G51.2. En cambio, el modelo compacto 802D sl carece de esta capacidad de almacenamiento y no soporta comandos del Group 20. Verifique el manual de su máquina y consulte el parámetro MD 28080 para determinar el número de offsets de usuario disponibles en su modelo específico.
¿Aún no se ha resuelto?
Pregunta a nuestro asistente de IA sobre este tema en lenguaje natural. Basado en fuentes verificadas, sin alucinaciones.

- CNC CARE Co-Founder (May 2025 - Present)
- Mitsubishi Electric NC Sales & Service Section Manager (2008 - 2025)
- Reis CNC Service Engineer (2003 - 2008)
- Ö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
Guía de Programación de G71 y G710 en Controles Siemens SINUMERIK
Aprenda a programar dimensionamiento métrico con G71 y G710 en Siemens. Evite el Alarm 14800 por velocidad cero y configure el parámetro MD 10240 sin errores.
Cancelación de Corte Balanceado G69: Recuperación de Coordenadas
Aprenda a programar la cancelación de corte balanceado G69 en tornos CNC Fanuc, Siemens y Mitsubishi. Desactive la sincronización de torretas y evite colisiones.
Ciclo de Acabado G70 en CNC: GuÃa Fanuc, Siemens y Mitsubishi
Aprenda a programar el ciclo de acabado G70 en torneado CNC. Domine parámetros, códigos de alarma y sintaxis para controles Fanuc, Siemens CYCLE95 y Mitsubishi.
Cancelación de Rotación de Coordenadas G69: Guía CNC y Alarmas
Aprenda a cancelar el espejo G68 y la rotación de coordenadas usando G69 en Fanuc, Siemens y Mitsubishi para evitar colisiones catastróficas de la torreta.