Programación de robots KUKA con el lenguaje KRL
KUKA Robot Language (KRL) es un lenguaje de programación especializado creado por KUKA para controlar sus robots industriales. Se basa en una sintaxis similar a la de Pascal y ofrece potentes herramientas para programar movimientos, procesar señales e interactuar con dispositivos externos.
Componentes principales de un programa para robots KUKA
Un programa para un robot KUKA consta de varios componentes principales:
- Tareas: Son partes independientes del programa que realizan funciones específicas. Por ejemplo, una tarea puede ser «coger la pieza» y otra, «colocar la pieza en el transportador».
- Movimientos: Son órdenes que determinan cómo se desplazará el robot de un punto del espacio a otro. Puede haber movimientos lineales, circulares, a lo largo de trayectorias complejas, etc.
- Condiciones: Las condiciones permiten al programa tomar decisiones según determinados criterios. Por ejemplo, el robot puede comprobar si un sensor está activado y, en ese caso, ejecutar una secuencia de acciones concreta.
- Variables: Las variables son posiciones en la memoria del robot donde se almacenan distintos tipos de datos. Pueden adoptar distintos valores durante la ejecución del programa.
- Bucles:Los bucles permiten al programa ejecutar repetidamente una secuencia de instrucciones. Por ejemplo, el robot puede repetir varias veces acciones como «coger la pieza» y «colocar la pieza».
Tipos de datos
En la programación de robots KUKA se utilizan distintos tipos de datos para representar distintos tipos de información. Algunos de los tipos de datos principales son:
- Números: Se utilizan para representar valores cuantitativos, como coordenadas, velocidades, fuerzas, etc.
- Texto: Se utiliza para representar información textual, como nombres de variables, mensajes, etc.
- Valores lógicos: Solo pueden tener dos valores: Verdadero (TRUE) o Falso (FALSE). Se utilizan para representar condiciones.
- Arrays: Los arrays son estructuras de datos que permiten almacenar varios valores del mismo tipo.
Por ejemplo:
- Número: La coordenada X del punto al que debe desplazarse el robot (por ejemplo, X = 100 mm)
- Texto: El nombre de una variable que almacena la posición actual del robot (por ejemplo, Position)
- Valor lógico: El resultado de comprobar si un sensor está activado (por ejemplo, Sensor_Activated = TRUE)
- Array: Una lista de coordenadas que definen la trayectoria de movimiento del robot
Estructura de un programa para robots KUKA
Estructura básica del programa
Un programa para un robot KUKA se construye a partir de una secuencia de instrucciones que definen las acciones que debe realizar el robot. Para organizar mejor el código y facilitar su comprensión y mantenimiento, los programas se estructuran en módulos, funciones y subprogramas.
- Módulos: Son partes del programa lógicamente independientes que realizan una tarea concreta. Los módulos pueden contener varias funciones y subprogramas.
- Funciones: Las funciones son subprogramas que realizan una acción concreta y devuelven un resultado. Por ejemplo, una función puede calcular la distancia entre dos puntos o comprobar si un sensor está activado.
- Subprogramas: Los subprogramas son similares a las funciones, pero no devuelven ningún resultado. Se utilizan para agrupar varias instrucciones que se ejecutan repetidamente en el programa.
Definición de variables y constantes
Las variables son posiciones en la memoria del robot donde se almacenan datos que pueden cambiar durante la ejecución del programa. Para definir una variable, se utiliza la siguiente sintaxis:
DECL REAL myVariable
Aquí, DECL significa «declarar», REAL indica que la variable es del tipo «número real» y myVariable es el nombre de la variable.
Las constantes son valores que no pueden modificarse durante la ejecución del programa. Para definir una constante, se utiliza la siguiente sintaxis:
CONST REAL pi = 3.14159
Aquí, CONST significa «constante» y pi es el nombre de la constante.
Organización del programa
El programa principal es el punto desde el que comienza la ejecución del programa. Contiene los pasos principales que debe realizar el robot. Los subprogramas se utilizan para organizar el código y realizar tareas repetitivas.
Ejemplo de estructura de un programa:
; Programa principal
MAIN ()
; Declaración de variables
DECL REAL x, y, z
; Llamada al subprograma de inicialización
INIT()
; Bucle principal del programa
WHILE TRUE DO
; Realización de distintas tareas
MOVE TO P1
CALL SUBROUTINE1
CALL SUBROUTINE2
ENDWHILE
ENDMAIN
; Subprograma de inicialización
SUBROUTINE INIT()
; Inicialización de variables y ajustes
ENDSUB
; Subprograma para la tarea 1
SUBROUTINE SUBROUTINE1()
; Código para la tarea 1
ENDSUB
; Subprograma para la tarea 2
SUBROUTINE SUBROUTINE2()
; Código para la tarea 2
ENDSUB
En este ejemplo:
MAIN()es el programa principal.INIT()es un subprograma de inicialización que se ejecuta una vez al principio del programa.SUBROUTINE1()ySUBROUTINE2()son subprogramas que realizan distintas tareas.WHILE TRUE DO ... ENDWHILEcrea un bucle infinito en el que se realizan las tareas principales del robot.MOVE TO P1es una orden que hace que el robot se desplace al punto P1.CALL SUBROUTINE1yCALL SUBROUTINE2llaman a los subprogramas correspondientes.
Instrucciones de movimiento de los robots KUKA
Definición de los movimientos
Los movimientos de un robot KUKA se definen mediante órdenes específicas en el programa. Estas órdenes determinan el tipo de movimiento, la posición de destino y otros parámetros, como la velocidad y la aceleración.
Tipos de movimiento:
- Movimientos lineales: El robot se desplaza en línea recta entre dos puntos del espacio.
- Movimientos circulares: El robot se desplaza siguiendo una trayectoria circular alrededor de un eje determinado.
- Movimientos punto a punto: El robot se sitúa en un punto exactamente definido del espacio sin seguir una trayectoria concreta.
- Movimientos de trayectoria: El robot sigue una trayectoria predefinida, que puede combinar segmentos lineales y circulares.
Sistemas de coordenadas
Para definir la posición del robot y de los objetos de su zona de trabajo se utilizan distintos sistemas de coordenadas. Los más habituales son:
- Sistema de coordenadas cartesianas: Ejes X, Y y Z que se cortan en ángulo recto. La posición de un punto se define mediante tres coordenadas (X, Y, Z).
- Sistema de coordenadas cilíndricas: Utiliza el radio (R), el ángulo (θ) y la altura (Z). Es más cómodo para describir movimientos circulares.
- Sistema de coordenadas esféricas: Utiliza el radio (R) y dos ángulos (θ y φ). Es adecuado para describir movimientos en una zona esférica.
La elección del sistema de coordenadas depende de la tarea concreta y de la geometría de la zona de trabajo.
Definición de velocidades y aceleraciones
La velocidad y la aceleración del movimiento del robot pueden definirse mediante distintos parámetros del programa.
- Velocidad lineal: Determina la velocidad del movimiento en línea recta.
- Velocidad angular: Determina la velocidad de giro alrededor de un eje.
- Aceleración: Determina la rapidez con la que cambia la velocidad del movimiento.
Control de las características dinámicas:
Ajustando con cuidado la velocidad y la aceleración se pueden optimizar los movimientos del robot y evitar sobrecargas del mecanismo. Por ejemplo, al trabajar con piezas delicadas es necesario fijar velocidades y aceleraciones bajas para evitar dañarlas.
Ejemplo de orden de movimiento:
MOVE L P1
Esta orden hace que el robot se desplace siguiendo una trayectoria lineal (L) hasta el punto P1, definido previamente en el programa.
Importante: Para garantizar un funcionamiento seguro y eficiente del robot, es necesario planificar y programar sus movimientos con cuidado.
¡No se pierda la continuación de nuestro artículo «Programación de robots KUKA con el lenguaje KRL»! En la segunda parte profundizaremos en las estructuras condicionales y los bucles, veremos la interacción del robot con otros dispositivos y le presentaremos las posibilidades de la programación offline y la simulación.
¡Siga las noticias de Artec Robotics !
Consola
La consola de los robots KUKA es la interfaz a través de la cual los operadores y programadores interactúan con el robot, ejecutando órdenes, ajustando parámetros y supervisando el estado del sistema, normalmente mediante el controlador programable KUKA SmartPAD.

HAGA UNA CONSULTA
