Lenguajes de Programación de Robots Industriales: Guía Técnica Definitiva
La automatización moderna no se entiende sin la presencia de brazos robóticos articulados. Desde la soldadura por arco en la industria automotriz del Bajío hasta el paletizado de alta velocidad en el sector alimentario, los robots industriales son el músculo flexible de la manufactura. Sin embargo, este músculo necesita un cerebro, y ese cerebro requiere instrucciones precisas estructuradas en un lenguaje de programación de robots industriales.
A diferencia del mundo de los Controladores Lógicos Programables (PLCs), donde la norma IEC 61131-3 logró unificar los lenguajes (como el Diagrama de Escalera o el Texto Estructurado) permitiendo a un ingeniero saltar de Siemens a Allen-Bradley con relativa facilidad, la robótica industrial sigue siendo una “Torre de Babel”. Cada fabricante principal ha desarrollado su propio lenguaje propietario, su propio sistema operativo en tiempo real y su propia arquitectura de control.
Para los integradores de sistemas, ingenieros de planta y responsables de mantenimiento, dominar estos ecosistemas cerrados es fundamental para el troubleshooting, la optimización de trayectorias (cycle time reduction) y la integración de celdas robotizadas complejas. En esta guía técnica y profunda, analizaremos la anatomía, las ventajas y las características de los lenguajes de programación de los tres gigantes de la robótica mundial: FANUC, KUKA y ABB.
La Torre de Babel Robótica: ¿Por qué no hay un estándar unificado?
Si trabajas con automatización, es natural preguntarse por qué no existe un “C++ universal” para todos los robots. La respuesta reside en la historia y en el control de movimiento (Motion Control).
El movimiento en el espacio tridimensional de un manipulador de 6 ejes no es una tarea informática sencilla. Requiere cálculos cinemáticos inversos intensivos, gestión de singularidades matemáticas, compensación de cargas útiles en tiempo real y algoritmos de control de servomotores altamente específicos para el diseño mecánico de cada brazo. Los fabricantes como FANUC o KUKA protegen celosamente estos algoritmos de interpolación dentro de sus controladores (como el R-30iB de FANUC o el KRC4 de KUKA). Por lo tanto, el lenguaje de programación es simplemente la capa superior que interactúa con este núcleo matemático propietario.
Aunque han surgido iniciativas como ROS (Robot Operating System) en el ámbito académico y de investigación, en el piso de producción industrial, donde la fiabilidad 24/7 y la seguridad funcional (Safety) son innegociables, los lenguajes propietarios siguen y seguirán dominando de manera absoluta.
1. FANUC y su Ecosistema Dual: TP y KAREL
Con sede en Japón, los inconfundibles robots amarillos de FANUC son los más instalados a nivel mundial, con una dominancia abrumadora en Norteamérica y México, especialmente en el mecanizado CNC (Machine Tending) y el ensamblaje automotriz. El enfoque de programación de FANUC se divide en dos niveles muy distintos, diseñados para separar las tareas de movimiento de las tareas de procesamiento de datos complejos.
Programación en Teach Pendant (Archivos .TP)
El lenguaje principal de interacción para el 90% de las tareas de piso es el lenguaje TP (Teach Pendant). Es un lenguaje fuertemente estructurado, basado en menús, diseñado para ser utilizado directamente desde la consola portátil (el iPendant).
A diferencia de un lenguaje basado en texto puro, en TP el programador no escribe los comandos carácter por carácter. En su lugar, utiliza teclas programables (softkeys) para insertar instrucciones de movimiento, sentencias lógicas (IF/THEN) y llamadas a subrutinas. Esto reduce drásticamente los errores de sintaxis en la línea de producción.
- Instrucciones de Movimiento: Son el corazón de TP. Un comando típico se lee así:
J P[1] 100% FINE. Esto indica un movimiento Joint (Articular) hacia el Punto 1, a la velocidad máxima (100%), con un posicionamiento exacto (FINE). - Sistemas de Coordenadas: FANUC gestiona el movimiento a través de User Frames (UFRAME) y Tool Frames (UTOOL), permitiendo que un programa enseñado en una mesa de trabajo se desplace fácilmente si la mesa se mueve físicamente.
- Ventaja Principal: Su facilidad de uso para el operador de mantenimiento. Leer un programa TP es altamente intuitivo, lo que acelera el diagnóstico y la recuperación de fallas (recovery) tras un paro de emergencia.
El Poder Oculto: KAREL (Archivos .PC)
Cuando un proyecto requiere una lógica de datos que excede las capacidades del lenguaje TP, los integradores recurren a KAREL. Este es un lenguaje de programación de alto nivel estructurado, muy similar al lenguaje Pascal.
A diferencia de TP, KAREL se escribe en texto plano sin conexión (en una PC) y luego se compila en un archivo .PC antes de cargarse en el controlador del robot. KAREL no es ideal para programar movimientos (de hecho, FANUC desaconseja el control de movimiento puro desde KAREL en los controladores modernos), pero es extraordinariamente poderoso para “trabajos de fondo”:
- Manejo avanzado de cadenas (Strings) y archivos de texto.
- Comunicación mediante sockets TCP/IP con sistemas de visión artificial de terceros o bases de datos MES de la planta.
- Creación de interfaces de usuario personalizadas (pantallas HMI) dentro del propio iPendant de FANUC.
- Cálculos matemáticos complejos antes de pasar variables de posición (Position Registers) al programa TP para que este ejecute el movimiento.
2. KUKA y la Potencia del KRL (KUKA Robot Language)
De origen alemán, los robots naranjas de KUKA son un estándar en la industria automotriz europea y tienen una presencia masiva en soldadura por puntos (Spot Welding), soldadura láser y manipulación pesada. Su controlador (KRC2, KRC4, KRC5) corre sobre una arquitectura dual: un núcleo de Windows corriendo en paralelo con un sistema operativo en tiempo real (VxWorks).
Su lenguaje, el KRL (KUKA Robot Language), es uno de los más robustos, flexibles y similares a los lenguajes informáticos de alto nivel tradicionales (como C o Pascal). A diferencia del enfoque dual de FANUC, en KUKA puedes hacer prácticamente todo, desde movimiento simple hasta comunicación compleja, usando KRL.
Estructura de Archivos: .SRC y .DAT
Una de las características más distintivas y ordenadas de la programación de KUKA es la separación de la lógica y los datos. Un módulo de programa estándar en KUKA consta de dos archivos con el mismo nombre:
- Archivo .SRC (Source): Contiene el código ejecutable, la lógica, las secuencias IF/THEN/ELSE, bucles FOR/WHILE y las instrucciones de movimiento.
- Archivo .DAT (Data): Actúa como la memoria del módulo. Aquí se declaran y almacenan todas las variables, las coordenadas espaciales exactas de los puntos (E6POS), las velocidades y las configuraciones de la herramienta. Si modificas un punto con el SmartPad, la coordenada se actualiza silenciosamente en el archivo .DAT, dejando el código del .SRC limpio e intacto.
Programación Inline Forms vs. Expert Mode
KUKA ofrece una flexibilidad brillante para diferentes niveles de usuarios:
- Formularios Inline (Inline Forms): Para el operador de planta, KUKA ofrece formularios gráficos en el SmartPad. Al querer hacer un movimiento lineal, el operador llena casillas (Punto de destino, Velocidad en m/s, Herramienta). El sistema escribe el código KRL complejo en el fondo. Esto facilita la enseñanza rápida de trayectorias.
- Nivel Experto (Expert Mode): Para el ingeniero integrador, el entorno KRL puro basado en texto es donde reside la magia. Permite la manipulación directa de matrices de transformación homogénea (Frames), creación de tipos de datos estructurados (STRUC), gestión de interrupciones de hardware en milisegundos (INTERRUPT DECL) y manipulación de variables globales en el archivo
$CONFIG.DAT.
Un movimiento lineal puro en modo experto en KRL se vería así: LIN pPuntoDestino C_DIS (Movimiento Lineal hacia el punto especificado, con aproximación continua para no detenerse). La capacidad matemática de KRL permite a los programadores calcular trayectorias complejas al vuelo basadas en offsets de sensores externos.
3. ABB y la Elegancia de RAPID
ABB, el gigante sueco-suizo, es pionero en la robótica comercial. Sus robots dominan históricamente en aplicaciones de pintura, recubrimiento, soldadura por arco y embalaje de alta velocidad (robots Delta). El controlador de ABB (IRC5, OmniCore) es impulsado por el lenguaje RAPID.
Entre los programadores de robótica industrial, RAPID es a menudo considerado el lenguaje más elegante, moderno y bien estructurado de los tres grandes. Está diseñado desde cero para soportar el manejo de errores complejo y la programación multitarea.
Características Clave de RAPID
RAPID es un lenguaje procedimental de muy alto nivel, con una sintaxis que recuerda a C++ y a Texto Estructurado de PLC.
- Módulos y Rutinas: El código se organiza en Módulos de Programa (.mod) y Módulos de Sistema (.sys). Dentro de los módulos existen tres tipos de rutinas: Procedures (Procedimientos ejecutables), Functions (Funciones que retornan un valor matemático o lógico) y Traps (Rutinas de interrupción).
- Tipos de Datos Ricos: RAPID maneja de forma nativa tipos de datos muy específicos para robótica, como
robtarget(para definir posiciones, que incluye la coordenada cartesiana, los cuaterniones para la orientación y la configuración de los ejes) ytooldata(para definir el peso, centro de gravedad e inercia de la herramienta). - Manejo de Errores (Error Handling): A diferencia de otros lenguajes donde una colisión o un error lógico detiene abruptamente el programa, RAPID incluye bloques
ERRORal final de cada rutina. Si el robot falla al agarrar una pieza por un problema de vacío, el programa salta al bloque de error, activa una subrutina para reintentar o limpiar la herramienta, y luego usa el comandoRETRYoTRYNEXTpara continuar la producción sin intervención humana.
Un comando de movimiento característico en RAPID es el MoveL (Movimiento Lineal): MoveL p10, v1000, fine, tool1;. Su legibilidad es excepcional.
La Integración del Robot con el PLC (Handshake)
Es vital comprender que un robot industrial rara vez opera de forma aislada. En el 99% de las aplicaciones modernas, el robot es considerado un “esclavo” inteligente del “maestro” de la celda: el PLC (generalmente un Siemens S7-1500 o un Allen-Bradley ControlLogix).
La programación del robot, sin embargo, no desaparece; se transforma. En lugar de que el lenguaje del robot decida qué hacer, la lógica del robot (ya sea en KRL, TP o RAPID) se estructura como una máquina de estados (State Machine) a la espera de un número entero (Job Number o Style) proveniente del PLC a través de una red industrial como PROFINET o EtherNet/IP.
El código del robot evalúa el número recibido, ejecuta la subrutina de trayectoria correspondiente, y envía señales de confirmación (Acknowledge) y señales de “En Posición” o “Zona Libre” al PLC. Esta sincronización precisa, conocida como Handshake, es lo que evita colisiones entre robots compartiendo una misma estación de soldadura o interacción con prensas y mesas giratorias. Un Handshake mal programado en KRL o TP resulta invariablemente en costosos tiempos muertos mecánicos.
La Transición hacia la Programación Offline (OLP)
Si bien conocer la sintaxis pura de estos lenguajes es el núcleo de la ingeniería robótica, la forma en que se escriben está evolucionando rápidamente. El tiempo de máquina (detener la línea para que un programador use el Teach Pendant) es inmensamente costoso.
Por ello, la industria se ha volcado a la Programación Offline (OLP) y simulación 3D utilizando ecosistemas de software propietarios de los fabricantes:
- ROBOGUIDE (FANUC): Permite importar modelos CAD de la celda, simular tiempos de ciclo exactos y autogenerar el código TP.
- KUKA.Sim / KUKA.WorkVisual: Un entorno completo de ingeniería para configurar buses de campo, entradas/salidas y programar KRL offline con simulación física y cinemática perfecta.
- RobotStudio (ABB): Considerado por muchos como el software OLP más potente del mercado, permite diseñar y testear todo el código RAPID en un entorno virtual idéntico al controlador real (Virtual Controller).
El ingeniero robótico moderno no solo escribe código; diseña la celda virtualmente, genera las trayectorias automáticamente para evitar colisiones, valida el ciclo de tiempo, compila el lenguaje y luego, durante la Puesta en Marcha (Commissioning), simplemente transfiere el código al controlador físico para realizar ajustes menores (Touch-ups).
Conclusión y Soluciones para la Industria
Comprender los lenguajes de programación de robots industriales va mucho más allá de memorizar comandos. Se trata de entender la filosofía de control arquitectónico de cada fabricante. Mientras que la estructura dual de FANUC (TP/KAREL) prioriza la resiliencia en el piso de producción y la facilidad para los operadores, la arquitectura paramétrica del KRL de KUKA y el elegante manejo de errores del RAPID de ABB ofrecen a los ingenieros un lienzo de posibilidades casi infinitas para procesos altamente complejos.
Elegir la marca del robot a menudo se reduce a estándares corporativos existentes o soporte regional, pero el éxito de la celda de automatización depende invariablemente de la habilidad de quien estructura y escribe su código de control.
Expertos en Integración y Programación de Robots
En Indumex Automatización Industrial comprendemos que el tiempo de ciclo es dinero. Nuestro equipo de ingenieros especializados se dedica a optimizar, integrar y programar la lógica más eficiente para tu piso de producción.
Nos especializamos en programación robótica KUKA y FANUC. Ya sea para desarrollar una celda desde cero, integrar visión artificial, optimizar tiempos de ciclo existentes o enlazar tu robot con redes de PLCs.
Si necesitas soporte técnico experto para tus robots, escríbenos directamente a:
[email protected]


