Este tutorial está diseñado para guiar a quienes desean aprender más acerca de FANUC. Es ideal para un nivel avanzado.
FANUC es un líder mundial en automatización industrial, reconocido por su alta fiabilidad en robots industriales, sistemas CNC y máquinas herramienta (ROBOMACHINEs como Robodrill). Su avanzada tecnología de control, ejemplificada por la serie R-30iB Plus, permite una automatización precisa y flexible. Esta guía de nivel avanzado profundiza en las metodologías de programación de FANUC: la programación directa con el Teach Pendant (TP) para movimientos y lógica básica, y el lenguaje estructurado KAREL para desarrollar lógica compleja, comunicación con sistemas externos (PLCs, visión, TCP/IP), y manejo avanzado de datos y errores. Explora la integración de sistemas mediante protocolos de comunicación industrial (Ethernet/IP, Profinet), el uso de FANUC iRVision para tareas de visión artificial, el software de simulación ROBOGUIDE para programación offline y optimización, y la implementación de características de seguridad avanzadas como Dual Check Safety (DCS). Cubre conceptos clave como Registros de Posición (PR), sistemas de Coordenadas (Frames), y la gestión de entradas/salidas (I/O) discretas y de grupo, proporcionando una base sólida para ingenieros y técnicos que trabajan con sistemas de automatización de FANUC a nivel profesional.
El 'Hola, mundo' de FANUC KAREL: un ejemplo básico de un programa KAREL para imprimir un mensaje en la consola del controlador. Muestra la estructura fundamental de un programa KAREL.
# **Prerrequisitos:** Software de desarrollo KAREL (parte de WinOLPC o ROBOGUIDE) y un controlador FANUC o ROBOGUIDE para probarlo.
# 1. Escribe este codigo en un archivo de texto con extension .kl (ej: hello.kl).
# 2. Compila el archivo usando el compilador KAREL (`ktrans hello.kl`) para generar un archivo ejecutable (.pc).
# 3. Carga el archivo hello.pc al controlador FANUC (via FTP, USB, etc.).
# 4. Selecciona el programa HELLO en el Teach Pendant y ejecutalo.
-- Archivo: HELLO.KL
-- Este programa KAREL imprime un mensaje simple.
PROGRAM HELLO
-- Declaraciones (si hubiera variables, I/O, etc.)
BEGIN -- Inicio de la logica principal
-- Instruccion para escribir en la consola/TP
WRITE('Hola, mundo desde KAREL', CR)
END HELLO -- Fin del programa
Resultado:
Después de compilar, cargar y ejecutar el programa KAREL en el controlador FANUC, la frase 'Hola, mundo desde KAREL' aparecerá en la ventana de consola del Teach Pendant o en una pantalla de log asociada.
Familiarizarse con estos comandos es esencial para interactuar eficientemente con FANUC:
El software FANUC WinOLPC (Windows Offline Programming Console) incluye el editor y compilador KAREL (`ktrans.exe`). Debes instalarlo en tu PC. Consulta los manuales de FANUC para los requisitos del sistema y la instalación.
Crear un archivo de texto con extension `.kl` (ej: `mi_programa.kl`). Usa un editor de texto simple o el editor de WinOLPC. La sintaxis incluye `PROGRAM`, `VAR`, `BEGIN`, `END`, instrucciones como `WRITE`, `READ`, `MOVE`, acceso a I/O y variables.
Desde la línea de comandos en la ubicación del archivo .kl (si ktrans está en el PATH) o usando la interfaz de WinOLPC:
`ktrans <nombre_archivo>.kl`
Si la compilación es exitosa, se generará un archivo `<nombre_archivo>.pc` (código ejecutable) y un archivo `.ls` (listing).
Hay varios métodos:
1. **USB (Controladores modernos):** Copiar el archivo a una memoria USB, insertarla en el puerto USB del TP. En el TP: FILE -> LOAD -> seleccionar dispositivo (USB) y archivo.
2. **FTP/Mapped Drive:** Configurar FTP server en el PC o mapear una unidad de red. En el TP: FILE -> LOAD -> seleccionar dispositivo (FTP/MD) y archivo.
# En el Teach Pendant:
# 1. Presiona F1 [ EDT ] para editar programas.
# 2. Presiona F2 [ CRDT ] para crear uno nuevo (.TP).
# 3. Presiona F1 [ INST ] para insertar instrucciones.
# 4. Navega por las categorías (MOTION, I/O, LOGIC, MISC) para seleccionar instrucciones (ej: J P[1] 100% FINE, DO[1]=ON, IF DI[5]=ON...). Usa F5 [ POINT ] para enseñar puntos (PRs).
# En el Teach Pendant:
# 1. Mueve el robot manualmente (usando los botones JOG) a la posicion deseada.
# 2. Presiona F1 [ INST ].
# 3. Selecciona POINT (o navegar a DATA -> Position Reg).
# 4. Selecciona el numero de PR que quieres definir (ej: PR[1]).
# 5. Presiona F5 [ RECORD ] para guardar la posicion actual del robot en ese PR.
# En el Teach Pendant:
# 1. Ir a MENU -> SETUP -> Frames.
# 2. Selecciona el tipo de frame a definir (User Frame [UF], Tool Frame [TF], Jog Frame).
# 3. Selecciona el numero de frame.
# 4. Presiona F2 [ DETAIL ].
# 5. Elige un método de definicion (ej: 3 Point, 4 Point) y sigue las instrucciones en pantalla, moviendo el robot a las posiciones solicitadas y enseñandolas con F5 [ RECORD ].
# En un programa TP:
# 1. Posiciona el cursor donde quieres llamar al programa KAREL.
# 2. Presiona F1 [ INST ].
# 3. Navega a MISC.
# 4. Selecciona CALL.
# 5. Ingresa el nombre exacto del programa KAREL (ej: `MI_LOGICA`). Si necesita argumentos, inclúyelos aquí.
# Dentro de un programa KAREL (.KL):
-- Declarar variables I/O en la seccion VAR
VAR
start_signal :BOOLEAN -- Para entrada digital
valve_output :BOOLEAN -- Para salida digital
-- Asignar variables a I/O fisicas o virtuales (en la seccion BEGIN, antes de usarlas)
BEGIN
ATTACH start_signal WITH name='DI[1]'
ATTACH valve_output WITH name='DO[5]'
-- Leer el estado de una entrada digital
IF start_signal THEN
WRITE('La señal de inicio esta activa', CR)
ENDIF
-- Escribir a una salida digital (activar)
valve_output = TRUE -- Equivalente a DO[5] = ON en TP
-- Escribir a una salida digital (desactivar)
valve_output = FALSE -- Equivalente a DO[5] = OFF en TP
END
# En el Teach Pendant:
# 1. Ir a MENU -> I/O.
# 2. Selecciona el tipo de I/O a configurar (Digital, Group, UOP, SOP, etc.).
# 3. Selecciona la pagina o rango de puntos.
# 4. Presiona F2 [ CONFIG ].
# 5. Configura el 'RACK', 'SLOT' y 'START PT' para mapear la I/O física a los puntos lógicos en el controlador. Puedes añadir 'COMMENT' para describir la I/O.
# 6. Configura las señales UOP y SOP según la documentación para tu controlador y perifericos.
# **Prerrequisitos:** Opciones de software de comunicación instaladas en el controlador.
# En el Teach Pendant:
# 1. Ir a MENU -> SETUP -> Host Comm.
# 2. Configurar los adaptadores de red y direcciones IP.
# 3. Navegar a las opciones del protocolo (ej: PROFINET, EtherNet/IP Scanner/Adapter).
# 4. Configurar conexiones, módulos I/O remotos, y asignar tags o puntos de I/O de red según la configuración del PLC o dispositivo externo.
# En tu PC con ROBOGUIDE instalado:
# 1. Inicia ROBOGUIDE y crea una nueva 'Workcell' (celda de trabajo virtual).
# 2. Selecciona el modelo de robot y controlador FANUC.
# 3. Importa modelos 3D de la célula (mesas, periféricos, etc.).
# 4. Usa la interfaz de Teach Pendant virtual para enseñar puntos y crear programas TP.
# 5. Usa el entorno de desarrollo KAREL integrado para escribir y compilar programas KAREL.
# 6. Ejecuta la simulación, depura programas y optimiza el ciclo de tiempo. Puedes exportar los programas y configuraciones para el robot real.
# En el Teach Pendant:
# 1. Ir a MENU -> FILE -> Backup.
# 2. Selecciona el tipo de backup (ej: All of Above, MD (Memory Device), Image - solo en modelos recientes).
# 3. Selecciona el dispositivo de destino (ej: USB, MC (Memory Card), PC via FTP/Mapped Drive).
# 4. Confirma la operacion. Espera a que se complete.
# Cuando ocurre una alarma, aparece un mensaje y un código en el Teach Pendant (area superior o en pantalla de Alarmas).
# 1. Anota el código de alarma (ej: SYST-001, MOTN-005).
# 2. Consulta el 'Manual de Mantenimiento' o el 'Manual de Lista de Errores' de tu controlador FANUC. Busca el código de alarma para obtener la descripción, causa probable y pasos de solución de problemas.
Comprender estos conceptos fundamentales te ayudará a dominar FANUC de forma más organizada y eficiente:
Líneas de Producto FANUC:
FANUC fabrica **Robots Industriales** (una amplia gama para diversas aplicaciones), **Sistemas CNC** (controladores numéricos para máquinas herramienta), y **ROBOMACHINEs**, que son máquinas herramienta completas de alta precisión (como Robodrill - centro de mecanizado, Roboshot - máquina de moldeo por inyección, Robocut - máquina de corte por hilo). A menudo, los robots FANUC se integran con los sistemas CNC FANUC.
Controladores FANUC:
El 'cerebro' del robot. Las generaciones más comunes son R-30iA, R-30iB, R-30iC, R-30iD y el actual R-30iB Plus. El controlador aloja el software del robot (firmware, opciones de software), ejecuta los programas (TP, KAREL), gestiona las I/O, la comunicación y la seguridad. La elección del controlador depende del modelo de robot y las necesidades de la aplicación.
Lenguajes de Programación FANUC (Teach Pendant, KAREL, G-code):
Los métodos principales para controlar sistemas FANUC: **Teach Pendant (TP) Programming**: Programación interactiva paso a paso en el Teach Pendant, ideal para enseñar posiciones, movimientos y lógica secuencial simple. **KAREL**: Un lenguaje estructurado de alto nivel para lógica compleja, comunicación, manipulación de datos y algoritmos. **G-code/M-code**: El lenguaje estándar para máquinas CNC, relevante cuando se integra un robot FANUC con un CNC FANUC.
Programación con Teach Pendant (TP):
El método más común y directo para crear programas de robot. Se realiza utilizando el Teach Pendant (una consola portátil con pantalla y botones). Permite mover el robot manualmente, enseñar y guardar puntos (Position Registers), insertar instrucciones de movimiento (Joint, Linear, Circular), instrucciones de I/O y lógica de control básica (IF, FOR, SELECT) de forma secuencial.
Programación en KAREL:
Un lenguaje de programación de propósito general desarrollado por FANUC, con una sintaxis similar a Pascal. Se utiliza para tareas avanzadas que son difíciles o imposibles con TP, como: comunicación TCP/IP con otros sistemas, acceso avanzado a archivos, manipulación compleja de variables y strings, implementación de algoritmos sofisticados, y desarrollo de interfaces de usuario personalizadas. Los programas KAREL se escriben offline (.KL) y se compilan a archivos ejecutables (.PC).
G-code y M-code en Sistemas FANUC:
G-code (`Gxx`) define movimientos de herramientas de corte y otras operaciones de mecanizado. M-code (`Mxx`) controla funciones misceláneas de la máquina CNC (cambio de herramienta, encendido/apagado de refrigerante). En los sistemas FANUC integrados Robot+CNC, el robot puede coordinarse con el CNC, y algunas aplicaciones permiten incluso que el robot ejecute código G/M para ciertas tareas.
Position Registers (PR):
Variables en el controlador FANUC que almacenan posiciones espaciales del robot. Un PR contiene datos de posición (X, Y, Z, W, P, R en coordenadas Cartesianas) y la configuración de las articulaciones del robot (configuraciones 'flip', 'up', 'front'). Son la base para definir los puntos a los que el robot se moverá en los programas TP y KAREL.
Frames (Sistemas de Coordenadas):
Definen sistemas de referencia para el movimiento y la localización del robot. **World Frame**: Fijo, generalmente alineado con el suelo de la celda. **User Frame**: Definido por el usuario en el área de trabajo (ej: la superficie de una mesa donde se colocan piezas). **Tool Frame**: Definido en el TCP (Tool Center Point), el punto que realiza la tarea (ej: la punta de una antorcha de soldar). **Jog Frame**: El sistema de coordenadas en el que se mueve el robot manualmente usando los botones del TP (puede ser Joint, World, User, Tool).
Sistema de I/O (Digital, Analógico, Grupo, UOP, SOP):
Las interfaces del controlador para interactuar con el hardware externo. **Digital I/O** (DI/DO) son señales discretas (ON/OFF). **Analog I/O** (AI/AO) son señales variables (ej: 0-10V). **Group I/O** trata múltiples señales digitales como un solo valor numérico. **System I/O** como UOP (User Operator Panel) y SOP (Standard Operator Panel) son puntos de I/O virtuales estándar usados para comunicación básica con PLCs o paneles de operador (ej: Cycle Start, Hold, Fault Reset).
Protocolos de Comunicación Industrial:
Estándares para la comunicación de red entre el robot FANUC y otros dispositivos de automatización. FANUC soporta los protocolos más comunes como **Ethernet/IP**, **Profinet**, **DeviceNet**, **Modbus TCP**, así como comunicación de bajo nivel basada en **sockets TCP/IP** para enviar y recibir datos personalizados.
FANUC iRVision:
El sistema de visión artificial propietario de FANUC. Permite al robot usar cámaras para tareas como localización de piezas (2D y 3D), guía de movimiento (vision guiding), inspección, identificación de códigos de barras, etc. Se configura y calibra a través de una interfaz dedicada en el Teach Pendant.
Software Suite (ROBOGUIDE, WinOLPC):
Herramientas de software esenciales para el desarrollo offline. **ROBOGUIDE** es un potente entorno de simulación 3D para diseñar celdas de trabajo virtuales, programar (TP y KAREL), simular ciclos de producción, optimizar trayectorias y validar aplicaciones. **WinOLPC** proporciona herramientas para desarrollo KAREL (compilador `ktrans`), gestión de archivos y diagnósticos.
Dual Check Safety (DCS):
Una opción de software de seguridad integrada en el controlador FANUC, certificada según estándares internacionales. Permite definir zonas de seguridad virtuales (cartesianas, articulares, de herramientas) y monitorear la posición y velocidad del robot para garantizar que opere dentro de límites seguros, deteniéndolo de forma segura en caso de violación de zona. Crucial para la seguridad en aplicaciones avanzadas y colaborativas.
Mantenimiento y Diagnósticos:
El mantenimiento preventivo (cambio de baterías, lubricación) es vital para la fiabilidad de los robots FANUC. Las herramientas de diagnóstico en el Teach Pendant (pantalla de alarmas, historial) y los manuales de mantenimiento son esenciales para identificar la causa de las alarmas y solucionar problemas en el sistema.
Entrenamiento y Certificación FANUC:
FANUC ofrece programas de entrenamiento formales en sus instalaciones para la programación, operación y mantenimiento de sus robots y sistemas. Obtener certificaciones demuestra competencia profesional en el uso de su tecnología, lo cual es muy valorado en la industria.
Gestión de Archivos:
Los programas (TP, KAREL compilado), datos (Position Registers, variables del sistema), configuraciones y archivos del sistema se almacenan en la memoria del controlador en varios formatos (.TP, .PC, .LS, .VA, .IO, etc.). Es importante saber cómo guardar, cargar, borrar y hacer backups de estos archivos para la gestión de programas y la recuperación del sistema.
Integración Robot + CNC:
La integración de un robot FANUC con una máquina CNC FANUC permite una automatización fluida de tareas de carga/descarga (machine tending), limpieza, inspección u otras operaciones que coordinan el robot y la máquina herramienta. Implica comunicación entre ambos controladores y programas coordinados.
Algunos ejemplos de aplicaciones prácticas donde se utiliza FANUC:
Implementar trayectorias y movimientos robóticos complejos y optimizados:
Programar movimientos precisos para tareas avanzadas como soldadura por arco (Arc Tool), soldadura por puntos (Spot Tool), pulido, pegado o corte, optimizando las trayectorias para la calidad del proceso y el tiempo de ciclo utilizando programación TP, KAREL y software de aplicación especializado.
Desarrollar lógica de control personalizada, algoritmos y comunicación avanzada con programas KAREL:
Escribir código en KAREL para implementar funcionalidades que van más allá de la lógica TP, como comunicación con bases de datos, sistemas MES/SCADA, comunicación TCP/IP con PCs u otros dispositivos, manejo complejo de errores y excepciones, algoritmos de decisión sofisticados o interfaces de usuario personalizadas.
Integrar robots FANUC con PLCs y otros equipos de automatización vía protocolos industriales:
Configurar y utilizar protocolos de comunicación estándar como Ethernet/IP, Profinet o DeviceNet para que el robot intercambie datos y señales (I/O, variables) con PLCs (ej: Siemens, Rockwell Automation) y otros dispositivos, permitiendo la coordinación completa de celdas y líneas de producción automatizadas.
Configurar y desplegar aplicaciones de visión artificial utilizando FANUC iRVision:
Integrar una o varias cámaras iRVision con el robot para permitirle 'ver'. Las aplicaciones incluyen localización de piezas desordenadas (bin picking), guía de movimiento para ensamblaje o soldadura (vision guiding), inspección de calidad, identificación de códigos o lectura de caracteres, configurando todo a través del Teach Pendant.
Utilizar ROBOGUIDE para simulación offline, diseño de celdas y optimización de ciclo tiempo:
Crear réplicas virtuales de celdas de trabajo robóticas en 3D para desarrollar y probar programas de robot (TP, KAREL) sin detener la producción. Permite optimizar la disposición de equipos, calcular tiempos de ciclo, validar alcances y simular fallos para depurar programas offline.
Automatizar la carga y descarga de piezas en máquinas herramienta CNC (Machine Tending):
Integrar un robot FANUC con una máquina CNC (idealmente FANUC) para automatizar el proceso de alimentar piezas crudas al CNC y retirar las piezas terminadas. Implica programación coordinada entre el robot y el CNC, manejo de utillajes (grippers) y comunicación para sincronizar operaciones.
Desplegar robots colaborativos (serie CR) para trabajar junto a operadores humanos de forma segura:
Implementar robots FANUC de la serie CR (verdes, con sensores de seguridad) en aplicaciones donde humanos y robots comparten espacio de trabajo. Requiere una evaluación de riesgos rigurosa y la configuración de funciones de seguridad (DCS, límites de velocidad) para garantizar la operación segura sin vallas de seguridad en muchos casos.
Implementar funcionalidades de seguridad avanzadas utilizando Dual Check Safety (DCS):
Configurar zonas de seguridad virtuales en el software del controlador (zonas cartesianas o articulares) para restringir el movimiento del robot, definir límites de velocidad supervisados o crear zonas donde la presencia humana limite el movimiento, mejorando la seguridad en entornos de trabajo complejos o con interacción.
Realizar mantenimiento preventivo y correctivo avanzado en sistemas de robot FANUC:
Aplicar procedimientos detallados de mantenimiento (cambio de baterías, lubricación, calibración de ejes), utilizar herramientas de diagnóstico avanzadas en el Teach Pendant y WinOLPC, e interpretar códigos de alarma y logs para identificar y resolver problemas complejos en el hardware y software del controlador.
Aquí tienes algunas recomendaciones para facilitar tus inicios en FANUC:
La Seguridad es lo Primero: Siempre Prioriza la Seguridad Industrial:
Antes de trabajar con cualquier robot FANUC, comprende y aplica estrictamente las normas de seguridad industrial (ISO 10218, ISO 13849, normas locales). Nunca entres en la celda de trabajo de un robot sin asegurarte de que esté en estado seguro (parada de emergencia, vallas, etc.). La seguridad es responsabilidad de todos.
Empieza con la Programación Directa Usando el Teach Pendant (TP):
El Teach Pendant es la herramienta fundamental. Familiarízate con su interfaz, cómo mover el robot (Jogging), enseñar puntos (Position Registers), y crear programas básicos paso a paso insertando instrucciones de movimiento, I/O y lógica simple (.TP programs).
Comprende los Diferentes Sistemas de Coordenadas (Frames):
Es crucial entender la diferencia entre World Frame, User Frame (para definir el área de trabajo) y Tool Frame (para definir la herramienta). Saber cómo definir y usar estos Frames correctamente es fundamental para programar movimientos precisos relativos a tus piezas o estaciones de trabajo.
Aprende las Bases del Lenguaje KAREL para Lógica más Avanzada:
Aunque empieces con TP, KAREL es necesario para tareas más complejas (comunicación, manejo de datos, lógica sofisticada). Empieza con programas simples que lean I/O o escriban mensajes. Usa el software WinOLPC o ROBOGUIDE para escribir y compilar código KAREL offline.
Utiliza el Software de Simulación ROBOGUIDE para Practicar Offline:
ROBOGUIDE te permite simular robots y celdas de trabajo en tu PC. Puedes practicar programación TP y KAREL, probar lógicas, enseñar puntos y optimizar movimientos sin usar un robot real. Es una herramienta indispensable para aprender y desarrollar de forma segura y eficiente.
Familiarízate con el Sistema de I/O del Controlador:
El robot interactúa con el mundo exterior a través de sus Entradas/Salidas Digitales, Analógicas y de Grupo, así como las I/O del sistema (UOP, SOP). Aprende a configurar y mapear estos puntos de I/O en el Teach Pendant para comunicar el robot con sensores, actuadores, PLCs, etc.
El Teach Pendant es Tu Interfaz Principal, Pero la Documentación es Tu Mejor Amigo:
El TP es donde operarás y programarás, pero los manuales técnicos de FANUC (manuales de operación, de programación TP, de programación KAREL, de lista de errores, de mantenimiento) son extremadamente detallados y esenciales para entender las funciones, resolver problemas y aprovechar al máximo el sistema. Guárdalos bien.
Comprende el Concepto de Position Registers (PRs):
Los PRs son cómo el robot 'recuerda' las posiciones. Aprende a enseñar PRs moviendo el robot y grabando la posición, y cómo usarlos en tus programas para definir los puntos a los que se moverá el robot.
Considera Obtener Entrenamiento Formal de FANUC:
Dado que los sistemas FANUC son complejos y se usan en entornos industriales críticos, la formación oficial de FANUC es muy recomendable. Te proporcionará una base sólida en programación, operación, mantenimiento y seguridad, y a menudo incluye acceso a equipos y software para práctica intensiva.
Si te interesa FANUC, también podrías explorar estas herramientas:
Amplía tus conocimientos con estos enlaces y materiales: