Está en la página 1de 45

Departamento de Ingeniera de Sistemas y

Automtica
Universidad Politcnica de Valencia

PRCTICAS DE ROBTICA

PROGRAMACIN DE BRAZOS ROBOT INDUSTRIALES

NDICE
1. OBJETIVO.................................................................................................... 1
2. EL LENGUAJE RAPID.................................................................................... 1
3. PROGRAMACIN EN RAPID UTILIZANDO LA UNIDAD DE PROGRAMACIN
VIRTUAL.......................................................................................................... 7
4. UTILIZACIN DEL SOFTWARE DE SIMULACIN RobotStudio.......................7
4.1. Qu es RobotStudio?..........................................................................7
4.2. Primeros pasos en RobotStudio............................................................8
4.3. Generando un programa en RobotStudio...........................................10
4.3.1 Desde el editor de RobotStudio y FlexPendant Virtual..................10
4.4. Ejemplos de programas en RAPID......................................................26
4.4.1. Establecimiento de un tiempo de espera.....................................26
4.4.2. E/S digitales................................................................................. 26
4.4.2. Creacin de subrutinas................................................................33
4.4.3. Escritura de un bucle...................................................................34
4.4.4. Instruccin condicional................................................................34
4.4.5. Instrucciones de movimiento.......................................................35
Apndice: Relacin entre cuaterniones y matrices de rotacin

1. OBJETIVO
El objetivo de la prctica es introducir al alumno en la programacin
de brazos robot industriales. Para ello, se va a utilizar el robot ABB 140 y la
unidad de control IRC5 de ABB, como elementos fsicos y de la unidad de
programacin, el listado de instrucciones RAPID (lenguaje de programacin
de robots ABB) y un programa de simulacin, como elemento software.

2. EL LENGUAJE RAPID
El lenguaje RAPID, desarrollado por la empresa ABB para su nueva
generacin de robots, supuso un nuevo paso adelante en el desarrollo de
herramientas de programacin para robots comerciales.
Constituye un lenguaje de programacin textual de alto nivel
que incluye algunas caractersticas importantes como la utilizacin de
funciones
y
procedimientos,
la
posibilidad
de
utilizar
rutinas
parametrizables, la estructura completamente modular del programa, o la
posibilidad de declarar rutinas y datos como locales o globales.
Los programas se pueden implementar mediante cualquier
editor de texto o en la unidad de programacin bajo un entorno de mens
dirigidos. En las aplicaciones industriales es ms habitual la segunda forma
puesto que permite algunas facilidades como el guiado del robot por
joystick, un entorno de programacin basado en mens dirigidos, etc.
Sin embargo, en esta prctica, al menos en los primeros ejemplos, se
ha optado por la programacin textual puesto que permite comprender
mejor las instrucciones y la estructura del lenguaje de programacin.
El lenguaje RAPID es altamente estructurado de forma similar a un
lenguaje de programacin general. Los programas se denominan tareas en
incluyen el programa en s junto con varios mdulos del sistema. Un mdulo
contiene un conjunto de datos y declaraciones de rutinas. Los datos son
independientes del programa pero pueden ser utilizados por l en cualquier
momento. A su vez, el programa puede ser dividido en varios mdulos de
los cuales uno debe ser el principal. Cada uno de estos mdulos contiene
submdulos de datos, adems de diversas rutinas de ejecucin. La figura 1
representa el esquema de esta estructura.

Figura 1: Estructura de una tarea (programa) en lenguaje RAPID

Existen tres tipos de rutinas o subprogramas disponibles:

Procedimiento. Rutina que no devuelve ningn valor y se utiliza


como instruccin.
Funcin: Rutina que devuelve un valor y se utiliza como una
expresin.
Rutina TRAP: Son rutinas que se asocian a interrupciones y se
ejecutan
cuando estas se activan. Nunca se pueden ejecutar de forma
explcita.

Los datos de un programa RAPID pueden ser, si se clasifican por su


naturaleza, de dos tipos:

Dato atmico: No se define en funcin y no se puede dividir en


diferentes componentes.
Dato de registro: Est compuesto por una serie ordenada de
componentes con sus respectivos nombres. Los componentes
pueden ser a su vez de tipo atmico o de tipo registro.

Por otro lado, atendiendo al mbito de alcance, los datos pueden ser
locales o globales.

Adems de estas primeras clasificaciones, tambin se puede considerar


a los datos de diferente tipo segn si pueden modificarse o no desde un
programa realizado en PC. En este caso, la clasificacin sera la siguiente:

Constantes (CONS): representan dato de un valor fijo a los que no


se puede asignar
otro valor.
Variables (VAR): se les puede modificar el valor durante la
ejecucin
del
programa, pero no se modifica su valor inicial. As una variable
declarada VAR e inicializada a 0, podr ver modificada su valor
durante la ejecucin del programa RAPID. Sin embargo, cuando este
programa se cierre y, posteriormente, vuelva a ejecutarse,
inicialmente volver a tener el valor 0.
Persistentes (PERS): si se cambia su valor durante la ejecucin del
programa, tambin se cambia su valor de inicializacin. A diferencia
del caso anterior, una variable declarada como persistente
mantendr el ltimo valor que tena la ltima vez que se
ejecut el programa RAPID.

Adems de mbito de aplicacin, las variables RAPID han de definirse de


un tipo concreto. Los ms habituales son:

Numrico (num): Definicin de una variable numrica. RAPID no hace


distincin entre nmeros enteros o reales (ambos se declararn
numricos sin especificar nada ms).
Lgico (bool): Definicin de una variable booleana (slo alcanza dos
valores, verdadero o falso)
Cadena (string): Definicin de una cadena de caracteres.

Una vez declaradas las variables segn su mbito de aplicacin y si son


modificables o no, se les asigna un nombre y un valor. El nombre va a ser un
identificador con el que se har referencia a la variable. Para asignar un
valor a una variable se utiliza el smbolo :=, que se conoce como operador
de asignacin. Adems cada declaracin o instruccin de RAPID debe
acabar obligatoriamente en ;. As, por ejemplo, la declaracin de una
variable se hara de la siguiente manera:
VAR
PERS num valor1:=3.0;
En el ejemplo, en la zona de declaracin de variables, se declara una
variable numrica llamada valor1 y cuyo valor inicial es 3.0.
Adems de los distintos tipos de variables, existen en RAPID
estructuras predefinidas. Estas estructuras presentan varios campos (las
3

estructuras son conjuntos de valores, cada uno de estos valores es un


campo). La declaracin de una estructura requiere que, despus del
operador de asignacin, se comience por un corchete, se introduzcan los
valores iniciales, separados por comas, indicando los diferentes campos y se
finalice con un corchete. Algunos ejemplos se muestran a continuacin.
Confdata: Estructura para especificar la configuracin del robot:
Campos:
cf1: cuadrante del eje 1.
cf4: cuadrante del eje 4.
cf6: cuadrante del eje 6.
Ejemplo:
VAR confdata configutacin:=[1,-1,0];
Loaddata: Describe la carga colocada en la mueca del robot.
Campos:
mass: peso de la carga en kilogramos.
cog: centro de gravedad de la carga.
aom: orientacin de los ejes de inercia en el centro de gravedad
expresada
en cuaterniones.
ix, iy, iz: Momentos de inercia en los ejes x, y e z expresados en
kgm2.
Ejemplo:
PERS loadadata pieza: [5,[50,0,50], [10,0,0,0], 0,0,0]
Tooldata: Se utiliza para especificar las caractersticas de una
herramienta.
Campos:
robhold: define si el robot tiene herramienta o no.
tftame: sistema de coordenadas de la herramienta (posicin y
orientacin).
tload: tipo de dato loaddata.
Ejemplo:
PERS tooldata pinza := [TRUE, [[97, 0 220], [0.924, 0 ,0 0.383,0], [5, [23, 0 ,75], [1, 0, 0, 0], 0, 0, 0]
Robtarget: Se utiliza para definir la localizacin del robot y de los ejes
externos.
Campos:
trans: desplazamiento en x, y, z del sistema de coordenadas.
rot: orientacin del sistema en cuaterniones.
robconf: configuracin del robot (cf1, cf4, cf6 y cfx).
extax: posicin de los ejes externos.
Ejemplo:
VAR robtarget posicin:= [[600, 500, 225], [1, 0, 0, 0], [1, 1, 0, 0], [11,
12, 9E9, 9E9, 9E9, 9E9];
Motsetdata: se utiliza para definir algunos parmetros de
4

movimiento.
Campos:
vel.oride: velocidad como porcentaje de la programada.
vel.max: velocidad mxima en mm/s.
sing.wrist: desviacin de la orientacin de la herramienta para
evitar la singularidad de la mueca.
sing.ARM: desviacin de la orientacin de la herramienta para
evitar la singularidad del brazo.
conf.ax1: desviacin mxima del eje 1.
conf.ax4: desviacin mxima del eje 4.
conf.ax6: desviacin mxima del eje 6.
extax: posicin de los ejes externos.
Ejemplo:
VAR robtarget posicin:= [[600, 500, 225], [1, 0, 0, 0], [1, 1, 0, 0], [11,
12, 9E9, 9E9, 9E9, 9E9];
Zonedata: se utiliza para especificar cmo debe terminar una
instruccin de movimiento, es decir, a qu distancia de la posicin
programada deben encontrarse los ejes antes de iniciar un movimiento
hasta la posicin siguiente.
Una posicin puede ser un punto de paso o un punto de paro. Un punto
de paro significa habitualmente que los ejes del robot y los ejes externos
deben alcanzar la posicin especificada (detenindose) antes de que la
ejecucin del programa contine en la instruccin siguiente. El punto de
paso significa que la posicin programada no llega a alcanzarse nunca. En
su lugar, la direccin del movimiento cambia antes de que se alcance la
posicin. Es posible definir dos zonas (rangos) diferentes para cada posicin:

La zona para la trayectoria del TCP.


La zona extendida para la reorientacin
herramienta y para los ejes externos

de

la

Figura 2: Zona para la trayectoria del TCP y la zona extendida

El tamao de la zona no puede ser mayor que la mitad de la


distancia existente hasta la posicin ms cercana (hacia delante o
hacia atrs). Si se especifica una zona ms grande, el robot la reduce
5

automticamente. La zona para la trayectoria del TCP Se genera una


trayectoria de esquina (parbola) tan pronto como se alcanza el borde de la
zona (consulte la figura anterior). La zona de reorientacin de la
herramienta comienza tan pronto como el TCP alcanza la zona extendida. La
herramienta se reorienta de forma que la orientacin en el momento de salir
de la zona sea la misma que habra tenido en la misma posicin si se
hubieran programado puntos de paro. La reorientacin ser ms suave si se
aumenta el tamao de la zona. Adems, existe menos riesgo de tener que
reducir la velocidad para realizar la reorientacin.
En la figura 3 se muestran tres posiciones programadas, la ltima de
ellas con una orientacin distinta para la herramienta.

Figura 3: Posiciones distintas y con distinta orientacin

En la figura 4 se muestra cmo quedara la ejecucin del programa si


todas las posiciones fueran puntos de paro.

Figura 4: Trayectoria con puntos de paro

En la figura 5 se muestra cmo quedara la ejecucin del programa si


la posicin central fuera un punto de paso.

Figura 5: Trayectoria con puntos de paso

La zona para los ejes externos. Los ejes externos comienzan a


moverse hacia la prxima posicin tan pronto como el TCP alcanza la zona
extendida. De esta forma, un eje lento puede empezar su aceleracin antes
y funcionar de una forma ms uniforme.
Existen varios datos de zona ya definidos para los puntos de paso.
Estn dados en la siguiente tabla.
Zona de trayectoria
z0
Trayec. TCP
z1

0,3 mm

Orientacin
0,3 mm
6

z5

1 mm

1 mm

z10

5 mm

8 mm

z15

10 mm

15 mm

z20

15 mm

23 mm

z30

20 mm

30 mm

z40

30 mm

45 mm

z50

40 mm

60 mm

z60

50 mm

75 mm

z80

60 mm

90 mm

z100

80 mm

120 mm

z150

100 mm

150 mm

z200

150 mm

225 mm

z0

200 mm

300

Tabla 1: Datos de zona definidos en RAPID

3. PROGRAMACIN EN RAPID UTILIZANDO LA UNIDAD


DE PROGRAMACIN VIRTUAL
En este apartado se va a explicar cmo se puede realizar la
programacin o Flex Pendant virtual para crear o editar programas en
RAPID.

4. UTILIZACIN DEL SOFTWARE DE SIMULACIN


RobotStudio
4.1. Qu es RobotStudio?
RobotStudio es el programa de modelado y simulacin de robots ABB.
RobotStudio permite, por tanto, modelar un robot, su herramienta de
trabajo y su entorno, adems de escribir el programa en lenguaje RAPID y
simularlo. RobotStudio es, por tanto, una herramienta muy importante de
diseo ya que permite interaccionar el robot con su entorno (a travs de un
editor de modelado), as como obtener, directamente, el programa escrito
en RAPID.
Tambin es posible ejecutar una simulacin que permita validar el
movimiento del brazo para su verificacin. Esta simulacin tiene en cuenta
tanto la cinemtica como la dinmica del brazo robot, por lo que ser muy
similar al movimiento real que realice el brazo.
Existe la opcin de descargar un demo del programa completo, el cual
funciona por 30 das, para esto en la pgina web de ABB

http://www.abb.com/ buscar Gua de productos -> Robtica -> RobotStudio


Community -> Downloads -> Download RobotStudio 5.12.03

4.2. Primeros pasos en RobotStudio


Para empezar, arrancar el programa RobotStudio desde el icono de
acceso directo en el escritorio.

Figura 6: Icono de acceso directo a RobotStudio en el escritorio

Al hacer doble clic sobre el icono de acceso directo mostrado en la


figura 6, se abre el programa principal (figura 9) mostrando una ventana,
como la de la figura 7.

Figura 7: Ventana de bienvenida del RobotStudio

En caso de que se est ejecutando una versin demo se indica en la


figura 7 que la licencia es tipo Trial, adems de indicar en el rea de
informacin de SALIDA los das restantes para que la licencia caduque:

Figura 8: rea de informacin de salida de RobotStudio

La Ventana de Inicio de RobotStudio se aprecia en la figura 9.

Figura 9: Ventana Principal de RobotStudio

Esta ventana es, en realidad, un asistente de creacin de Sistemas el


cual se inicia cuando se selecciona la opcin Nueva Estacin. Al
seleccionar la opcin indicada, se debe especificar un nombre y seleccionar
una plantilla para la nueva estacin creada. El nombre y la plantilla a
introducir debe ser IRB140_5kg_0.81m.

Figura 10: Creacin de una nueva estacin con el asistente

10

Una vez introducido el nombre de la estacin se acepta la ventana, esto


agrega el robot seleccionado al programa, tal como se muestra en la
siguiente figura:

Figura 11: Robot agregado a la nueva estacin mediante el asistente

4.3. Generando un programa en RobotStudio


En este apartado se va a explicar cmo se puede crear un programa
en el entorno de RobotStudio. El programa creado desde el simulador es
perfectamente vlido para ser ejecutado desde el controlador real.
Existen varias maneras de crear o editar programas de robot desde el
simulador:
- Desde el editor de RobotStudio y la Unidad de Programacin Virtual.
- Considerando el modelo del entorno del robot

4.3.1 Desde el FlexPendant Virtual


En este apartado se va a explicar cmo crear o editar programas en
lenguaje RAPID haciendo uso de la Unidad de Programacin o Flex Pedant.
Una vez arrancado el simulador RobotStudio, configurada la estacin,
como se ha explicado anteriormente, y visualizada la ventana de la figura
11, el alumno deber seleccionar la etiqueta Fuera de Lnea, como se
muestra en la figura 12:
11

FlexPendant

Modo de
aplicacin: Fuera
de lnea

Figura 10: Modo de aplicacin Programacin y arranque del FlexPendant

Una vez seleccionado el modo de aplicacin Fuera de lnea, el alumno


seleccionar en el men Controlador la opcin FlexPendant Virtual o bien
pulsar la combinacin Ctrl + F5, para arrancar el FlexPendant Virtual, como
se muestra en la ventana de la figura 12.
Una vez arrancado el FlexPendant Virtual debe mostrarse una
ventana como la mostrada en la figura 13.

Figura 11: Ventana de Produccin del FlexPendant Virtual.

12

La ventana mostrada en la figura 13 tiene dos partes. La parte de la


derecha muestra los botones del FlexPendat que permiten la ejecucin del
programa, as como el joystick, la seta de emergencia y los comandos del
panel de mandos (seleccin del modo de funcionamiento, pulsador de
activacin de motores, etc.).
En la parte izquierda el Flex Pendant virtual presenta la Ventana de
Produccin que muestra el ltimo programa seleccionado. Si es la primera
vez que se va a seleccionar un programa, la Ventana de Produccin
mostrar el aspecto que puede verse en la figura 13 y que indica que,
puesto que no hay ningn programa creado, no est disponible el puntero
de programa.
Para crear un programa debern seguirse los siguientes pasos:
1. Pulsar el botn ABB que se encuentra en la parte superior
izquierda del FlexPendant virtual. Esto mostrar el siguiente men:

Figura 124: Men ABB

2. En el men mostrado en la figura 14, deber hacerse clic sobre la


opcin Program Editor, lo que mostrar el siguiente aviso:

13

Figura 13: Aviso para la creacin de un nuevo programa

3. Una vez mostrado el cuadro de dilogo de la figura 15, se har clic


sobre el botn New, dando lugar a la ventana mostrada en la
figura 16 que permitir la introduccin del nombre del
programa. La introduccin del nombre del programa puede
hacerse a travs del teclado que se visualiza en pantalla o a travs
del teclado del ordenador.

Figura 14: Introduccin del Nombre del Programa

4. Una vez tecleado el nombre del programa y de haber pulsado


sobre el botn Ok de la pantalla mostrada en la figura 16, el
FlexPendant virtual vuelve a mostrar la Ventana de Produccin
14

(mostrando el cdigo del programa a ejecutar), pero ahora con el


siguiente aspecto (obsrvese la diferencia con la figura 13)

Figura 15: Ventana de Produccin una vez creado el programa

5. La pantalla que se muestra en la figura 17 muestra el cdigo a


ejecutar. Este cdigo corresponde al cdigo mnimo que ha de
tener un programa RAPID y que, como ya se dijo en apartados
anteriores ha de constar de:
a. Un nombre de mdulo: En el caso del cdigo creado por
defecto, el nombre del mdulo es Mainmodule. El inicio del
mdulo se indicar con la palabra clave MODULE.
b. Un procedimiento principal llamado main. El inicio y fin del
procedimiento se indica por medio de las palabras clave
PROC
y
ENDPROC
respectivamente.
Todos
los
procedimientos creados en RAPID deben de incluir unos
parntesis, dentro de los cuales se indican los parmetros
de la llamada al procedimiento. Aunque el procedimiento no
tenga parmetros (como sucede con el procedimiento main)
se han de mantener los parntesis (aunque en su interior no
se ponga nada).
c. Una instruccin de final de mdulo. El final de mdulo se
indicar con la palabra clave ENDMODULE.
As tras seguir los pasos de 1 al 5 ya se est en disposicin de teclear
(dentro de las secciones PROC y ENDPROC) las instrucciones que van a
formar parte del programa RAPID.

15

Para aadir instrucciones deber hacerse clic sobre la opcin Add


Instruction (ver figura 17). Sin embargo, esta opcin aparece, por defecto,
deshabilitada. Esto es debido a que cuando se muestra el FlexPendant
Virtual, ste tiene configurado, por defecto, al controlador de robot en el
Modo de funcionamiento automtico. Cuando el controlador se encuentra en
Automtico, solo se pueden ejecutar programas, no editarlos.
As, el siguiente paso ser poner el controlador de robot (virtual) en
modo manual. Para ello, se pulsar sobre el icono mostrado en la figura 18

Modo de
funcionamiento
controlador

Modo de
funcionamiento
controlador

Figura 16: Cambio de modo de funcionamiento del controlador virtual

Al hacer clic sobre el icono mostrado en la figura 18, se abre un nuevo


dilogo, como el mostrado en la figura 19, en el que se deber seleccionar
el modo de funcionamiento manual (girando la llave una posicin hacia la
derecha, tal como muestra la figura 19).
Modo
Automtico

Modo Manual

Figura 17: Cambio de modo de funcionamiento de Automtico a Manual

16

Ahora ya es posible editar programas, pulsando el botn Add


Instruction mostrado en la figura 17. La pulsacin de este botn permitir
abrir un navegador de instrucciones y seleccionar la instruccin a introducir.
Observe que nicamente en modo manual se pueden editar los programas
del robot.

Figura 20: Aadir instrucciones desde el FlexPendant Virtual

4.3.2. Desde el editor de RobotStudio


Para facilitar la edicin de las instrucciones que va a contener el
programa RAPID a ejecutar no se va a utilizar el FlexPendant virtual sino
RobotStudio. Previo a la realizacin de este paso guarde la estacin como
prueba 1 en el directorio C:\Sistemas o similar.
As, si se vuelve a RobotStudio y se despliega el contenido del
Navegador de Programas mostrado en la parte izquierda de RobotStudio
(desde el modo fuera de lnea), se debe mostrar una pantalla como la de la
figura 21.
Editor de Rapid

17

Navegador de
Programas

Figura 181: Navegador de Programa en RobotStudio

Haciendo clic en el botn derecho del ratn sobre el nombre del


mdulo, Mainmodule, aparece un men contextual. En dicho men deber
aceptarse la opcin Editor de Rapid. Tambin puede se puede acceder al
editor de forma directa al Editor haciendo clic izquierdo en el botn Editor
de Rapid mostrando en la figura 21. (Si el programa no inicia el editor de
Rapid, reinicie el programa, abra la estacin previamente guardada e
intntelo de nuevo)
Esto crear una nueva Vista con el aspecto mostrado en la figura 22.
Lista de
Seleccin

18

Figura 19: Editor de Rapid de RobotStudio.

Llegados a este punto, ya se est en disposicin de escribir un


programa en lenguaje RAPID. Este editor es mucho ms sencillo de utilizar
que el FlexPendant virtual y mucho ms intuitivo. As, por ejemplo, para
escribir la primera instruccin RAPID, se seleccionar y eliminar el
texto marcado como <SMT> (ya que es ah donde se van a escribir las
instrucciones del lenguaje RAPID).
Una vez eliminado, se pulsar sobre el botn Lista de
Seleccin, mostrndose la lista de todas las instrucciones RAPID
disponibles. La lista est separada por categoras, mostrndose inicialmente
las ms comunes. Para insertar una instruccin basta con seleccionarla y,
automticamente, aparece en el editor de programas, insertada en el
cdigo.
As, se va a seleccionar la primera instruccin que se va a aadir al
programa que es la instruccin que muestra en la pantalla del FlexPendant
virtual un texto y/o el valor de una variable. Esa instruccin es la instruccin
TPWrite. Est instruccin se encuentra en la categora communicate
dentro de listas de seleccion tal como se muestra en la figura 23. Al
seleccionarla (doble clic), se inserta en el cdigo, como se muestra en la
figura 24.
Como puede verse en la figura 23, la nueva vista muestra las mismas
instrucciones que las que se visualizaban en el FlexPendant virtual.

19

Figura 20: Insercin de instrucciones en el Editor de Rapid de RobotStudio.

Figura 21: Primera instruccin RAPID aadida.

Una vez aadida la instruccin hay que completar la sintaxis. As,


para visualizar el texto en pantalla deber teclearse, a continuacin del
nombre de la instruccin, el texto a visualizar (escrito entre comillas dobles

20

"), debiendo finalizarse la instruccin con un punto y coma. As, la


instruccin quedara de la siguiente manera:
TPWrite "Hola";
El cdigo RAPID resultante se muestra en la figura 25.

Figura 22: Cdigo resultante en RAPID

Una vez introducido el cdigo mostrado en la figura 25 (compuesto


por la instruccin TPWrite y el texto a visualizar) hay que aplicar los cambios
(para ver si contiene errores sintcticos). Para ello, deber hacerse clic
sobre el icono Aplicar Cambios (mostrado en la figura 26) o pulsando las
teclas Ctrl+Mays+S.

21

Icono de aplicar
cambios

Figura 23: Aplicar Cambios para la validacin del cdigo

Al pulsar sobre dicho icono, se mostrar un cuadro de dilogo como el


mostrado en la figura 27, preguntando si se desea aplicar los cambios. En
ese cuadro de dilogo, se seleccionar Aceptar.

Figura 24: Cuadro de dilogo validacin/aplicacin de los cambios.

Si adems sale el siguiente mensaje sobre el puntero del programa


(figura 28), se seleccionar S. Este se volver a generar ms adelante.

Figura 25: Advertencia sobre el puntero del programa.

Si el programa no contiene errores se mostrara un mensaje similar en


el rea de salida al mostrado en la figura 29.
22

Figura 26: Indicacin en la Salida que el programa fue verificado sin errores.

Antes de sincronizar con la estacin se debe generar un nuevo puntero del


programa, para esto se ubica el cursor en la primera lnea del programa
creado (en este caso TPWrite) y mediante el clic derecho se selecciona la
opcin Situar puntero de programa en Main:

Figura 30: generacin del puntero de programa en Main.

Al generar el puntero de programa se muestra una flecha amarilla en la


primera instruccin del programa a ejecutar, tal y como se muestra en la
figura 31.

Figura 31: puntero generado de programa en Main.

23

Generado el puntero del programa debe volver a hacer clic sobre el icono
Aplicar Cambios (mostrado en la figura 26). Ahora no debern aparecer
las advertencias mostradas en las figuras 27 y 28.
Por ltimo, para que se pueda simular el programa en el robot virtual (o en
el FlexPendant) es necesario sincronizar el programa con la estacin. Para
ello, se seleccionar la opcin de Fuera de lnea -> Sincronizar con
estacin como se muestra en la figura 32.
Sincronizar con
Inicio de la simulacin
estacin

Figura 32: Sincronizar con estacin

Al sincronizar con estacin, se abrir el cuadro de dilogo mostrado


en la figura 33 que indica cuales son los objetos que se van a sincronizar
con la estacin (clic en Aceptar).

24

Figura 33: Objetos a sincronizar

Una vez sincronizado el programa con la estacin, ya se puede


simular. Nota: SIEMPRE SINCRONIZAR EL PROGRAMA CON LA
ESTACIN ANTES DE SIMULAR.
Aunque se puede simular desde RobotStudio (dando clic en el botn de
inicio mostrado en la figura 28 o con la tecla F8), en esta gua se propone la
simulacin desde la unidad de programacin virtual o FlexPendant virtual.
Para ello, se deber volver a visualizar la pantalla del FlexPendant ->
Program Editor (ver figura 12). El Program Editor del FlexPendant,
despus de haber realizado la sincronizacin con estacin, deber mostrar
paro
de 34:
el programa editado desde RobotStudio) tal yMotores
como sedetenidos,
muestra en
figura
Seguridad

Figura 34: Visualizacin del programa escrito en el FlexPendant

25

Los programas nicamente se pueden ejecutar cuando los motores


del robot estn en marcha. Por lo que si se intenta ejecutar el programa
(cuando se abre el FlexPendant en el paso anterior) se mostrar la siguiente
pantalla de error:

Figura 35: Visualizacin del programa escrito en el FlexPendant

Segn nos indica el error de la figura 35 debemos asegurarnos que el paro


de seguridad no este activado, pero tal y como lo muestra la figura 34 los
motores SI estn detenidos por esta causa. Damos clic en Acknowledge
para reconocer el error.
Para deshabilitar el paro de seguridad debemos activar nuevamente el
modo Automtico como lo muestran las figuras 18 y 19 pero esta vez
girando la llave una posicin hacia la izquierda. Al hacerlo aparece la
siguiente ventana donde ya no se muestra el estado de paro de seguridad:
Motores detenidos

26

Figura 36: Cambio del modo del controlador a Automtico

Damos clic en Acknowledge y luego en OK.


Para poner en marcha los motores damos clic en el smbolo del motor en la
ventana del modo de funcionamiento del controlador (figura 18 y 19), esto
enciende los motores y permite la ejecucin del programa realizado, tal y
como se muestra en la figura:
Clic en el
smbolo del
motor

Figura 37: Puesta en marcha de los motores en el modo de funcionamiento del


controlador

Esto enciende los motores y se cambia el estado en la figura 38 a


encendido:

27

Motores en Marcha (encendidos)

Figura 38: Visualizacin del programa escrito en el FlexPendant, Motores


encendidos

Con esto ya se puede ejecutar el programa, para esto debemos pulsar sobre
el botn de ejecucin continua como muestra la figura 39.

Botn de ejecucin
continua.

Botn de ejecucin
continua.

Figura 39: Botn de ejecucin continua

Al ejecutarse, deber mostrarse en el FlexPendant el texto indicado


en el programa.
28

4.4. Ejemplos de programas en RAPID


En este apartado se van a mostrar algunos programas de ejemplo que
tratan de introducir al alumno en la programacin en RAPID

4.4.1. Establecimiento de un tiempo de espera.


Para establecer un tiempo de espera se utiliza la instruccin RAPID
WaitTime de la siguiente manera
WaitTime tiempo_de_espera donde el tiempo de espera es una
cantidad real (flotante) de tiempo especificado en segundos
Se propone al alumno un ejercicio consistente en sacar un texto de
pantalla al cabo de segundos de iniciarse la ejecucin del programa.

4.4.2. E/S digitales.


Los controladores de robot disponen de entradas y salidas digitales
y/o analgicas que pueden leerse (en el caso de las entradas) y activarse
(en el caso de las salidas).
Cuando se arranca, por defecto, RobotStudio ste NO tiene ninguna
tarjeta de entradas/salidas instalada. Para instalar la tarjeta que lleva el
controlador real, es necesario cargar el archivo EIO.CFG que se entrega
junto con esta memoria (guardarlo en la carpeta C:\Sistemas o similar).
Para cargar ese archivo, es necesario crear un sistema de la siguiente
manera:
1. Arrancar el Asistente Creador de Sistemas desde la etiqueta Fuera
de lnea Creador de Sistemas tal y como se muestra en la figura
40. Esta opcin lanzar una ventana como la mostrada en la
Creador de Sistemas
figura 41.

29

Figura 40: Botn para iniciar el creador de sistemas

Figura 41: Creador de Sistemas

En la ventana mostrada en la figura 41, se especificar, en la


ventana izquierda la ruta donde se va a crear el nuevo sistema.
Una vez indicada la ruta, se pulsar el botn de accin Crear
Nuevo.
2. Al pulsar el botn Crear Nuevo, se lanza el asistente. Despus de
confirmar la ventana de bienvenida, aparece una ventana como la
mostrada en la figura 42.
30

Figura 42: Nombre y ruta del nuevo sistema

3. El alumno seleccionar el nombre de sistema SistemaI0, tal como


se muestra en la figura 42 y pulsar el botn Siguiente. A
continuacin, se mostrar una ventana como la mostrada en la
figura 43.

Figura 43: Introduccin del Grupo de Medios

En la ventana de la figura 43, el alumno deber marcar el cuadro de


opcin Clave Virtual (que por defecto se encuentra deshabilitado) y
pulsar el botn Siguiente.
31

4. Al pulsar el botn Siguiente, aparecer la ventana mostrada en la


figura 44.

Figura 44: Seleccin de la clave de Accionamiento

En la ventana mostrada en la figura 44, la clave de accionamiento


que aparece en la ventana de la izquierda se ha de pasar a la
derecha, pulsando el botn de la flecha.
Una vez, la clave de accionamiento est en la ventana derecha, se
pulsa el botn siguiente.
5. El siguiente paso es aceptar (sin introducir nada) el grupo de
medios. Para ello, deber, nicamente, pulsarse el botn
siguiente.

32

Figura 45: Grupo de medios

6. A continuacin, deber seleccionarse la tarjeta Hardware que


lleva instalada el controlador real. Para ello, sobre la ventana
mostrada en la figura 46, deber seleccionarse la opcin DeviceNet, tal como muestra la figura 46.

Figura 46: Opciones Hardware

7. A continuacin, se ha de insertar el archivo EIO.CFG entregado


junto a esta memoria. Para ello, se indicar la ruta en la que se
encuentra dicho archivo y se pulsar sobre el botn de la flecha,
como se muestra en la figura 47.

33

Figura 47: Opciones de configuracin

8. Una vez hecho esto, ya se puede pulsar el botn finalizar, puesto


que ya no se van a aadir ms opciones. Al pulsar el botn
Finalizar del asistente, aparecer una ventana que muestra los
sistemas instalados, como se muestra en la figura 48. Damos clic
en cerrar.

Figura 48: Sistemas instalados

Una vez creado el sistema, hay que cargarlo desde RobotStudio, para
ello desde la etiqueta Posicin Inicial Sistema de Robot Existente...
(Figura 49) Esta opcin mostrar los sistemas instalados, y se deber
34

seleccionar el sistema creado SistemaI0, tal como se muestra en la figura


50.

Figura 49: Botn para iniciar el asistente para aadir sistema

Figura 50: Seleccin de Sistemas Instalados

Una vez seleccionado el SistemaIO se pulsa el botn Aceptar.


35

Una vez aadido el sistema, se selecciona (desde RobotStudio) la


etiqueta Simulacin Simulador de E/S, mostrndose la figura 51.

Figura 51: Simulador de E/S

Sobre la nueva ventana que aparece en la parte derecha, se


seleccionar, en el desplegable superior el sistema creado (SistemaIO). En
el desplegable Filtro se seleccionar la opcin Tarjeta (permitiendo visualizar
las tarjetas instaladas en el robot Virtual). Y, finalmente, en el desplegable
Rango de E/S se seleccionar la opcin Todas.
Esto permitir visualizar las E/S del controlador virtual (son las
mismas que en el controlador real) e interactuar con ellas activando las
salidas desde RobotStudio o el FlexPendant Virtual.
Para poder acceder a las E/S desde programa. Para ello, se han de
utilizar, adecuadamente las instrucciones RAPID que se indican a
continuacin.
Las instrucciones de RAPID para asignar un valor a una salida son las
siguientes:

Set seal_digital: Esta instruccin establece un valor booleano true a


la seal digital de salida especificada. Un ejemplo de sintaxis de esta
instruccin es el siguiente:
o

Set DO10_4 que significa que se asigna un valor lgico 1 a la


salida DO10_4.

36

Reset seal_digital: Esta instruccin establece un valor booleano


false a la seal digital de salida especificada.
o

Reset DO10_4 que significa que se asigna un valor lgico 0 a


la salida DO10_4.

SetDO seal_digital, valor: Esta instruccin especifica el valor


indicado a la seal digital indicada en la instruccin.
o

SetDO DO10_4,true que significa que se asigna un valor lgico


1 a la salida DO10_4.

El nombre de la seal digital debe coincidir con uno de los nombres


del archivo de configuracin.
Por otro lado, para acceder al valor de una entrada digital es
necesario utilizar la instruccin WaitDI de la siguiente manera:
WaitDI seal_entrada, valor donde seal de entrada es el nombre
que figura en el archivo de configuracin correspondiente a una seal de
salida. En este caso, el controlador de robot se queda esperando a que
la seal de entrada indicada en la instruccin alcance el valor especificado.
Un ejemplo de sintaxis de esta instruccin es el siguiente:
WaitDI DO10_1, 1: donde el controlador de robot se queda esperando
hasta que el valor de la seal de entrada DO10_1 alcance el valor 1.

4.4.2. Creacin de subrutinas


Una subrutina es un procedimiento por lo que deber comenzar y
acabar con las palabras reservadas PROC y ENDPROC, respectivamente. As,
la creacin de la subrutina debe ser la siguiente
PROC nombre de subrutina (argumentos opcionales)
Lneas de programa en lenguaje RAPID
ENDPROC
Las subrutinas deben ejecutarse debajo de la subrutina main o
programa principal y antes del fin de programa ENDPROG.
Si la subrutina que se desea crear no tiene argumentos, entonces
deber mantenerse la estructura anterior, incluyendo la apertura y cierre de
parntesis, pero sin argumentos.
A continuacin se muestra un ejemplo de programacin de una
subrutina a la que se le pasa un valor y devuelve un resultado.
MODULE MainModule
PERS num variable:=0;

PROC main()
37

Incrementador variable;
ENDPROC
PROC Incrementador (PERS num variable)
Incr variable;
TPWrite "Contador= "\Num:=variable;

ENDPROC

4.4.3. Escritura de un bucle


Los bucles, al igual que las instrucciones condicionales, son
instrucciones que se engloban dentro del grupo control de flujo de
ejecucin.
Existen dos instrucciones de bucle en RAPID. La sintaxis de estas
instrucciones son las siguientes:

FOR: Repite una seccin del programa un determinado nmero de


veces. La seccin de programa que se va a repetir viene determinada
por las palabras clave FOR y ENDFOR. El nmero de veces que se ha
de repetir las instrucciones contenidas entre las palabras clave
anteriormente indicadas viene determinado en la instruccin de la
siguiente manera:
o

FOR i FROM 1 TO 3 DO
numrico

donde i es una variable de tipo

WHILE: Repite una seccin del programa mientras se cumple una


condicin. La seccin a repetir viene determinada por las palabras
clave WHILE y ENDWHILE. La sintaxis de un bucle de este tipo es la
mostrada en el siguiente ejemplo.
o

WHILE (condicin) DO

Se propone un ejercicio que consiste implementar un bucle de cinco


iteraciones que incremente el contenido de una variable (que inicialmente
vale 0) hasta que sea igual a 5.

4.4.4. Instruccin condicional


Las instrucciones condicionales permiten alterar, al igual que los
bucles, el flujo de ejecucin de un programa. En concreto, una instruccin
condicional ejecuta una porcin de cdigo RAPID si se cumple una condicin.
El inicio del segmento de cdigo que se ejecuta comienza por la
palabra clave IF y finaliza con la palabra clave ENDIF. La sintaxis de una
instruccin condicional es la siguiente:
38

IF (condicion=1) THEN
ENDIF
Se propone al alumno que realice un programa consistente en
incrementar una variable si otra variable (un flag) est a true.

4.4.5. Instrucciones de movimiento


Existen tres tipos bsicos de comandos de movimiento:

MoveJ: mueve el robot con trayectoria en el espacio de


las articulaciones. Esto significa que los ejes no se
coordinan para realizar una trayectoria requerida del
efector final. Esta resulta ser una curva que no se puede
prever de antemano. Sin embargo, se trata de una
trayectoria iscrona o sincronizada en articulaciones.
MoveL: La herramienta se desplaza en lnea recta.
MoveC: La herramienta recorre un arco circular.

El siguiente ejemplo consiste en dos movimientos en el espacio de


articulaciones.
El comando MoveJ tiene el siguiente formato:
MoveJ [\Conc] ToPoint Speed [\V]| [\T] Zone [\Z] Tool [\Wobj]

[\Conc]: ejecucin concurrente. Se ejecutan las siguientes


instrucciones durante el movimiento.
ToPoint: Punto de destino del tipo robtarget.
Speed: Velocidad que afecta el movimiento. Tipo de dato:
speeddata.
[\V]: Velocidad especficas del movimiento. Tipo de dato: num.
[\T]: Tiempo en el que se debe ejecutar el movimiento. Tipo de
dato: num.
Zone: zona de movimiento para que se empiece a ejecutar la
siguiente instruccin. Tipo de dato: zonedata.
[\Z]: Precisin del TCP. Tipo de dato: num.
Tool : La herramienta en uso. Tipo de dato: tooldata.
[\Wobj]: objeto de trabajo con el que el robot est asociado.
Tipo de dato: wobjdata.

Cabe resaltar que para los comandos se utiliza la siguiente:


- Los argumentos opcionales aparecen entre corchetes [ ]. Puede
omitir estos argumentos.
- Los argumentos excluyentes entre s, es decir, que no pueden existir
a la vez en una misma instruccin, aparecen separados por una barra
vertical |.
- Los argumentos que pueden repetirse un nmero arbitrario de veces
aparecen entre llaves { }.
39

Abrir un nuevo fichero en Wordpad y teclear lo siguiente:


MODULE MainModule
CONST robtarget p10 := [[593.41,22.36,706.32],
[0.66198,0.0775934,0.738955,0.0985284],[0,2,2,1],
[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONST robtarget p20:=[[512.76,116.47,788.22],
[0.707746,0.00775232,0.684857,0.173224],[0,2,2,1],
[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
PROC main()
MoveJ p10, v150, z50, tool0;
MoveJ p20, v150, z50, tool0;
ENDPROC
ENDMODULE

Guardar el fichero en nuevo directorio con el nombre MainModule.mod.


Abrir un nuevo fichero e introducir:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<Program>
<Module>MainModule.mod</Module>
</Program>

Guardar el fichero con la extensin *.pgf. Se le puede asignar cualquier


nombre.
Ejercicio propuesto: Implementar y simular un programa de forma
que la herramienta recorra un triangulo equiltero de 200
milmetros de lado.
El formato de la instruccin MoveL es equivalente al de MoveJ:
MoveL[\Conc]ToPoint[\ID]Speed[\V]|[\T]Zone[\Z]
[\Inpos]Tool[\WObj]
Programa ejemplo 4
En este ejemplo se van a realizar trayectorias en forma de arco de crculo.
El formato de la instruccin correspondiente es la siguiente:
MoveC[\Conc]CirPointToPoint[\ID]Speed[\V]|[\T]Zone
[\Z][\Inpos]Tool[\WObj]
La novedad con respeto a las dos anteriores es el parmetro CirPoint. Es el
punto de paso para definir el crculo. Es conocido que un crculo es definido
por tres puntos. En este caso el arco empezara por la posicin actual del
robot, pasara por CirPoint y acabara en ToPoint.
Ejemplo:
MoveLp1,v500,fine,tool1;
40

MoveCp2,p3,v500,z20,tool1;
MoveCp4,p1,v500,fine,tool1;
La figura muestra cmo se realiza un crculo completo mediante dos
instrucciones MoveC.

Las unidades del robot y las externas se trasladan hacia el punto de destino
de la forma siguiente:

El TCP de la herramienta se mueve en crculo a una velocidad


constante programada.
La herramienta se reorienta a una velocidad constante,
desde la orientacin de la posicin inicial hasta la orientacin
del punto de destino.
La reorientacin se realiza respecto de la trayectoria circular.
Por tanto, si la orientacin respecto de la trayectoria es la
misma en los puntos inicial y final, la orientacin relativa
permanece sin cambios durante el movimiento (consulte la
figura siguiente).

La figura muestra la orientacin de la herramienta durante un movimiento


circular.

41

La orientacin del punto circular no se alcanza. Slo se usa para distinguir


entre dos sentidos de orientacin posibles. La exactitud de la reorientacin
a lo largo de la trayectoria slo depende de la orientacin en los puntos
inicial y de destino. Los distintos modos de orientacin de la herramienta
durante una trayectoria circular se describen en la instruccin CirPathMode.
Ejercicio Propuesto: Implementar y simular un programa en el que
el robot escribe UPV.

42

APNDICE
Existen mltiples formas de representar la orientacin de la
herramienta: matrices de rotacin, cuaterniones, ngulos de Euler,
etc
En los libros de teora de robtica se utilizan habitualmente las
matrices de rotacin puesto que permiten solucionar la cinemtica
directa del robot con facilidad.
Por otra parte, en el lenguaje RAPID la orientacin se representa
mediante cuaterniones.
Los cuaterniones se pueden obtener de la matriz de rotacin a partir de
la siguiente frmula:
1
(n x o y a z 1)
2
1
q1 sign (o z a y ) ( nx o y a z 1)
2
1
q2 sign ( a x nz ) ( n x o y a z 1)
2
1
q3 sign (n y ox ) ( nx o y a z 1)
2
q0

43

También podría gustarte