Sei sulla pagina 1di 10

PRACTICA PROGRAMACION ROBOTICA

PUMA 560: EL LENGUAJE DE PROGRAMACIN VALII.

DESCRIPCIN DE LA PRCTICA.

La prctica consiste en realizar un programa en el lenguaje de


programacin de robots VAL II mediante el uso de un simulador
desarrollado en el departamento. El robot simulado es el que se mostr
en la prctica de robtica que tuvo lugar en el laboratorio de la
escuela superior, el robot Puma 560.

EL INTERPRETE DE VALII

El simulador del Puma 560, ha sido desarrollado por el


departamento con la finalidad de facilitar el acceso a la programacin
de robots. Intenta simular el sistema real, con la idea de que una vez
trabajado sobre el programa se pueda utilizar sin ningn problema el
robot real. Esto incluye la simulacin del armario de control, con sus
botones, llaves, etc. Es importante destacar que la versin que se va a
manejar en las prcticas es una versin beta, y por tanto inacabada.
Tambin se agradecera cualquier sugerencia que tengis para
mejorarla, y para eliminar los posibles errores que se den durante la
prctica.

El programa consta de cuatro dilogos bsicos:


El simulador del Robot. Es la ventana principal, y ella se
representa el armario de control, la entradas y salidas, y una
vista tridimensional del robot y su entorno.
Paleta, o mando manual. De forma parecida a como se
procede en la realidad simula el terminal manual que se usa
para la programacin de puntos y para mover cmodamente
el robot. Tiene incluso el botn de Hombre muerto, que hay
que accionar si se desea mover el robot.
Panel de Control. Corresponde con el panel principal del armario de
control. En l se encuentran los botones de encendido del armario y
del brazo, as como el selector de modo de funcionamiento.
Consola. Se simula mediante esta pantalla, el monitor del robot. Las
respuestas y la forma de introducir la informacin se ha realizado de
forma idntica al monitor real. (Incluso lleva nuestro nmero de serie)
La idea de la prctica es casi comprobar que aquellos que mejor
o antes hayan realizado el programa sobre el simulador, son
capaces de manejar y programar el robot para realizar la misma
tarea sin ningn problema.

EJERCICIO PRACTICO

El programa que hay que realizar debe resolver el problema de


Hanoi de tres piezas. El robot debe ir al inicio a una posicin de retirada.
Esperar entonces a que se pulse enter en la consola. Resolver
entonces el problema, dejando en la tercera columna las fichas con el
mismo orden que estaban en la primera.
Evidentemente, el robot solo puede coger las fichas que estn
arriba, y dejarlas en las columnas encima de las otras fichas si las
hubiera.
Una vez resuelto, el robot esperar a que se pulse enter en la
consola para volver a dejarlo todo como al comienzo.
Es muy importante que todo el programa se base en un punto de
referencia que se debe introducir con la paleta antes de ejecutarlo por
primera vez. De esta forma, al programar el robot real realizaremos el
mismo procedimiento.

intro

intro

NOTA:

Se recomienda hacer los siguientes programas.


El principal que indica de que columna hay que coger y en que
columna hay que dejar.
Un programa que en funcin de dos variables coja una pieza de la
columna indicada por la primera variable y deje la ficha en la
columna indicada por la segunda.
Se podran hacer dos programas adicionales que abran y cierren la
pinza con una pequea espera que asegure que se ha cerrado o
abierto completamente antes de moverse de nuevo.
NOCIONES BSICAS PARA LA PROGRAMACIN DEL PUMA 560

PUESTA EN MARCHA DEL ROBOT


1.-Encender la alimentacin general del robot en la parte trasera del
armario de control.
2.-Encender la consola de visualizacin.
3.-Girar la llave de alimentacin general de la unidad central.
4.-Esperar a la aparicin del mensaje sobre la pantalla:
VAL II BOOT V1.2 16 APR 84
LOAD VAL II FROM FLOPPY (Y/N)?
Habitualmente no ser necesario cargar de nuevo el VAL II desde el
disco. Slo en caso de fallo en el arranque deber hacerse.
5.-INITIALIZE (Y/N)?
Si se teclea Y, se destruyen todos los programas que hay en la memoria
de la mquina.
Si se teclea N los programas existentes se conservan.
6.-Se debe alimentar el brazo pulsando el botn verde.
7.-Proceder a un calibrado tecleando CAL
8.-nicializar el robot con una velocidad lenta (SPEED o SP 20)

MODOS DE FUNCIONAMIENTO
Se dispone de tres modos de funcionamiento:
1. Modo comando: Visualizado en la pantalla por un punto [.]. La unidad
de comando espera una orden como DIR, LISTP, DELETEP, etc.
2. Modo editor: Visualizado en pantalla por un []. La unidad de
comando est cargando programas.
3. Modo ejecucin: visualizado en pantalla por [*]. La unidad de comando
est ejecutando un programa, aunque algunas rdenes son asimilables
paralelamente a esta ejecucin.

VISUALIZACIN

Slo se puede hacer en modo comando.

DIR: permite ver los ttulos o nombres de programas.


LISTP o PLIST: permite ver el contenido de los programas.
LISTL o LLIST: para ver los puntos almacenados en memoria.
LISTR o RLIST: permite ver las variables reales en memoria.

Estos tres ltimos comandos admiten parmetros, separados por comas, para
delimitar qu variables o programas se desean visualizar.

VARIABLES
Existen en VAL II dos tipos de variables: las variables de punto, y las
variables reales. Estas variables estn asociadas a los programas del usuario.
Tanto las variables de punto como las variables reales pueden llevar corchetes
para indicar que son nombres de variables dimensionadas.
Los puntos o localizaciones.
Dentro de las variables de punto podemos distinguir dos tipos: puntos de
precisin y localizaciones en el espacio.
Un punto de precisin es un punto en el que las coordenadas no estn
almacenadas en el espacio cartesiano, sino en el espacio articular del robot.
Se declara o reconoce un punto de precisin cuando aadimos # delante del
nombre del punto.

POINT <nombre del punto>


HERE <nombre del punto>

Disponemos de dos posibilidades para asignar una variable punto:

1.- Cargando las diversas coordenadas por parte del usuario.

POINT <nombre del punto>


Esta instruccin asigna las cotas en mm o en grados (segn el
parmetro) al nombre de la variable punto.

Ejemplo:
POINT A
X/JT1 Y/JT2 Z/JT3 O/JT4 A/JT5 T/JT6
0 0 0 90 -90 0

CHANGE?
10,30,-15,18

X/JT1 Y/JT2 Z/JT3 O/JT4 A/JT5 T/JT6


10 30 -15 18 -90 0

CHANGE?

2.- Por aprendizaje.

Consiste en desplazar el robot hasta el punto deseado y escribir en el


teclado: HERE <nombre del punto>.
Una variante de esta instruccin que se menciona en el apartado de
edicin es TEACH (modo COMANDO), T y TS (modo EDIT).

DELETEL o LDELETE <nombre del punto>, <punto2>, ...


Elimina un punto de la memoria.

Las variables reales.


Es una asignacin a un nombre cualquiera de un valor entero o real.
Escribir A=12 declara y asigna la variable A con el valor 12. En el caso de VAL
II, el valor debe estar comprendido obligatoriamente entre 6.0E-39 y 2.854
E+38 para valores positivos y hasta 6.0E-39 para valores negativos.

Operaciones matemticas:
+,-,*,/.
ABS(expr)
SIGN(expr) da el signo de la expresin.
FRACT(expr) Da la parte fraccionaria de la expresin.
INT(expr) Da la parte entera de la expresin.
SQRT(expr) Da la raz cuadrada de la expresin.
SQR(expr) Da el cuadrado de la expresin.
SIN(expr) ,COS(expr), ATAN2(expr1,expr2), Dan en seno, coseno y
arcotangente (en grados) .
PI Da el valor 3.14159
RANDOM Esta funcin da un valor aleatorio comprendido entre 0 y 1.

DELETER o RDELETE <nombre de la variable>, <var2>, ...


Elimina la variable de la memoria.

COMANDOS DE EDICION
Estos comandos slo sirven en modo de EDICION (presencia de a la
izquierda) para permitir la introduccin de ordenes de VAL en el robot.

- EDIT <Nombre del Prog>, <n> : Entra en el modo de edicin de un


programa. Podemos ir directamente a una de la lneas del cdigo
introduciendo su nmero en <n>

- CHANGE NOM, n : Cambia de programa y entra en la lnea n del


mismo.
- DELETE n : Suprime n lneas a partir de la presente
- EXIT : Permite salir del modo de edicin para volver al modo de
comando del robot.
- INSERT : Inserta las lneas que se vayan escribiendo hasta que se
introduzca una lnea en blanco.
- LAST : Permite volver a la lnea anterior.
- SEARCH n: Permite buscar el numero de lnea n deseado.
- PRINT n : visualiza tantas lneas como indique n desde la situacin
actual.
- REPLACE caracteres: Permite reemplazar caracteres de una
instruccin.
- MODIFY/ antigua cadena / nueva cadena : Este comando permite
sustituir un bloque de caracteres por otro nuevo.
- FIND / bloque de caracteres / :Encuentra la lnea de instruccin que
contiene el bloque de caracteres comprendidos entre las barras.
- TEACH nombre de variable : Permite memorizar las coordenadas de
una serie de puntos y escribe automticamente la orden de
movimiento asociada a estos puntos (cada vez que se pulse el botn
RECORD situado en la paleta).
- TSTRAIGHT :Idntico al comando T salvo que los desplazamientos
que habrn sern en lnea recta entre los puntos memorizados.
Los comentarios en VAL II van precedidos de ; en cada lnea.

INSTRUCCIONES BSICAS DE VAL II


El software logiciel VALII reside sobre una estructura de varias tareas, de
forma que ste, en paralelo, ejecuta un programa de aplicacin que comporta
movimientos del brazo del robot y un programa de clculo o de gestin de
entradas/salidas.
Tambin, cuando se ejecutan distintas instrucciones de movimientos, el robot
no espera a finalizar el movimiento en curso para analizar y ejecutar
operaciones matemticas, gestin de entradas/salidas, etc... Lo cual puede
llevar, si no se tiene en cuenta, durante la ejecucin de las instrucciones, a
movimientos inesperados. Debemos recordar que si insertamos instrucciones
que no conllevan movimiento entre instrucciones de movimientos, stas sern
ejecutadas en paralelo.
Ejemplo:
MOVE A0 A1
A0
MOVE A1
TYPE FIN DEL MOVIMIENTO A A1
MOVE B FIN DEL MOVIMIENTO A A1

Si no deseamos tener esta simultaneidad, insertamos una instruccin BREAK.


Igualmente las siguientes instrucciones tendrn el mismo efecto que BREAK
despus de un movimiento. BASE, BREAK, NOALTER, PAUSE, DETACH,
HALT, TOOL, RELAXI, OPENI, CLOSEI.

La orden DO
Todas las instrucciones que vamos a ver se pueden ejecutar en modo
comando si aadimos anteriormente el comando DO. MOVE A se podr
ejecutar en modo comando si antes escribimos DO MOVE A. Si no
reescribimos nada posteriormente a DO entonces se ejecutar el comando
precedente.

MOVE <pto>: Esta instruccin ordena al robot desplazarse al punto A


segn la trayectoria que no impone el usuario.

MOVES <pto>: Esta instruccin ordena al robot desplazarse al punto A


siguiendo una lnea recta.

APPRO <punto>, <distancia en mm> :Esta instruccin que generalmente


va seguida de MOVE, permite al robot acercarse a 50 mm del punto A
siguiendo el eje Z til.

APPROS <punto>, <distancia en mm> : Equivalente a la anterior, pero


en este caso la aproximacin se realiza en lnea recta.

DEPART <distancia en mm> :Es la funcin inversa de APPRO, puesto


que hace que el robot parta del punto donde se encuentra situado en el
momento de la ejecucin de la instruccin DEPART desplazndose a
una distancia indicada en mm segn el eje Z til.

DEPARTS el desplazamiento se realiza en lnea recta.

SPEED <valor> [unidades][always]


Se pueden producir tres casos:
1.- Si no se declara ninguna unidad en la instruccin, el valor se
considera como un porcentaje de la velocidad normal (100%), lo cual
significa que, si la velocidad del monitor es del 40% y la velocidad del
programa del 60%, la velocidad de desplazamiento ser del 24% de la
velocidad normal.
2.- Si se declara MMPS se trata de un desplazamiento expresado
en mm por segundo, siempre y cuando la velocidad del monitor sea 100.
3.- Si se declara IPS se expresa en pulgadas por segundo.

Si se indica ALWAYS, esta declaracin de velocidad ser vlida


para todas las instrucciones de movimiento siguientes, hasta un nueva
declaracin de velocidad que conlleve ALWAYS. Si se omite ALWAYS la
velocidad slo concierne al movimiento siguiente.

OPEN, CLOSE: Realiza la apertura y cierre de la pinza respectivamente,


y es procesada en paralelo con las instrucciones de movimiento.

OPENI,CLOSEI: Se ejecuta una vez finalizada la instruccin de


movimiento anterior.

DELAY <tiempo> : Permite al robot detenerse durante el tiempo indicado


en la instruccin. Este tiempo se debe dar en segundos y estar
comprendido entre 0.01 y 900 seg.

SET <variable punto 1>=<variable punto 2> :Esta instruccin permite


asignar las coordenadas de la variable punto 2 a la variable punto 1.

DEST Asignamos a la variable declarada las coordenadas del destino


del robot en el momento en que se ejecuta la instruccin.

SHIFT (<punto> by [<expr 1>],[<expr 2>],[<expr 3>])


Esta instruccin aade o resta a las coordenadas del punto <punto> los
valores indicados en cada expresin.

DRIVE <expr1>,<expr2>,<expr3>: Esta instruccin permite desplazar la


articulacin designada por EXPR 1, un cierto ngulo EXPR 2, a un
porcentaje de la velocidad monitor EXPR 3.

SUB-PROGRAMAS
CALL <nombre prog> : Un subprograma es un conjunto de instrucciones
independientes que se pueden llamar desde un programa principal.
RETURN Todos los sub-programas deben terminarse con la instruccin
RETURN.

SALTOS:
1. Saltos incondicionales
GOTO <etiqueta>
El nmero que hay detrs del GOTO es una etiqueta y no el nmero de
lnea definido por el editor.

2. Saltos condicionales
IF <expresin> GOTO <etiqueta>
En la expresin, los smbolos relacionales son los siguientes:
>,>= =>, ==,<>,<,<= =<
Y se pueden asociar operadores lgicos mediante AND, OR, y NOT.
Ejemplo:
10 MOVE A
IF (A>3) OR (B<=7.82) GOTO 10
MOVE B

COMUNICACION ENTRE EL TECLADO Y PANTALLA


PROMPT <mensaje>,<variable>,<variable>,...
Esta instruccin permite, a partir del teclado, entrar los valores que se
asignan a las variables.

TYPE {/carcter de control},{variable},{etc.}


Esta instruccin permite hacer salir por pantalla un mensaje durante la
ejecucin de un programa y/o hacer salir en pantalla el contenido de una
o varias variables declaradas.
Ejemplo: TYPE VALOR de X=, X
TPMESS MENSAJE
Es idntica a TYPE salvo que en este caso el mensaje sale en la
pantalla del mando manual y no en la consola de visualizacin.
ENTRADAS
El nmero de entradas es 32. Sus direcciones son el nmero de entrada
sumado a 1000. As la entrada 1 ser la direccin 1001, la 2 ser 1002, y as
sucesivamente.
Entradas por escrutinio
Es el programa quien en un momento dado va a escrutar las distintas
entradas.

1. IF SIG <expresin>,... GOTO etiqueta


Ejemplo: IF SIG (1001, -1003, 1002) GOTO 10
Si la entrad 1 es 1 y la entrada 3 es 0 y la entrada 2 es 1, entonces el
programa salta a la etiqueta 10.

2. WAIT <expresin>
Esta instruccin interrumpir el programa hasta que la expresin sea
verdadera.

Entradas por interrupcin


REACT <seal>,<programa>,[<prioridad>]
Cuando la seal pase al estado 1 , el programa una vez terminada la
instruccin que est ejecutando, pasar a la ejecucin del programa. La
prioridad debe tener un valor entre 1 y 127, y permite, en el caso en que
se indique, jerarquizar las llamadas a otros programas cuando son
simultneas.

REACTI <seal>,<programa>,[<prioridad>]
Es anloga a la anterior, pero la respuesta a la interrupcin, se realiza
inmediatamente.

Notas:
1.- Slo se dispone de las 16v primeras entradas para provocar
reacciones.
2.- El sistema slo reacciona ante cambios de nivel que se mantengan
estables al menos 30 ms.
3- Para suprimir una reaccin se utiliza la instruccin IGNORE <seal>

SALIDAS
Hay 32 salidas, y sus direcciones corresponden con el nmero de salida.

SIGNAL <val1>, [<val 2>,<val 3>,...]


Los valores pueden ser expresiones matemticas, constantes o
variables.

RESET
Pone a cero todas las salidas

CONTROL DE CONFIGURACION
READY: posiciona el robot de una forma particular.

ALIGN : permite poner el eje Z til paralelo al eje ms prximo del


sistema de referencia de la base (X, Y, o Z).

ABOVE/BELOW: Codo arriba/abajo.

LEFTY/RIGHTY: a la izquierda/derecha.

CONTROL DE TRAYECTORIA
Las instrucciones subrayadas son las tomadas por defecto.

COARSE [ALWAYS]. Esta instruccin permite, en el caso de que el


robot no llegue a su posicin, que el ciclo no se detenga y no aparezca
el mensaje de error.

FINE [ALWAYS]. Es lo contrario de la instruccin anterior.

ENABLE CP. Declara que el servosistema de velocidad es prioritario


sobre l servosistema de posicin.

DISABLE CP. Lo opuesto a la anterior.

NULL [ALWAYS]. La unidad central, espera que los movimientos de los


ejes hayan finalizado antes de ejecutar la siguiente instruccin.

NONULL [ALWAYS]. La unidad central espera que un slo movimiento


llegue a su consigna para realizar la siguiente instruccin, de forma que
habr un ligero error de posicin.

INTOFF [ALWAYS ] : Esta instruccin es idntica a coarse, aunque se


aplica al seguimiento de la trayectoria y no a la posicin final.
INTON [ALWAYS] Es lo opuesto a la instruccin anterior.

BREAK: Esta instruccin permite hacer pasar en disable CP, slo para
la instruccin de movimiento siguiente.

SISTEMAS DE COORDENADAS USADOS POR EL ROBOT

Sistema de coordenadas.

Referencias usadas por el Puma.

Potrebbero piacerti anche