Programación de Roscado Rígido en Siemens: Guía de G331 y G332
Aprenda a programar roscado rígido en controles Siemens Sinumerik con G331 y G332. Evite alarmas y compare su funcionamiento con los sistemas Fanuc y Mitsubishi.
Introducción
Un cambio de estado repentino en la señal de interfaz NC/PLC DB380x DBX2001.6 ("invert M3/M4") mientras un macho de roscar (tap) está cortando activamente dentro de una pieza de trabajo (workpiece) provoca una rotura catastrófica de la herramienta (tool break). Esta interrupción detiene la rotación del spindle de Sinumerik mientras el eje lineal continúa avanzando, dejando un macho de carburo cizallado incrustado en el metal y convirtiendo la pieza en desecho (scrap). Validar el parámetro MD35035 elimina la causa más frecuente de parada no planificada en este comando. Si no se verifica este parámetro antes de producción, la desviación dimensional o el fallo de sincronización se acumula ciclo a ciclo y solo se detecta en la inspección final como pieza rechazada, aumentando significativamente el tiempo de inactividad y los costos de producción.
Para solucionar estos costosos problemas de sincronización en el taller, los controles Siemens Sinumerik emplean los comandos G331 y G332 para realizar un roscado rígido (rigid tapping) mediante control de posición en lazo cerrado. En lugar de depender de un chuck compensador mecánico que introduce holguras y holgura axial, el control interpola directamente el movimiento del eje lineal y la rotación del spindle. Esto garantiza que el paso de rosca programado coincida de manera exacta y constante, reduciendo a cero el riesgo de piezas rechazadas por roscas defectuosas y optimizando los tiempos de ciclo en producciones de alto volumen.
Resumen Técnico
| Propiedad | Detalles |
|---|---|
| Código de Comando | G331 (Tapping), G332 (Retracción) |
| Grupo Modal | Ciclos de Roscado Rígido (Rigid Tapping) / Movimiento de Interpolación (Modal) |
| Marcas Soportadas | Siemens |
| Parámetros Críticos | Coordenada de eje (X, Y, Z) y paso de rosca (I, J, K) |
| Restricción Principal | Requiere encoder de posición del husillo (spindle position encoder), modo de control de posición en lazo cerrado mediante SPOS y modo de avance lineal (feedrate) G94 activo. |
Lectura Rápida
- Ejecutar SPOS Primero: Ejecute el comando de posicionamiento del husillo (spindle) SPOS en un bloque anterior a G331 para poner el husillo en control de posición en lazo cerrado y evitar la Alarma 14092.
- Activar Avance Lineal: Programe el modo de avance lineal (feedrate) G94 antes de la ejecución de G331/G332 para evitar el error de husillo que no está en parada (standstill) y la Alarma 16715.
- Dirección de Rotación Automática: Controle la dirección del husillo automáticamente configurando el signo matemático del parámetro de paso de rosca K (positivo para roscas a la derecha, negativo para roscas a la izquierda).
- Hacer Coincidir las Etapas de Engranaje: Haga coincidir su velocidad programada S con los umbrales de la etapa de engranaje (gear stage) activa para evitar interrupciones del ciclo y la Alarma 16748.
- Suprimir Alarmas de Interfaz: Establezca el parámetro de datos de máquina MD35035 bit 22 para suprimir la evaluación del PLC de "invertir M3/M4" y evitar la Alarma 22024 durante el corte.
- Restaurar Control de Posición: Use SPOS=IC(0) en modo MDA para restaurar el control de posición del husillo antes de ejecutar la recuperación con G332 después de un apagado del sistema.
Conceptos Básicos
Los comandos de Siemens G331 y G332 ejecutan roscado rígido (rigid tapping) en lazo cerrado y controlado por posición sin la asistencia mecánica de un chuck compensador. El efecto práctico de programación es que el movimiento de desplazamiento del eje lineal y la rotación del spindle se interpolan estrictamente juntos para coincidir con precisión con el paso de rosca deseado. Los programadores deben vigilar atentamente para asegurarse de que el spindle maestro se coloque explícitamente en modo controlado por posición (usando el comando SPOS) antes de invocar G331; no hacerlo activa inmediatamente el código de alarma 14092 y aborta el ciclo.
Los operadores también deben monitorear cuidadosamente los estados del sistema, particularmente durante las operaciones de recuperación. Por ejemplo, si se ejecuta una retracción de roscado en modo MDA después de un apagado completo del sistema, los operadores primero deben habilitar el spindle a través de SPOS=IC(0) antes de ejecutar G332, o el control bloqueará la recuperación. Además, si la señal de interfaz NC/PLC "invertir M3/M4" se activa inadvertidamente mientras el macho de roscar (tap) está acoplado, el control detiene inmediatamente el proceso y emite el código de alarma 22024 para evitar proactivamente una rotura catastrófica de la herramienta (tool break) dentro de la pieza de trabajo (workpiece), lo que de otro modo resultaría en una pieza de desecho. Se debe tener especial cuidado en entornos multieje, como las máquinas que operan un doble turret, para asegurar que los estados del spindle y los modos de avance (G94) estén debidamente sincronizados.
Estructura de Comandos
La sintaxis de roscado rígido de Sinumerik está estructurada en torno a dos comandos operativos distintos: G331 para cortar la rosca en la pieza de trabajo (workpiece), y G332 para invertir el spindle y retirar la herramienta. Estos comandos requieren que el programador defina la coordenada objetivo y el paso de rosca a lo largo del eje de movimiento. La velocidad del spindle se establece durante el bloque G331, mientras que el bloque G332 subsiguiente retiene la velocidad y maneja automáticamente la inversión del eje.
La programación se puede completar utilizando nombres específicos de eje y pasos de rosca o coordenadas cartesianas. Para movimientos estándar de un solo eje, el comando hace referencia al nombre de la coordenada y al parámetro del paso correspondiente. Si el valor del paso es positivo, se genera una rosca a la derecha; si es negativo, se corta una rosca a la izquierda.
G331 <axis> <thread pitch> S...
G332 <axis> <thread pitch>
G331 X... Y... Z... I... J... K... S...
G332 X... Y... Z... I... J... K...
| Parámetro | Descripción | Rango Permitido |
|---|---|---|
| <axis> / X..., Y..., Z... | Coordenada del eje de geometría o distancia de desplazamiento al final de la rosca (profundidad final de taladrado). | Coordenadas absolutas o incrementales |
| <thread pitch> / I..., J..., K... | Paso de rosca. Un paso positivo especifica rosca a la derecha (sentido horario, M3), un paso negativo especifica rosca a la izquierda (sentido antihorario, M4). | ±0.001 a ±2000.00 mm/rev |
| S... | Velocidad del spindle en rpm. Parámetro opcional. Si se omite, se utiliza la última velocidad activa. | Velocidad del spindle en rpm |
Aplicaciones de Marca
Siemens
Los controles Siemens Sinumerik utilizan G331 y G332 para ordenar roscado rígido (rigid tapping) sin la ayuda de un chuck compensador. Los programadores deben asegurarse de que el spindle esté en control de posición antes de llamar a G331. El comando de posicionamiento del spindle SPOS cumple este propósito al establecer el lazo de control de posición inicial. Si no se ejecuta este comando antes de G331, el programa NC se detiene y genera la Alarma 14092. El control también verifica el modo de avance lineal, requiriendo que G94 esté activo antes de iniciar el bloque de roscado.
Varios parámetros de datos de máquina configuran las propiedades mecánicas y de seguridad del ciclo de roscado. El parámetro MD35035 $MA_SPIND_FUNCTION_MASK bit 22 controls whether the NC/PLC interface signal DB380x DBX2001.6 ("invert M3/M4") is evaluated. Setting this bit to 1 prevents the safety alarm from triggering, allowing the machine to ignore external inversion commands during G331/G332. Además, el parámetro de máquina MD35010 $MA_GEAR_STEP_CHANGE_ENABLE bit 5 activa un segundo bloque de datos de etapa de engranaje (gear stage) dedicado, proporcionando umbrales de conmutación de velocidad mínima y máxima únicos específicamente para operaciones de roscado rígido.
Comparación de Marcas
| Serie del Sistema | Control de Posición del Spindle | Gestión de Etapa de Engranaje | Seguridad de Inversión del PLC |
|---|---|---|---|
| Sinumerik 840D sl | Totalmente soportado a través de SPOS; admite recuperación en modo MDA utilizando SPOS=IC(0). | Bloque de datos de segunda etapa de engranaje (gear stage) dedicado (MD35010 bit 5) totalmente configurable. | Configuración de supresión completa disponible a través de MD35035 bit 22. |
| Sinumerik 828D | Soportado a través de SPOS; se aplican procedimientos de recuperación estándar. | Soporta umbrales de etapa de engranaje (gear stage) con bloques de datos simplificados. | Evaluación de seguridad de inversión activa; configurable a través de datos de máquina. |
| Sinumerik 808D | Soportado a través de SPOS; requiere encoder de posición. | Control básico de etapa de engranaje (gear stage); por lo general, no se admiten bloques de datos de etapas de engranaje secundarias. | Evalúa DB380x DBX2001.6 con opciones de personalización limitadas. |
Análisis Técnico
La programación de coordenadas polares de Siemens y la interpolación de roscado rígido (rigid tapping) están aisladas matemáticamente de las coordenadas de trayectoria estándar. En el roscado, Siemens exhibe varios comportamientos durante el roscado rígido que lo distinguen más claramente de otras marcas de control. Primero, Siemens se basa completamente en el signo matemático del paso de rosca programado (por ejemplo, una K positiva para roscas a la derecha o una K negativa para roscas a la izquierda) para dictar automáticamente la dirección de rotación del spindle. Esto elimina por completo la necesidad de programar comandos de rotación explícitos M3 o M4 dentro del propio ciclo de roscado. Segundo, Siemens proporciona un "segundo bloque de datos de etapa de engranaje" dedicado evaluado específicamente para G331/G332. Esto permite que la máquina aplique umbrales independientes de conmutación de velocidad mínima y máxima adaptados estrictamente para el roscado, maximizando el torque del motor y la aceleración sin chocar con los límites de corriente eléctrica. Tercero, Siemens incorpora una configuración avanzada de respuesta de parada de seguridad a través de MD11550 $MN_STOP_MODE_MASK. Esto permite a los programadores definir una zona de retardo de parada implícita que evita activamente que la máquina se detenga a mitad del corte durante las operaciones G331 y G332 — incluso si se interrumpe el modo de trayectoria continua o se encuentra un tiempo de espera (dwell) — evitando de forma segura que el macho de roscar (tap) se atasque en el material.
En el sistema de gama alta Sinumerik 840D sl, el bloque de etapa de engranaje secundario (activado a través de MD35010 bit 5) está totalmente optimizado para curvas de aceleración del spindle personalizadas. Los sistemas compactos 828D ejecutan versiones simplificadas de estos bloques de datos, que aún evitan la sobrecarga de corriente pero restringen el ajuste fino. El modelo básico 808D depende de rangos de engranajes estándar, lo que hace que la coincidencia de velocidad sea más crítica para que los operadores eviten fallas de coincidencia de velocidad.
Ejemplos de Programas
N10 G94 ; Asegurar que el modo de avance lineal (feedrate) esté activo
N20 SPOS=0 ; Posicionar el spindle para habilitar el control de posición en lazo cerrado
N30 G331 Z-50 K-4 S200 ; Tapping hasta Z-50, paso -4mm (rosca a la izquierda), velocidad del spindle 200 rpm
N40 G332 Z3 K-4 ; Retrayendo a Z3, paso -4mm, inversión automática del spindle
N50 SPOS=0 ; Restablecer el control de posición del spindle
N60 G331 Z-10 K5 S800 ; Tapping hasta Z-10, paso 5mm (rosca a la derecha), velocidad del spindle 800 rpm
N70 G332 Z3 K5 ; Retrayendo a Z3, paso 5mm, inversión automática del spindle
Recorrido de ejecución en seco (dry run):
ejecución en seco: Ejecutar este programa sin una pieza de trabajo (workpiece) o herramienta instalada permite al operador observar el ciclo mecánico. En el bloque N10, se establece el modo de avance lineal G94, el cual es obligatorio para el roscado rígido (rigid tapping). En el bloque N20, el spindle ejecuta SPOS=0, colocándolo bajo control de posición en lazo cerrado. En el bloque N30, el eje Z se desplaza hacia abajo hasta -50 mm mientras el spindle gira en sentido antihorario (correspondiente al paso negativo K-4) a 200 rpm. Una vez alcanzado Z-50, el bloque N40 inicia inmediatamente la retracción G332, lo que hace que el spindle invierta su dirección y gire en sentido horario mientras desplaza el eje Z de regreso a la coordenada Z3. El bloque N50 restablece el control de posición. El bloque N60 comienza a realizar el tapping de una segunda rosca, desplazando el eje Z hacia abajo hasta -10 mm mientras el spindle gira en sentido horario a 800 rpm (especificado por el paso positivo K5). Finalmente, el bloque N70 ordena la retracción de regreso a Z3, invirtiendo el spindle en sentido antihorario.
Análisis de Errores
| Sistema | Código de Alarma | Condición de Activación | Solución / Acción del Operador |
|---|---|---|---|
| Siemens Sinumerik | Alarm 14092 | El spindle maestro no está en modo controlado por posición (falta SPOS), el spindle carece de encoder, o se intenta la retracción de roscado en modo MDA después de un apagado sin SPOS=IC(0). | Programe SPOS antes de G331 o ejecute SPOS=IC(0) en modo MDA para recuperar el control de posición. |
| Siemens Sinumerik | Alarm 16715 | G331 o G332 está activo pero el modo de avance lineal G94 no se ha programado explícitamente. | Programe explícitamente G94 en un bloque anterior al comando G331. |
| Siemens Sinumerik | Alarm 16748 | La velocidad programada del spindle se encuentra fuera del rango de velocidad de la etapa de engranaje (gear stage) activa, y el cambio dinámico de etapa está desactivado. | Cargue la etapa de engranaje (gear stage) adecuada en el programa NC antes del bloque G331. |
| Siemens Sinumerik | Alarm 22024 | La señal de interfaz NC/PLC DB380x DBX2001.6 ("invertir M3/M4") se altera durante la ejecución del programa mientras G331 está activo. | Evite cambios en la señal del PLC durante el corte, o configure el bit 22 de MD35035 en 1 para suprimir la verificación de seguridad. |
Nota de Aplicación
La pérdida de sincronización durante el roscado rígido debido a una caída de energía o una parada de emergencia intermedia genera una colisión inminente si se intenta mover los ejes manualmente. Si ocurre un corte de energía a mitad del proceso, el operador debe ingresar al modo MDA y ejecutar obligatoriamente SPOS=IC(0) para reactivar el control de posición en lazo cerrado del spindle antes de comandar la retracción con G332. Omitir este paso crítico provoca que el eje Z avance linealmente sin rotación, rompiendo la herramienta dentro del barreno y generando piezas rechazadas instantáneas. Además, en entornos de alta velocidad donde el tiempo de ciclo es crucial, configurar el bit 5 de MD35010 activa un segundo bloque de datos de etapa de engranaje (gear stage) específico para G331/G332. Esto aplica límites dinámicos de velocidad que previenen sobrecargas eléctricas del spindle, permitiendo aceleraciones agresivas sin generar paradas de máquina inesperadas.
Para maximizar la seguridad del operario y proteger los costosos machos de roscar en máquinas con doble turret, los programadores deben asegurar que la señal DB380x DBX2001.6 no sea alternada de forma imprevista por el PLC. Configurar el bit 22 del parámetro de datos de máquina MD35035 a 1 evita que la señal de inversión de giro sea evaluada durante los ciclos G331 y G332. Esto suprime la Alarma 22024 y previene la parada no planificada del husillo a mitad de ciclo, una de las causas principales de rotura de herramientas y piezas desechadas en líneas de producción automatizadas.
Red de Comandos Relacionados
- G84 / G74 (Roscado Rígido / Rigid Tapping): Estos ciclos enlatados (canned cycles) automatizan el roscado en varios controles, en contraste con los bloques de interpolación directa G331/G332.
- CYCLE84 / CYCLE99 (Ciclos de Roscado de Siemens): Estos ciclos enlatados (canned cycles) de Sinumerik envuelven los comandos G331/G332 en parámetros de alto nivel para facilitar la programación.
- G62 / G63 (Anulación de Esquinas y Roscado): G63 realiza el roscado con un chuck compensador, omitiendo por completo la interpolación del encoder en lazo cerrado.
- SPOS (Posicionamiento del Spindle): Posiciona el spindle y activa el control en lazo cerrado, un requisito previo obligatorio antes de invocar un bloque G331.
- G94 (Avance Lineal): Activa el avance (feedrate) en milímetros por minuto, el cual debe estar activo para la ejecución de G331/G332.
Conclusión
El éxito operativo del roscado rígido con G331 y G332 radica en la correcta preparación de las condiciones del spindle y el aseguramiento del control en lazo cerrado. La recomendación fundamental de producción para evitar costosas colisiones y tiempos de inactividad es programar siempre el comando de posicionamiento SPOS en un bloque anterior a la interpolación de roscado, asegurando que el avance lineal G94 esté activo. El ajuste fino de los parámetros de engranaje MD35010 y la supresión de la evaluación de inversión PLC a través de MD35035 garantizan un flujo continuo sin interrupciones imprevistas. Implementar estas prácticas en los programas de mecanizado disminuye drásticamente la tasa de piezas rechazadas en la inspección final, protege la integridad de la herramienta y maximiza la eficiencia del tiempo de ciclo en el taller.
Preguntas Frecuentes (FAQ)
¿Qué causa la Alarma 14092 "wrong axis type" en Siemens y cómo se soluciona antes de dañar la pieza?
Esta alarma indica que el spindle no se encuentra bajo control de posición en lazo cerrado en el momento de iniciar el roscado, o que falta el encoder de retroalimentación. Si ocurre tras un apagado a mitad de corte, el control bloquea el movimiento. Acción práctica: Programe siempre un comando SPOS=0 en el bloque previo a G331 para habilitar el bucle de posicionamiento, o use SPOS=IC(0) en modo MDA para restablecer el husillo antes de intentar una retracción de emergencia con G332.
¿Por qué el control Sinumerik genera la Alarma 16715 "spindle not in standstill" al iniciar G331?
Esta alarma ocurre cuando no se ha definido el tipo de avance correcto en el programa, impidiendo la interpolación sincronizada. El control requiere que el modo de avance lineal G94 esté explícitamente activo para coordinar las revoluciones del spindle con el movimiento del eje Z. Acción práctica: Inserte un bloque con el comando G94 antes de llamar al ciclo G331 para asegurar la concordancia de avance en mm/min y evitar detenciones bruscas que provoquen piezas de desecho.
¿Cómo se puede evitar la Alarma 22024 durante el roscado rígido sin alterar la programación del PLC?
Esta alarma se dispara si la señal lógica de inversión de giro DB380x DBX2001.6 es alterada a mitad del maquinado. Si no se puede modificar la lógica del PLC, se debe forzar al control numérico a ignorar este cambio de señal mediante la configuración interna de la máquina. Acción práctica: Modifique el bit 22 del parámetro MD35035 ($MA_SPIND_FUNCTION_MASK) estableciéndolo en 1 para suprimir la evaluación de esta señal de inversión de giro durante el corte y evitar roturas de herramientas.
¿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 - 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
Funciones Aritméticas en Macros CNC: Guía Completa de SIN, COS y SQRT
Aprenda a programar funciones trigonométricas y matemáticas como SIN, COS y SQRT en macros CNC de Fanuc, Siemens y Mitsubishi para prevenir costosos errores FPU.
Asignación de Argumentos en Macros CNC: Guía de G65 y G66
Domine la asignación de argumentos en macros G65/G66 para Fanuc, Siemens y Mitsubishi. Evite colisiones físicas del cabezal y configure parámetros críticos.
Operadores Lógicos en Macros CNC: Guía de IF, WHILE y GOTO
Aprenda a programar operadores lógicos macro en controladores Fanuc, Siemens y Mitsubishi. Evite colisiones graves mediante el uso de bucles y parámetros lógicos.
Guía de Programación de Parámetros R en Siemens: Variables y Sintaxis
Aprenda a programar parámetros R en Siemens SINUMERIK. Configure MD28050 y evite alarmas 61696/61697 en comparación con controles Fanuc y Mitsubishi.