Skip to main content
CNC.wikiCNC.wiki

Comandos de Llamada a Macro G65, G66 y G67 en CNC: Guía Práctica

Guía de comandos G65, G66 y G67 para control de macros en Fanuc, Siemens y Mitsubishi. Evite colisiones, optimice el tiempo de ciclo y resuelva alarmas comunes.

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

Cofundador de CNC CARE

Introducción

Un palpador de medición impactando a alta velocidad contra una mordaza de acero templado o una torreta de indexación es la consecuencia inmediata de olvidar un único comando G67 de cancelación. En el entorno de producción de alta precisión, los operadores y programadores recurren habitualmente a los comandos G65 y G66 para estructurar subprogramas flexibles mediante el paso de variables locales. Sin embargo, no desactivar estos estados modales transforma instantáneamente trayectorias seguras en movimientos descontrolados que elevan el riesgo de generar piezas rechazadas y costosos tiempos de inactividad no planificados. Si el operario no ejecuta un bloque de cancelación G67 antes de realizar un cambio de herramienta o pasar a una trayectoria secundaria, el control numérico continuará ejecutando el subprograma de la macro de forma automática tras cada desplazamiento secuencial, provocando una colisión mecánica catastrófica.

Resumen Técnico

EspecificaciónDetalles
Códigos de ComandoG65 (Llamada Simple), G66 (Llamada Modal A), G66.1 (Llamada Modal B), G67 (Cancelación Modal)
Grupo ModalGrupo 00 / No modal (G65), Grupo 12 / Modal (G66, G66.1), Cancelación (G67)
Marcas SoportadasFanuc, Siemens, Mitsubishi
Parámetros CríticosFanuc Parámetro 6000 (Bit 0 - G67, Bit 5 - SBM), Siemens $MC_EXTERN_FUNCTION_MASK (Bit 6), Mitsubishi Parámetro #1241 set13/bit5, Parámetro #11053 UserProgramStorage
Restricción PrincipalLa profundidad de anidamiento de macros está estrictamente limitada (5 niveles en Fanuc, 4 niveles en Mitsubishi) en comparación con las llamadas de subprograma M98, y programar G65/G66 en el mismo bloque que los ciclos fijos está estrictamente prohibido.

Lectura Rápida

  • Implementar G65 para Ejecuciones de un Solo Bloque: Programe G65 cuando un subprograma personalizado deba ejecutarse incondicionalmente exactamente una vez sin dejar activo un estado modal.
  • Desactivar la Modalidad mediante G67: Programe siempre un comando G67 independiente inmediatamente después de completar los bucles G66 o G66.1 para evitar la ejecución no deseada de la macro en desplazamientos posteriores.
  • Verificar los Tipos Numéricos de Parámetros: Pase solo enteros para los números de subprograma (P) y repeticiones (L) para evitar fallos instantáneos del control en sistemas Siemens y Mitsubishi.
  • Gestionar Límites Estrictos de Anidamiento: Supervise de cerca las profundidades de anidamiento, manteniendo las llamadas dentro del límite de 5 niveles en Fanuc y de 4 niveles en Mitsubishi para evitar alarmas por exceso.
  • Anclar Destinos de Almacenamiento: Registre los archivos de subprograma dentro de las rutas precisas de disco o dispositivo de memoria declaradas por parámetros como Mitsubishi #11053 UserProgramStorage.
  • Aislar Bloques de Llamada: Programe solo una llamada a macro o ciclo fijo por bloque de NC para evitar conflictos de duplicación de palabras y paradas en la ejecución del programa.

Conceptos Básicos

Los comandos de macro personalizados como G65, G66 y G66.1 proporcionan a los programadores el efecto práctico de programación de pasar argumentos de variables directamente a los subprogramas, lo que permite una programación de piezas altamente dinámica y la creación de ciclos repetitivos. Una causa común de fallo ocurre cuando los programadores utilizan por error direcciones reservadas—como intentar pasar la dirección G como argumento durante una llamada G65 estándar—lo que activa instantáneamente un código de alarma PS0129 y detiene la operación. Los programadores y operadores también deben vigilar cuidadosamente el estado modal activo cuando utilizan G66 (que ejecuta la macro después de cada movimiento de eje) o G66.1 (que se ejecuta para cada bloque). Si un operador se olvida de programar un G67 para cancelar la llamada modal antes de realizar la transición a una nueva trayectoria o un cambio de herramienta, el CNC continuará ejecutando la macro de manera inesperada. Aunque los manuales proporcionados se centran principalmente en fallos de sintaxis en lugar de detallar la destrucción mecánica, una macro modal no cancelada podría ordenar fácilmente movimientos secundarios erráticos y acumulativos que lleven la herramienta fuera de los límites hacia una mordaza, mandril, clamp o torreta, causando finalmente una colisión dura o generando una pieza defectuosa como pieza rechazada.

El uso seguro dicta un control estricto sobre cómo se ejecutan estas macros durante las pruebas. Mediante el uso del parámetro 6000#5 (SBM), los operadores pueden dictar explícitamente si una parada de bloque único es válida o no dentro de la instrucción de macro personalizada, evitando físicamente que la máquina ejecute bucles lógicos complejos y no verificados durante la verificación de la primera pieza. La arquitectura de Fanuc exhibe comportamientos altamente diferenciados en su gestión de llamadas a macro. Primero, Fanuc divide explícitamente su funcionalidad de macro modal en dos comportamientos distintos: G66 retrasa matemáticamente la ejecución de la macro hasta que se completa un bloque de movimiento de ejes (ideal para patrones de taladrado personalizados), mientras que G66.1 ejecuta incondicionalmente la macro para cada bloque de NC, independientemente del movimiento. Segundo, Fanuc integra una jerarquía rígida de alias de parámetros (como los parámetros 6050 a 6059), lo que permite a los fabricantes de máquinas herramienta mapear códigos G o M estándar directamente a programas de macro de la serie 9000, enmascarando eficazmente la sintaxis compleja de G65 para el operador. Finalmente, Fanuc separa estrictamente sus límites de anidamiento matemático, imponiendo una restricción máxima de cinco niveles de profundidad específicamente para las llamadas a macro, funcionando de manera completamente independiente de su límite de anidamiento de subprogramas de 15 niveles.

El efecto práctico de programación de utilizar G65 y G66 es la capacidad de ejecutar instantáneamente lógica personalizada al tiempo que se pasan variables dinámicamente a la memoria de fondo del controlador sin modificar la subrutina principal. Mientras que G65 ejecuta la macro exactamente una vez, los programadores y operadores deben vigilar intensamente el estado del sistema cuando G66 está activo. Debido a que una macro modal se ejecuta implícitamente después de cada bloque de desplazamiento, cualquier estado activo no supervisado puede resultar desastroso durante los movimientos de transición. Por ejemplo, si un operador olvida comandar G67 y ejecuta un movimiento rápido de cambio de herramienta o posiciona los ejes cerca de un dispositivo de sujeción periférico rígido, el controlador se sumergirá automáticamente en la lógica de mecanizado de la macro en la ubicación incorrecta. Esta ejecución no comandada puede dirigir la herramienta directamente hacia una mordaza endurecida, un mandril cerrado o una torreta de indexación, lo que resulta en una colisión dura catastrófica o genera una pieza rechazada debido a un sobremecanizado no deseado. Para garantizar un uso seguro, los operadores deben asegurarse de que el marco de coordenadas esté despejado, verificar que los dispositivos de sujeción mecánica como un clamp estén correctamente acoplados y siempre aislar sistemáticamente las macros modales dentro de bloques de programa discretos para evitar una ejecución descontrolada. El fallo en la gestión de estos estados conducirá inevitablemente a violaciones graves de coordenadas y activará un código de alarma que paralizará por completo el canal.

Estructura de Comandos

La estructura de una llamada a macro consiste en el código G de llamada, el número de programa objetivo, el número de repeticiones y la lista de argumentos. La lista de argumentos asigna valores numéricos directamente a las variables correspondientes en la subrutina, lo que permite que un solo programa realice múltiples tareas basadas en las dimensiones de entrada.

Dependiendo del tipo de sistema CNC, las variables se mapean a variables locales numeradas o a variables de sistema nombradas. La sintaxis de llamada sigue siendo uniforme en las principales plataformas industriales, aunque cada marca admite expansiones de parámetros y límites de mapeo de variables únicos.

[Sintaxis de Fanuc y Mitsubishi]
G65 P_ L_ [Argumentos de Variable] ;
G66 P_ L_ [Argumentos de Variable] ;
G66.1 P_ L_ [Argumentos de Variable] ;
G67 ;

[Sintaxis de Siemens] G65 P... L... [Parámetros] G66 P... L... [Parámetros] G67

DirecciónDescripciónFormatoNotas
PNúmero de subprograma llamado o nombre de archivoEntero o cadena entre corchetes rectangularesRígidamente entero en Fanuc/Siemens; Mitsubishi admite <Nombre de archivo> de hasta 32 caracteres
LNúmero de repeticiones (número de pasadas)EnteroPor defecto L1 si se omite. Siemens y Mitsubishi rechazan estrictamente los formatos decimales.
ArgumentosVariables dinámicas pasadas a la macroLetras A-Z (excluyendo P, L, O, N)Mapeadas a variables locales (#1-#33) en Fanuc/Mitsubishi, o variables $C_A-$C_Z en Siemens

Aplicaciones de Marca

Fanuc

En los sistemas Fanuc, el comportamiento de llamada a macro personalizado está profundamente gobernado por variables del sistema y parámetros de configuración. Los programadores utilizan el Parámetro 6000 y el Parámetro 6007 para modificar los parámetros de control de la macro.

Las configuraciones de sintaxis estándar utilizan G65 para llamadas simples, G66 para llamadas modales activadas por movimiento y G66.1 para ejecución modal bloque a bloque, con G67 proporcionando el mecanismo de cancelación.

Parámetro / VariableComportamiento de ConfiguraciónAlarma / Versión Asociada
Parámetro No. 6000 (Bit 0)0 (Emite la alarma PS1100 en caso de G67 redundante); 1 (Ignora el comando G67 redundante)PS1100 Cancelación sin llamada modal
Parámetro No. 6000 (Bit 5)0 (Parada de bloque único deshabilitada en la macro); 1 (Parada de bloque único válida en la macro)Control SBM
Parámetro No. 6007 (Bit 3)0 (La llamada modal de código G personalizado actúa como G66.1); 1 (Actúa como G66)Control MGE
Parámetro No. 6007 (Bit 4)0 (Pasa los argumentos en formato NC estándar); 1 (Convierte al formato de macro)Control CVA

Advertencia: Dejar activa una macro modal al ejecutar cambios manuales de herramienta o rápidos activará bucles de macro no deseados y provocará colisiones duras con la torreta o el mandril.

Siemens

Los controles Siemens logran una integración altamente flexible mapeando llamadas de estilo dialecto ISO estándar a variables nativas de Sinumerik. El controlador expande los nombres de programa utilizando la variable $MC_EXTERN_FUNCTION_MASK.

La ejecución de la sintaxis utiliza G65 para operaciones no modales, G66 para llamadas modales de macro y G67 para borrar las selecciones activas de macro modal.

Parámetro / VariableComportamiento de ConfiguraciónAlarma / Versión Asociada
$C_A a $C_ZTransfiere parámetros mapeados desde direcciones A-Z (excepto P, L, O, N)Variables de sistema
$C_I[], $C_J[], $C_K[]Arrays de secuencia cronológica que almacenan múltiples pasadas de parámetros I, J, KSeguimiento de secuencia en $C_I_ORDER
$MC_EXTERN_FUNCTION_MASK (Bit 6)0 (Rellena P con ceros hasta 4 dígitos, >4 dígitos genera alarma); 1 (Sin expansión de ceros, se permiten hasta 8 dígitos)Alarma 12720

Advertencia: Violar el formato de entero estricto para el número de programa P o el límite del bucle L provoca fallos inmediatos en la ejecución de bloques y paraliza el canal.

Mitsubishi

Las plataformas CNC de Mitsubishi integran alias basados en parámetros para mapear subprogramas a códigos personalizados. Los operadores configuran el Parámetro #1241 y el Parámetro #11053 para controlar el mapeo de argumentos y el almacenamiento de programas.

La plataforma admite G65 para llamadas simples, G66 para Llamada Modal A, G66.1 para Llamada Modal B y G67 para cancelar los estados modales activos.

Parámetro / VariableComportamiento de ConfiguraciónAlarma / Versión Asociada
Parámetro #1241 set13/bit50 (L y P no válidos como argumentos de variable); 1 (L y P válidos como argumentos de variable simultáneamente)Configuración de argumento de macro válido
Parámetro #11053Define el dispositivo de búsqueda y la ruta del directorio para el programa de macro llamadoP232 Error de programa si se guarda en otro lugar
Parámetro #7202 G[10] Type0 (Equivalente a M98); 1 (Equivalente a G65); 2 (G66); 3 (G66.1)Tipo de ejecución de código G personalizado
Parámetro #1081 Gmac_P0 (Comportamiento de código G estándar); 1 (Macro con alias activa para código G del sistema)Alias de código G activo

Advertencia: Activar una llamada a macro de usuario en conjunto con modos de control de alta velocidad y alta precisión provoca errores de programa inmediatos.

Comparación de Marcas

Comparación de CaracterísticasFanucSiemensMitsubishi
Profundidad de Anidamiento de MacroEstrictamente limitado a 5 niveles de profundidad.— (no source)Hasta 4 niveles de profundidad.
Profundidad de Anidamiento de SubprogramaHasta 15 niveles de profundidad usando M98.— (no source)Hasta 27 niveles de profundidad usando M98/M99.
Nomenclatura de Archivos por Cadena— (no source) (programas solo numéricos)— (no source)Soportado. Puede encerrar hasta 32 caracteres entre corchetes angulares como <Nombre de archivo>.
Variedades de Llamada ModalAdmite G66 (activación por movimiento) y G66.1 (ejecución por bloque).Admite G66 (activación por desplazamiento de ejes).Admite G66 (Llamada Modal A, activación por movimiento) y G66.1 (Llamada Modal B, ejecución por bloque).
Paso de Array de ParámetrosMapeo de dirección estándar a variables locales #1-#33. La dirección G está prohibida.Mapea a variables $C_A-$C_Z. Admite hasta 10 instancias de I, J, K mediante mapeo de secuencia de array.Asignación estándar. Admite el uso simultáneo de L y P como variables cuando el Parámetro #1241 set13/bit5 = 1.

Análisis Técnico

Las diferencias fundamentales entre las arquitecturas de macro de Fanuc, Siemens y Mitsubishi radican en cómo gestionan las variables del sistema, la asignación de memoria y los límites de sintaxis. Fanuc impone un sistema de mapeo de direcciones altamente estructurado y rígido, donde las letras están estrictamente vinculadas a variables locales numeradas específicas, y el anidamiento está estrictamente limitado a cinco niveles. El sistema divide la ejecución modal claramente entre G66 y G66.1, evitando cualquier superposición en las llamadas basadas en movimiento y basadas en bloque, y se apoya en mapas de parámetros estrictos como 6050-6059 para la creación de alias personalizados.

Siemens se distingue enormemente en su arquitectura de macros frente a otras marcas de control a través de tres estructuras de comportamiento avanzadas. Primero, Siemens proporciona una interoperabilidad entre dialectos sin igual; una macro llamada a través de un G65 de estilo ISO puebla de forma automática y transparente las variables de sistema Siemens nativas (como $C_X o $C_A), lo que significa que la subrutina de fondo se puede escribir completamente en el potente lenguaje Siemens nativo G290 mientras que el programa principal sigue siendo 100% compatible con los programas de pieza del dialecto ISO heredado. Segundo, Siemens integra capacidades increíblemente profundas de paso de parámetros basados en arrays directamente en la cadena del bloque estándar. A diferencia de otros controles que sobrescriben los parámetros duplicados, Siemens permite a los programadores pasar hasta diez valores individuales de I, J y K en un solo bloque G65, organizándolos de forma nativa en arrays cronológicos (por ejemplo, $C_I a $C_I[12]) y rastreando su secuencia exacta de programación a través de $C_I_ORDER, lo que permite pasar patrones geométricos altamente complejos sin necesidad de tablas de variables personalizadas. Finalmente, Siemens permite al fabricante de máquinas gobernar profundamente cómo se asimilan los números de programa de macro a través de máscaras de bits de datos de máquina, otorgando la flexibilidad única de imponer rígidamente los límites de programa heredados de 4 dígitos rellenados con ceros, o expandir la interpretación de la dirección P para acomodar convenciones modernas de nomenclatura de programas de 8 dígitos sin generar errores de sintaxis.

Mitsubishi distingue su arquitectura de macros de otras plataformas de control a través de tres comportamientos distintos y altamente flexibles. Primero, Mitsubishi incorpora una función altamente única G66.1 "Macro Modal Call B" que llama incondicionalmente a la macro para cada bloque individual (manejando todos los datos del bloque excepto los códigos O, N y G como argumentos), en lugar de ejecutarse solo después de los bloques de movimiento de ejes como el comando G66 estándar. Segundo, la plataforma Mitsubishi admite de forma nativa el direccionamiento mediante cadenas alfanuméricas directamente en el bloque de G-code; los programadores pueden llamar a una macro designando un <Nombre de archivo> específico de hasta 32 caracteres de longitud encerrado en corchetes angulares en lugar de estar rígidamente restringidos a las tradicionales direcciones numéricas P. Finalmente, Mitsubishi integra un enorme sistema de alias controlado por parámetros que permite a los usuarios mapear explícitamente hasta 538 códigos G personalizados o del sistema directamente a llamadas a macro G65, G66 o G66.1. Utilizando parámetros como #7202 G[10] Type, esto permite a los fabricantes de máquinas herramienta incrustar permanentemente lógica de ciclo patentada en la arquitectura base de la máquina sin requerir que los operadores memoricen cadenas de variables complejas.

Ejemplos de Programas

Ejemplo de Fanuc: Ciclo de Fresado de Cajera

%
O0001 (MAIN PROGRAM - POCKETING SETUP) ;
G90 G54 G00 X0 Y0 Z10. ;
G65 P9010 L1 X100.0 Y80.0 Z-5.0 F300 ; ; Llamada simple de rutina de cajera con dimensiones
G00 Z100. M30 ;
%
%
O9010 (POCKET ROUTINE - SUBPROGRAM) ;
#10 = #24 / 2.0 (X HALF-WIDTH) ;
#11 = #25 / 2.0 (Y HALF-WIDTH) ;
G01 Z#26 F#9 ;                         ; Penetrar a profundidad objetivo Z
G01 X#10 F#9 ;                         ; Cortar a lo largo de la mitad del ancho de X
Y#11 ;                                 ; Cortar a lo largo de la mitad del ancho de Y
X-#10 ;                                ; Cortar X negativo
Y-#11 ;                                ; Cortar Y negativo
X0 Y0 ;                                ; Volver al centro
M99 ;                                  ; Volver al programa principal
%

ejecución en seco (dry run): El operador ejecuta el bloque G65. El control lee el programa O9010, mapeando la dirección X (100.0) a la variable #24, Y (80.0) a #25, Z (-5.0) a #26 y F (300) a #9. La herramienta se sumerge a Z-5.0 a un feedrate de 300. Luego calcula las mitades de los anchos #10 (50.0) y #11 (40.0), ejecutando una trayectoria de cajera rectangular secuencialmente. En el bloque M99, la subrutina finaliza, devolviendo el control de la trayectoria directamente al bloque G00 en el programa principal O0001.

Ejemplo de Siemens: Array de Orificios Interpolados

; PROGRAMA PRINCIPAL - MOVIMIENTO CIRCULAR
G90 G54 G00 X0 Y0 Z50.0
G66 P1234 A10.0 C45.0 X100.0 Z-10.0    ; La llamada modal se ejecuta después de los desplazamientos
X50.0 Y50.0                            ; El bloque de desplazamiento activa el subprograma 1234
X150.0 Y100.0                          ; El segundo bloque de desplazamiento activa el subprograma 1234
G67                                    ; Cancelar la llamada modal de macro activa
G00 Z100.0 M30
%
; SUBPROGRAMA 1234 - HÉLICE DE MANDRINADO
G01 Z$C_Z F250                         ; Penetración a profundidad Z pasada desde la dirección Z
G03 I$C_A U$C_C                        ; Entrada helicoidal circular usando los parámetros A y C
G01 Z5.0
M99
%

ejecución en seco: El control procesa G66 y carga el subprograma 1234 con los argumentos A=10.0, C=45.0, X=100.0 y Z=-10.0. El eje se desplaza a X50.0 Y50.0. Al alcanzar esta coordenada, se activa el disparador modal, ejecutando la subrutina 1234. La herramienta se sumerge a Z-10.0 ($C_Z) y realiza la entrada helicoidal utilizando los argumentos $C_A y $C_C. Después de M99, la herramienta se desplaza a X150.0 Y100.0, lo que vuelve a activar inmediatamente el subprograma 1234 en la nueva posición. El bloque G67 se ejecuta, cancelando el estado modal antes de la retracción de la herramienta.

Ejemplo de Mitsubishi: Rutina de Palpación Personalizada

; PROGRAMA PRINCIPAL - DIRECCIONAMIENTO POR NOMBRE DE ARCHIVO
G90 G54 G00 X0 Y0 Z25. 
G65 <PROBE_X> L1 X150. Y100. S2. ;     ; Llamar macro por nombre de archivo con variables objetivo
G00 Z100. M30
%
; NOMBRE DE ARCHIVO: PROBE_X
(SUBPROGRAMA PARA MEDICIÓN LATERAL)
G01 X#24 F150 ;
IF [#19 EQ 2.] GOTO 10 ;
#30 = #5021 ;
GOTO 20 ;
N10 #30 = #5022 ;
N20 G00 X0 ;
M99 ;
%

ejecución en seco: El operador inicia G65 con el objetivo alfanumérico <PROBE_X>. El control busca en el disco del Parámetro #11053 UserProgramStorage, carga el archivo PROBE_X y asigna X (150.0) a la variable #24, Y (100.0) a #25 y S (2.0) a #19. El palpador se mueve a X150.0 a un feedrate de 150. Al encontrar que la variable #19 es igual a 2.0, la lógica salta a N10, capturando el registro de coordenadas #5022 en #30. El palpador se retrae a X0 y sale a través de M99 de vuelta al programa principal.

Análisis de Errores

Marca y AlarmaCondición de ActivaciónSíntoma del OperadorCausa Raíz / Solución
Fanuc - PS1100Comando de cancelación G67 ejecutado cuando no hay un estado modal G66 activo.El programa se detiene instantáneamente con un indicador de estado rojo en el panel.El Parámetro 6000#0 está configurado en 0. Corrija el programa para eliminar el G67 redundante o configure el Parámetro 6000#0 en 1.
Fanuc - PS0129La dirección 'G' se incluye en la lista de asignación de argumentos de G65 o G66.Parada inmediata por alarma de sintaxis en el bloque al analizar la llamada.La dirección G está reservada. Cambie el código del argumento de G a otra letra de variable (A-Z excepto P, L, O, N) o use G66.1.
Siemens - Alarma 12720Se programa G65 o G66 sin definir un número de subprograma a través de la dirección P.La máquina se detiene, mostrando una alarma de ejecución de ciclo en la pantalla.Falta el número de subprograma objetivo. Agregue un número de subrutina válido utilizando la dirección P en la llamada a la macro.
Siemens - Alarma 12722G65/G66 programado en el mismo bloque que un ciclo fijo (G81-G89) u otra macro.El CNC rechaza el análisis del bloque y congela el movimiento del canal.Conflicto de bloques. Separe la llamada a la macro y el ciclo fijo o comando secundario en bloques consecutivos separados.
Mitsubishi - P276Se emite el comando de cancelación G67 mientras el CNC no está en un estado de llamada modal G66/G66.1 activo.Los ciclos de NC se detienen, devolviendo un error de ejecución de programa.Secuencia de cancelación ilegal. Programe G67 solo después de las rutinas de macro modal activas.
Mitsubishi - P232La subrutina de macro designada está registrada en un dispositivo de almacenamiento no autorizado.El control muestra un error de archivo faltante, deteniéndose a mitad del ciclo.Desajuste de ruta. Mueva el archivo de subrutina al dispositivo que coincida con el Parámetro #11053 UserProgramStorage.

Nota de Aplicación

La pérdida de control dimensional en el mecanizado continuo representa un peligro crítico para la rentabilidad del taller. 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. En sistemas Fanuc, validar la configuración de ejecución en bloque a bloque mediante el parámetro 6000#5 (SBM) elimina la causa más frecuente de parada no planificada en este comando, permitiendo detener la máquina de forma segura ante cualquier desviación inesperada de las coordenadas locales. De igual modo, en controles Siemens, la supervisión de las variables array como $C_I[] a $C_I[12] y el orden de secuencia en $C_I_ORDER evita desfases en la interpolación de geometrías complejas. Por último, en entornos Mitsubishi, coordinar la ruta exacta de almacenamiento con el parámetro #11053 UserProgramStorage neutraliza los errores repentinos P232 que interrumpen los accionamientos de los ejes a mitad de proceso. El operario debe certificar que los dispositivos de sujeción física, como la mordaza o el mandril, estén perfectamente posicionados y alineados, y que los límites de anidamiento de macros (5 niveles en Fanuc y 4 en Mitsubishi) se respeten estrictamente antes de iniciar el mecanizado en serie.

Red de Comandos Relacionados

  • Llamada a Subprograma M98 / M99: Ejecuta subprogramas sin transmisión de variables de argumentos, lo que permite un anidamiento de hasta 15 niveles en Fanuc y 27 niveles en Mitsubishi.
  • Parada Exacta / Trayectoria Continua G60: A menudo se empareja con rutinas de macro personalizadas para forzar la desaceleración completa de los ejes entre pasos de coordenadas, evitando el redondeo de esquinas durante bucles de macro de alto avance, lo cual se detalla en Parada Exacta / Trayectoria Continua G60.
  • Anulación de Esquinas / Roscado G62 / G63: Evita la desaceleración del avance de corte o el astillado de esquinas dentro de subprogramas críticos de roscado y cajeras de macro, como se describe en Anulación de Esquinas / Roscado G62/G63.
  • Ajuste del Sistema de Coordenadas G50 / G92: Establece coordenadas de trabajo globales, asegurando que los decalajes de macro variables se alineen perfectamente con las referencias físicas de la pieza de trabajo, como se cubre en Ajuste del Sistema de Coordenadas G50 y G92.

Conclusión

La implementación segura de los comandos G65, G66 y G67 en el taller reduce significativamente el tiempo de ciclo al optimizar subprogramas repetitivos sin comprometer la seguridad física del equipo. Mantener una estricta disciplina en la desactivación del estado modal mediante G67 antes de movimientos rápidos o cambios de herramienta elimina fallos inesperados y paradas forzadas de producción. La verificación sistemática de parámetros clave y el control preciso del anidamiento de macros aseguran una producción libre de piezas rechazadas, maximizando la eficiencia operativa y garantizando la máxima precisión dimensional en cada lote mecanizado.

Preguntas Frecuentes (FAQ)

¿Qué causa la alarma PS0129 en Fanuc al ejecutar G65?

Esta alarma se genera cuando se intenta utilizar la letra G como un argumento de variable dentro de una llamada G65 o G66, lo cual está prohibido debido a que G es una palabra clave reservada del sistema. Solo se permite el uso de la variable G en llamadas de bloque completo G66.1. Acción práctica: Modifique la lista de argumentos para emplear letras válidas como A, B o C en lugar de G para transferir los valores a las variables locales #1-#33.

¿Cómo influye el parámetro 6000#5 (SBM) en la seguridad durante las pruebas?

El bit 5 del parámetro 6000 (SBM) controla si la ejecución en bloque a bloque está activa o desactivada dentro de las macros de usuario. Si está desactivada, el control ejecuta toda la lógica de la macro a alta velocidad sin detenerse, lo que puede causar colisiones graves si hay un error de cálculo. Acción práctica: Establezca el parámetro 6000#5 a 1 durante la puesta a punto de la primera pieza para poder validar línea por línea el comportamiento de las coordenadas de la macro.

¿Qué ocurre si se omite el comando G67 después de una llamada modal G66?

Si se omite el comando G67, el modo modal de macro permanece activo en la memoria del control. Como consecuencia, la máquina continuará ejecutando el subprograma de macro de forma automática después de cada comando de movimiento posterior, incluidos los posicionamientos rápidos o los cambios de herramienta, lo que provocará colisiones mecánicas críticas con mordazas, mandriles o torretas. Acción práctica: Programe siempre un bloque G67 independiente inmediatamente después de finalizar las trayectorias de movimiento de la macro para desactivar la modalidad.

¿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