Está en la página 1de 60

1

Posgrado en Desarrollo
de Proyectos
de Automatizacin Industrial

Profesor:
Javier del Ro

Programacin de
Robots Scara

Programacin de Robots Scara


1

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.

Definicin de Coordenada. Sistema de Referencia

Manejo del Robot Scara YK600XG


3.1
3.2
3.3
3.4
3.5
3.6
3.7
3.8

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

Tipos de Movimientos. Manipulacin


5.1 Movimientos del Robot. Tipos
5.2 Operaciones sobre los Puntos
5.3 Grabar la posicion Actual sobre un punto

Sistemas de Referencia

Subrutinas

Practicas
Prctica 1
Prctica 2
Prctica 3
Prctica 4

1- Introduccin a la Robtica

1.1 Definicin de Robot. Robot Industrial


Segn la RIA (Robot Industry Association) un robot es un dispositivo automtico que efecta funciones
ordinariamente asigandas a seres humanos.
Existen diferentes tipos de robots (androides con fisonomia humana, de animales, manipuladores, etc.). Segn
su forma se pueden diferenciar entre estos grupos:
-

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.

Un robot industrial es un manipulador reprogramable multifuncional diseado para mover materiales,


piezas, herramientas, artefactos especiales, etc. Sus movimientos son programables y estn concebidos para la
ejecucin de tareas muy diversas.

1.2 Clasificacin de Robots Industriales


En un Robot Industrial podemos diferenciar entre dos elementos claramente diferenciados:
-

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 Cartesianos: Se caracterizan


porque todos los ejes realizan
movimientos lineales.

Robots Angulares o
Articulados: Se caracterizan
porque todos los ejes realizan
movimientos angulares.

Robots Scara: Convinan en sus


ejes movimientos lineales con
movimientos angulares

1.3 Principales Caractersticas de los Robots Industriales


Las principales caractersticas de los robots industriales son las siguientes:
-

Nmero de Articulaciones: Es el nmero de ejes o articulaciones mviles que forman el brazo


robotizado.

Potencia Nominal y Capacidad de Carga: Es la potencia que en global es capaz de desarrollar el


conjunto de los ejes del robot. Este parmetro est relacionado con la capacidad de carga que es el peso
nominal que es capaz de desplazar el robot.

Volumen de Trabajo: Es el espacio de trabajo generado por el extremo del manipulador al desplazarse
por todo el rango articular

Velocidad y Aceleraciones Mximas: Son las mximas velocidades y aceleraciones / deceleraciones


que pueden desarrollar cada uno de los ejes. La combinacin de todos ellos dar como resutlado una
velocidad y una aceleracin / deceleracin mxima con la que el robot puede desplazar la herramienta.

Precisin: Es el error medio cometido entre las coordenadas de posicionamiento programadas y la


posicin real del robot.

Repetibilidad: Dispersin del error que se produce cuando se vuelve a la posicin programada
repetidamente.

Resolucin: Desplazamiento incremental ms pequeo realizable.

1.4 Robots Scara. Yamaha YK600XG


El Robot que se va a emplear en el actual curso es del tipo Scara, y el modelo concreto es un Yamaha Modelo
YK600XG.
En la siguiente imagen se muestran distintos modelos con sus principales caractersticas tcnicas .

Este robot Scara esta compuesto por 4 ejes: 3 angulares


(X, Y y R), y un lineal (Z). Sus principales
caractersticas tcnicas con:
-

Radio de Trabajo: 600 mm.


Recorrido del eje Z: 200 mm
Carga Mxima: 10 Kg
Velocidad X/Y Mxima: 6.7 m/s
Velocidad Z Mxima: 2.3 m/s
Velocidad R Mxima: 1700 /s
Potencia Motor X: 400 W
Potencia Motor Y: 200 W
Potencia Motor Z: 200 W
Potencia Motor R: 200 W
Repetibilidad X/Y: 0.01 mm
Repetibilidad Z: 0.01 mm
Repetibilidad R: 0.005
Tiempo Ciclo: 0.46 s

Las dimensiones del brazo se muestran en el siguiente plano:

En cuanto a la unidad de control, se trata de un modelo


RCX142. Esta unidad de control est preparada para realizar el control
de los 4 motores del robot (incorpora entradas de potencia y encoder
para cada unos de los motores), dispone de una interface de
entradas/salidas digitales (su capacidad es de 25 entradas y 19 salidas
digitales), as como 1 puerto RS232, 1 puerto Ethernet y 1 puerto
Profibs.
Esta unidad dispone de una CPU que permite programar a travs de un
lenguaje de programacin del tipo pseudo-basic la secuencia de
funcionamiento del robot. La programacin se realiza a travs de PC
mediante un entorno de programacin denominado VIPWIN y la
comunicacin entre el PC y la unidad de control es a travs del puerto
RS232. La unidad puede almacenar en una memoria no volatil un
mximo de 100 programas, cada uno de los cuales puede tenir como
mximo 9999 lineas y una extensin de 98Kbytes. As mismo dipone de
una memoria no volatil en la que se pueden almacenar hasta un mximo de 10000 coordenadas.
Las conexiones de la unidad se exponen en el siguiente diagrama:

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:
-

Mover el robot en modo Manual.


Editar / Capturar coordenadas.
Lanzar programas de produccion.
Seleccionar sistemas de referencia
Realizar Programas.
Etc.

En las siguientes secciones se especificar con mayor detalle el funcionamiento de


consola.

esta

10

2- Definicin de Coordenada. Sistemas de Referencia.

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:

WORLD: Es el sistema de referencia


universal ubicado en el centro del propio
brazo del robot.

TCP: Es un sistema de referencia ubicado


en el extremo de la herramienta del robot.

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

Por ejemplo, la posicin en el espacio

350.45 -610.00

430.45

35.45

0.00

23.45 indicara que:

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,

En el caso de un scara la herramienta slo


tendr un grado de libertad pues fsicamente
slo puede girar el eje Z del TCP, por lo que
para representar la posicin espacial de la
herramienta slo se indicar este ngulo.
El giro del eje Z del TCP se corresponde con el
giro de la herramienta en el plano horizontal,
por lo que a efectos prcticos para representar
una coordenada se puede obviar la existencia
del TCP y representarla en terminos del
posicionamiento X,Y,Z de la herramienta y el
ngulo de giro de sta.

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

3- Manipulacin del Robot Scara Yamaha YK600XG

3.1 Pantalla MPB


El Robot Yamaha YK600XG se suministra con una cnsola denominada MPB que se conecta directamente al
controlador y que permite controlar y visualizar todas las funciones del robot.

La informacin visualizada en la pantalla se organiza de la siguiente manera:


-

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.

Lnea de Mensajes (Lnea 2): Si se produce un error se muestra en esta lnea.

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

Las teclas forman 3 grandes grupos en la consola

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:

Teclas de Control: Tenemos 6 tipos de teclas de control.

Teclas de Seleccin de Modo.


Visualiza en pantalla el men principal que permite
seleccionar el modo de trabajo (Manual, Automtico,
Sistema, etc)
Visualiza la
entradas/salidas

pantalla

de

visualizacin

de

Accede directamente al modo Utility

Teclas de Funcin Extendida.


Realiza una llamada a una funcin definida por el
usuario
Conmuta entre robots
Vuelve a la pantalla anterior

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

Mueve el Eje 1 en el sentido +, o bien el robot en el


eje X+

Mueve el Eje 1 en el sentido - o bien el robot en el eje


X-

Mueve el Eje 2 en el sentido +, o bien el robot en el


eje Y+

Mueve el Eje 2 en el sentido -, o bien el robot en el


eje Y-

Mueve el Eje 3 en el sentido +, o bien el robot en el


eje Z+
Mueve el Eje 3 en el sentido -, o bien el robot en el
eje ZMueve el Eje 4 en el sentido +
Mueve el Eje 4 en el sentido -

Teclas de Datos: Se utilizan para la introduccin de datos, programacin, y edicin de datos.

Otras Teclas: Otras teclas y sus funciones son las siguientes.

Enter: Suele emplearse para entrada de datos.


Tecla para seleccionar los mens de F6 a F10.

Tecla para seleccionar los mens de F11 a F15.

17

18

18

19

3.2 Seta de Emergencia


Si por alguna razn se quiere parar el robot de manera inmediata, pulsar el botn de parada de emergencia del
MPB. Al pulsarse este botn se corta la corriente al robot y se detiene su funcionamiento. En el display aparece
un mensaje como el que se muestra en la siguiente figura.

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 F4 (YES). Aparece la siguiente ventana

Pulsar F1 (MOTOR) para acceder a la pantalla del Motor. En esta pantalla volver a pulsar F1 (ON)
para volver a activar los motores.

Pulsar la tecla ESC para volver al modo anterior.

20

21

3.3 Modo Manual


Desde la pantalla principal se puede acceder al Modo Manual, al Modo Automtico, al Modo Programa, o al
Modo Sistema. Se puede acceder a esta pantalla pulsando la tecla MODE, o bien pulsando ESC de forma
consecutiva. La pantalla principal tiene el siguiente aspecto.

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:
-

Hacer un origen del robot.


Mover el robot manualmente
Grabar puntos
Cambiar de sistema de referencia.

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."

Desde el modo manual se pueden ejecutar las siguientes funciones:


-

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:

EDIT: Permite editar y modificar el punto seleccionado desde la consola.

TEACH: Permite grabar el punto seleccionado. Grabar un punto significa almacenar en l la


posicin actual del robot, la cual se muestra en la lnea inferior de la pantalla marcado como
[POS]. La grabacin de las coordenadas se realizar respecto del sistema de coordenadas
cartesiano que este seleccionado en ese momento.

JUMP: Permite realizar saltos de lnea dentro de la tabla de puntos.

COPY: Copia el punto seleccionado.

ERASE: Borra el punto seleccionado

TRACE: Permite desplazar el robot hasta el punto seleccionado respecto al sistema de


coordenadas cartesiano seleccionado. Para realizar el movimiento debe seleccionarse esta opcin y
seguidamente pulsarse la tecla START.

F4 VEL +: Aumenta la velocidad del movimiento en manual en incrementos de 1 5 20 50


100%

22

23

F5 VEL - : Disminuye la velocidad del movimiento en manual en decrementos de 100 50 20


50 1 %

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.

F9 VEL ++: Aumenta la velocidad del movimiento en manual en incrementos de 1%

F10 VEL -- : Disminuye la velocidad del movimiento en manual en decrementos de 1%

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

3.4 Modo Automatico


El Modo Automtico se utiliza bsicamente para seleccionar un programa de la memoria del controlador y
ejecutarlo. La pantalla principal del Modo Automtico 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 ("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.

Automatic Manual Movement Speed: Muestra la velocidad de movimiento en automtico


seleccionada en %. En este caso se corresponde con la velocidad real del robot.

Program Name: Se muestra el nombre del programa que se est ejecutando o que se ve a ejecutar.

Message Line: Si se produce un error, el mensaje de error aparece aqu.

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:
-

F1 RESET: Reinicia el programa. El puntero del programa se sita en la primera lnea

F3 DIR: Se accede a la pantalla de seleccin de programas. En la memoria del controlador pueden


almacenarse hasta un total de 99 programas, y desde esta pantalla aparece un listado de todos los
programas, pudindose seleccionar cualquiera de ellos para su ejecucin. Para seleccionar un programa
simplemente hay que situar el cursor encima de ste y pulsar la tecla ESC. La pantalla presenta el
siguiente aspecto.

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.
-

F4 VEL +: Aumenta la velocidad del movimiento en manual en incrementos de 1 5 20 50


100%

F5 VEL - : Disminuye la velocidad del movimiento en manual en decrementos de 100 50 20


50 1 %

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.

F9 VEL ++: Aumenta la velocidad del movimiento en manual en incrementos de 1%

F10 VEL -- : Disminuye la velocidad del movimiento en manual en decrementos de 1%

F11 STEP: Ejecuta un lnea del programa.

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

3.5 Modo Program


El Modo Program se utiliza para crear, editar o borrar programas. El aspecto de la pantalla es el siguiente:

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.

Message Line: Si se produce un error, el mensaje de error aparece aqu.

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).

Desde este modo se pueden ejecutar las siguientes funciones:


-

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

Las opciones que tenemos en esta pantalla son:

NEW: Permite crear un nuevo programa. Se debe introducir el nombre del programa

ERASE: Permite borrar el programa seleccionado de la memoria del controlador. Se pedir


confirmacin para proceder al borrado.

F5 COMPILE: Realiza una compilacin del programa seleccionado. En caso de detectarse un error
ste se muestra en pantalla.

F6 JUMP: Realiza un salto en la edicin del programa hasta la lnea indicada.

F7 FIND: Busca una cadena de caracteres especificada.

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

3.6 Modo System


El Modo System se utiliza para configurar algunos de los parmetros de funcionamiento del robot. La pantalla
principal que aparece en este modo es la siguiente:

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.

Versin Display: Se muestra la versin del controlador del robot

Message Line: Si se produce un error, el mensaje de error aparece aqu.

Robot Model Name: Muestra el nombre del modelo del robot.

Axis Configuration: Muestra la configuracin de ejes del robot, en nuestro caso tendremos un robot
de cuatro ejes (X,Y,Z y R).

Standard System Configuration: Muestra la capacidad en memoria del controlador

Desde este modo se pueden ejecutar las siguientes funciones:


-

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.

F3 OPTION: Establece la configuracin de posibles ejes de expansin externos.

F4 INIT: Permite la inicializacin a valores de fbrica de diversos parmetros del controlador (ejes del
robot, memoria, parmetros de comunicacin del RS232, etc.).

F5 DIAGNOS: Realiza un diagnstico del sistema

29

30

3.7 Modo Utility


El Modo Utility permite modificar diversos parmetros del funcionamiento del robot, adems de ofrecer
algunas herramientas sobre el control de motores que pueden ser de utilidad. Se accede a este modo pulsando la
tecla UTILITY, y la pantalla principal presenta este aspecto

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.
-

F3 ARMTYPE: Permite seleccionar la configuracin de armado del brazo. Esta caracterstica de


funcionamiento se da slo en los robots scara y viene dada por las dos configuraciones geomtricas
que puede adoptar el brazo para acceder a un mismo punto. Estas dos configuraciones reciben el
nombre de LEFTY y RIGHTY tal y como se muestra en la figura siguiente.

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

3.8 Modo Monitor


El Modo MONITOR permite bsicamente visualizar el estado en el que se encuentran las entradas / salidas
digitales del controlador. Se accede a ese modo pulsando la tecla DISPLAY, y la pantalla principal presenta este
aspecto

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 procedimiento para programar el robot ser el siguiente:


-

Se abre el entorno de programacin VIPWIN en un PC y se comprueba que exista comunicacin entre


PC y Robot.
Se crea un nuevo archivo (o se abre uno ya existente) que contenga la informacin del programa.
Se escribe el cdigo correspondiente al programa.
Se compila el programa para comprobar que no existen errores de sintaxis.
Se transfiere el programa al controlador. Una vez hecho esto el programa est en la memoria del
controlador y puede ejecutarse.

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

4.2 Variables. Definicin y tipos


Una variable se define como un nombre que se asigna a un dato, ya sea de tipo numrico o alfanumrico. Segn
el Tipo de Dato se pueden diferenciar entre los siguientes tipos de variables:
-

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

Variables de Tipo Alfanumrico: Nombran cadenas de caracteres y se identifican con el carcter


especial $ al final. La cadena debe declararse entre comillas. Por ejemplo A$=cadena de caracteres.

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

REM DIRECCIONAMIENTO DEL INDICE DE UNA MATRIZ CON UNA VARIABLE


DIM A(10)
IND=0

Matriz de Reales de 10 posiciones, de 0 a 9


Variable que se utilizar como indice de la matriz

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.
-

Variables de puntos: Se denominan mediante una P seguidas de un dgito de 0 a 9999. Representan un


punto en el espacio en el que el robot scara se puede posicionar, por lo que estn formados por 3
coordenadas X, Y, Z (en mm), y por el ngulo de giro de la pinza R en grados, todo ello respecto de un
sistema de referencia cartesiano. Un ejemplo de una variable de punto podra ser:

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]

Se suman B y C (3+2 = 5), por lo que sera el punto P5

35

36

4.3 Instrucciones de Entrada/Salida


Tal y como ya se ha mencionado con anterioridad, el controlador dispone de una serie de entradas/salidas
digitales que, en el caso de las entradas pueden leerse (tendrn el valor 1 o 0 segn estn activadas o desactivas)
y en el caso de las salidas puedes escribirse (1 para activarlas y 0 para desactivarlas).
Las entradas/salidas digitales estn organizadas en bancos de 8 seales cada una de la siguiente manera:

Las entradas salidas se direccionarn segn el siguiente formato:


Nmero de banco(Nmero de seal 0-7)
Las expresiones a usar en el programa son las siguientes:
-

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

4.4 Instrucciones de Control


Las instrucciones de control agrupan aquellas que permiten controlar la ejecucin de una parte del cdigo en
funcin de que se cumpla una condicin lgica (IFTHENELSE), y aquellas que permiten la ejecucin
controlada de bucles (FORTONEXT, y WHILE).
-

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
-

El bucle se ejecuta 10 veces, de A=1 a A=10. Al salir el valor de B es 10

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

4.5 Instrucciones de Salto


Los programas se ejecutan de forma secuencial de tal manera que el flujo de ejecucin es de arriba a abajo.
No obstante, al igual que en basic, existen una serie de expresiones que permiten modificar este flujo de
programa realizando saltos. Estas son:
-

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

4.6 Instruccion de Movimiento Bsica


El robot Scara incorpora diversas instrucciones de movimiento que permiten que ste se desplace hasta
posiciones previamente programadas, la instruccin ms bsica es la siguiente:
-

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

4.7 Instrucciones de Velocidad, Aceleracin y Deceleracin.


Estas instrucciones permiten parametrizar la velocidad, aceleracin y deceleracin con las que se realizarn los
movimientos. Su funcionamiento es el siguiente:
-

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

4.8 Otras instrucciones.


A la hora de realizar un programa debern tenerse en cuenta tambin las siguiente instrucciones:
-

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

Ms adelante se ampliar este concepto.

Configuracin del brazo (RIGHTY o


LEFTY): Permite indicar en que
configuracin de brazo se realizarn los
movimientos.

Comentario (REM): Permite introducir


un comentario en el programa. Por
ejemplo:
REM Comentario del Programa

Temporizacion (DELAY): Permite establecer una pausa en la ejecucin del programa en


milisegundos. Su formato es:
DELAY <Tiempo en milisegundos>
Por ejemplo:
DELAY 1000
Establecer una pausa de 1 segundo.

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

5- Tipos de Movimientos. Manipulacin de Coordenadas

5.1 Movimientos del Robot. Tipos


En un programa de robot, tal y como se ha especificado anteriormente, el robot tendr que desplazarse a una
serie de puntos previamente definidos para realizar una serie de tareas, y ello implica que habrn una serie de
instrucciones que indicarn al robot el tipo de trayectoria que tiene que realizar hasta esos puntos, asi como la
velocidad y aceleraciones / deceleraciones del movimiento. A grandes rasgos en todo robot tendremos 3 tipos de
movimiento en funcin de la trayectoria descrita.
-

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.

Movimiento de Interpolacin circular: En este tipo de movimiento el robot se desplaza a lo largo de


los puntos programados decribiendo una lnea curva. Para realizar este tipo de movimiento como
mnimo se precisarn de 2 puntos.

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

5.2 Operaciones sobre los puntos


Algunas de las caractersticas que presentan las variables de punto, y que deben ser tenidas en cuenta a la hora
de programar, son las siguientes:

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)

Por ejemplo si tenemos el punto P10 declarado de la siguiente forma


P10

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)

La variable A vale -50.6


La variable B vale 100.3
La variable C vale -45.3
La variable D vale 45.0

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

La componente X de P10 ser -50.6 +10.0 = -40.6


La componente X de P11 ser -40.6 + 2.0 = -38.6
La componente Y de P10 ser 50.0
La componente Y de P11 ser 2.0
La componente Z de P10 ser 20.0 + 2.0 = 22.0
La componente Z de P11 ser -45.3 + 1.0 = -44.3
La componente R de P10 ser 0.0

Los puntos P10 y P11 al final quedan


P10

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

5.3 Grabar la Posicin Actual sobre un punto


Exite una instruccin permite grabar en un punto la posicin en la que se encuentra fisicamente el
robot en el momento en el que se ejecuta la instruccin. Su formato es:
P<numero de punto> = JTOXY(WHERE)
Por ejemplo si se escribe:
P0 = JTOXY(WHERE)
Al ejecutarse la instruccin se grabar en P0 la posicin actual del robot respecto del sistema de
referencias empleado.

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.

Por ejemplo si se escribe el programa


SHIFT S0
MOVE P,P0
MOVE P,P1
SHIFT S1
MOVE P,P1
Cuando se declara como sistema de
referencias cartesiano S0 todos los
movimientos siguientes (movimiento a P0 y
P1) se realizarn con respecto a este sistema
de coordenadas. Luego se vuelve a a cambiar
el sistema de referencias cartesiano a S1, y el
robot se desplazar otra vez a la coordenadas
de P1 pero esta vez tomando como sistema de
referencia S1.

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:

EDIT: Permite editar y modificar el sistema de referencia seleccionado desde la consola.

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

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
PRINT A
La variable A no es la anterior. El valor que se visualizar es 0
END SUB

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

Practica 1. Traslacin de Objetos.


En esta prctica el robot realizar una tarea muy comn entre las aplicaciones de robtica, que es la de coger
objetos y trasladarlos en el espacio a otra zona. En la mesa disponemos de un palet de carga y otro de descarga.
El palet de descarga est formado por 4 posiciones en cada una de las cuales hay ubicada una pieza, y el robot
lo que debe hacer es coger las 4 piezas y transportarlas hasta el palet de descarga.

En la realizacin de esta prctica deben observarse los siguientes aspectos:


1.
2.

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

Practica 2. Identificacin de Objetos.


En esta prctica el robot deber identificar una pieza a coger (hay 3 tipos segn su altura), y trasladarla a una de
las 3 posiciones de un palet segn se trate de una pieza u otra.

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.

Por que el movimiento de bsqueda de pieza es tan lento?


Puede cogerse la pieza usando MOVE P? por que?

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

Practica 4. Control de Trayectoria.


En algunas aplicaciones industriales los robots debn de realizar un control de trayectoria para poder realizar
una tarea, por ejemplo en aplicaciones de soldadura o pintado. En esta prctica el robot deber de describir una
trayectoria circular.

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

También podría gustarte