Guía de Programación G65: Llamada a Macro Non-Modal en CNC
Aprenda a programar llamadas a macro G65 en controles Fanuc, Siemens y Mitsubishi. Configure variables locales, evite el Program Error P33 y prevenga colisiones.
Introducción
Un desvío matemático o un error de cálculo de coordenadas dentro de las ecuaciones de una macro G65 hace que la torreta (turret) portaherramientas se desplace a lo largo de una trayectoria desviada y no compensada, provocando una colisión catastrófica (hard collision) contra las mordazas de un chuck de husillo, una mordaza de prensa (vise jaw) o bridas de sujeción (clamp). 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. 1241 (o el Parameter #1241 en controles Mitsubishi) elimina la causa más frecuente de parada no planificada en este comando, evitando tiempos de inactividad imprevistos y la acumulación de scrap. Para garantizar la seguridad del proceso al retornar al programa principal, es crítico gestionar correctamente las compensaciones de origen activas, tales como el G54 workpiece coordinate system, la G53 machine coordinate selection y el G52 local coordinate system. 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écnico | Especificación |
|---|---|
| Código de Comando | G65 |
| Grupo Modal | Grupo 00 (Non-modal / One-shot) |
| Marcas Soportadas | Fanuc, Siemens, Mitsubishi |
| Parámetros Críticos | Fanuc: Parameter 1241, Parameter 3402; Siemens: MD 18800, $MC_EXTERN_FUNCTION_MASK; Mitsubishi: Parameter #1241, Parameter #1296 |
| Restricción Principal | La profundidad de nesting está limitada a 4 niveles, y las sentencias de macro consecutivas pueden agotar el búfer de prelectura (look-ahead). |
Lectura Rápida
- La decisión de usar G65 permite la transferencia dinámica de parámetros a variables locales, posibilitando cálculos geométricos paramétricos.
- La activación de G65 llama al subprograma únicamente en el bloque donde está escrito, al tratarse de una instrucción non-modal.
- La configuración del parámetro 1241 en Fanuc y Mitsubishi determina si las letras de dirección L y P se tratan como argumentos.
- Es obligatorio cambiar el intérprete de Siemens al modo ISO Dialect mediante G291 para analizar y procesar bloques G65.
- Limitar el nesting de macros a un máximo de cuatro niveles evita desbordamientos de la pila de registros en todos los sistemas de control.
- Evitar los separadores de coma en las definiciones de argumentos es obligatorio para prevenir errores de sintaxis como el Program Error P33.
Conceptos Básicos
La programación práctica de la llamada a macro personalizada non-modal G65 proporciona a los programadores la flexibilidad matemática para desarrollar trayectorias de herramienta paramétricas altamente dinámicas. A diferencia de los subprogramas estándar llamados con M98, que simplemente repiten bloques de geometría estática, G65 ejecuta una llamada a macro de un solo disparo (one-shot) mientras transfiere valores de parámetros críticos como variables locales (#1 a #33) o variables del sistema al espacio de memoria de la macro. Esto permite que el programa de la macro calcule coordenadas, avances (feedrates) y escalados sobre la marcha (on-the-fly), lo cual es sumamente efectivo para familias de piezas, círculos de agujeros de perno o ciclos de mecanizado personalizados. Sin embargo, debido a que G65 es non-modal, aplica comprobaciones de desaceleración y se analiza inmediatamente después de su ejecución.
Los operadores y programadores deben mantener una vigilancia absoluta al configurar programas que utilizan llamadas a macro G65 anidadas (nested). Antes de iniciar los ciclos automáticos, el operador de configuración debe posicionar y asegurar físicamente el material en bruto dentro de la mordaza de prensa (vise jaw), el chuck de husillo o la brida de sujeción (clamp) de la mesa. Si se ejecuta un error de cálculo de coordenadas dentro de los cálculos de la macro, la herramienta se desplazará a lo largo de una trayectoria no compensada. En lugar de detenerse de manera segura en los límites de software establecidos, la torreta (turret) o el portaherramientas pueden desviar los límites de recorrido por software (soft travel limits) y dirigir la herramienta de corte directamente hacia una brida de sujeción (clamp) de mesa, una mordaza de prensa (vise jaw) de fijación de material en bruto o las garras rotativas de un chuck de husillo. Esta desviación repentina de las coordenadas da como resultado una colisión catastrófica (hard collision), destroza la herramienta de corte, daña los husillos de bolas de los ejes, activa un código de alarma de sobrecarga de eje o de preprocesador, y convierte el material en bruto en una pieza rechazada (scrap part) completamente arruinada.
Una causa crítica de falla del programa ocurre cuando el búfer de prelectura (look-ahead pre-read buffer) se agota debido a demasiados bloques consecutivos sin movimiento (como cálculos de variables o asignaciones de variables del sistema) dentro del programa de la macro. Si se supera el límite de prelectura mientras la compensación del radio de la fresa está activa, el control no logra calcular los vectores de intersección correctos, lo que provoca una desviación silenciosa de la trayectoria que sobrecorta el material, dando como resultado una pieza rechazada (scrap part) arruinada y activando un código de alarma de offset. Además, al probar macros en la interfaz HMI, los operadores nunca deben intentar ajustar los selectores manuales de overrides de avance o overrides de husillo cuando los ciclos de roscado con macho o roscado están activos dentro de la macro, ya que las reglas de sincronización de eje a husillo bloquean estos overrides al 100% para evitar el barrido de los hilos.
Estructura de Comandos
El comando G65 está estructurado para especificar el subprograma de macro de destino y las variables que se le pasan en un solo bloque. El número de programa se identifica mediante la dirección P, que representa el subprograma almacenado en la memoria. Alternativamente, se puede escribir un nombre de archivo de texto entre corchetes angulares para llamar a archivos externos. La dirección L especifica el número de repeticiones del programa de la macro, lo que permite al controlador repetir los cálculos y movimientos sin regresar al programa principal entre pasadas.
Las direcciones restantes en el bloque se tratan como argumentos que se asignan a variables locales específicas. Los compiladores admiten dos designaciones principales de asignación de argumentos. La Designación de Argumento I asigna letras de dirección alfabéticas a variables locales. La Designación de Argumento II se utiliza cuando se pasan varios conjuntos de valores de coordenadas, asignando las coordenadas de forma secuencial. Los valores de los parámetros son leídos por la macro y almacenados en registros de variables locales para ejecutar ajustes matemáticos y de trayectoria sobre la marcha (on-the-fly).
G65 P__ L__ [arguments] ;
Para el modo nativo de Siemens SINUMERIK, la sintaxis incluye subcódigos y parámetros adicionales:
G65 Pxxxx Lyyyy <arguments> ;
| Marca | Parámetro / Variable | Descripción |
|---|---|---|
| Fanuc | Parameter 1241 (Bit 5) | Habilita la función de validez de argumento de macro L/P para asignar L y P a variables locales. |
| Fanuc | Parameter 3402 (Bit 6) | Parámetro de estado de borrado que determina si los estados modales se inicializan al restablecer. |
| Siemens | $MC_EXTERN_FUNCTION_MASK (Bit 6) | Controla el relleno de dígitos y el límite de análisis de los números de programa G65. |
| Siemens | MD 18800 $MN_MM_EXTERN_LANGUAGE | Activa el compilador externo de ISO Dialect NC. |
| Mitsubishi | Parameter #1241 (Bit 5) | Configuración de la función de validez de argumento de macro L/P. |
| Mitsubishi | Parameter #1296 (Bit 5) | Determina si G65 se trata como una sentencia ejecutable o una sentencia de macro. |
Aplicaciones de Marca
Fanuc
En los sistemas Fanuc, G65 es un comando de Grupo 00 non-modal. Permite la asignación dinámica de parámetros, que se configura mediante el parameter 1241 y el parameter 3402 para controlar la asignación de argumentos y los estados de borrado.
G65 P1000 A10.5 B20.0 X30.0 Y50.0 F150.0 ;
| Categoría | Elemento del Sistema | Descripción |
|---|---|---|
| Parámetro | Parameter 1241 | Habilita la función de validez de argumento de macro L/P cuando se establece en 1. |
| Parámetro | Parameter 3402 | Controla la inicialización del estado modal al restablecer. |
| Alarma | Program Error (P232) | Se activa si no se encuentra el número de programa P designado. |
| Alarma | Program Error (P241) | Se activa si una expresión de variable contiene un número de variable negativo. |
| Versión | Series 15 Format | El formato heredado (Parameter 0001 Bit 1 FCV = 1) cambia los formatos de subprograma. |
Advertencia: Intentar programar saltos de secuencia con códigos H provocará un error de sintaxis, ya que H se interpreta como la variable #11.
Siemens
Los controles Siemens analizan los bloques G65 cuando se cambia al modo ISO Dialect mediante G291. Los números de programa se rellenan con ceros a cuatro dígitos si $MC_EXTERN_FUNCTION_MASK se establece en 0.
G291 ;
G65 P0010 F55 X150.0 Y100.0 S2000 ;
G290 ;
| Categoría | Elemento del Sistema | Descripción |
|---|---|---|
| Parámetro | $MC_EXTERN_FUNCTION_MASK (Bit 6) | Controla el relleno de dígitos (Bit 6 = 0: relleno a 4 dígitos; Bit 6 = 1: hasta 8 dígitos). |
| Parámetro | MD 18800 $MN_MM_EXTERN_LANGUAGE | Debe establecerse en 1 para compilar bloques G65 externos. |
| Alarma | Alarm 61800 | Falta el sistema CNC externo cuando MD 18800 está desactivado. |
| Alarma | Alarm 12722 | Más de una llamada a subrutina o reemplazo de macro por bloque. |
| Versión | 840D sl vs. 802D sl | El 802D sl bloquea rígidamente WALIM_GEOAX_CHANGE_MODE y carece de opciones de prevención de colisiones. |
Advertencia: No especificar un índice al leer variables de matriz (array) como $C_I, $C_J o $C_K provocará errores de sintaxis del preprocesador.
Mitsubishi
En los sistemas Mitsubishi, G65 se configura a través del parámetro #1241 para asignar direcciones L y P y del parámetro #1296 para gestionar el movimiento bloque a bloque.
G65 P1000 A15.0 B25.0 F150.0 Z-10.0 ;
| Categoría | Elemento del Sistema | Descripción |
|---|---|---|
| Parámetro | Parameter #1241 | Habilita la función de validez de argumento de macro L/P cuando se establece en 1. |
| Parámetro | Parameter #1296 | Determina si G65 se trata como una sentencia ejecutable o una sentencia de macro. |
| Alarma | Program Error (P232) | Se activa si no se encuentra el número de programa P designado en la memoria del NC. |
| Alarma | Program Error (P33) | Se activa si se programan argumentos separados por comas cuando el parámetro #1241 está activo. |
| Versión | M80V Type B Series | Los modos de alta precisión están sujetos a bloqueos, y la interpolación spline (G61.2) activa P39. |
Advertencia: Ejecutar macros con Macro Single activo detendrá el movimiento del eje en cada sentencia, dejando potencialmente marcas de parada (dwell marks) de la herramienta.
Comparación de Marcas
| Característica / Tema | Fanuc | Siemens | Mitsubishi |
|---|---|---|---|
| Estructura de Registro de Variables | Mapeo plano de variables locales (#1 a #33) | Variables estructuradas con prefijo $C_ (por ejemplo, $C_A, $C_I[]) | Mapeo plano de variables locales (#1 a #33) |
| Alternancia de Compilador Bilingüe | Ejecución nativa sin alternancia | Requiere alternar el intérprete al modo ISO Dialect mediante G291 para analizar bloques G65 de ISO | Admite compilador de cambio de formato mediante formatos de torno/fresadora G188/G189 |
| Restricción de Argumento de Macro L/P | Analizado de forma nativa sin configuración de bits | Descarta las variables planas, depende completamente del sistema $C_ | Soportado en la serie M8 mediante el parámetro #1241 set13/bit5 para alternar la validación |
| Recuperación de Coordenadas / Retorno Inverso | No se admite el retroceso por volante ni el seguimiento de trayectoria dinámica | Deselecciona decalajes de origen activos y modales durante el retroceso de frame nativo | Admite retroceso por volante mediante retorno inverso manual G127, manteniendo los estados del sistema de coordenadas de la macro en el almacenamiento modal |
Análisis Técnico
El análisis de las arquitecturas de macros de los tres fabricantes revela diferencias fundamentales en las estructuras de las variables de parámetros. Los controles Fanuc y Mitsubishi asignan las letras de argumento de G65 directamente a variables locales planas numeradas de #1 a #33, manteniendo una alta compatibilidad. En cambio, los controles Siemens que ejecutan en modo nativo descartan por completo las tablas de registros locales planos, utilizando en su lugar variables de sistema estructuradas de tipo REAL o INT con un prefijo $C_ (como $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 G65 heredados de estilo ISO, luego ejecute frames paramétricos nativos en modo Siemens mediante G290 y regrese al modo ISO mediante G291 para el movimiento. Mitsubishi utiliza un interruptor de formato de programa bimodal (G188/G189) que vuelve a asignar los modales de macro sobre la marcha (on-the-fly) entre los sistemas de torno y fresadora. Fanuc analiza los argumentos de G65 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 un indicador de validación bloqueado por parámetro (parámetro #1241 set13/bit5) para habilitar o deshabilitar las direcciones L y P como argumentos, una función que no está presente en los controles estándar de Fanuc. Además, Mitsubishi integra los estados de coordenadas modales de G65 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 la 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
G65 P1000 A10.5 B20.0 X30.0 Y50.0 F150.0 ;
ejecución en seco
El operador inicia una ejecución en seco en modo bloque a bloque. El bloque 1 llama al subprograma de macro O1000 una vez. El argumento A se transfiere a la variable local #1 con el valor 10.5, B se asigna a #2 como 20.0, X se asigna a #24 como 30.0, Y se asigna a #25 como 50.0 y F se asigna a #9 como 150.0. El controlador se pausa para cargar estos registros de variables locales, evalúa las ecuaciones de coordenadas y de avance dentro del programa de la macro y ejecuta la trayectoria de la herramienta. Una vez que termina la macro, el control regresa al programa principal.
Ejemplo de Siemens
N10 G291 ;
N20 G65 P0010 F55 X150.0 Y100.0 S2000 ;
N30 G290 ;
ejecución en seco
Durante la ejecución en seco del programa, el bloque N10 cambia el compilador al modo ISO Dialect para interpretar las estructuras de macro. El bloque N20 llama al programa de macro O0010, transfiriendo los parámetros F, X, Y y S a las variables del sistema. El bloque N30 vuelve a cambiar el compilador al modo nativo de Siemens. Dentro del subprograma de la macro, los valores se leen de las variables del sistema (como $C_X, $C_Y) y se almacenan en variables locales de Siemens para calcular las trayectorias de las herramientas. La macro termina con M99 o M17 para reanudar el programa principal.
Ejemplo de Mitsubishi
G65 P2000 A1.1 B-2.2 D3.3 I4.4 I7.7 ;
ejecución en seco
El operador supervisa la ejecución en seco. El bloque 1 llama al subprograma de macro O2000. El argumento A se asigna a #1 como 1.1, B se asigna a #2 como -2.2, D se asigna a #7 como 3.3. La dirección I se programa dos veces en el bloque: I4.4 se asigna a #4, pero la segunda I7.7 sobrescribe la variable #7. Esta designación duplicada de argumentos sobrescribe el argumento D, lo que significa que la variable #7 se carga con 7.7 en lugar de 3.3. El control ejecuta la trayectoria utilizando el valor sobrescrito, lo que requiere una verificación cuidadosa de la trayectoria para evitar colisiones.
Análisis de Errores
| Marca | Código de Alarma | Condición de Activación | Síntoma del Operador | Causa Raíz / Solución |
|---|---|---|---|---|
| Fanuc | Program Error (P232) | El número de programa P_ designado llamado por G65 no se encuentra en la memoria del programa NC. | La máquina detiene la ejecución inmediatamente en el bloque G65 y muestra el mensaje de alarma. | Asegúrese de que el subprograma correspondiente al número O exista en la memoria del NC. |
| Fanuc | Program Error (P33) | Los comandos de macro G65 no se emiten en un bloque independiente, o los argumentos contienen comas. | El control CNC entra en estado de parada de avance (feed hold) y detiene la ejecución antes de que comiencen los movimientos del bloque. | Aísle el comando G65 en su propio bloque de programa y elimine los separadores de comas de los argumentos. |
| Siemens | Alarm 61800 "External CNC system missing" | Se ordena G291 o una llamada a macro G65 mientras el dato de máquina MD 18800 está desactivado. | El sistema de control se niega a analizar la instrucción G65 y detiene el procesamiento inmediatamente. | Habilite MD 18800 o configure el bit de opción 19800 para activar el intérprete de dialecto NC externo. |
| Siemens | Alarm 12722 | Se ejecuta más de una llamada a subrutina o reemplazo de macro de función M por bloque. | El preprocesador se detiene, impidiendo la ejecución del bloque de programa y mostrando el código de alarma. | Separe las múltiples llamadas a macro y llamadas a subprograma en bloques de programa de pieza distintos. |
| Mitsubishi | Program Error (P33) | Se ordena la dirección ,D o una cadena dentro de < > cuando la función de argumento de macro L/P válida está habilitada. | El control detiene el movimiento de los ejes y muestra la alarma en el panel del operador. | Elimine las comas y verifique que la sintaxis de los parámetros de transferencia de argumentos coincida con las reglas. |
| Mitsubishi | Program Error (P35) | Un bloque contiene una dirección cuyos datos están fuera de rango. | La máquina detiene la ejecución durante el análisis del bloque de prelectura y genera una alarma de fuera de rango. | Verifique los argumentos de límites de coordenadas y valores pasados a través del bloque G65. |
Nota de Aplicación
Una colisión catastrófica que destroza la herramienta de corte y dobla los husillos de bolas de los ejes ocurre inmediatamente si la torreta portaherramientas avanza a lo largo de una trayectoria desviada debido a un error de cálculo matemático en una macro G65. Este desvío colisiona directamente contra la mordaza de prensa (vise jaw), bridas de sujeción (clamp) o el chuck del husillo, resultando en un tiempo de inactividad no planificado y la generación de piezas rechazadas. Para evitarlo, los operadores deben comprobar que el Parameter No. 1241 en Fanuc o el Parameter #1241 en Mitsubishi esté configurado correctamente para mapear las letras de dirección L y P como argumentos de macro, previniendo el Program Error P33. En Siemens, desactivar el dato de máquina MD 18800 bloqueará la ejecución con la Alarm 61800, mientras que intentar múltiples llamadas en un mismo bloque causará la Alarm 12722. Asimismo, el agotamiento del búfer de prelectura (look-ahead pre-read buffer) por exceso de bloques de cálculo consecutivos provocará paradas imprevistas o marcas de parada en el material. La única manera de garantizar el tiempo de ciclo óptimo y resguardar la producción es establecer límites de recorrido por software (soft travel limits), verificar los decalajes en una ejecución en seco y estructurar bloques de movimiento intermedios para refrescar el búfer.
Red de Comandos Relacionados
- M98: Llama a subprogramas estándar donde se repiten bloques de geometría estática sin permitir transferencias de parámetros de argumentos.
- M99: Termina el programa de macro y devuelve la ejecución al siguiente bloque en el programa principal que realiza la llamada.
- G66: Activa la llamada a macro modal, que ejecuta la macro llamada después de cada bloque de movimiento hasta que se cancela.
- G67: Cancela el modo de llamada a macro modal, devolviendo el compilador a la ejecución estándar de movimiento de coordenadas.
- G290 / G291: Cambia el intérprete del compilador de Siemens entre el modo SINUMERIK nativo y el modo ISO Dialect externo.
Conclusión
La correcta asignación de las variables de transferencia y la validación de los parámetros de límite de carrera en cada turno representan la recomendación de producción más eficaz para mitigar colisiones destructivas usando G65. Integrar rutinas de verificación bloque a bloque durante las primeras puestas en marcha asegura la consistencia geométrica, evitando que errores de cálculo generen costosas piezas rechazadas (scrap) o tiempos de inactividad imprevistos por daños mecánicos. Configurar de forma preventiva los códigos G de protección y realizar simulaciones en vacío optimiza el tiempo de ciclo y protege la integridad de la máquina.
Preguntas Frecuentes (FAQ)
¿Cómo se puede evitar que una macro G65 sobrescriba accidentalmente variables locales activas?
Para evitar la pérdida de datos de cálculo por sobrescritura, asigne de manera estricta variables locales de paso único y use subprogramas locales con su propio conjunto de registros (#1 a #33) aislados por nivel de anidamiento. Como acción práctica, realice un mapa de variables en papel antes de codificar y verifique los valores en la pantalla de registro de la HMI durante una ejecución en seco.
¿Qué provoca el Program Error P33 en controles Fanuc o Mitsubishi al llamar a una macro G65?
Este error ocurre al programar la instrucción G65 en la misma línea que un comando de movimiento de ejes, o al formatear los argumentos usando comas cuando la validación de L/P está habilitada. Como acción práctica, escriba siempre la llamada G65 en un bloque exclusivo y retire cualquier coma o carácter especial entre los argumentos alfabéticos.
¿Por qué las sentencias de macro consecutivas sin movimiento pueden detener el mecanizado en ciclo automático?
Escribir demasiadas líneas de cálculo matemático seguidas agota el búfer de prelectura (look-ahead buffer), impidiendo que el CNC precalcule los vectores de compensación de radio y deteniendo los ejes por completo. Como acción práctica, inserte una instrucción de movimiento corto de posicionamiento o un código de espera (dwell) después de cada cuatro líneas de cálculo lógico para restablecer el búfer.
¿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.