Skip to main content
CNC.wiki

Programación de G66 Llamada a Macro Modal en Controles CNC

Aprenda a programar la llamada a macro modal G66 en CNC Fanuc, Siemens y Mitsubishi. Configure los parámetros de look-ahead y evite colisiones mecánicas.

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

Cofundador de CNC CARE

Introducción

Una colisión catastrófica (hard collision) que destroza la herramienta de corte y dobla los husillos de bolas de los ejes ocurre si la torreta portaherramientas se desplaza a lo largo de una trayectoria desviada y no compensada hacia una mordaza de prensa (vise jaw), las garras rotativas de un chuck de husillo o bridas de sujeción (clamp) durante ciclos repetitivos de G66. 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. Validar el Parameter No. 3402 (o el Parameter #1241 en controles Mitsubishi) elimina la causa más frecuente de parada no planificada en este comando, evitando costosos tiempos de inactividad imprevistos y el desperdicio de material en bruto como pieza rechazada (scrap part). Para garantizar la seguridad del proceso al retornar al programa principal, es crítico gestionar correctamente las compensaciones de origen y los comandos modales relacionados, tales como el G65 custom macro call, el G64 cutting continuous path mode y el G61 exact stop mode. Por ello, los operadores deben realizar ejecuciones en seco (dry run) en modo bloque a bloque y verificar los decalajes en la pantalla del control antes de iniciar el mecanizado automático.

Resumen Técnico

Atributo TécnicoEspecificaciones
Códigos de ComandoG66 (Llamada a Macro Modal A), G66.1 (Llamada a Macro Modal B), G67 (Cancelar)
Grupos ModalesGrupo 12 en Fanuc, Grupo 14 en Mitsubishi, Modal en Siemens
Marcas SoportadasFanuc, Siemens, Mitsubishi
Parámetros CríticosParameter No. 3402 Bit 6 (Fanuc CLR), $MC_EXTERN_FUNCTION_MASK Bit 6 (relleno de dígitos Siemens), Parameter #1241 set13/bit5 (Mitsubishi L/P válido)
Restricción PrincipalEl nivel máximo de nesting es de 4 niveles. Los bloques sin movimiento de alta densidad dentro del subprograma pueden agotar el búfer de look-ahead (Parameter No. 19625) y provocar errores de trayectoria de la herramienta.

Lectura Rápida

  • Decida entre G66 y G66.1 según si el subprograma de macro personalizada debe activarse solo en bloques de movimiento (G66) o incondicionalmente en cada bloque (G66.1).
  • Programe un bloque G67 independiente inmediatamente después de completar el ciclo de coordenadas para evitar que los bloques de recorrido estándar posteriores activen la macro.
  • Limite la profundidad de las llamadas a macro anidadas (G65 y G66/G66.1 combinados) a un máximo de 4 niveles para evitar desbordamientos de la pila del sistema.
  • Verifique que MD 18800 esté establecido en 1 y la compilación de lenguaje externo activa (G291) esté habilitada antes de ejecutar G66 en controles Siemens SINUMERIK.
  • Habilite el parámetro de Mitsubishi #1241 (set13/bit5) para permitir pasar la repetición del subprograma (L) y el número del programa que realiza la llamada (P) como argumentos de transferencia.
  • Prevenga paradas de preprocesador en el modo de trayectoria continua G64 (continuous-path mode) de Siemens evitando comandos de visualización (MSG) y consultas de variables de estado ($A...) dentro del subprograma de macro modal.

Conceptos Básicos

La programación práctica de la llamada a macro modal personalizada (G66/G66.1) en controles Fanuc proporciona a los ingenieros de aplicaciones la flexibilidad matemática para coordinar geometrías de mecanizado repetitivas con variables lógicas dinámicas. Esta estructura modal es sumamente eficaz para patrones de perforación en rejilla, fresado de cajeras o ciclos de desbaste personalizados porque activa automáticamente el programa de macro especificado en cada punto final de coordenada en los bloques de movimiento posteriores, reduciendo drásticamente la longitud del programa. Los operadores de configuración y los programadores deben tener en cuenta que, si bien las llamadas modales G66 se ejecutan rápidamente, los puntos de parada en modo bloque a bloque durante la operación de bloque único se detienen en los puntos finales de los bloques creados internamente, requiriendo múltiples arranques para ejecutar una sola secuencia de coordenadas.

Para evitar movimientos inesperados de la máquina, las funciones de parada de avance (feed hold), override de velocidad de avance (feedrate override) y bloque a bloque (single block) se pueden deshabilitar mediante programación modificando la variable de sistema de macro personalizada #3004, lo que significa que el operador no tiene control manual una vez que comienza el ciclo. Los operadores de configuración deben calibrar correctamente los ajustes de coordenadas de la pieza de trabajo, los offsets de herramienta y los límites de carrera almacenados antes del inicio del ciclo automático. Antes de iniciar ciclos automáticos, el operador de configuración debe colocar y asegurar físicamente el material en bruto dentro de la mordaza de prensa (vise jaw) de la fijación de la pieza, el chuck del husillo o la brida de sujeción (clamp) montada en la mesa.

Si un sistema de coordenadas se configura incorrectamente, o si se ejecuta una trayectoria de herramienta no compensada durante los bucles de macro modales G66 (por ejemplo, debido a cálculos de compensación del radio de la punta de la herramienta o fallas de prelectura/look-ahead), la torreta (turret) portaherramientas se desplazará a lo largo de una trayectoria peligrosamente desviada. Si se exceden los límites de carrera por software o se eluden las barreras de protección, el eje puede dirigir la herramienta de corte en la torreta directamente hacia las bridas de sujeción (clamp) montadas en la mesa, la mordaza de prensa (vise jaw) de fijación de la pieza o las garras rotativas de un chuck de husillo. Este error de posicionamiento repentino da como resultado una colisión catastrófica (hard collision) (choque), destroza la herramienta de corte, daña los husillos de bolas de los ejes, activa un código de alarma del sistema NC (como la Alarm PS0325 o la Alarm PS0368) y convierte el material en bruto en una pieza rechazada (scrap part) completamente arruinada. Los operadores deben realizar una ejecución en seco de los programas basados en macros en modo bloque a bloque y utilizar los límites de carrera almacenados (G22/G23) and las señales del selector PMC para establecer una envoltura de protección electrónica segura alrededor del utillaje sensible.

Estructura de Comandos

La estructura sintáctica de una llamada a macro modal asigna letras de dirección específicas para pasar argumentos a variables locales dentro de la subrutina. Cuando G66 está activo, la máquina procesa las posiciones de coordenadas en el programa principal y llama automáticamente al programa de la macro inmediatamente después de que se completa el movimiento. Esto permite que el subprograma lea variables locales, calcule nuevas trayectorias o decalajes de coordenadas sobre la marcha (on-the-fly) y realice tareas como la preparación de agujeros o fresado localizado.

El comando de cancelación G67 debe escribirse en un bloque separado. Si se omite este comando de cancelación, el controlador permanece en modo de llamada modal, lo que significa que cualquier movimiento futuro de los ejes activará el subprograma. Un parámetro independiente determina si el sistema restablece este estado modal para borrarse cuando la máquina CNC se enciende o se reinicia.

G66 P__ L__ [arguments] ;

Para el modo nativo de Siemens SINUMERIK, la sintaxis incluye subcódigos y parámetros adicionales:

G66 Pxxxx Lyyyy <arguments> ;
MarcaReferencia del ParámetroDescripción de la FunciónRango de Valores / Estado
FanucParameter No. 3402 Bit 6 (CLR)Configura el ajuste predeterminado del estado de borrado del Grupo 12 de códigos G al encender o reiniciar el sistema.0 (no borrado) o 1 (borrado al reiniciar)
FanucParameter No. 19625Máximo de bloques de look-ahead en modo de offset del radio de herramienta para evitar el agotamiento del búfer.Valor entero ($N$ bloques)
FanucParameter No. 5040 Bit 3 (TCT)Registro de configuración del tipo de cambio de herramienta (Tool Change Type).0 (torreta) o 1 (ATC)
FanucParameter No. 5000 Bit 3 (GNI)Cálculos vectoriales en bloques de cancelación de compensación de herramienta G40.0 (vectores normales) o 1 (emulación matemática heredada)
Siemens$MC_EXTERN_FUNCTION_MASK Bit 6Controla el relleno de dígitos y los límites de verificación del número de programa.0 (relleno a 4 dígitos) o 1 (sin relleno hasta 8 dígitos)
SiemensMD 18800 $MN_MM_EXTERN_LANGUAGEParámetro de datos de máquina para habilitar la compilación externa de ISO Dialect.1 (habilitado) o 0 (deshabilitado)
MitsubishiParameter #1241 set13/bit5Determina la configuración válida de argumentos de macro para las direcciones L y P.0 (deshabilitado) o 1 (pasa L y P a #12 y #16)
MitsubishiParameter #1296 ext32/bit5Configura el procesamiento de sentencias por lotes para el movimiento continuo de los ejes.0 (deshabilitado) o 1 (ejecución por lotes activa)
MitsubishiParameter #8129Configura el conteo de dígitos de búsqueda de subprogramas para evaluar códigos P.Modo de búsqueda de programa de 4 u 8 dígitos

Aplicaciones de Marca

Fanuc

Los controles Fanuc integran llamadas a macro modales en el Grupo preparatorio 12. Los programadores pueden modificar el Parameter No. 3402 Bit 6 para controlar el estado de borrado predeterminado, mientras que el Parameter No. 19625 define la capacidad máxima del búfer de prelectura (look-ahead). La cadena de comandos básica utiliza G66 P_ L_ seguido de letras que representan argumentos de variables, y se cancela ejecutando G67.

CategoríaElemento del SistemaDescripción
ParámetrosParameter No. 3402 Bit 6 (CLR), Parameter No. 19625, Parameter No. 5040 Bit 3 (TCT), Parameter No. 5000 Bit 3 (GNI)Configura el ajuste predeterminado del estado de borrado del Grupo 12 de códigos G al encender o reiniciar, el máximo de bloques de look-ahead en modo de compensación (offset), el tipo de cambio de herramienta y el cálculo del vector G40.
AlarmasAlarm PS0325, Alarm PS0368, Alarm PS0010, Alarm PS0538Activadas por llamadas a macro dentro de ciclos como G71/G72, offsets activos durante cambios de parámetros, códigos G inapropiados y bloques de cancelación G40 omitidos.
VersionesFormato de la Series 15, Series 30i/31i/32i-B PlusEl formato de la Series 15 (Parameter No. 0001 Bit 1 FCV = 1) permite usar la dirección L para repeticiones; la moderna Series 30i/31i/32i-B Plus utiliza el Parameter No. 5000 Bit 3 GNI para compatibilidad heredada con G40.

Advertencia: Modificar los ajustes de los parámetros del tipo de cambio de herramienta (Tool Change Type) mientras los offsets están activos provocará una parada de emergencia inmediata del NC.

Siemens

Los controles Siemens gestionan la ejecución de macros modales cambiando del modo nativo al modo ISO Dialect. Los programadores deben verificar que MD 18800 esté habilitado, y pueden ajustar el relleno del número de programa utilizando la variable de máscara $MC_EXTERN_FUNCTION_MASK. Transicionar al modo ISO Dialect requiere programar G291 antes de ejecutar G66 P_ L_ <arguments>, y retornar al modo nativo utiliza G290.

CategoríaElemento del SistemaDescripción
ParámetrosMD 18800 $MN_MM_EXTERN_LANGUAGE, $MC_EXTERN_FUNCTION_MASK Bit 6, MD 20150 $MC_GCODE_RESET_VALUESParámetro de datos de máquina para habilitar la compilación externa de ISO Dialect, relleno de dígitos y límites de verificación del número de programa, y valores predeterminados de reinicio de códigos G.
AlarmasAlarm 61800, Alarm 12470, Alarm 14016, Alarm 12722Activadas por la falta de lenguaje NC externo, llamadas a subrutinas concurrentes, conflictos concurrentes del ciclo de reemplazo y múltiples llamadas por línea de programa de pieza.
VersionesSINUMERIK 840D sl frente a 802D slEl 840D sl admite datos de máquina SLASH_MASK y MD 10604 completamente ajustables, formatos HMI de panel multitáctil de pantalla ancha y opciones de evitación de colisiones activas, mientras que el 802D sl tiene configuraciones bloqueadas.

Advertencia: Intentar llamar a múltiples reemplazos de funciones M y llamadas a subrutinas modales en la misma línea desencadena un conflicto en el compilador del preprocesador.

Mitsubishi

Los controles Mitsubishi ejecutan llamadas modales dentro del Grupo 14 de códigos G. Los programadores ajustan el Parameter #1241 set13/bit5 para controlar el análisis de variables L/P, y verifican el Parameter #1296 ext32/bit5 para ajustar los modos de ejecución. Los comandos se analizan como G66 P_ L_ para la ejecución del movimiento de ejes (Modal A) o G66.1 para la ejecución incondicional de macros por bloque (Modal B), terminados por G67.

CategoríaElemento del SistemaDescripción
ParámetrosParameter #1241 set13/bit5, Parameter #1296 ext32/bit5, Parameter #8129, Parameter #11053 UserProgramStorageControla el mapeo de validez del argumento de la macro L/P, el procesamiento de bloques por lotes de ejecución de la macro, el recuento de dígitos de búsqueda del número de programa y el orden de búsqueda del dispositivo de almacenamiento.
AlarmasProgram Error (P232), Program Error (P33), Program Error (P652), Program Error (P39)Activadas por programas de macro que faltan en el almacenamiento, comandos de cancelación modal inactivos, control activo del sistema de subpartes y conflictos de interpolación spline bajo un estado G66/G66.1 activo.
VersionesSerie M80V Tipo B, Formato heredado M2/M0La serie M80V Tipo B bloquea las interpolaciones spline, el control TCP (G43.4) y el mecanizado de superficies inclinadas bajo llamadas modales G66; el formato heredado M2/M0 utiliza G22/G23/G68 e invierte las direcciones L y P.

Advertencia: Activar interpolaciones spline de alta precisión o sistemas de coordenadas bajo llamadas modales G66 en controles M80V Tipo B activará bloqueos de software y provocará paradas de emergencia del NC.

Comparación de Marcas

Característica / TemaFanucSiemensMitsubishi
Grupo modal de códigos GGrupo 12Modal ISOGrupo 14
Alternancia del CompiladorNinguna (Nativo)Requerida (G291 para ISO, G290 para Siemens)Ninguna (Nativo, cambia formatos con G188/G189)
Validación Bloqueada por ParámetroNinguna (análisis nativo de direcciones)— (sin fuente)Sí (Parameter #1241 set13/bit5 para la validez de L y P)
Seguimiento de Retroceso por Volante (G127)NoNoSí (mantiene modales y offsets usando el bloque de almacenamiento)
Interruptor de Interpretación de SentenciasNoNoSí (Parameter #1296 ext32/bit5 alterna la interpretación de sentencias)

Análisis Técnico

El análisis de las arquitecturas de macros personalizadas de los tres fabricantes revela diferencias fundamentales en las estructuras de las variables de parámetros. Los controles Fanuc y Mitsubishi mapean las letras de argumento G66 directamente a variables locales planas numeradas de la #1 a la #33, manteniendo una alta compatibilidad. En cambio, los controles Siemens que se ejecutan en modo nativo descartan por completo las tablas de registros locales planos, utilizando en su lugar variables del sistema estructuradas de tipo REAL o INT con un prefijo $C_ (como de $C_A a $C_Z, o matrices como $C_I[] para direcciones repetidas) para evaluar y transferir parámetros, lo que proporciona un entorno de programación significativamente más orientado a objetos.

La alternancia del intérprete y el cambio de formato representan otra área de diferencia. Siemens requiere que el programador cambie explícitamente el compilador al modo ISO Dialect mediante G291 para compilar bloques G66 heredados de estilo ISO, luego ejecute tramas paramétricas en modo Siemens mediante G290, y regrese al modo ISO mediante G291 para el movimiento. Mitsubishi utiliza un interruptor bimodal de formato de programa (G188/G189) que vuelve a mapear las macros modales sobre la marcha (on-the-fly) entre los sistemas de torno y fresadora. Fanuc analiza los argumentos de G66 de forma nativa dentro de su compilador estándar, sin requerir cambios de intérprete.

Finalmente, los sistemas de bloqueo de argumentos y recuperación de coordenadas difieren significativamente. Mitsubishi integra una bandera de validación bloqueada por parámetro (parameter #1241 set13/bit5) para habilitar o deshabilitar las direcciones L y P como argumentos, una función que no está presente en los controles Fanuc estándar. Además, Mitsubishi integra los estados de coordenadas modales de G66 con su función de retorno inverso manual arbitrario (G127). Cuando G127 está activo, el operador puede girar manualmente el volante hacia atrás para retraer la herramienta. El kernel de movimiento de Mitsubishi rastrea y mantiene con éxito los sistemas de coordenadas activos de la macro, las compensaciones de radio de punta y los offsets utilizando su bloque de almacenamiento de información modal especializado, lo que evita la deriva de los ejes y mantiene la seguridad de las coordenadas. Los controles Fanuc y Siemens no admiten el retroceso manual por volante para recuperar estados de coordenadas de esta manera.

Ejemplos de Programas

Ejemplo de Fanuc

G28 U0 W0 ; Retorno al punto de referencia (Home)
T0101 M06 ; Llamada de herramienta
G66 P1000 L2 A15.0 B30.0 ; Activar llamada a macro modal A (O1000) con 2 repeticiones, pasando argumentos A y B
G00 X100.0 Z10.0 ; Posicionamiento rápido
G01 X150.0 Z-50.0 F150.0 ; Movimiento lineal, ejecuta automáticamente la macro O1000
G01 X200.0 Z-100.0 ; Otro movimiento lineal, ejecuta la macro O1000
G67 ; Cancelar llamada a macro modal
M30 ; Fin de programa

ejecución en seco

Antes de ejecutar el programa en material en bruto, se deben comprobar la compensación del radio de la punta de la herramienta y las coordenadas activas. Cargue el subprograma O1000 en la memoria del control. Encienda el interruptor de ejecución en seco y el modo bloque a bloque en el panel del operador. Durante la ejecución, observe la pantalla de visualización de posición al final de cada bloque de posicionamiento (G01 X150.0 Z-50.0). La herramienta debe detenerse y el operador debe verificar que el sistema de coordenadas esté correctamente desplazado. Inspeccione visualmente que la punta de la herramienta permanezca segura lejos de la mordaza de prensa (vise jaw) de la fijación de la pieza o de las garras del chuck del husillo durante los dos ciclos automatizados. Ejecute el bloque de cancelación G67 y verifique que se restaure la operación estándar bloque a bloque.

Ejemplo de Siemens

G291 ; Cambiar el compilador al modo ISO Dialect para permitir el procesamiento de G66/G67
G66 P0100 L2 A15.0 B30.0 ; Activar llamada a macro modal A para el programa 100 con 2 repeticiones
G00 X100.0 Y50.0 ; Movimiento rápido
G01 X150.0 Y75.0 F150.0 ; Bloque de trayectoria lineal que ejecuta automáticamente el programa de macro al completarse
G01 X200.0 Y100.0 ; Bloque de trayectoria lineal, ejecuta el programa de macro al completarse
G67 ; Deseleccionar la llamada a macro modal, volviendo al procesamiento estándar bloque a bloque de ISO Dialect
G290 ; Volver al modo nativo de Siemens
M30 ; Fin de programa

ejecución en seco

Asegúrese de que el dato de máquina de Siemens MD 18800 esté activo (1). Cambie la pantalla de la HMI para mostrar las alarmas y coordenadas activas. Con la velocidad de ejecución en seco configurada en baja, ejecute G291 para cambiar el intérprete. Verifique que exista la subrutina SPF0100. Durante la ejecución bloque a bloque, supervise cada transición de coordenadas de los ejes. Verifique que la mezcla de trayectoria continua no provoque una desaceleración repentina del eje en la coordenada X150.0 Y75.0. Confirme que el salto de retorno del subprograma M99 (or el retorno nativo) transfiera correctamente la ejecución de vuelta al programa principal antes de que G67 cancele el estado modal.

Ejemplo de Mitsubishi

T0101 ; Llamada de herramienta
G66 P1000 L2 A15.0 B30.0 ; Activar llamada modal activada por movimiento para el programa O1000 con 2 pasadas
G00 X100.0 Z10.0 ; Posicionamiento rápido
G01 X150.0 Y75.0 F150.0 ; Posicionamiento lineal; el subprograma O1000 se ejecuta automáticamente una vez completado el posicionamiento
G01 X200.0 Y150.0 ; Posicionamiento lineal; el subprograma O1000 se ejecuta automáticamente
G67 ; Desactivar llamada modal del Grupo 14 para restaurar el procesamiento de bloques NC estándar
M30 ; Fin de programa

ejecución en seco

Verifique que el parámetro #1241 esté habilitado para permitir la transferencia de argumentos para las direcciones L y P. Cargue O1000 en el almacenamiento activo. Habilite el modo de ejecución en seco y ejecute el programa. Utilice la función de retroceso por volante G127 si algún desplazamiento de coordenadas parece incorrecto, retrayendo la herramienta a lo largo de la trayectoria. Verifique que las coordenadas modales se mantengan en el bloque de almacenamiento de información modal sin desviaciones. Al finalizar el ciclo, confirme que G67 cancele la llamada a macro modal antes de que la torreta se desplace a las zonas de cambio de herramienta.

Análisis de Errores

MarcaCódigo de AlarmaCondición de ActivaciónSíntoma del OperadorCausa Raíz / Solución
FanucAlarm PS0325Programar una llamada modal G66 dentro de los bloques de acabado (secuencia P/Q) de ciclos como G71/G72.La consola del NC parpadea con "UNAVAILABLE COMMAND IS IN SHAPE PROGRAM" y detiene los cálculos de trayectoria de coordenadas.Elimine G66/G66.1 de los bloques de ciclo repetitivo; coloque la llamada modal fuera de las coordenadas de secuencia.
FanucAlarm PS0368Modificar el parámetro del tipo de cambio de herramienta (No. 5040 bit 3) cuando el offset de herramienta o de coordenada está activo.El control del NC se bloquea con "OFFSET REMAIN AT OFFSET COMMAND" y detiene la ejecución automática.Cantele todos los offsets de longitud y offsets de coordenadas de trabajo activos antes de cambiar el parámetro binario TCT.
SiemensAlarm 61800Se intenta alternar el compilador (G291) o ejecutar G66 cuando MD 18800 está deshabilitado.El control muestra "External CNC system missing" y rechaza el análisis de la llamada modal G66.Establezca el dato de máquina MD 18800 $MN_MM_EXTERN_LANGUAGE = 1 para habilitar la opción del compilador ISO Dialect.
SiemensAlarm 14016Retorno de subrutina, fin de programa o G66 programado simultáneamente con un bloque de ciclo de reemplazo de función M/T.El programa detiene la compilación del preprocesador inmediatamente con la Alarm 14016.No combine llamadas a subrutina modales y reemplazos de funciones en el mismo bloque del programa.
MitsubishiProgram Error (P232)El número de programa P_ designado o el nombre del archivo de macro dentro de < > no se encuentra en la memoria o almacenamiento.La consola muestra Program Error P232 y se niega a iniciar el ciclo de bucle automático.Verifique que el programa con número O exista y esté cargado en la memoria activa o en los dispositivos de almacenamiento designados.
MitsubishiProgram Error (P33)Ejecutar el comando de cancelación G67 cuando no hay ninguna llamada modal G66 activa actualmente.El controlador se detiene con Program Error P33 durante el procesamiento de bloques.Asegúrese de que una llamada a macro modal G66 o G66.1 esté activa en la trayectoria actual antes de ordenar la cancelación mediante G67.

Nota de Aplicación

Un impacto mecánico severo que rompe la herramienta y daña los servomotores de los ejes ocurre si se ejecuta un ciclo G66 con decalajes de origen incorrectos o parámetros mal configurados, colisionando la torreta portaherramientas contra la mordaza de prensa (vise jaw) o bridas de sujeción (clamp). En controles Fanuc, modificar el parámetro No. 5040 bit 3 (TCT) mientras hay compensaciones activas gatilla inmediatamente la Alarm PS0368. De igual manera, programar una llamada modal G66 dentro de los bloques de perfilado (secuencia P/Q) de un ciclo fijo como G71 o G72 genera la Alarm PS0325, lo cual detiene el mecanizado y arruina la pieza de trabajo en producción. En sistemas Siemens, intentar activar el modo dialecto ISO mediante G291 para procesar bloques G66 sin haber habilitado antes el dato de máquina MD 18800 resultará en la Alarm 61800. Adicionalmente, programar comandos de pantalla MSG o consultar variables de estado $A... bajo el modo de trayectoria continua G64 provoca una parada del preprocesador que genera marcas de vibración (dwell marks) y daña el acabado superficial. En controles Mitsubishi M80V, la activación de ciclos de alta precisión como la interpolación spline G61.2 o el control TCP G43.4 con un comando modal G66 activo produce un bloqueo del software y lanza los errores de programa P39 o P940. Para mitigar estos riesgos de tiempo de inactividad imprevisto y generación de scrap, los operadores deben establecer límites de recorrido por software G22/G23, habilitar la validez de L/P en el parámetro #1241, y realizar siempre una simulación en vacío.

Red de Comandos Relacionados

  • G65 (Llamada a macro simple personalizada): Activa un programa de macro personalizada solo una vez para el bloque en el que está programado, a diferencia de G66, que permanece activamente modal para todos los bloques de movimiento posteriores.
  • G67 (Cancelar llamada a macro modal): Desactiva las llamadas a macro modales activas y devuelve el compilador al procesamiento estándar de códigos G bloque a bloque.
  • G64 (Modo de trayectoria continua): Mezcla las transiciones de contorno sin paradas de verificación de desaceleración, pero se interrumpe por paradas de preprocesador si se llaman comandos de visualización (MSG) dentro de un programa G66 activo.
  • G61 (Modo de parada exacta): Obliga al control a comprobar la desaceleración al final de cada bloque, lo que garantiza una alineación precisa de las coordenadas entre las iteraciones de la macro G66.

Conclusión

La correcta delimitación de la zona de trabajo segura mediante límites de carrera G22/G23 y la verificación de parámetros en cada cambio de lote representa la mejor práctica para evitar colisiones destructivas en ciclos modales G66. Dado que los comandos G66 y G66.1 procesan subprogramas de forma repetitiva en cada bloque de movimiento de ejes, resulta indispensable asegurar que el búfer de prelectura (look-ahead) de la máquina no se agote por exceso de cálculos lógicos. Programar siempre un bloque G67 de cancelación inmediatamente al concluir las trayectorias de maquinado y realizar una simulación gráfica exhaustiva garantiza una producción eficiente y libre de scrap en el taller.

Preguntas Frecuentes (FAQ)

¿Cómo solucionar la Alarm PS0325 al programar un ciclo G66 en Fanuc?

Esta alarma ocurre por intentar invocar la llamada modal de macro G66/G66.1 dentro de la definición de perfil (bloques P y Q) de ciclos fijos de desbaste o acabado como G71/G72. Como acción práctica, coloque la llamada G66 y el bloque G67 de cancelación fuera del rango de secuencia de bloques P y Q de los ciclos fijos.

¿Por qué el control Siemens no reconoce la instrucción G66 de mi subprograma?

Los controles SINUMERIK requieren habilitar la opción de compilador externo mediante el dato de máquina MD 18800 = 1 y programar el código G291 en un bloque exclusivo antes de ejecutar comandos G66. Como acción práctica, configure el parámetro de máscara $MC_EXTERN_FUNCTION_MASK para ajustar el número de dígitos y evitar errores de lectura del número de programa.

¿Cómo evitar el Program Error P33 en Mitsubishi al transferir argumentos con G66?

Este error de sintaxis ocurre cuando se intenta usar las direcciones L o P como argumentos de macro en un bloque G66 si el parámetro de validez #1241 (set13/bit5) está deshabilitado en el control. Como acción práctica, acceda a la configuración de parámetros del CNC, establezca el bit 5 de #1241 en 1 para mapear correctamente L y P a las variables locales #12 y #16, y elimine cualquier coma entre argumentos.

¿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 - 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