Uso de G65, G66 y G66.1 en CNC: macros personalizadas modales
El uso de macros personalizadas en CNC permite automatizar tareas de mecanizado con precisión. Sin embargo, el comando G65 no es modal y obliga a repetir argumentos en cada llamada, lo que limita su eficiencia. Frente a ello, los comandos G66 y G66.1 ofrecen alternativas modales que simplifican la programación, permiten mayor flexibilidad y optimizan procesos repetitivos.
El código G66.1 ejecuta inmediatamente la Custom Macro y permite reasignar variables locales en cada línea posterior, hasta la cancelación con G67. Su ventaja principal es la flexibilidad para modificar parámetros como profundidad, radio o avance de corte durante el mecanizado.
Aunque el código G65 no permite ejecutar de forma simple y repetida una Custom Macro en múltiples ubicaciones, G66 y G66.1 ofrecen soluciones modales para lograrlo.
Si has programado con Custom Macro, probablemente sepas que una forma de llamar a un programa de macro personalizada es mediante el comando G65. Este se coloca en un programa principal, especificando el número de programa de la Custom Macro (con la palabra P) y una serie de argumentos con direcciones de letra (variables) que se pasan a la macro.
Considera el siguiente comando para llamar a una macro personalizada de mecanizado de bolsillo circular:
N050 G65 P1000 X5.0 Y5.0 Z0 D0.5 R0.75 F5.0
- X y Y especifican la ubicación del centro del bolsillo.
- Z indica la superficie donde la máquina hará el bolsillo.
- D es la profundidad.
- R es el radio del bolsillo.
- F especifica el avance de corte.
El código G65 no es modal. Para mecanizar otro bolsillo circular en una ubicación diferente, el usuario debe introducir otro comando G65 completo, y cambiar, por supuesto, los argumentos correspondientes.
Sin embargo, los CNC FANUC disponen de dos códigos G para llamar de forma modal a una Custom Macro: G66 y G66.1. Tras activar cualquiera de ellos, es necesario usar G67 para cancelarlos.
G66
G66 no llama por sí mismo a la Custom Macro, únicamente asigna las variables locales que corresponden a los argumentos de dirección de letra especificados. Considera estos comandos:
N050 G66 P1000 Z0 D0.5 R0.75 T0.5 F5.0
N055 G00 X5.0 Y5.0
N060 X10.0
N065 Y10.0
N070 X5.0
N075 G67
- La línea N050 asigna el valor de Z a la variable local #26, el de D a #7, el de R a #18, el de T a #20 y el de F a #9.
- Pero esta línea no llama a la Custom Macro O1000.
En el siguiente comando (N055), que debe ser un comando de movimiento (normalmente G00 o G01), el CNC se moverá a la posición indicada y entonces llamará a la Custom Macro O1000.
Las variables locales asignadas en el comando G66 estarán disponibles para su uso en la Custom Macro, pero no se podrán actualizar después de ejecutar el G66. El CNC seguirá posicionándose y llamando a la macro en los comandos de movimiento posteriores hasta llegar al G67 (N075).
Ejemplo de la Custom Macro de bolsillo circular usando G66:
O1001 (Custom Macro llamada por G66)
#32 = #5001 (Obtener la posición absoluta actual de X)
Z[#26+0.1] (Mover a posición de aproximación)
G01 Z[#26-#7] F[#9/2] (Bajar al bolsillo)
G02 X[#32+#18-#20/2] R[[#18-#20/2]/2] F#9
I-[#18-#20/2]
X#32 R[[#18-#20/2]/2]
G00 Z[#26+0.1]
M99
G66.1
Al igual que G66, un comando G66.1 especifica el número de la Custom Macro y asigna las variables locales a los valores de los argumentos de dirección de letra. También, como G66, requiere finalmente un comando G67 para cancelar la llamada modal.
Pero, a diferencia de G66, G66.1 sí llama a la Custom Macro inmediatamente. Considera estos comandos:
N050 G66.1 P1001 X5.0 Y5.0 Z0 D0.5 R0.75 T0.5 F5.0
N055 X10.0
N060 Y10.0
N065 X5.0
N070 G67
- La línea N050 mecanizará el primer bolsillo.
- En cada comando posterior que no sea un comando de movimiento, el CNC reasignará las variables locales y volverá a llamar a la Custom Macro.
En N055, por ejemplo, la variable local #24 (X) toma el valor 10.0. Si la Custom Macro está programada correctamente, un comando de movimiento en la macro desplazará la herramienta a esta posición antes de comenzar a mecanizar el bolsillo.
La ventaja de G66.1 sobre G66 es que cualquiera de los argumentos puede cambiarse en cualquiera de las veces que se llame a la macro. Si, por ejemplo, la profundidad del bolsillo cambia para el bolsillo mecanizado en N060, el programador puede incluir la dirección D en esa línea.
Usar G66.1 para crear Custom Macros es más complejo que con G66. Como los valores de todas las variables locales vuelven a estar vacíos al llegar al comando M99 que finaliza la macro, el usuario debe almacenar esos valores en variables comunes, que solo se pierden cuando se apaga la máquina.
Ejemplo de Custom Macro usando G66.1:
O1001 (Custom Macro llamada por G66.1)
(Cambiar valores de los argumentos incluidos en el comando de llamada)
IF [#24 NE #0] THEN #100 = #24
IF [#25 NE #0] THEN #101 = #25
IF [#26 NE #0] THEN #102 = #26
IF [#7 NE #0] THEN #103 = #7
IF [#18 NE #0] THEN #104 = #18
IF [#20 NE #0] THEN #105 = #20
IF [#9 NE #0] THEN #106 = #9
G00 X#100 Y#101 (Mover al centro del bolsillo)
Z[#102+0.1] (Mover a posición de aproximación)
G01 Z[#102-#103] F[#106/2] (Bajar al bolsillo)
G02 X[#100+#104-#105/2] R[[#104-#105/2]/2] F#106
I-[#104-#105/2]
X#100 R[[#104-#105/2]/2]
G00 Z[#102+0.1]
M99
Comparación de códigos G65, G66 y G66.1 en CNC FANUC
| Comando | Tipo de ejecución | Modalidad | Flexibilidad de parámetros | Necesita G67 | Caso de uso recomendado |
|---|---|---|---|---|---|
| G65 | Llama macro inmediatamente | No modal | Se deben repetir todos los argumentos en cada llamada | No | Útil para pruebas rápidas o llamadas únicas |
| G66 | No ejecuta macro al inicio, solo asigna variables | Modal | Los argumentos iniciales no pueden modificarse | Sí | Adecuado para repeticiones simples con parámetros fijos |
| G66.1 | Llama macro inmediatamente | Modal | Permite modificar cualquier argumento en cada bloque | Sí | Ideal para procesos repetitivos con cambios dinámicos |
Cuál comando de macro personalizada es mejor: ¿G66 o G66.1?
Aunque requiere más trabajo de programación, G66.1 proporciona más flexibilidad que G66. En particular, el programador puede cambiar cualquier argumento en cualquiera de los comandos entre el G66.1 y el G67. En este sentido, una Custom Macro llamada con G66.1 se comporta casi exactamente como cualquier ciclo fijo de mecanizado de taladros, como G81.
Por otro lado, si se tiene la certeza de que no será necesario ningún cambio después de especificar el conjunto inicial de argumentos, usar G66 puede ser más adecuado para la aplicación, ya que es mucho más fácil de usar.
Contenido relacionado
La comunicación facilita el monitoreo de máquinas CNC
AccuRounds, un fabricante con sede en Massachusetts, logró aumentar la eficiencia en su taller mediante la implementación de MachineMetrics, un sistema de monitoreo de máquinas CNC en tiempo real. Este caso demuestra cómo la gestión de datos puede transformar los procesos industriales, superando desafíos internos y maximizando el retorno de inversión.
Leer MásCómo el ERP y el MES capturan datos reales en el piso CNC
Un taller con ERP y MES puede seguir sin saber si sus datos en tiempo real son confiables: la captura manual introduce error sistemático y la latencia entre el evento en máquina y la alerta decide si el dato corrige a tiempo o solo explica lo ocurrido
Leer MásTendencias en CNC para 2025: innovación al servicio de la manufactura avanzada
El control numérico computarizado (CNC) está marcando la pauta para una manufactura más eficiente, conectada y sostenible.
Leer MásManufactura basada en datos: del monitoreo a la decisión en el taller
Los controles CNC, sensores y sistemas ERP de un taller generan datos continuamente, pero la fragmentación entre sistemas convierte esa información en un recurso subutilizado. La diferencia entre monitoreo y manufactura basada en datos está en cerrar la brecha entre el dato disponible y la decisión operativa.
Leer MásLea a continuación
Velocidad de avance en CNC con códigos G personalizados
La programación CNC avanzada permite optimizar movimientos circulares con macros personalizadas. Este artículo detalla cómo los códigos G102 y G103, definidos por el usuario, automatizan el ajuste de la velocidad de avance en fresado circular, considerando la compensación de radio de herramienta.
Leer MásDiferencias entre resolución visible y real en controles CNC
En los sistemas CNC modernos, la resolución que se muestra en pantalla no refleja siempre la precisión real de procesamiento. Este artículo explica cómo los controles pueden aceptar incrementos menores a los visibles, y cómo este conocimiento mejora el control dimensional en piezas con tolerancias estrictas, especialmente en aplicaciones de alta precisión.
Leer MásMacros CNC para omitir agujeros tras rotura de herramienta
En operaciones CNC, una herramienta puede fallar antes de completar su ciclo. Este artículo analiza cómo macros personalizadas, utilizando variables locales vacías y argumentos condicionales, permiten omitir agujeros afectados tras la rotura. Esta técnica mejora la eficiencia operativa y facilita la reanudación del programa sin reiniciar.
Leer Más
