Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Posgrado en Desarrollo
de Proyectos
de Automatizacin Industrial
Profesor:
Javier del Ro
Programacin de
Robots Scara
Introduccin a la Robtica.
1.1 Definicin de Robot. Robot Industrial.
1.2 Clasificacin de Robots Industriales.
1.3 Principales Caractersticas de los Robots Industriales.
1.4 Robots Scara. Yamaha YK600XG.
Pantalla MPB
Seta de Emergencia
Modo Manual
Modo Automtico
Modo Program
Modo System
Modo Utility
Modo Monitor
Programacin
4.1 Introduccin
4.2 Variables. Definicin y tipos
4.3 Instrucciones de Entrada/Salida
4.4 Instrucciones de Control
4.5 Instrucciones de Salto
4.6 Instrucciones de Movimiento Bsico
4.7 Instrucciones de Velocidad, Aceleracin y Deceleracin
4.8 Otras Instrucciones
Sistemas de Referencia
Subrutinas
Practicas
Prctica 1
Prctica 2
Prctica 3
Prctica 4
1- Introduccin a la Robtica
Androides: Robots con forma humana. Imitan el comportamiento de las personas. Su utilidad en la
actualidad es bastante limitada y estn en una fase de experimentacin.
Mviles: Se desplazan mediante una plataforma rodante.
Zoomrficos: Utilizan un sistema de locomocin que imitan a los animales.
Poliarticulados: Estn formados por una serie de extremidades que se mueven con unos grados de
libertad. Su principal utilidad es industrial y estn ampliamente implementados en estos entornos.
Unidad de Control: Se trata de un mdulo que contine toda la electrnica que controla los
movimientos del robot y de una CPU en el que se realiza la programacin del robot.
Brazo Mecnico: Es la estrctura mecnica del robot juntamente con los motores que realizan los
movimientos. En esta estructura mecnica se identifican una serie de ejes motorizados que desplazan el
brazo mecnico, y una herramienta situada en el extremo del brazo que realiza la funcin especfica
para el que est destinado el robot (soldar, manipular piezas, etc.). Tcnicamente la herramienta no
forma parte del brazo mecnico.
Segn la estructura mecnica del brazo se puede realizar la siguiente clasificacin de robots industriales:
Robots Angulares o
Articulados: Se caracterizan
porque todos los ejes realizan
movimientos angulares.
Volumen de Trabajo: Es el espacio de trabajo generado por el extremo del manipulador al desplazarse
por todo el rango articular
Repetibilidad: Dispersin del error que se produce cuando se vuelve a la posicin programada
repetidamente.
A la unidad de control tambien se conecta una consola (denominada MPB) a travs de la cual un operario puede
controlar todas las funciones del robot:
-
esta
10
Programar un Robot consiste bsicamente en escribir un programa que indique al robot una serie de
movimientos a puntos espaciales previamente definidos con el fin de realizar una determinada tarea (por
ejemplo, si el robot tiene que coger un objeto debe tener configurado el punto o puntos a los que se tiene que
desplazar para realizar dicha operacin).
Matemticamente todo punto en el espacio queda definido
con 3 coordenadas X, Y y Z respecto de un eje cartesiano.
No obstante en el caso de los robots no bastar con indicar
las 3 coordenadas a las que se tiene que desplazar, sino que
se deber especificar la posicin en la que debe situarse la
pinza o herramienta que lleva en el extremo del brazo. Esta
informacin adicional ir en funcin de los grados de
libertad que tenga el brazo robtico con la herramienta, por
ejemplo, en el caso de un robot polimrfico de 6 ejes la
pinza prcticamente podr adoptar cualquier posicin en el
espacio, sin embargo en un robot scara de 4 ejes la pinza
solo podr realizar rotaciones en el plano horizontal (en este
caso de dice que slo tiene 1 grado de libertad).
Para implementar todo este sistema de posicionamiento se consideran 2 sistemas de referencia cartesianos.
Estos son:
Tomando como base un robot de 6 ejes, una coordenada en el espacio tendr 2 partes:
1.
Posicion X,Y y Z del centro del TCP con respecto al Sistema de Referencias WORLD. Normalmente
las unidades empleadas son en mm
2.
Para representar la posicion que adopta la herramienta en el espacio, se necesitan 3 coordenadas mas
que representan el giro angular que adoptan cada uno de los ejes del TCP. En este caso las unidades
que se suelen emplear son grados.
10
11
350.45 -610.00
430.45
35.45
0.00
La posicin del punto de origen del TCP es de 350.45 mm en el eje X del WORD, de -610.00 mm en el
eje Y, y de 430.45 mm en el eje Z.
La posicin en la que queda la herramienta se obtiene girando 35.45 el eje X del TCP, 0.00 el eje Y, y
23.45 el Z.
Estos sistemas de referenciado de puntos son los que cada robot tiene implementados por omisin, no obstante
en una aplicacin de robot el programador tambien puede crear sus propios sistemas de coordenadas cartesianos
y posicionar el robot en base a ellos.
11
12
Para todos los robots una coordenada en el espacio tendr 2 partes: una primera que se corresponder con la
posicin X,Y,Z del origen del TCP, y una segunda que indicar la posicion espacial de la herramienta. El
nmero de elementos que tendr esta segunda parte ir en funcin de los grados de libertad que tenga la
herramienta, ya hemos visto que en el caso de un robot de 6 ejes (la herramienta puede adoptar cualquier
posicin en el espacio) tendr 3 grados de libertad que se correspondern con los ngulos de giro de los 3 ejes
del TCP,
Por ejemplo, la posicin 300.00 -210.15 100.10 45.2, indica que el scara se encuentra situado en la posicin
300.00 mm del eje X del WORLD, -210.15 mm del eje Y y 100.10 del eje Z, y la pinza presenta un giro de
45.2.
12
13
Lnea de sistema (Lnea 1): A la izquierda se muestra en que modo se encuentra el robot (manual,
automtico, etc.) y dentro de ste el men que se encuentra seleccionado. A la derecha se muestra
diversa informacin del robot (sistema de coordenadas seleccionado, velocidad, nombre del programa
ejecutndose, etc.) en funcin del modo selecciondo.
Zona de Datos (Lneas 3 a 7): Se visualizan diversos tipos de datos y edicin de informacin.
Lnea de Instruccin (Lnea 8): Muestra todos los contenidos asignados a las teclas de funcin en
visualizacin resaltada.
13
14
14
15
Teclas de Funcin: Se utilizan para seleccionar los mens que se encuentran resaltados en la lnea del
display situada justo en su parte superior (lnea 8). Las teclas estn marcadas de F1 a F5. Si se aprieta
la tecla UPPER BUTTOM en combinacin con una tecla funcin se accede a otra lnea de mens
(denominados de F6 a F10), y si se aprieta LOWER BUTTOM en combinacin de nuevo con una tecla
funcin se accede a otra lnea de mens (F11 a F15). Por ejemplo en modo manual tendramos las
siguientes lneas de men:
pantalla
de
visualizacin
de
15
16
Teclas de Cursor.
Mueve el Cursor Arriba
Mueve el Cursor Abajo
Mueve el Cursor a la Izquierda
Mueve el cursor a la Derecha
Teclas de Pgina.
Vuelve a la pantalla anterior
Vuelve a la pantalla siguiente
Vuelve a la pantalla de la izquierda
Vuelve a la pantalla de la derecha
Teclas de Edicin
Intercambia entre los modos de edicin insertar y
sobreescribir
Borra un carcter en la posicin del cursor
Inserta una lnea en la posicin del cursor
Borra una lnea en la posicin del cursor
Teclas de Desplazamiento
Comienza la ejecucin de un programa. Esta tecla
slo es vlida en modo automtico, o bien al
realizarse la ejecucin de una trayectoria.
Detiene el funcionamiento de cualquier proceso que
est realizando el robot.
16
17
17
18
18
19
Para volver al funcionamiento normal despus de una parada de emergencia debe hacerse un reinicio del
sistema. El procedimiento a seguir es el siguiente:
-
Cancelar el botn de parada de emergencia del MPB. Se libera la parada de emergencia girando el
botn en el sentido de las agujas del reloj.
Pulsar la tecla LOWER BUTTOM mientras se mantiene pulsada la tecla UTILITY. La pantalla cambia
a modo "UTILITY" y se muestra la pregunta "Cancelar activacin de emergencia?".
19
20
Pulsar F1 (MOTOR) para acceder a la pantalla del Motor. En esta pantalla volver a pulsar F1 (ON)
para volver a activar los motores.
20
21
Mediante la pulsacin de la correspondiente tecla de funcin se accede al modo seleccionado, por lo que para
acceder al Modo Manual debe pulsarse F3. Las principales funcionalidades que ofrece este modo son:
-
La pantalla principal del Modo Manual tiene el siguiente aspecto, y en ella se pueden diferenciar las siguientes
partes:
Mode Hierarchy: Muestra la jerarqua de modo actual. Cuando el modo ms alto ("MANUAL" en
este caso) est resaltado, significa que la corriente del motor servo est encendida. Cuando no est
resaltado significa que la corriente del motor servo est apagada.
Manual Movement Speed: Muestra la velocidad de movimiento manual seleccionada para este modo
en % (por normativa, el 100% de la velocidad manual se corresponde con el 10% de la velocidad
mxima del robot). La velocidad se incrementa o decrementa con las teclas VEL + o VEL -.
21
22
Shift Hand coordinate units: Muestra el sistema de coordenadas cartesiano seleccionado para
desplazarse.
Message Line: Si se produce un error el mensaje aparece en esta lnea. Una lnea discontinua significa
que el retorno al origen es incompleto, y si es continua indica que dicho retorno es completo.
Current Position: Esto muestra la posicin actual del robot. Cuando una letra M o S va seguida
de un nmero indica la posicin en unidades de "impulso" (visualizacin de nmero entero) y cuando
sigue una letra de x a a, indica unidades "mm."
F1 POINT: Se accede a una pantalla desde la que se pueden editar y grabar puntos. Esta informacin
est contenida en una memoria no voltil del controlador, y se pueden almacenar hasta 9999 puntos. El
aspecto de la pantalla es el siguiente.
Los puntos son almacenados en una tabla. La informacin de cada punto est en una variable que tiene
el formato P + Numero de punto (0-9999), y como puede observarse esta variable est compuesta
por la coordenada en el eje X, en el Y, en el Z, y el ngulo de giro de la pinza. El punto seleccionado
aparece marcado en negrita, y podemos desplazarnos a lo largo de la tabla con las teclas . Las
opciones que se tiene en esta pantalla son:
22
23
F6 SHIFT: Se accede a una pantalla desde la que se pueden editar los sistemas de coordenadas
cartesianos. Esta informacin est contenida en una memoria no voltil del controlador, y se pueden
almacenar hasta 10 sistemas de coordenadas. El aspecto de la pantalla es el siguiente
F8 UNITCHG: Permite cambiar la visualizacin de la posicin actual del robot entre pulsos motor y
coordenadas cartesianas respecto del sistema de referencia seleccionado. Si se visualizan los pulsos
motor, lo que se mostrara en pantalla es el nmero de impulsos que ha recorrido cada uno de los 4 ejes
desde su posicin de origen.
23
24
F11 RST.ABS: Permite realizar una secuencia de origen del robot que consiste en desplazar sus 4 ejes
hasta su punto de origen. La posicin actual del robot se guarda en el controlador mediante una batera
externa cuando ste se desconecta, y en caso de que la batera se agote y se pierda esta informacin, al
volver a conectar el robot ser obligado realizar una secuencia de origen.
En modo manual puede moverse el robot con las teclas de movimiento. En caso de tener seleccionada la
visualizacin de posicin actual como pulsos de motor el movimiento se realizar eje a eje (para el eje 1
mediante la pulsacin de las teclas 1+ para el sentido positivo y 1- para el sentido negativo, y as
consecutivamente para los 4 ejes). Si la visualizacin de posicin actual es en coordenadas cartesianas el robot
se desplazar en el sentido del sistema de referencia cartesiano seleccionado (tecla X+ en el sentido del eje X+,
tecla X- en el sentido del eje X-, y as consecutivamente para los 3 ejes, y el giro de pinza se realizar mediante
la pulsacin de la tecla 4+ en el sentido + y 4- en el negativo). A la hora de moverse el robot manualmente debe
tenerser en cuenta la velocidad que est seleccionada.
24
25
Mode Hierarchy: Muestra la jerarqua de modo actual. Cuando el modo ms alto ("AUTO" en este
caso) est resaltado, significa que la corriente del motor servo est encendida. Cuando no est resaltado
significa que la corriente del motor servo est apagada.
Program Name: Se muestra el nombre del programa que se est ejecutando o que se ve a ejecutar.
Pointer Display: En la pantalla se muestra el programa cargado, y sobre ste aparece resaltada la lnea
que se va a ejecutar (puntero de programa)
Al seleccionarse un programa para su ejecucin el controlador realiza una complicacin de dicho programa para
buscar posibles errores de sintaxis, en caso de encontrarse algn error ste se visualiza en pantalla.
Desde el modo automtico se pueden ejecutar las siguientes funciones:
-
25
26
Al entrar en un programa, ste se muestra en pantalla y se realiza una compilacin para detectar
posibles errores de sintaxis. En caso de no encontrarse ningn error se puede proceder a ejecutarlo
pulsando la tecla START. Para detenerlo se presiona la tecla STOP. El programa se ejecutar siempre a
partir de la lnea marcada por el puntero de programa.
-
F6 POINT: Permite seleccionar un punto de la tabla de puntos (vista con anterioridad), y desplazar el
robot hasta las coordenadas de dicho punto respecto del sistema de referencias seleccionado.
F12 SKIP: Permite avanzar el puntero del programa hasta una determinada lnea.
F13 NEXT: Avanza una lnea el puntero del programa pero sin ejecutarla.
Para aumentar o disminuir la velocidad del robot cuando se est ejecutando un programa primero debe
detenerse mediante la pulsacin de la tecla STOP, y una vez modificada la velocidad, se puede continuar
ejecutando el programa desde el punto en el que estaba (el puntero de programa mantiene su posicin)
pulsndose la tecla START.
26
27
Mode Hierarchy: Muestra la jerarqua de modo actual. Cuando el modo ms alto ("PROGRAM" en
este caso) est resaltado, significa que la corriente del motor servo est encendida. Cuando no est
resaltado significa que la corriente del motor servo est apagada.
Program Name: Se muestra el nombre del programa que se est ejecutando o que se ve a ejecutar.
Selected line display: En la pantalla se muestra el programa cargado, y sobre ste aparece resaltada la
lnea que se va a ejecutar (puntero de programa).
F1 EDIT: Accede a la pantalla de edicin del programa. Desde esta pantalla se puede introducir o
modificar cdigo a travs de las consola MPB. Tambin se puede, al igual que con un editor de texto,
copiar, cortar y pegar un texto.
F3 DIR: Se accede a una pantalla de seleccin de programas muy parecida a la que se vio en el modo
automtico, con la salvedad de que en esta ocasin podemos crear un nuevo programa o borrar uno ya
existente. Para seleccionar un programa simplemente hay que situar el cursor encima de ste y pulsar
la tecla ESC.
27
28
NEW: Permite crear un nuevo programa. Se debe introducir el nombre del programa
F5 COMPILE: Realiza una compilacin del programa seleccionado. En caso de detectarse un error
ste se muestra en pantalla.
F8 FIND +: Busca una cadena de caracteres especificada desde la posicin del cursor hacia delante.
F9 FIND -: Busca una cadena de caracteres especificada desde la posicin del cursor hacia atrs.
Como ya es ha visto, en el modo PROGRAM se puede editar un programa desde la consola MPB, no obstante
realizar estas operaciones en la consola puede resultar bastante incomodo debido a las limitaciones de teclado
que presenta, por lo que es aconsejable utilizar para este fin el software VIPWIN que viene con el controlador.
28
29
Mode Hierarchy: Muestra la jerarqua de modo actual. Cuando el modo ms alto ("SYSTEM" en este
caso) est resaltado, significa que la corriente del motor servo est encendida. Cuando no est resaltado
significa que la corriente del motor servo est apagada.
Axis Configuration: Muestra la configuracin de ejes del robot, en nuestro caso tendremos un robot
de cuatro ejes (X,Y,Z y R).
F1 PARAM: Accede a una pantalla desde la que se pueden visualizar y modificar diversos parmetros
de funcionamiento del robot y de sus ejes. Es aconsejable mantener todos estos parmetros en su
configuracin de fbrica, ya que si se modifican puede alterarse el normal funcionamiento del robot.
F2 CMU: Establece la configuracin del puerto RS232. Dicho puerto puede emplearse para comunicar
el controlador con aplicaciones externas.
F4 INIT: Permite la inicializacin a valores de fbrica de diversos parmetros del controlador (ejes del
robot, memoria, parmetros de comunicacin del RS232, etc.).
29
30
Desde esta pantalla se nos muestra la fecha y horas actuales, el estado en el que se encuentran los motores, as
como su configuracin de funcionamiento (modo righty o modo lefty).
Desde este modo se pueden ejecutar las siguientes funciones:
-
F1 MOTOR: Permite acceder a una pantalla desde la que se puede activar o desactivar la tensin de
cada uno de los motores del robot de forma independiente, o bien activar o desactivar la tensin de
todos ellos al mismo tiempo.
Desde la primera lnea (MOTOR POWER) se pueden activar (ON) o desactivar (OFF) los cuatro
motores del robot, y para cada uno de stos se tiene la opcin de desactivarlo (FREE), bloquearlo
(BRAKE), o bien dejarlo en modo de funcionamiento normal (SERVO). Para mover el robot en
manual o ejecutar programas los cuatro ejes debern estar en modo de funcionamiento normal
(SERVO), que es el estado que tienen por omisin al conectarse el controlador.
-
30
31
Desde esta pantalla se configura si el robot se va a desplazar configurado fsicamente en modo LEFTY
o en modo RIGHTY. En caso de que se seleccione un modo que no se corresponde con la
configuracin fsica real del robot se producir una alarma cada vez que se desplace el robot.
F5 RST DO: Mediante esta orden se resetean las salidas digitales del controlador
31
32
Como ya se ha especificado, el controlador tiene implementado una serie de entradas / salidas digitales que se
encuentran configuradas en bancos de 8 seales cada uno (DI para las entradas, y DO para las salidas). Las
entradas pueden ser ledas en tiempo de ejecucin por un programa y las salidas pueden igualmente ser
actuadas.
32
33
4- Programacin
4.1 Introduccin
La programacin del robot Yamaha se realiza en un lenguaje muy parecido al basic al cual se le han incorporado
diversas instrucciones que permiten controlar los movimientos del robot. Un programa desarrollado en el
entorno VIPWIN por ejemplo puede tener el siguiente aspecto:
El programa, al igual que ocurre con los programas de basic, se ejecutan de manera secuencial, es decir, las
instrucciones se ejecutan de manera ordenada en sentido descendente. Tambin pueden introducirse algunas
instrucciones de salto que alteran el flujo del programa.
33
34
Variables de Tipo Entero: Nombran a datos de tipo entero y se identifican con el carcter especial %
al final. Por ejemplo A% = 5
Variables de Tipo Real: Nombran a datos de tipo real y no utilizan ningun carcter especial para su
identificacin. Por ejemplo A= 5.3
Sobre las variables numricas (tanto de tipo entero como real) se pueden realizar operaciones matemticas
como la suma, la resta, etc. Por ejemplo:
REM VARIABLES A Y B
A%=5
A%=5 tipo entero
B=1
B=1
tipo real
A%=A%+1
A%=6
B=B-3
B=-2
No es necesario declarar previamente las variables a su uso.
Tambin se pueden emplear matrices de variables. Una matriz es una coleccin de variables a cuyos valores se
accede mediante un ndice. En este caso si se que debe declararse previamente la matriz para dimensionar el
nmero de elementos que contiene. Esto se hace con la sentencia DIM. Por ejemplo si en un programa se
declara:
DIM A(5)
Se esta declarando una matriz de 5 variables reales llamada A, a las cuales se accede mediante un ndice del 0 al
4 de la siguiente manera:
1 dato de la matriz: A(0)
2 dato de la matriz: A(1)
3 dato de la matriz: A(2)
4 dato de la matriz: A(3)
5 dato de la matriz: A(4)
Si escribimos por ejemplo:
A(0) = 1
A(1) = 1.4
A(2) = 3
A(3) = 0
A(4) = 0
Estamos asignando un valor a cada elemento de la matriz A.
El ndice de una matriz puede ser direccionado por medio de otra variable, por ejemplo:
34
35
A(IND) = 1
IND=IND+1
A(IND) = 5
A(IND+1) = 10
IND=IND+5
A(IND) = 40
Es equivalente a A(0) = 1
IND=1
Equivalente a A(1) = 5
Equivalente a A(2) = 10
IND = 6
Equivalente a A(6) = 40
El tratamiento de variables enteras, reales y alfanumricas es igual que en el basic estndar, no obstante en este
lenguaje de programacin tenemos un tipo ms de variables que contiene la informacin relativa a un punto en
el espacio, son las variables de punto.
-
Las variables de punto permanecen almacenadas en una tabla en la memoria no voltil del controlador.
Se puede obtener una variable de punto moviendo manualmente el robot hasta el punto deseado en el
espacio y grabando su posicin con la consola (las coordenadas se graban siempre respecto del sistema
de referencia con el que se est moviendo el robot). Tambin se pueden modificar las coordenadas de
una variable de este tipo en tiempo de ejecucin tal y como se ver ms adelante.
Una caracterstica importante de las variables de punto es que se pueden indexar como si se tratara de
una matriz, y al igual que en las matrices, el indice puede ser direccionado por otra variable. De esta
manera por ejemplo el punto P1, sera equivalente al punto P[1] (entre corchetes). Las siguientes
expresiones seran equivalentes entre si y se refieren al mismo punto.
P5
Punto P5
A=5
P[A]
Punto P5
B=2
C=3
P[B+C]
35
36
Entradas Digitales: Se podrn leer las entradas digitales mediante la expresion DI. El formato ser:
DI nmero de banco (nmero de seal 0-7)
De tal manera que por ejemplo para leer la seal 5 del banco 2 escribiriamos DI2(5). El valor ser 1 o 0
segn est activa o no.
Salidas Digitales: Se podrn actuar las salidas digitales mediante la expresin DO. El formato ser:
DO nmero de banco (nmero de seal 0-7)
De tal manera que por ejemplo para actuar la salida 7 del banco 2 escribiramos DO2(7)=1. Cuando se
activa o desactiva una seal (1 o 0) la seal mantendr su estado hasta que se vuelva a actuar sobre
ella.
Debe tenerse en cuenta que si se deconecta el controlador todas las salidas se desactivarn.
36
37
Instruccin IFTHEN: Esta instruccin permite ejecutar una seccin de cdigo si se cumple una
condicin lgica. Un posible formato es el siguiente
IF <expresin condicional> THEN
<sentencias>
ENDIF
Cuando se cumple la condicin especificada por <expresin condicional> se ejecutan la sentencias
implementadas hasta el ENDIF. Si no se cumple la condicin el comando salta a la lnea siguiente del
ENDIF. Por ejemplo
IF A=1 THEN
DO2(1)=1
ENDIF
Otro posible formato es el siguiente
IF <expresin condicional 1> THEN
<sentencias 1>
ELSEIF <expresin condicional 2> THEN
<sentencias 2>
ELSE
<sentencias 3>
ENDIF
Si se cumple la condicin especificada por <expresin condicional 1> esta sentencia ejecuta las
instrucciones especificadas en <sentencias 1> y realiza un salto a la lnea siguiente al ENDIF. En caso
contrario, al haber un ELSEIF, si se cumple la condicin especificada por <expresin condicional 2> se
ejecutan las instrucciones especificadas en <sentencias 2> y realiza un salto a la lnea siguiente al
ENDIF. En caso de que no se cumplan las <expresiones condicionales 1 y 2>, al haber un ELSE se
ejecutarn las instrucciones de <sentencias3>. Por ejemplo
IF DI2(0)=1 THEN
DO1(0)=1
ELSEIF DI2(1)=1 THEN
DO1(1)=1
ELSE
DO1(0)=0
DO1(1)=0
ENDIF
Instruccin FORTO NEXT: Esta instruccin permite ejecutar de forma iterativa una serie de
instrucciones. El formato es el siguiente
37
38
FOR <variable de control> = <expresin 1> TO <expresin 2> [STEP <expresin 3>]
<sentencias>
NEXT [<variable de control>]
Esta sentencia ejecuta de forma repetida comandos entre las sentencias FOR y NEXT un nmero de
veces igual a la diferencia entre <expresin> y <expresin 2>, al tiempo que se cambia el valor de
<variable de control> en los pasos especificados en <expresin 3>. El valor de <expresin 3> puede
ser positivo o negativo. El valor de <variable de control> es una variable simple. Por ejemplo:
B=0
FOR A=1 TO 10
B=B+1
NEXT A
-
WHILE: Esta instruccin permite tambin ejecutar de una forma iterativa una serie de instrucciones
siempre que se cumpla una condicin. El formato es el siguiente:
WHILE <expresin>
<sentencias>
WEND
Esta sentencia ejecuta las instrucciones que hay entre WHILE y WEND cuando se cumple la condicin
especificada por la <expresin>, y entonces vuelve a la sentencia WHILE para repetir la misma
operacin. Cuando no se cumple la condicin especificada el programa salta al siguiente comando tras
la sentencia WEND. Si no se cumple la condicin especificada por <expresin> desde el inicio no se
ejecuta ningn comando entre las sentencias WHILE y WEND. Por Ejemplo:
WHILE A<10
A=A+1
WEND
38
39
Etiquetas: Las etiquetas son simples identificadores que pueden adoptar cualquier expresin y que
sirven para identificar puntos del programa a los que se quiere realizar saltos. Sintcticamente van
precedidas deel carcter *, y finalizan en :. Por ejemplo
*START:
GOTO: Esta instruccin permite realizar un salto incondicional a una etiqueta. El formato es el
siguiente:
GOTO <etiqueta>
Sintcticamente la etiqueta en este caso debe presentar un * inicial, pero no debe finalizar con :
Por Ejemplo:
A=0
*ST:
A=A+1
IF A > 10 THEN
GOTO *FIN
ENDIF
GOTO*ST
*FIN:
GOSUB RETURN: Esta instruccin tambin permite realizar un salto incondicional a una
etiqueta, pero con un retorno a la siguiente instruccin que hay despus del GOSUB. Este retorno se
realiza con la sentencia RETURN. El formato es el siguiente:
GOSUB <etiqueta>
.
<etiqueta>
<sentencias>
RETURN
El programa salta a la etiqueta y ejecuta las sentencias siguientes (en este sentido el funcionamiento es
igual al GOTO), y cuando encuentra el RETURN se ejecuta otro salto a la instruccin siguiente al
GOSUB. Por ejemplo:
A=0
GOSUB *ET
A=0
.
*ET:
FOR H=1 TO 3
A = A +1
NEXT H
RETURN
39
40
MOVE P: Esta sentencia ejecuta un movimiento absoluto del robot hacia los puntos o puntos
especificados sin control de trayectoria, es decir, se realizara un movimiento del tipo PTP en el que el
robot adoptara la trayectoria que supusiera el menor recorrido para los ejes. El formato de la
instruccin es el siguiente:
MOVE P, <definicin de puntos>
Por ejemplo, si se escribe
MOVE P,P0
El robot se mover hasta las coordenadas definidas en P0, y una vez alcanzado ese punto se detendr.
La trayectoria del movimiento ser del tipo libre, es decir, el robot no describir una trayectoria
especfica.
En esta instruccin se puede especificar ms de un punto, por ejemplo:
MOVE P,P0,P1,P2,P10,P11
El robot se desplazar hasta P0, P1, P2, etc., de tal manera que siempre se detendr en cada punto, es
decir, no describir una trayectoria continua sino que se detendr un breve espacio de tiempo en cada
uno de los puntos.
Los puntos pueden indexarse, por ejemplo si escribimos
FOR A=0 TO 5
MOVE P,P[A]
NEXT A
El robot se desplazar al punto P0, luego al P1, al P2, al P3, al P4 y finalmente al P5.
40
41
SPEED: Define la velocidad genrica en % a la que se desplazar el robot con repecto a la velocidad
seleccionada en el terminal MPB. Por ejemplo si tenemos :
SPEED 10
MOVE P,P0
MOVE P,P1
SPEED 20
MOVE P,P2
El robot se desplazar a un 10% de la velocidad declarada en el MPB al punto P0 y a P1,
posteriormente la declaracin de velocidad cambia y se desplazar a un 20% a P2
Si no se especifica en el programa un valor de velocidad se asumir uno del 100%
ACCEL: Define la aceleracin y deceleracin en % de los movimientos que ejecutar el robot. Por
ejemplo
ACCEL 40
MOVE P,P0
El robot se desplazar a P0 iniciando el movimiento con una aceleracion del 40% y una deceleracin
igualmente del 40% de la nominal. Si no se especifica en el programa un valor se asumir por omisin
uno del 100%
41
42
Definicin del Sistema de Referencias Cartesiano (SHIFT): Esta instruccin es muy importante
porque permite definir en el programa con respecto a que sistema de referencia cartesiano se est
moviendo el robot. Su formato es:
SHIFT <Variable de Sistema de Referencia S0-S9>
Por ejemplo:
SHIFT S0
MOVE P,P0
MOVE P,P1
Espera (WAIT): Permite establecer una espera indefinida hasta que se cumple una condicion lgica.
Su formato es:
WAIT <Condicin lgica>
Por ejemplo:
WAIT DI2(4)=1
El programa se detendr en esta instruccin y no continuar hasta que la entrada DI2(4) se active.
42
43
Pausa (HOLD): Permite establecer una pausa en el funcionamiento del robot. El programa se
reaunada al pulsarse la tecla START de la cnsola. Por ejemplo si se escribe
MOVE P, P0
HOLD
MOVE P,P1
El robot se desplazar a P0 y se detendr, no reiniciando la marcha hacia P1 hasta que se presione la
tecla START de la cnsola.
Salida de datos por MPB (PRINT): Sirve para mostrar datos en la pantalla alfanumrica del MPB.
Por ejemplo si se escribe:
PRINT A
PRINT Cadena: ;A$
PRINT P0
Mostrar en pantalla estos datos.
Entrada de datos por MPB (INPUT): Sirve para introducir datos a travs de la pantalla MPB. Su
formato es el siguiente:
INPUT <cadena de informacion>; <variable>
La informacin se introduce a traves de la cnsola y al pulsarse la tecla ENTER se carga en la variable
definida. Lgicamente la informacin debe ser compatible con el tipo de variable seleccionada. Por
ejemplo
INPUT A
INPUT Introduce una cadena y pulsa Enter;A$
INPUT Introduce un entero: ;A%
Finalizacin del programa (HALT): Aborta la ejecucin del Programa. Todos los programas deben
terminar con esta instruccin.
43
44
Movimiento libre o PTP: En este tipo de movimiento el robot se desplaza desde su posicin actual
hasta el punto programado sin seguir ningn tipo de trayectoria predefinida, sino describiendo un
movimiento libre acorde con los movimientos de sus ejes.
Movimiento de Interpolacin lineal: En este tipo de movimiento el robot se desplaza hasta el punto
programado describiendo una lnea recta.
Otro aspecto a tener presente al programar movimientos es el comportamiento que tendr el robot cuando tenga
que desplazarse consecutivamente a lo largo de varios puntos. De manera genrica pueden observarse 2 casos:
1.
Desplazamiento a travs de los puntos de forma independiente, de tal manera que el robot se va
deteniendo en cada uno de los puntos por lo que va a pasando, para, seguidamente, dirigirse al
siguiente.
2.
Desplazamiento de forma ininterrumpida a travs de los puntos. El robot calcula su trayectoria a travs
de ellos sin detenerse, describiendo un movimiento continuado. Lgicamente slo se detendr en el
ltimo punto.
44
45
El robot Scara incorpora diversas instrucciones de movimiento que permiten que ste se desplace hasta
posiciones previamente programadas. Tenemos las siguientes instrucciones:
-
MOVE P: Esta sentencia ejecuta un movimiento absoluto del robot hacia el punto o puntos
especificados sin control de trayectoria, es decir, se realizara un movimiento del tipo PTP en el que el
robot adopta la trayectoria que supone el menor recorrido para los ejes. El formato de la instruccin es
el siguiente:
MOVE P, <definicin de puntos> [, opcin [, opcin] ]
Por ejemplo, si se escribe
MOVE P,P0
El robot se mover hasta las coordenadas definidas en P0, y una vez alcanzado ese punto se detendr.
La trayectoria del movimiento ser del tipo libre, es decir, el robot no describir una trayectoria
especfica.
En esta instruccin se puede especificar ms de un punto, por ejemplo:
MOVE P,P0,P1,P2,P10,P11
El robot se desplazar hasta P0, P1, P2, etc., de tal manera que siempre se detendr en cada punto, es
decir, no describir una trayectoria continua sino que se detendr un breve espacio de tiempo en cada
uno de los puntos.
Este comando puede incorporar una serie de parmetros opcionales separados por ,:
Velocidad del movimiento (S): Permite definir a que velocidad en % realizar el desplazamiento (o
desplazamientos si es ms de un punto). El % ser respecto de la velocidad que tengamos
seleccionada en la consola, y slo afectar a los puntos declarados en esa lnea. Por ejemplo si se
escribe:
MOVE P,P10,P11,S = 10
El robot se desplazar al punto P10, y posteriormente al P11, a un 10% de la velocidad que
tengamos implementada en la consola.
45
46
Forzado de coordenadas: Se puede especificar al robot que al desplazarse a un punto describa una
trayectoria de manera que pase por una coordenada (X,Y o Z). Por ejemplo, si se escribe
MOVE P,P0,z=0
El robot se desplazar hasta el punto P0 pasando por z=0
Condicin de Parada (STOPON <condicin parada>): Establece una condicin lgica que en caso
de cumplirse detiene el movimiento del robot. Por ejemplo:
MOVE P,P0,STOPON DI2(4)=1
Si en el transcurso del movimiento a P0 la entrada DI2(4) se pone a ON el movimiento se aborta y
se pasa a la siguiente instruccin. Si esta seal ya estuviera activada al ejecutarse la instruccin, el
movimiento no se iniciara.
MOVE L: Esta sentencia ejecuta un movimiento absoluto del robot hacia los puntos o puntos
especificados realizando una interpolacin lineal, es decir, describiendo una trayectoria en lnea recta.
El formato de la instruccin es el siguiente:
MOVE L, <definicin de puntos> [, opcin [, opcin] ]
Por ejemplo, si se escribe
MOVE L,P0
El robot se mover hasta las coordenadas definidas en P0 en lnea recta. En esta instruccin se puede
especificar ms de un punto, por ejemplo:
MOVE L,P0,P1,P2,P10,P11
El robot se desplazar hasta P0, P1, P2, etc., En este caso, a diferencia de la instruccin anterior, el
robot no se detendr en cada punto sino que describir una trayectoria continua a travs de los puntos,
detenindose en el ltimo.
Al igual que en la anterior instruccin este comando puede incorporar una serie de parmetros
opcionales separados por ,: stos seran la definicin de velocidad (S), y la condicin de parada
(STOPON), y su funcionamiento es anlogo al que ya se ha visto.
En la realizacin de ste tipo de movimientos debe tenerse en cuenta:
46
47
1.
2.
El robot no se detendr en los puntos especificados sino que realizar una interpolacin lineal a
travs ellos.
En una instruccin de movimiento de este tipo el controlador lanzar el robot al punto
especificado para, acto seguido, evolucionar el puntero del programa y ejecutar la instruccin
siguiente, por ejemplo si tenemos el programa
MOVE L,P0
DO2(7)=1
El robot debe desplazarse en lnea recta al punto P0 para realizar una operacin (por ejemplo
coger una pieza accionando una pinza con la salida DO2(7)). Debe tenerse en cuenta que el
controlador ejecutar el movimiento, e, inmediatamente despus de empezar a realizarse ste
pasar a la lnea siguiente y la ejecutar, es decir, la salida DO2(7) se activar durante el trayecto
hacia el punto, no al llegar a ste. Para evitar este comportamiento e indicar al controlador que
espere a que finalice el movimiento debe ejecutarse la instruccin WAIT ARM, de tal manera que
si escribimos
MOVE L,P0
WAIT ARM
DO2(7)=1
En esta ocasin el robot solo accionar la salida una vez haya completado el movimiento y no
antes. Esta consideracin debe ser tenida en cuenta en los movimientos que impliquen
interpolacin, pero no en los de trayectoria libre (MOVE P).
MOVE C: Esta sentencia ejecuta un movimiento absoluto del robot hacia los puntos especificados
describiendo una interpolacin circular, para ello es necesario especificar al menos 2 puntos. Por
ejemplo si tenemos la instruccin:
MOVE C,P0,P1
El robot se desplazar describiendo una trayectoria circular hasta el punto P1 y pasando por P0.
Al ser un movimiento que implica interpolacin de ejes todas las consideraciones del movimiento
lineal deben ser tenidas en cuenta.
47
48
Permiten la operacin de suma y resta: Si tenemos declarado un punto P1, y un punto P2, podemos
obtener un punto P3 que sea la suma (o la resta) de P1 y P2 escribiendo:
P3 = P1 + P2
Esta operacin se realizar sumndose sus respectivas componentes
P1
P2
P3
Xp1
Xp2
Xp1+Xp2
Yp1
Yp2
Yp1+Yp2
Zp1
Zp2
Zp1+Zp2
Rp1
Rp2
Rp1+Rp2
Las 4 componentes de un punto pueden leer o escribirse mediante las siguientes expresiones:
Para la componente X
Para la componente Y
Para la componente Z
Para la componente R
LOCX(Punto)
LOCY(Punto)
LOCZ(Punto)
LOCR(Punto)
X
-50.6
Y
100.3
Z
-45.3
R
45.0
Podemos obtener los componentes X,Y,Z,R de P10 mediante las expresiones LOCX(P10),
LOCY(P10), LOCZ(P10) Y LOCR(P10) respectivamente, podriamos por ejemplo escribir
A = LOCX(P10)
B = LOCY(P10)
C = LOCZ (P10)
D = LOCR(P10)
De la misma manera con las mismas expresiones podemos modificar las coordenadas de un punto.
Si escribieramos
LOCX(P10) = 100.6
LOCY(P10) = 40.9
LOCZ(P10) = 0.0
LOCR(P10) = 90.0
Entonces el punto P10 pasaria a ser
P10
X
100.6
Y
40.9
Z
0.0
R
90.0
48
49
Estas expresiones presentan una gran flexibilidad a la hora de realizar operaciones con las
variables de punto, pudindose combinar con la indexacin de puntos y con expresiones
matemticas. Por ejemplo si tenemos 2 puntos, P10 y P11 se podria escribir.
P10
X
-50.6
Y
100.3
Z
-45.3
R
45.0
P11
X
100.7
Y
40.5
Z
20.0
R
0.0
A=2.0
LOCX(P10) = LOCX(P10) + 10.0
LOCX(P11) = LOCX(P10) + A
LOCY(P10) = 50.0
LOCY(P11) = A
B=10
LOCZ(P10) = LOCZ(P[B+1]) + A
LOCZ(P11) = LOCZ(P[B]) + 1.0
LOCR(P10) = 0.0
X
-40.6
Y
50.0
Z
22.0
R
0.0
P11
X
-38.6
Y
2.0
Z
-44.3
R
0.0
Todas estas funcionalidades ofrecen una poderosa herramienta a la hora de programar y realizar la
manipulacin de puntos dinmica en un programa.
Las variables de punto se pueden inicializar en tiempo de ejecucin mediante el programa, para
ello simplemente deben introducirse directamente todos sus parmetros. Por ejemplo si escribimos
P1 = 100.00 120.00 12.00 -45.6 0.00 0.00
Estaremos inicializando por programa el punto P1. Notese que se han introducido 6 coordenadas y
no 4 (las 2 ultimas estan a 0.00), estas dos coordenadas extras deben ponerse a 0.00 por temas de
compatibilidad del software, ya que en caso contrario se generaria un error de compilacin.
49
50
50
51
6- Sistemas de Referencia
Tal y como ya se ha visto, un robot se posiciona en los puntos declarados respecto de un sistema de referencia.
El programador puede crear sus propios sistemas de coordenadas cartesianos y posicionar el robot en base a
ellos. La instruccin que permite declarar un sistema de referencia es SHIFT
Esta instruccin es muy importante porque permite definir en el programa con respecto a que sistema de
referencia cartesiano se est moviendo el robot. Su formato es:
SHIFT <Variable de Sistema de Referencia S0-S9>
Las variables de Sistemas de referencia se denominan mediante una S seguidas de un dgito de 0 a 9.
Representan un sistema de referencias cartesiano en el espacio respecto del cual se referirn los puntos y por lo
tanto el movimiento del robot. Estn tambin formados por 4 componentes (X,Y,Z y R) que indican su posicin
en el espacio con respecto al WORLD. Por ejemplo
51
52
Las variables que representan sistemas de referencia permanecen almacenadas en una tabla en la memoria no
volatil del robot, y el controlador del robot tiene un aplicativo interno que permite obtener a travs de la cnsola
variables de este tipo.
Este tipo de varibles no presentan el grado de flexibilidad que presentaban las de punto, ya que sus valores no
puede modificarse en tiempo de ejecucion ni pueden indexarse.
Los sistemas de referencia son almacenados en una tabla. La informacin se almacena en una variable que tiene
el formato S + Numero de referencia (0-9). Esta variable est compuesta por la distancia en el eje X, en el
Y, en el Z, del nuevo sistema de referencia con respecto al sistema WORLD, y el giro en el plano horizontal (R)
respecto de ste. El sistema seleccionado aparece en negrita, y podemos desplazarnos a lo largo de la tabla con
las teclas . Por ejemplo el sistema de referencia S1 se correspondera con el siguiente esquema:
52
53
El sistema de referencia actualmente seleccionado se visualiza en la parte superior derecha de la pantalla. Para
seleccionar un sistema de referencia simplemente hay que seleccionarlo en la pantalla y salir de ella
presionando ESC. Todos los movimientos del robot, as como la grabacin de puntos, se realizar con respecto
al sistema de referencia cartesiano que est seleccionado en ese momento.
Si entramos en la tabla en la que estn declarados los sistemas de referencia las opciones que hay son:
METHOD1: Se trata de una pequea aplicacin interna que permite, a partir de 2 puntos, construir
un nuevo sistema de referencia. El procedimiento a seguir es el siguiente: se mueve el robot hasta
el primer punto y se pulsa ENTER, seguidamente se mueve el robot hasta el segundo punto y se
vuelve a pulsar ENTER, y por ultimo se indica al robot si la lnea formada entre el primer punto y
el segundo se corresponde con el eje X +, el X-, el Y+, o el Y-. Con estos datos el robot puede
obtener la informacin relativa a este nuevo sistema de referencia, teniendo en cuenta que el punto
O se corresponder con el primer punto introducido. La informacin relativa a este nuevo sistema
de coordenadas se grabar en la referencia (variable S) seleccionada en la tabla.
53
54
54
55
7- Subrutinas
Una subrutina se define como una porcin de cdigo de programa que realiza una funcin especfica y que
puede ser llamada en cualquier momento desde el programa principal. Su formato es el siguiente:
SUB <nombre subrutina>
<instrucciones>
END SUB
Y la llamada a la subrutina desde el programa principal
CALL *<nombre subrutina>
Es conveniente organizar el programa en subrutinas ya que permite ganar en claridad y reaprovechar mejor
porciones de cdigo recurrentes que son ejecutadas continuamente. Una estructura de programa tpica puede
ser:
REM PROGRAMA PRINCIPAL
SHIFT S0
SPEED 50
RIGHTY
<instrucciones>
CALL *SUBRT1
<instrucciones>
CALL *SUBRT2
<instrucciones>
HALT
REM SUBRUTINAS
SUB *SUBRT1
<instrucciones>
END SUB
SUB *SUBRT2
<instrucciones>
END SUB
Desde el programa principal se efectan llamadas a las subrutinas el nmero de veces que sea necesario.
Un aspecto a tener presente cuando se organiza un programa de robot entre un programa principal y subrutinas
es la visibilidad de las variables, ya que por ormisin las variables que se definen tienen visibilidad local, es
decir, su valor solo puede consultarse en las seccines (programa principal o subrutinas) en la que se han
creado, por ejemplo si se escribe:
55
56
Si se quiere que una variable usada en el programa principal sea visible en una subrutina, sta se deber declarar
en dicha subrutina con la instruccin SHARED, por ejemplo
REM PROGRAMA PRINCIPAL
SHIFT S0
SPEED 50
RIGHTY
A=5
PRINT A
El valor que aparece en pantalla es 5
CALL *SUBRT1
HALT
REM SUBRUTINAS
SUB *SUBRT1
SHARED A
PRINT A
Ahora la variable A si es la anterior. El valor que se visualizar es 5
END SUB
56
57
PRACTICAS
Realizar los movimientos usando MOVE P, y MOVE L. Que diferencias se observan? En que casos es
necesario el uso de WAIT ARM
Como se pueden introducir los datos de las coordenadas en el programa del robot?
57
58
Modificar el programa anterior para que el punto de descarga de pieza sea siempre el mismo, pero pueda admitir
cualquier altura de pieza entre un mnimo y un mximo.
1.
2.
58
59
Practica 3. Paletizado
En esta prctica el robot deber trasladar las piezas desde un palet hasta otro realizando una tipica aplicacin
industrial de paletizacin.
1.
2.
Que ventajas presentan los cambios de sistema de referencia? Cuantos se utilizaran en esta aplicacin
Geomtricamente son los palets simtricos?. En caso de que no lo sean, se puede hacer la aplicacin?
como?
59
60
Modificar el programa para que dicha trayectoria sea configurable a travs de la consola, debe introducirse el
centro del crculo y el radio del mismo.
60