Está en la página 1de 9

U.D. 2 PROGRAMACION 2.

1.- SOFTWARE DE UN ROBOT


2.- HERRAMIENTAS DE SOFTWARE
3.- LENGUAJES DE PROGRAMACIÓN

1.- SOFTWARE DE UN ROBOT

SISTEMA OPERATIVO

El sistema operativo interno del sistema de control de varios fabricantes es el VxWorks.


Es un S.O. multitarea en tiempo real derivado del Unix y ampliamente utilizado dentro de las aplicaciones industriales más
exigentes y seguras.
Una de sus ventajas es que permite su utilización con diferentes CPU, lo que permite la reutilización del código escrito para el
programa de control interno del sistema en el caso de que se cambie de tipo de CPU.

PROGRAMA INTERNO

El programa interno de control del robot es el encargado de gestionar el funcionamiento del sistema, la interpretación del
programa del usuario. En las aplicaciones de los robots lo más importante es el cálculo de las trayectorias que en los sistemas
actuales se basan en el modelo dinámico del robot, por lo que se puede obtener el máximo rendimiento del sistema.
A modo orientativo un programa de control de un robot actual está compuesto por más de 20.000.000 de instrucciones,
escritas en lenguaje C.

Al programar un robot tenemos en cuenta:


-PUNTOS. Distribuidos en el espacio de trabajo se moverán los ejes de forma secuencial para alcanzar dichos puntos. Vendrán
dados por sus coordenadas.
- MOVIMIENTOS. Los movimientos serán los desplazamientos de una posición a otra, es decir, de un punto a otro (podrán ser
rectilíneos o interpolados).
-PRAYECTORIA. Compuesta de uno o más movimientos.
-ACCIONES. Interactuar con el entorno realizando operaciones evitando colisiones. Habrá que tener en cuenta la orientación o
posición angular de la herramienta respecto a el punto central TCP

PROGRAMACIÓN POR GUIADO O PROGRAMACIÓN DE APRENDIZAJE

1.- Programación desde la paleta de programación.


•Se lleva al robot a las posiciones deseadas manualmente (haciendo uso del joystick).
•Se crea una instrucción de programa para cada posición indicada manualmente, especificando velocidad, precisión, etc.
•Se añaden las instrucciones necesarias: control de E/S, etc.
•Ventajas: no requiere ningún cálculo, pocas posibilidades de error.

2.- Escritura del programa en PC y transferencia al robot vía disquete.


•Las posiciones se calculan analíticamente; con estos datos se escribe un programa utilizando el lenguaje RAPID.
•Ventajas: facilidad para introducir modificaciones o revisar.

The easy way of programming ABB robots


https://www.youtube.com/watch?v=acJ3WDnoDCM&feature=youtu.be
U.D. 2 PROGRAMACION 2.2

3.- HERRAMIENTAS DE SOFTWARE

SIMULACION 3D PARA LA PROGRAMACION OFFLINE


Hay muchas herramientas que permiten una programación gráfica al mismo tiempo que realizar una simulación del entorno de
trabajo.

ROBOTSTUDIO SCREEN MAKER


Permite personalizar la pantalla del Teach pendant
U.D. 2 PROGRAMACION 2.3

DESARROLLO EN ENTORNOS DE PROGRAMACION


También se puede programar con herramientas más avanzadas de lenguajes genéricos como c#.

Diagnóstico a distancia
Esta tecnología permite reprogramar o resolver a distancia problemas que surjan en el lugar de trabajo.

Tecnología:
• Acceso seguro VPN
• Transmisión inalámbrica GPRS
• Acceso web para el cliente

Características:
• Optimiza el ciclo de vida del robot
• Monitoriza y notifica alarmas en tiempo real
• Facilita diagnósticos para mantenimiento predictivo/preventivo.
• Permite acceso en tiempo real vía MyRobot para analizar y resolver fallos
• Base de datos de copias de seguridad
U.D. 2 PROGRAMACION 2.4

3.- LENGUAJES DE PROGRAMACIÓN

▪ Los lenguajes de programación actuales se basan en los estándares de programación utilizados para otras aplicaciones
como por ejemplo el C.
▪ Son lenguajes que permiten la programación estructurada.
▪ No existe un lenguaje estándar para todos los robots, ya que cada fabricante tiene su propio lenguaje: RAPID para los
robots ABB, KRL para los robots KUKA, KAREL para los robots FANUC, ....

RAPID (Robotics Application Programming Interactive Dialogue) es el lenguaje de programación de los robots ABB a partir del
sistema de control S4.
▪ Es un lenguaje de programación tipo C que permite la programación estructurada
▪ Es un lenguaje específico orientado totalmente a la programación del robot y a sus periféricos.
▪ Es un lenguaje ilimitado ya que permite que el propio usuario cree sus propias instrucciones.
▪ Entre sus características más destacadas es que permite la programación en multitarea, ya que puede tener hasta 10
tareas en paralelo

Entorno lenguaje RAPID:

1.- Área de Acceso: Solicitar acceso en el supuesto caso de que esté protegido contra escritura, también se puede sincronizar
con la estación.
2.- Editar: Botones para dar formato al texto (Corrección de errores, saltos de página).
3.- Área de Inserción: Zona para insertar fragmentos de texto, programa etc.
4.- Zona de búsqueda: Para buscar dentro del código variables, condiciones, targets etc.
5.- Propiedades del controlador: Características de la controladora tales como los ciclos (Un solo ciclo o continuo).
6.- Probar y depurar: Zona para comprobar que el programa no tiene ningún fallo ortográfico, y si el programa se puede
realizar en buenas condiciones.
7.- Área de Trabajo: Área del código donde se escribirá las asignaciones de variables, donde están las coordenadas de los
puntos (targets) y donde se añadirán las trayectorias con sus condicionales.
8.- Lista desplegable: Donde encontraremos los diferentes directorios a los que poder acceder.
9.- Zona de información y advertencias.
U.D. 2 PROGRAMACION 2.5

ESTRUCTURA BÁSICA DE UN PROGRAMA RAPID

El programa consta de tres partes:


• Datos de programa
• Programa principal
• Rutinas

Tipos de rutinas:
Hay dos tipos de rutinas:
• Procedimiento: Se usa como subprograma.
• Función: devuelve un valor de un tipo de dato específico y se usa como argumento de una instrucción.

Tipos de datos y variables

Normalmente trabajaremos con los siguientes tipos de datos:


• bool: Datos lógicos (con los valores verdadero o falso) TRUE/FALSE
• num: Valores numéricos (decimales o enteros) 1, 3.14, -52263
• string: Cadenas de caracteres (máx. 80)

A su vez, los datos pueden ser:


• Variable(VAR): La asignación de nuevos valores a las variables puede realizarse durante la ejecución del programa.
• Persistente(PERS): Una variable “persistente” es aquella cuyo valor queda guardado en una memoria no volátil de
manera que mantiene su valor cuando se ejecuta de nuevo el programa.
• Constante(CONST): Las constantes representan valores fijos y no es posible asignarles nuevos valores.

El nombre de la variable debe:


• Tener 16 caracteres como máximo
• Empezar con una letra
• No puede nombrarse una variable igual que las palabras reservadas por RAPID (Instrucciones, tipos de datos…)

Instrucciones

Instrucciones de posicionamiento
• MoveC: Mover el TCP a lo largo de una trayectoria circular
• MoveJ: Movimiento de ejes con desplazamiento rápido sin garantizar trayectoria seguida y sin coordinación de
velocidad en los ejes
• MoveL: Mover el TCP a lo largo de una trayectoria lineal
U.D. 2 PROGRAMACION 2.6

Parámetros de las instrucciones de movimiento:


•Posiciones deseadas ‘p1’ y ‘p0’:
Dato tipo ‘RobTarget’:especifica posición y orientación unívocamente.
•Velocidad ‘v100’:
Dato tipo ‘SpeedData’:indica velocidad deseada de traslación y de rotación.
•Precisión ‘z10’:
Dato tipo ‘ZoneData’: indica la precisión con la que hay que alcanzar la posición pedida antes de continuar el
movimiento hasta la posición siguiente.
•Herramienta ‘tool1’:
Dato tipo ‘ToolData’: describe la la herramienta acoplada al robot: dimensiones paracalcular trayectorias más peso y
momentos de inercia para calcular esfuerzos.

Instrucciones de llamada a otra rutina


• ProcCall: Llamar (saltar) a otra rutina
• RETURN: Volver a la rutina general
U.D. 2 PROGRAMACION 2.7

Instrucciones IF
IF: Ejecutar una secuencia de instrucciones diferentes en función de si se cumple una condición

Bucles While y For


• For: Repetir una sección del programa un número de veces
• While: Repetir una secuencia de instrucciones diferentes mientras siga cumpliéndose una condición

Otras estructuras
• TEST: Ejecutar instrucciones diferentes en función del valor de una expresión
• GOTO: Saltar a una etiqueta
• WaitTime: Esperar una cantidad determinada de tiempo o esperar hasta que el robot deje de moverse
• WaitUntil: Esperar hasta que se cumpla una condición
U.D. 2 PROGRAMACION 2.8

Instrucciones de activación/desactivación de E/S


• Set: Activar una señal digital de salida (cambiarla a 1)
• Reset: Restablecer una señal digital de salida (ponerla a 0)
• SetDO: fija una salida digital a un valor simbólico (on/off, etc).
• SetAO: fija el valor de una salida analógica.
• WaitDI: espera hasta que una entrada tome un valor

Posibles utilizaciones de las señales de E/S:


-comandar la válvula neumática que gobierna la pinza
-detener o poner en marcha una cinta transportadora
-saber si hay una pieza lista para ser procesada por el robot...

Tiene instrucciones específicas para control de los diferentes procesos:


✓ Soldadura al Arco: ArcL, ArcC, ArcKill,..
✓ Soldadura por puntos: SpotL, SpotML
✓ Aplicaciones de adhesivo: DispL, DispC
✓ Aplicaciones de pintura: PaintL, SetBrush, SetColor,..

Otras consideraciones:
• Al final de cada instrucción se pondrá siempre “;” menos para el Inicio/Fin de Modulo/Programa/Rutina.
• La velocidad del robot se ha limitado. Las velocidades a la que podrá ir serán: v10, v20, v30, v40, v50, y v100.
• Los comentarios en los programas tienen que ir precedidos de “!”
• Para realizar la asignación de un valor a un dato, utilizaremos “:=”
• Las coordenadas se ponen en milímetros

Cabecera de un programa RAPID:


%%%
VERSION:1
LANGUAGE:ENGLISH
%%%

Código del programa, siempre estructurado en módulos:


MODULE carga_CNC
...
Cuerpo del programa
...
ENDMODULE

Por ejemplo, en este módulo se incluirían todos los datos e instrucciones correspondientes a la carga de una pieza en una
máquina CNC.

Dentro de un módulo: declaraciones de datos y procedimientos (rutinas):


MODULE carga_CNC
VAR pos posic1 := [100, 200, 300];
VAR pos posic2 := [200, 200, 100];...

PROC rutina1
... instrucciones ...
ENDPROC
PROC rutina2
... Instrucciones ...
ENDPROC
ENDMODULE

NOTA: Siempre debe existir la rutina main() que llama a las demás.
U.D. 2 PROGRAMACION 2.9

TIPOS DE DATOS PROPIOS DEL MANEJO DEL ROBOT


Pos: posición cartesiana (vector de 3 valores numéricos X, Y, Z)
Orient: orientación expresada mediante un cuaternio (vector de 4 valores numéricos (Q1, Q2, Q3, Q4)
ConfData: configuración del robot. Indica los cuadrantes en los que se encuentran los ejes 1, 4, 6 y 5 del robot. Vector de 4
valores numéricos (conf1, conf2, conf3, conf4).

|VAR confdata conf_1 := [0, 0, -1, 1];


La instrucción anterior indica que la configuración del eje1 del robot es el cuadrante 0, es decir, de 0 o a 90º. La configuración
del eje 4 del robot es el cuadrante 0, es decir, de 0 o a 90º. La configuración del eje6 del robot es el cuadrante -1, es decir, de 0
o a -90º. La configuración del eje5 del robot es el cuadrante 1, es decir, de 90º a 180º.

Ejemplo de programa RAPID


%%%
VERSION:1
LANGUAGE:ENGLISH
%%%
MODULE ejer4
! ******** DATOS DE PROGRAMA ********
PERS tooldata toolx:=[TRUE,[[0,0,0],[1,0,0,0]],[10,[100,0,100],[1,0,0,0],0.04,0.04,0.04]];
CONST robtarget pHOME:=[[929.59,0,1414.25],[0.510184,0,0.860066,0],[0,0,0,0],[9E+009,9E+009,9E+009]];
CONST robtarget p30:=[[1124.69,0,-1414.25],[0.510184,0,0.860066,0],[0,0,0,0],[9E+009,9E+009,9E+009]];
CONST robtarget p20:=[[929.59,0,1414.25],[0.510184,0,0.860066,0],[0,0,0,0],[9E+009,9E+009,9E+009]];
CONST robtarget p10:=[[929.59,0,1414.25],[0.510184,0,0.860066,0],[0,0,0,0],[9E+009,9E+009,9E+009]];
PROC main()
! ****** RUTINA PRINCIPAL ***********
MoveJ pHOME,v5000,z5,toolx;
MoveJ p10,v200,fine,toolx;
MoveL p20,v200,fine,toolx;
MoveL p30,v200,fine,toolx;
ENDPROC
ENDMODULE

También podría gustarte