Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Manual Practicas Robotica
Manual Practicas Robotica
N de artculo:
Descripcin:
Fecha:
Autor:
03/2005
Juan Olea Pastor
Festo Didactic
INDICE :
1 INTRODUCCIN ...........................................................................6
OBJETIVOS DEL CURSO ............................................................................6
SEGURIDAD .............................................................................................6
GARANTAS Y RESPONSABILIDADES ........................................................7
Festo Didactic
ACCEL .................................................................................................41
JOVDR .................................................................................................41
HLT ......................................................................................................42
FINE .....................................................................................................42
TOOL ...................................................................................................42
PRCTICA 2 MOVIMIENTOS CIRCULARES ...........................................43
9 PALETIZACIN...........................................................................49
INTRODUCCIN ......................................................................................49
DEF PLT ..............................................................................................49
PLT .......................................................................................................50
PRCTICA 4 PALETIZACIN ................................................................51
11 INTERRUPCIONES ..................................................................58
DEF ACT..............................................................................................58
ACT ......................................................................................................58
RETURN ..............................................................................................58
PRCTICA 6 INTERRUPCIONES (GENERAL)..........................................59
12 COMUNICACIONES ................................................................61
OPEN....................................................................................................61
CLOSE .................................................................................................61
PRINT #................................................................................................61
INPUT # ...............................................................................................62
ON COM GOSUB................................................................................62
COM ON ..............................................................................................62
COM OFF.............................................................................................62
COM STOP ..........................................................................................63
CALLP .................................................................................................63
Festo Didactic
FPRM ...................................................................................................63
CLR ......................................................................................................63
EJEMPLO DE APLICACIN VISIN ARTIFICIAL .....................................64
13 APENDICE ....................................................................................65
SOLUCIN PRCTICA 1 ..........................................................................66
SOLUCIN PRCTICA 2 ..........................................................................67
SOLUCIN PRCTICA 3 ..........................................................................68
SOLUCIN PRCTICA 4 ..........................................................................69
SOLUCIN PRCTICA 5 ..........................................................................70
SOLUCIN PRCTICA 6 ..........................................................................73
Festo Didactic
1 INTRODUCCIN
Seguridad
- Recomendaciones :
Se deben observar siempre las recomendaciones y normas fundamentales sobre
seguridad.
Cualquier persona que trabaje con el robot industrial, debe observar con especial
atencin las recomendaciones de seguridad.
Adems, deben respetarse las normas y regulaciones sobre prevencin de
accidentes, aplicables localmente.
El responsable del funcionamiento se compromete en asegurar que el robot
industrial es utilizado solamente por personas que:
Estn familiarizadas con las normas bsicas relacionadas con la seguridad operativa
y prevencin de accidentes.
Hayan recibido instrucciones en el manejo del Sistema Modular de Produccin.
Estn medianamente habituados en trabajar con seguridad.
- A tener en cuenta :
General
Los alumnos slo deben trabajar con el robot bajo la supervisin de un instructor.
Observar los datos de los componentes individuales de las fichas tcnicas.
Posicionamiento
En el posicionamiento hay que tener especial atencin con las colisiones que se
pueden producir con otros elementos o personas que pueden producir lesiones
graves en las personas y en el brazo robot.
Manipulacin
Festo Didactic
Antes de la ejecucin del programa del programa habr que retirar previamente
elementos que no estn especificados en la concepcin este con el fin de evitar
colisiones en la ejecucin de las secuencias de movimiento.
Electricidad
Las conexiones elctricas deben establecerse y desconectarse slo cuando la
tensin principal est cortada
Utilizar slo bajas tensiones de hasta 24 V DC.
Mecnica
No intervenir manualmente a no ser que la mquina se halle parada.
El Sistema Modular de Produccin est diseado segn los ltimos avances en esta
tecnologa y cumple con reconocidas normas de seguridad. Sin embargo, al utilizar el
sistema puede haber un riesgo de ocasionar daos fsicos o lesiones al usuario o a
terceras partes, o de causar daos a la mquina o a otros bienes materiales.
Garantas y responsabilidades
En principio, se aplican todos nuestros " Trminos y Condiciones de Venta" . Estos
trminos se ponen a disposicin del responsable del funcionamiento, a lo ms tardar
en el momento de la firma del contrato. Las reclamaciones de la garanta y
responsabilidad por daos a personas y materiales quedan excluidas si estas
pueden imputarse a una o varias de las siguientes causas:
o
o
o
o
o
o
o
o
Festo Didactic
2 INTRODUCCIN A LA ROBTICA
Historia
El concepto de mquinas automatizadas se remonta a la antigedad, con mitos de
seres mecnicos vivientes. Los autmatas, o mquinas semejantes a personas, ya
aparecan en los relojes de las iglesias medievales, y los relojeros del siglo XVIII eran
famosos por sus ingeniosas criaturas mecnicas.
Algunos de los primeros robots empleaban mecanismos de realimentacin para
corregir errores, mecanismos que siguen emplendose actualmente. Un ejemplo de
control por realimentacin es un bebedero que emplea un flotador para determinar
el nivel del agua. Cuando el agua cae por debajo de un nivel determinado, el flotador
baja, abre una vlvula y deja entrar ms agua en el bebedero. Al subir el agua, el
flotador tambin sube, y al llegar a cierta altura se cierra la vlvula y se corta el paso
del agua.
El primer autntico controlador realimentado fue el regulador de Watt, inventado en
1788 por el ingeniero britnico James Watt. Este dispositivo constaba de dos bolas
metlicas unidas al eje motor de una mquina de vapor y conectadas con una vlvula
que regulaba el flujo de vapor. A medida que aumentaba la velocidad de la mquina
de vapor, las bolas se alejaban del eje debido a la fuerza centrfuga, con lo que
cerraban la vlvula. Esto haca que disminuyera el flujo de vapor a la mquina y por
tanto la velocidad.
El control por realimentacin, el desarrollo de herramientas especializadas y la
divisin del trabajo en tareas ms pequeas que pudieran realizar obreros o
mquinas fueron ingredientes esenciales en la automatizacin de las fbricas en el
siglo XVIII. A medida que mejoraba la tecnologa se desarrollaron mquinas
especializadas para tareas como poner tapones a las botellas o verter caucho lquido
en moldes para neumticos. Sin embargo, ninguna de estas mquinas tena la
versatilidad del brazo humano, y no podan alcanzar objetos alejados y colocarlos en
la posicin deseada.
El desarrollo del brazo artificial multiarticulado, o manipulador, llev al moderno
robot. El inventor estadounidense George Devol desarroll en 1954 un brazo
primitivo que se poda programar para realizar tareas especficas. En 1975, el
ingeniero mecnico estadounidense Victor Scheinman, cuando estudiaba la carrera
en la Universidad de Stanford, en California, desarroll un manipulador polivalente
realmente flexible conocido como Brazo Manipulador Universal Programable (PUMA,
siglas en ingls). El PUMA era capaz de mover un objeto y colocarlo en cualquier
orientacin en un lugar deseado que estuviera a su alcance. El concepto bsico
multiarticulado del PUMA es la base de la mayora de los robots actuales.
Festo Didactic
Qu es un robot?
Segn el Instituto Norteamericano de Robtica es " un manipulador multifuncional y
reprogramable, diseado para mover materiales, piezas, herramientas o dispositivos
especiales, mediante movimientos programados y variables que permiten llevar a
cabo diversas tareas".
Aunque hay tal variedad de robots que es muy difcil concretar unos elementos
comunes a todos, lo cierto es que la mayora dispone de un esqueleto o chasis, que
puede ser interno o externo, motores, piezas que permiten su movilidad, sistemas de
agarre y manipulacin y una fuente de alimentacin, normalmente elctrica.
En cambi segn la norma JIS ( Japanese Industrial Standard ), incluye en su
definicin cinco tipos diferentes en funcin de sus caractersticas, sistema de control
y programacin.
Festo Didactic
3 CARACTERISTICAS RV-2AJ
Motor
1
Jt S
1
S
Posicin
Controlador
Velocidad
Consigna
Par
Perturbacin
Encoder
Unidad de control
Estructura mecnica
Los controladores y los ordenadores asociados tambin pueden procesar los datos
recogidos por cmaras que localizan los objetos que se van a agarrar o las
informaciones de censores situados en las pinzas que regulan la fuerza de agarre.
Festo Didactic
10
Dispositivos
Perifricos
Pinza neumtica
RV-2AJ (5 ejes)
Cable de E/S externas
Controladora
Pinza elctrica
Interfase
Ethernet
Interfase
CC-Link
Estructura bsica
Expansin
Interfase serie
Cable programacin
Visin Artificial
Consola
Software
programacin
Ordenador
Festo Didactic
11
Resumen de caractersticas
En este apartado se muestran las caractersticas ms significativas de un robot
industrial:
Grados de libertad: son las dimensiones del mundo de un manipulador. Cualquier
movimiento de una pieza en el espacio se puede descomponer en 6 movimientos
bsicos:
3 lineales -> grados de traslacin ( X; Y; Z )
3 rotacionales -> grados de rotacin
A:rotacin
B:guiada
C:orientacin
CARACTERSTICA
Grados de libertad
Carga mxima
Repetitividad
Velocidad mxima
Alcance de la pinza
Alcance desde Q, en mm
Alcance desde Q, en mm
Alcance desde Q, en grados
Alcance desde Q, en mm
ESPECIFICACIN
5
2 kg
0,02 mm
2100 mm/s
482 mm
A 410, B 285
C 190, D 300
E 150
R1 220, R2 410
Festo Didactic
12
CARACTERSTICA
UNIDAD
ESPECIFICACIN
Modelo
Grados de libertad
Instalacin
Estructura
Sistema de guiado
Mtodo deteccin de
posicin
Tipo de detector
Hombro
Antebrazo
Longitud del
Brazo
brazo
Codo
Mueca
J1
J2
Rango de
J3
movimiento
J4
J5
J1
J2
Velocidad de
J3
movimiento
J4
J5
Velocidad total mxima
Capacidad
Mxima
de carga
Rating
Repetitibidad de posicin
Temperatura ambiente
Peso
Momento
J4
permisible
J5
J4
Inercia
permisible
J5
Radio accesible al brazo
RV-2AJ
5
Sobre el suelo
Vertical, mult.-joint type
Servo motor AC
J1, J2 y J3 :50W con freno; J4 y J6 :15W sin freno;
J5 :15W con freno
Encoder absoluto
0
250
160
0
72
300 (-150 , +150)
180 (-60 , +120)
230 (-110 , +120)
180 (-90 , +90)
400 (-200 , +200)
180
90
135
180
210
Aprox. 2100
2
1.5
0.02
De 0 a 40
Aprox. 17
2,16
1,10
3,2410-2
8,4310-3
410
4 para seales de entrada; 4 para seales de
salida; salida motorizada de la mano
4x4 (de la base a la mano)
0.5 10%
IP30
Cables de herramienta
Tubos neumticos
Presin de alimentacin
Tipo proteccin
Festo Didactic
mm
grados []
grados/s
mm/s
kg
mm
C
kg
Nm
Kgm2
mm
MPa
-
13
UNIDAD
ESPECIFICACIN
Modelo
CR1-571
6 a la vez (max.)
CPU
punto
2500
paso
5000
88
Posiciones de
Capacidad
enseanza y
de
nmero de pasos
memoria
Nmero de
programas
Observaciones
MELFA-BASIC IV
Lenguaje de programacin
Movemaster
Mtodo MDI
Command
Entradas y salida
E/S dedicadas
Entradas y
salidas
externas
punto
E/S de
abrir/cerrar la
punto
mano
Entrada de paro
de emergencia
Ent. interruptor
punto
Max. 240/240
STOP 1 punto
uso general
Entradas 4 puntos/
Salidas 0 puntos
1
1
RS-232C
puerto
RS-422
puerto
Ranura para la
mano
Ranura de
expansin
Conexin de E/S
del robot
Rango del voltaje
fijado
Se pueden aadir
hasta 4 puntos de
salida
Solo una lnea de
emergencia
Solo una lnea de
interruptor puerta
Dedicada para T/B
Dedicada para
slot
interfaz de mano
neumtica
slot
canal
Fuente de
alimentacin
16/16
Asignado con E/S de
punto
de puerta
Interfaz
punto
Caja opcin
extensin usada
240 usados con
E/S de uso general
Potencia mxima
kVA
0.7
sobrecorriente de
arranque
Dimensiones de contorno
mm
212x290x151
Peso
kg
Aprox. 8
Autnomo y abierto
De 0 a 40
Construccin
Rango de temperaturas
Humedad ambiente
%RH
Toma de tierra
Color
Festo Didactic
Excepto salientes
IP20
De 45 s 85
Sin condensacin
100 o menos
Classe D
Gris claro
Munsell7.65Y7.64
14
Mantenimiento
- Piezas consumibles :
PIEZA
TIPO
Grasa
SK-1A
Batera de
Litio
LUGAR DE USO
Engranajes de cada
eje
A6BAT
CANTIDAD
SUMINISTRADOR
Lo necesario
Mitsubischi Electric
En la cubierta F
- Piezas de repuesto :
TIPO
LUGAR DE
USO
291-3GT-6
Eje J2
315-3GT-6
Eje J3
210-2GT-3
J4??
230-2GT-3
Eje J4
BU220C795G51
Eje J1
BU220C795G52
Eje J2
PIEZA
1
2
3
Correa dentada
CANT. SUMINISTRADOR
BU220C795G53
Eje J3
BU220C793G54
J4??
BU220C793G65
Eje J4
10
BU220C794G51
Eje J5
BKO-FA0530H09
BKO-FA0530H10
J4??
BKO-FA0530H10
Ejes J4, J5
11
12
13
Festo Didactic
Servo motor AC
Engranajes
reductores
Mitsubischi Electric
15
4 INTRODUCCIN AL COSIROP
Este capitulo trata de definir los pasos necesarios para realizar un proyecto con el
software COSIROP.
El software COSIROP es el software de programacin que ser utilizado en este curso
y que permite realizar programas de secuencia y definir posiciones, para ms tarde
poder compilarlo y guardarlo va RS-232 en el Robot RV-2AJ utilizado para la
prctica.
Una vez abierto el programa aparece la siguiente ventana general:
Festo Didactic
16
Ser necesario rellenar los campos de Project Name con el nombre que se desea
poner al proyecto y en el Program name se pondr el nombre del programa.(Nota:
Dentro del mismo proyecto se pueden crear diferentes programas y lista de
posiciones).
Si se desea, se puede cambiar la ruta donde se guardar el proyecto, haciendo clic
sobre el botn de Browse... y especificando la ruta.
Una vez rellenados los campos hacer clic sobre el botn Next que se encuentra en
la parte inferior derecha de la ventana.
Aparecer una nueva ventana llamada Project Wizard Step 2 of 3 donde se
especificar el modelo de robot as como su configuracin.
Festo Didactic
17
Festo Didactic
18
Ventana de animacin
Ventana de programacin
Ventana de posiciones
Ventana de mensajes
Syntax Check
Download Program
Upload Download
Reset Error
Current Error
Init Connection
Conenection
Jog Operation
Monitor Functions
Functions
I/O Monitor
Conenection
Monitor toolbar
Functions
Ahora se tratar de manera precisa una breve explicacin de los iconos principales
ms utilizados, que posteriormente sern tratados de manera ms concisa en las
diferentes secuencias para la programacin del brazo robot con dicho software.
Festo Didactic
19
Festo Didactic
20
Para poder controlar el robot desde el PC se debe poner el selector con llave que se
encuentra en la parte izquierda del frontal de la controladora en el modo Auto Ext.
y el selector con llave de la consola en la posicin Disable deshabilitando as este
mtodo de control.
Ahora el sistema estar preparado para ser controlado y movido a travs del PC.
Para controlar y mover el robot para hacer el teach de las posiciones, primero se
tendr que establecer la comunicacin va serie. Dentro del COSIROP se ir al men
contextual desplegable de opciones y se har clic en la opcin
Extras/ Settings/ Communication Port .
Est accin abrir la ventana flotante
Communication Port , en la pestaa
Common comprobar que se utiliza un interfase de comunicacin va serie.
Festo Didactic
21
Nota:
El nmero de puerto serie COM debe ser el mismo que est definido en el
sistema operativo, sino dar error de comunicacin.
Festo Didactic
22
Aparecer la siguiente ventana que permite controlar los movimientos del brazo
robot desde el PC.
Abrir/Cerrar Pinza
Mtodo de movimiento
ATENCIN
En este punto hay que hacer especial hincapi en realizar los
movimientos con especial atencin con el fin de evitar colisiones y
malos posicionados, que puedan causar daos mecnicos o un mal
funcionamiento en este.
El programa te permite elegir entre tres mtodos de posicionado para alcanzar la
posicin deseada, estos son:
XYZ Jog : En este modo el brazo robot se mover respecto al eje de
coordenadas situado en la base del robot.
Joint Jog : Este modo se puede mover individualmente cada eje del motor en
formato polar (grados).
XYZ Tool: Con esta opcin el brazo robot se mover respeto al eje de
coordenadas situado en el centro la herramienta (En este caso la pinza).
Festo Didactic
23
Nota:
Con el botn Set Joint Coordinates... pasar a una ventana en la que el usuario
puede escribir en cada campo un valor y el robot se dirigir a dicha posicin cargada
manualmente.
Una vez se tenga la posicin deseada con el botn Current position > Pos. List
cargar la posicin actual del robot en la lista de posiciones con el nmero
especificado.
Festo Didactic
24
Festo Didactic
25
Festo Didactic
26
Opciones de monitorizacin
Las opciones de monitorizacin sirven para la supervisin de los diferentes
elementos y caractersticas del brazo robot mientras este esta ejecutando una tarea.
Para ir a la barra de monitorizacin, ir al icono Monitor Toolbar o la ruta
Execute/Monitor Funtions . Esta opcin har aparecer una barra flotante donde
aparecen las diferentes opciones de monitorizacin.
Motor Speed
Encoder
Current 1
Voltage
Program Monitor
Variables Monitor
Position Monitor
Droop
Load
Current 2
Festo Didactic
27
Edicin de la
instruccin
Instrucciones
Enva al robot
Festo Didactic
28
5 ESTRUCTURA DE LA PROGRAMACIN
Para relacionar los diferentes archivos en un proyecto, para que la compilacin sea
correcta. Se deben seguir los pasos siguientes:
1.- Ir al men contextual Execute y elegir la opcin Project Management .
Festo Didactic
29
2.- aparecer la ventana flotante que nos permite gestionar los diferentes
archivos del proyecto.
3.- En la ventana de la izquierda aparacer los diferentes proyectos que se
han creado en la carpeta de proyectos. Aquel proyecto de est remarcado en
negrita indicar que es el que en ese momento est activo.
Compilar Proyecto
Activar Proyecto
Aadir Proyecto
Borrar Proyecto
Proyecto Activo
Festo Didactic
30
Comentarios
Definicin de posiciones
Definicin de I/O
externas
Definicin de variables
internas
Festo Didactic
31
Programa principal
Etiqueta
Llamada a Subrutina
1) Salto
2) a3)
lnea
4)
Inicio
Sub
Subrutina
Final
Sub
Lneas de instruccin
El programa se construye en base a lneas de instruccin que se ejecutarn de
manera secuencial, excepto que haya instrucciones de salto, bucles o llamadas a
subrutina. Los elementos que las forman se muestran a continuacin.
Ejemplo de declaracin de comanda:
10 MOV P1 WTHM_OUT (17) = 1
Nmero de lnea Es el numero usado para determinar el orden de ejecucin del
programa. El programa se ejecutar en orden ascendente.
Mnemotcnico de la instruccin
por el robot.
Dato El dato puede ser un valor o una variable del tipo requerido por la
instruccin.
Declaracin aadida
Festo Didactic
32
Tipos de variables
Variable de control de
Variable de
Variable de control de
VARIABLE
Variable de
Festo Didactic
33
6 INSTRUCCIONES BSICAS
Introduccin
En la programacin de brazos robot, siempre persiste un tipo de instrucciones
bsicas para todos los tipos software que son aquellas que definen los movimientos
ms simples del brazo y que por si solas son las base de la mayora de las secuencias
de una aplicacin
Movimiento Interpolado
El Robot genera la trayectoria interpolando puntos entre el punto origen y el punto
de destino, obteniendo para cada una de las articulaciones del robot, las
coordenadas, velocidad y aceleracin que a lo largo del tiempo se han de imprimir
para ajustarse al movimiento especificado.
Pese a su complejidad es la forma ms rpida para el robot.
MOV
El robot se mueve a la posicin indicada con una interpolacin angular de cada eje.
El camino recorrido no se puede prever. Se pueden introducir las declaraciones
aadidas WTH o WTHIF.
Ejemplos de llamadas de instruccin:
MOV P1............. Se mueve a P1.
MOV P1+P2....... Se mueve a la posicin resultante de sumar las coordenadas de P1
y P2.
MOV P1*P2....... Se mueve a la posicin relativa convertida de P1 a P2.
MOV P1, -50...... Se mueve desde P1 hasta una posicin a 50mm en la direccin de la
pinza.
MOV P1 WTH M_OUT(7)=1... ..Empieza el movimiento hacia P1, y
simultneamente enciende la salida 7.
MOV P1 WTHIF M_IN(9)=1, SKIP.
. Si durante el movimiento hacia P1 el bit 9
de entrada se activa, se para el
movimiento y el programa sigue.
Festo Didactic
34
P1
Programa ejemplo:
10
20
30
40
MOV P1
MOV P2, -50
MOV P2
END
50
P2
Movimiento lineal
El Robot describe una lnea recta entre los puntos origen y destino.
Es un movimiento lento para el robot y solo se emplea en movimientos crticos
cuando el robot se encuentra cerca de completar su trabajo (coger pieza, dejar pieza,
soldar un punto, aplicar adhesivo ).
MVS
El robot se mueve en lnea recta hacia la posicin indicada. Se pueden introducir las
declaraciones aadidas WTH o WTHIF.
Ejemplos de llamadas de instruccin:
MVS
MVS
MVS
MVS
MVS
MVS
MVS
MVS
MVS
Festo Didactic
35
Programa ejemplo:
10
20
30
40
MVS P1
MVS P2, -50
MVS P2
END
P1
50
P2
HOPEN / HCLOSE
Abre/cierra la pinza designada.
Ejemplo de llamada de instruccin:
HOPEN 1........... Abre la pinza 1
HCLOSE 1......... Cierra la pinza 1
OVDR
Designa la velocidad de movimiento segn un porcentaje relativo a la velocidad
mxima. Afecta a todos los movimientos posteriores, si es que no se vuelve a
modificar el valor.
Ejemplo de llamada de instruccin:
OVRD 60............ Fija la velocidad de todos los movimientos al 60% de la velocidad
mxima.
SPD
Define la velocidad de interpolacin linear y circular(para instrucciones MVS, MVR y
MVC) de la pinza en mm/s.
Ejemplo de llamada de instruccin:
SPD 30.............. Configura la velocidad de los movimientos lineales y circulares en
30mm/s.
DLY
Espera los segundos indicados (el mnimo es 0.05), y luego sigue con el programa.
Ejemplo de llamada de instruccin:
DLY 3................. Espera 3 segundos antes de seguir.
Festo Didactic
36
P1
9
P2
P4
P3
P5
Realizacin:
Primero hay que definir las posiciones clave del movimiento, que en este caso sern
cinco:
-P1
-P2
-P3
-P4
-P5
:
:
:
:
:
Para definir las posiciones se utilizar la opcin 'Jog Operation' que se encuentra en
el men 'Execute'.
( ANTES DEBE CONECTARSE EL PC CON EL ROBOT CLICANDO EN
Festo Didactic
37
XYZ Job:
Coordenadas de
referencia respecto la base del
robot. Las articulaciones se
interpolan para que se desplace
respecto
los
ejes
de
coordenadas
JOINT
Jog:
Se
controlan
directamente las 5 articulaciones
individualmente y de forma
polar.
Para definir las posiciones se sita el brazo en la posicin deseada y se guarda con el
botn 'Current Position > Pos. List'. El programa crea una nueva posicin en el
listado de posiciones y le pone el nombre Px, donde x es el numero de posicin que
aparece en la ventana anterior. Desde el listado de posiciones podemos cambiar las
propiedades de las posiciones.
Una vez se tienen las posiciones definidas, empezar a programar; para este ejercicio
se utilizaran las siguientes instrucciones:
- MOV > Realiza un movimiento suave, interpolando los ejes punto a punto.
- OVRD > Porcentaje de la velocidad mxima.
- HOPEN > Abre la pinza.
- HCLOSE > Cierra la pinza.
- DLY > Espera los segundos indicados.
Despus de introducir el programa, se deben numerar las filas con la opcin
'Renumber'.
Luego se puede compilar con
programacin.
Festo Didactic
38
Ampliaciones:
Eliminar las posiciones de aproximacin P2 y P4.
A) Utilizar la instruccin ampliada de MOV que permite mover hasta una distancia
determinada, por encima de una posicin (en la direccin del eje Z).
MOV P9, -50...... Movimiento interpolado hasta una posicin 50mm encima de la
posicin P9.
B) Utilizar una posicin de offset, definindola al inicio del programa y utilizndola
sumada a P3 y P5:
DEF POS OFFSET
OFFSET = (0, 0, +50, 0, 0, 0)
MOV P9 + OFFSET
Festo Didactic
39
7 INSTRUCCIONES DE MOVIMIENTO
MVR
El robot se mueve por un circulo definido por tres puntos. Si el empezar el
movimiento no se encuentra en el punto de inicio, se mover linealmente hasta l
antes de empezar. Se pueden introducir las declaraciones aadidas WTH o WTHIF.
MVR : Se define el punto de inicio, uno de trnsito, y el punto final.
MVR2 : Se define la posicin inicial, la final, y un punto de referencia por el
que no pasar.
MVR3 : Se define el punto inicial, el final y el centro del crculo. El
movimiento va del inicial al final por el camino ms corto del crculo.
MVC : Se define la posicin de inicio (y final), punto de trnsito 1, y punto de
trnsito 2. El movimiento sigue el recorrido:
inicio trnsito1 trnsito2 final.
Ejemplos de llamadas de instruccin:
MVR P1, P2, P3............... Se mueve con una interpolacin circular entre P1 P2 P3.
MVR P1, P2, P3 WTH M_OUT(7)=1............ Interpolacin circular entre P1 P2 P3, y
el bit 7 se activa.
MVR P1, P2, P3 WTHIF M_IN(9)=1, SKIP................ Si el bit 9 se activa durante el
movimiento, se para y sigue en el
siguiente paso.
MVR P1, P2, P3 TYPE 0, 1............. Se mueve con una interpolacin circular entre
P1 P2 P3.
MVR2 P1, P2, P3............. Interpolacin circular de P1 a P2, sin pasar por P3.
MVR3 P1, P3, P4............. Se mueve con una interpolacin circular de P1 a P3 por el
camino ms corto. El punto P4 es el centro.
MVC P6, P8, P9............... Movimiento circular P6 P8 P9 P6.
P7
P6
P8
Programa ejemplo:
10
20
30
40
50
Festo Didactic
P1
P4
P2
P3
P5
P9
40
CNT
Define el principio y el final de un movimiento continuo.
Ejemplos de llamadas de instruccin:
CNT 1................. Define el inicio del movimiento continuo.
CNT 1, 100, 200............... Define el inicio del movimiento continuo, la distancia de
separacin con el punto inicial, y la distancia de separacin
con el punto final.
CNT 0................. Define el final del movimiento continuo.
P1
Programa ejemplo:
10
20
30
40
50
60
70
80
MOV P1
CNT 1
MVS P2
CNT 1, 50, 100
MVS P3
MVS P4
CNT 0
END
P2
50
P4
100
50
P3
ACCEL
Define la aceleracin y desaceleracin durante el movimiento como un porcentaje
del mximo.
Ejemplos de llamadas de instruccin:
ACCEL................. Configura la aceleracin y la desaceleracin al 100%.
ACCEL 60, 80..... Configura la aceleracin al 60% y la desaceleracin al 80%.
JOVDR
Define la velocidad de movimiento angular axial (para instrucciones MOV), como un
porcentaje de la mxima.
Ejemplo de llamada de instruccin:
JOVRD 70........... Configura la velocidad del movimiento angular de cada eje al 70%
de la mxima.
Festo Didactic
41
HLT
Para la ejecucin del programa y entra en el estado de paro.
Ejemplos de llamadas de instruccin:
HLT..................... Para la ejecucin del programa.
IF M_IN(8)=1 THEN HLT................ Para la ejecucin del programa cuando se activa la
seal de entrada M_IN(8).
MOV P3 WTHIF M_IN(9)=1, HLT................. Para la ejecucin del programa si la seal
de entrada M_IN(9) se activa durante el
movimiento a P3.
FINE
Define las condiciones de posicionamiento final con un nmero de pulsos.
Ejemplo de llamada de instruccin:
FINE 100............ Configura las condiciones de posicionamiento final a 100 pulsos.
TOOL
Configura la forma de la herramienta que usamos, y configura el punto de control.
Ejemplo de llamada de instruccin:
TOOL P60.......... Define la forma guardada en P60.
Festo Didactic
42
P1
P2
P3
P5
P4
Realizacin:
Las posiciones necesarias sern:
-P1
-P2
-P3
-P4
-P5
:
:
:
:
:
Festo Didactic
43
Ampliaciones:
Modificar el programa para que realice 3 vueltas seguidas en vez de dos. Utilizar la
instruccin CNT para que haga un movimiento continuo y no se pare entre vuelta y
vuelta (en realidad no para del todo pero el sonido cambia).
CNT 1, 100, 100
...
CNT 0
Realizar un arco y/ o circulo con centro definido, utilizando la instruccin MVR3 .
La posicin del centro ser como la posicin de recogida, pero 100mm ms baja.
MVR3 P_inicial, P_final, P_centro
Festo Didactic
44
DEF I/O
El robot dispone de 32 entradas y 32 salidas digitales. Algunas estn reservadas:
Salidas reservadas
Entradas reservadas
Festo Didactic
45
El control de las entradas y salidas se realiza con dos vectores (array) predefinidos,
M_OUT( ) y M_IN( ).
M_OUT(6) = 1
.. Activa la salida 6
IF M_IN(9)=1 THEN X... . Si la entrada 9 esta activa, hace la instruccin X
Tambin se pueden renombrar al gusto del usuario con la instruccin DEF IO .
DEF IO MARCHA = BIT,10
WAIT
Espera a que la variable alcance el valor indicado.
Ejemplos de llamadas de instruccin:
WAIT M_IN(1)=1......
Festo Didactic
46
Prctica 3
Movimiento continuo
Anunciado:
El programa ha de empezar haciendo que el robot agarre un rotulador adaptado y
espere hasta que se active la seal de entrada M_IN(10). sta seal se ha de cablear
con un pulsador, para poderla activar repetidamente. Cuando se pulsa debe realizar
un movimiento continuo por un rectngulo definido por 4 posiciones. La punta del
rotulador ha de quedar cerca de la superficie de la mesa para que pueda escribir.
P1
P2
P3
P4
P6
P5
Realizacin:
Las posiciones clave para realizar el movimiento descrito sern:
-P1
-P2
-P3
-P4
-P5
-P6
Festo Didactic
:
:
:
:
:
:
47
Ampliaciones:
Programar un sistema de marcha / paro de emergencia con las entradas:
M_IN(9) pulsador de marcha
M_IN(10) pulsador de paro de emergencia
Si se activa la seal de paro, el robot debe interrumpir el programa, y slo seguir si
M_IN(10)=0 y M_IN(9)=1.
Definir las variables externas con un nombre ms prctico:
DEF IO nombre=bit, 10 ( redefine la variable M_IN(10) )
Festo Didactic
48
9 PALETIZACIN
Introduccin
La manipulacin automatizada de objetos y piezas, ha extendido la utilizacin de
palets, que son contenedores compartimentados o elementos de fijacin, que
permiten ordenar un determinado nmero de piezas iguales, para su transporte y
manipulacin del conjunto. Esta manera hace que no se pierda el orden, facilitando
las tareas de manipulacin.
DEF PLT
Define el palet para ser usado.
Ejemplos de llamadas de instruccin:
DEF PLT 1, P1, P2, P3, P4, 3, 5, 1
20 19 18 17 16
11 12 13 14 15
10 9 8 7 6
1 2 3 4 5
Tipo 1
P3
P4
P1
P2
Tipo 2
16 17 18 19 20
11 12 13 14 15
6 7 8 9 10
1 2 3 4 5
Festo Didactic
49
PLT
Obtiene la posicin deseada sobre un palet.
Ejemplos de llamadas de instruccin:
(PLT 1, 4)........... Obtiene la cuarta posicin del palet n1.
(PLT 1, M1)........ Obtiene la posicin indicada por la variable M1, del palet n1.
Programa ejemplo:
10
20
30
40
50
60
70
80
90
100
110
120
130
140
Festo Didactic
50
P4
P5
50
P2
P3
50
Prctica 4 Paletizacin
Anunciado:
El programa ha de llenar las un palet 3x3 con las piezas disponibles. Al empezar el
robot ir a la posicin de recogida, y esperar que se active la seal M_IN(10) para
recoger la pieza. Cada vez que recoja una pieza la pondr en una posicin distinta
del palet, y luego volver a la posicin de espera de la recogida hasta que se active
la seal.
P1
P2
P5
P6
P3
P4
Realizacin:
Las posiciones necesarias sern:
-P1
-P2
-P3
-P4
-P5
-P6
:
:
:
:
:
:
Festo Didactic
51
Ampliacin:
Cambiar la estructura del WHILE por un IF THEN , utilizando tambin la
instruccin de salto de lnea GOTO .
IF M3=9 THEN 360
Festo Didactic
52
GOTO
Salto incondicional a la lnea indicada.
Ejemplos de llamadas de instruccin:
GOTO 300.......... Salto incondicional a la lnea 300.
GOTO *FIN......... Salto incondicional a la lnea de nivel FIN.
ON GOTO
Salto en funcin del valor de la variable designada. Las condiciones siguen el orden
del valor entro de la variable(0, 1, 2, 3, ...).
Ejemplos de llamadas de instruccin:
ON M1 GOTO 50, 150, 300........... Si el valor de la variable M1 es 1 salta a la lnea 50,
si es 2 salta a la lnea 150, si es 3 salta a la lnea
300, y si es otro valor salta a la siguiente lnea.
IF THEN ELSE
Salto segn el valor de la variable. Los valores de condicin pueden ser designados
aleatoriamente. Solo hay un tipo de condicin por declaracin de comanda.
Ejemplos de llamadas de instruccin:
IF M1=1 THEN 50............. Si la variable M1 vale 1, salta a la 50; sino, salta a la lnea
siguiente.
IF M1=1 THEN 50 ELSE 90............. Si la variable M1 vale 1, salta a la 50; sino, salta a
la lnea 90.
Festo Didactic
53
SELECT CASE
Salto segn el valor de la variable. Los valores de condicin pueden ser designados
aleatoriamente. Hay mltiples condiciones por declaracin de comanda.
Para finalizar los CASE se puede poner BREAK . En el ltimo se puede poner
DEFAULT , que englobar el resto de condiciones que no se hayan especificado en
los CASE anteriores. El programa debera salir del SELECT CASE pasando por la
lnea END CASE, ya que si slo sale con GOTO o GOSUB , acaba parndose por
anidamiento excesivo.
Ejemplos de llamadas de instruccin:
SELECT M1......... Selecciona el valor de la variable M1 para compararlo en las
siguientes instrucciones.
CASE 5............... Si el valor es 5, ejecuta solo entre esta y el siguiente CASE .
CASE IS 9........... Si el valor es 9, ejecuta solo entre esta y el siguiente CASE .
CASE IS < 3........ Si el valor es menor que 3, ejecuta solo entre esta y el siguiente
CASE.
CASE 6 TO 9....... Si el valor esta entre 6 y 9, ejecuta solo entre esta y el siguiente
CASE.
DEFAULT............ Si el valor no se ajusta a ninguna de las condiciones anteriores,
ejecuta solo entre DEFAULT y el prximo END SELECT .
END SELECT....... Finaliza la declaracin de SELECT CASE .
Nota: Al final de cada instruccin CASE es recomendable poner la instruccin
BRAKE .
GOSUB
Llama a la subrutina con la o el nivel indicado.
Ejemplos de llamadas de instruccin:
GOSUB 300....... Llama la subrutina de la 300.
GOSUB *GET..... Llama la subrutina del nivel GET .
RETURN
Retorna a la lnea siguiente de donde estaba la comanda GOSUB .
ON GOSUB
Llama a la subrutina segn la variable numrica indicada. El valor de las condiciones
siguen valores enteros.
Ejemplo de llamada de instruccin:
ON M1 GOSUB 300, 400, 500...... Si la variable numrica vale 1, llama la subrutina
de la 300; si vale 2 llama, llama la subrutina de la
Festo Didactic
54
FOR NEXT
Repite las instrucciones entre la de FOR y la de NEXT , hasta satisfacer las
condiciones especificadas.
Ejemplos de llamadas de instruccin:
FOR M1=1 TO 10............ Repite 10 veces las instrucciones entre FOR y NEXT .
Inicialmente la variable M1 vale 1, y se va incrementando
en cada repeticin.
NEXT M1
FOR M1=0 TO 10 STEP 2.............. Repite 6 veces las instrucciones entre FOR y
NEXT . Inicialmente la variable M1 vale 0, y se va
incrementando en 2 en cada repeticin.
NEXT M1
WHILE WEND
Repite las instrucciones entre la de WHILE y la de WEND , mientras las condiciones
especificadas se cumplen.
Ejemplo de llamada de instruccin:
WHILE (M1 >= 1)AND(M1 <= 10)............... Repite las instrucciones entre WHILE y
WEND hasta que la variable M1 sale del
rango [1..10].
WEND
Festo Didactic
55
Prctica 5 Subrutinas
Anunciado:
Realizar un programa para que el brazo industrial coja una pieza de la zona de
recogida, y luego la muestre . En esta posicin, esperar hasta que detecte que se
activa una de las seales de entrada: M_IN(8), M_IN(9), M_IN(10) o M_IN(11). El
robot deber ejecutar una subrutina distinta dependiendo de la seal que se active:
M_IN(8)=1
M_IN(9)=1
M_IN(10)=1
M_IN(11)=1
P3
P1
P8
P7
P10
P9
P2
P4
P6
1
2
P5
Realizacin:
Las posiciones clave para realizar el movimiento descrito sern:
-P1 : posicin inicial o de reposo
-P2 : posicin de recogida de piezas
-P3 : posicin de ensear la pieza
-P4 : posicin de inicio del circulo
-P5 : posicin de trnsito 1
-P6 : posicin de trnsito 2
-P7 : posicin del almacn 1
-P8 : posicin para mover arriba y abajo
-P9 : posicin del almacn 2
-P10 : posicin del almacn de desperdicios
Festo Didactic
56
Festo Didactic
57
11 INTERRUPCIONES
Son instrucciones que al recibir o al cumplirse una condicin en cualquier momento
de la ejecucin del programa (no en un punto determinado) realiza una tarea
especificada y una vez finalizada vuelve al punto del programa principal donde lo
haba dejado.
DEF ACT
Define las condiciones de interrupcin y el proceso para generarla.
Ejemplos de llamadas de instruccin:
DEF ACT 1, M_IN(7)=1 GOSUB 200............ Define con prioridad n1, la llamada de la
subrutina de la 200 cuando la seal de
entrada M_IN(7) se activa.
DEF ACT 2, M_IN(8)=1 GOSUB 480, L.........Define con prioridad n2, la llamada de la
subrutina de la 480 cuando la seal de
entrada M_IN(8) se activa y la instruccin
que se estaba ejecutando termina.
DEF ACT 3, M_IN(9)=1 GOSUB 330............ Define con prioridad n3, la llamada de la
subrutina de la 330 cuando la seal de
entrada M_IN(9) se activa.
ACT
Seala la validez de la interrupcin.
Ejemplos de llamadas de instruccin:
ACT 1=1............. Habilita la interrupcin de prioridad n1.
ACT 2=0............. Deshabilita la interrupcin de prioridad n2.
RETURN
Si una subrutina es llamada por el proceso de interrupcin, retorna a la donde hubo
la interrupcin.
Ejemplos de llamadas de instruccin:
RETURN 0........... Retorna a la lnea donde ocurri la interrupcin.
RETURN 1........... Retorna a la siguiente lnea de donde ocurri la interrupcin.
Festo Didactic
58
P1
P2
P8
P3
P4
P6
P5
P7
Realizacin:
Las posiciones clave para realizar el movimiento descrito sern:
-P1
-P2
-P3
-P4
-P5
-P6
-P7
-P8
Festo Didactic
:
:
:
:
:
:
:
:
59
Festo Didactic
60
12 COMUNICACIONES
Son instrucciones que gestionan la comunicacin con otros elementos externos
perifricos.
OPEN
Abre la lnea de comunicacin.
Ejemplo de llamada de instruccin:
OPEN COM1: AS#1....... Abre la lnea de comunicacin COM1 como archivo n1.
CLOSE
Cierra la lnea de comunicacin.
Ejemplos de llamadas de instruccin:
CLOSE #1.....
CLOSE...........
PRINT #
Exporta los datos en el formato ASCII. CR es el cdigo final.
Ejemplos de llamadas de instruccin:
PRINT #1, TEST ............. Exporta los caracteres TEST al archivo n1.
PRINT #2, M1= ; M1...... Exporta los caracteres M1= y el valor de M1 al archivo
n2. Por ejemplo : M1=3 +CR+LF (cuando M1=3).
PRINT #3, P1................... Exporta las coordenadas de la variable posicin P1 al
archivo n3.
PRINT #1, M3, P3........... Exporta el valor de la variable M3 y las coordenadas de P3,
al archivo n1. Los dos datos los separa con una coma.
Festo Didactic
61
INPUT #
Importa datos en formato ASCII. El cdigo final es CR.
Ejemplos de llamadas de instruccin:
INPUT #1, M6..... Convierte los datos de entrada en valores y los substituye en la
variable numrica M6.
INPUT #1, P7...... Convierte los datos de entrada en valores y los substituye en la
variable de posicin P7.
INPUT #1, M9, P5............. Convierte los primeros datos de entrada en valores y los
substituye en la variable numrica M9. Convierte los
siguientes datos de entrada en valores y los substituye en
la variable de posicin P5.
ON COM GOSUB
Define la rutina a llamar en caso de que las lneas de comunicacin generen una
interrupcin. La interrupcin aparece cuando entran datos de un dispositivo externo.
Ejemplos de llamadas de instruccin:
ON COM(1) GOSUB 330.................Define saltar a la 330 cuando entran datos por la
lnea de comunicacin COM1.
ON COM(2) GOSUB *RECV............. Define llamar a la subrutina RECV cuando entran
datos por la lnea de comunicacin COM1.
COM ON
Habilita el proceso de interrupcin de la lnea de comunicacin indicada.
Ejemplo de llamada de instruccin:
COM(1) ON......... Habilita la interrupcin desde la lnea COM1.
COM OFF
Deshabilita el proceso de interrupcin de la lnea de comunicacin indicada. Si
ocurre la interrupcin, no ser vlida.
Ejemplo de llamada de instruccin:
COM(2) OFF........ Deshabilita la interrupcin desde la lnea COM2.
Festo Didactic
62
COM STOP
Para el proceso de interrupcin de la lnea de comunicacin indicada. Si hay una
interrupcin, se guarda y se ejecuta mas tarde.
Ejemplo de llamada de instruccin:
COM(3) STOP................... Para (sostiene) la interrupcin desde la lnea COM3.
CALLP
Llama al programa indicado. Vuelve a la siguiente del programa cuando llega a la de
END del programa llamado. Los datos se pueden transferir al programa llamado
como una trama de variables.
Ejemplos de llamadas de instruccin:
CALLP 10 ...................... Llama al programa nmero 10.
CALLP 30 , M2, P2......... Llama al programa nmero 30 y le transfiere la variable
numrica M1 y la variable de posicin P2.
FPRM
Se transfiere una discusin con la llamada de programa CALLP .
Ejemplo de llamada de instruccin:
FPRM M22, P22............... Recibe las variables transferidas con la comanda CALLP .
La variable numrica ser M22 en el subprograma, y la
variable de posicin ser P22.
CLR
Resetea las seales de salida, basndose en el patrn de reset de las seales de
salida.
Ejemplos de llamadas de instruccin:
CLR 1.................. Borra basndose en el patrn de reset de las salidas.
Festo Didactic
63
Ejemplo de aplicacin
Visin artificial
Descripcin previa:
Este ejemplo muestra una aplicacin en que el brazo robot usa las instrucciones de
comunicacin para adquirir datos de un sistema de visin artificial con el fin de
corregir la posicin donde el brazo robot tiene que ir a recoger el objeto en cuestin.
Para conectar la unidad de visin a la controladora CR1, se puede usar la tarjeta de
expansin serie RS-232C. Tambin se podra usar el puerto que conecta la
controladora con el PC, pero se recomienda usar uno dedicado para el sistema de
visin.
Cmera
Unidad de visin
CR1
(controlador)
Programa ejemplo:
10
20
30
40
50
60
70
80
90
100
110
120
130
140
150
Festo Didactic
OPEN COM2: AS #1
' Abre la comunicacin RS232C
MOV P1, -50
' Mueve la posicin de la cmara
M_OUT(10) = 1 DLY 0.5 ' Activa la seal de salida que conecta la camera
(enciende el sensor)
PX=P1
' Obtiene el origen de la camera
INPUT #1, MX, MY, MC ' Obtiene los datos de la correccin
PX.X=PX.X+MX
' Aplica los datos de la correccin en la direccin X
PPX.Y=PX.Y+MY
' Aplica los datos de la correccin en la direccin Y
PX.C=PX.C+RAD(MC)
' Aplica los datos de la correccin en el eje C
MOV PX, -50
' Mueve a una posicin encima del objeto
OVRD 30
' Velocidad al 30%
MVS PX
' Mueve a la posicin objetivo
DLY 0.3
' Espera de 0.3 segundos
HCLOSE
' Cierra pinza
DLY 0.3
' Espera de 0.3 segundos
MVS, -50
' Movimiento recto alejndose hacia arriba
...
64
13 APENDICE
Conexionado de E/S externas:
La controladora dispone de un conector conceptronics de 50 pines donde se
conectarn las seales de E/S externas.
Esquema de conexin y la descripcin de casa seal del conector se muestra a
continuacin.
Festo Didactic
65
Solucin Prctica 1
10 '*********************FESTO DIDACTIC*********************
20 '*
CURSO DE INTRODUCCIN A LA ROBTICA
*
30 '*
*
40 '*
PRCTICA - 1
*
50 '*
INSTRUCCIONES BSICAS
*
60 '* Autor: Ferran
*
70 '* Fecha: Febrero 2005
*
80 '* Comentarios:
*
90 '*
*
100 '*********************************************************
110
HOPEN 1
' Abrir Pinza
120
MOV P1
' Movimiento interpolado a la posicin 1
130
OVRD 90
' Velocidad al 90%
140
MOV P2
' Movimiento interpolado a la posicin 2
150
OVRD 30
' Velocidad al 30%
160
MOV P3
' Movimiento interpolado a la posicin 3
170
HCLOSE 1
' Cierra pinza
180
DLY 0.5
' Espera de 0.5 segundos
190
MOV P2
' Movimiento interpolado a la posicin 2
200
OVRD 90
' Velocidad 90%
210
MOV P4
' Movimiento interpolado a la posicin 4
220
OVRD 30
' Velocidad al 30%
230
MOV P5
' Movimiento interpolado a la posicin 5
240
HOPEN 1
' Abre pinza
250
MOV P4
' Movimiento interpolado a la posicin 4
260
OVRD 90
' Velocidad 90%
270
MOV P1
' Movimiento interpolado a la posicin 1
280
DLY 3
' Espera de 3 segundos
290
END
' Fin del programa
Festo Didactic
66
Solucin Prctica 2
10 '*********************FESTO DIDACTIC*********************
20 '*
CURSO DE INTRODUCCIN A LA ROBTICA
*
30 '*
*
40 '*
PRCTICA - 2
*
50 '*
MOVIMIENTOS CIRCULARES
*
60 '* Autor: Ferran
*
70 '* Fecha: Marzo 2005
*
80 '* Comentarios:
*
90 '*
*
100 '*********************************************************
110
HOPEN 1
' Abrir Pinza
120
OVRD 70
' Velocidad al 70%
130
MOV P1
' Movimiento interpolado a la posicin P1
140
DLY 3
' Espera de 3 segundos
150
MOV P2, -80
' Movimiento interpolado a una posicin alejada 80mm de
la posicin P2
160
OVRD 30
' Velocidad al 30%
170
MVS P2
' Movimiento recto a la posicin P2
180
HCLOSE 1
' Cierra pinza
190
DLY 0.5
' Espera de 0,5 segundos
200
MVS P2, -50
' Movimiento recto a una posicin alejada 50mm de la
posicin P2
210
OVRD 70
' Velocidad al 70%
220
MOV P3, -150 ' Movimiento interpolado a una posicin alejada 150mm de
la posicin P3
230
MOV P3
' Movimiento interpolado a la posicin P3
240
MVC P3, P4, P5 ' Movimiento circular
250
MVC P3, P4, P5 ' Movimiento circular
260
MOV P3, -150 ' Movimiento interpolado a una posicin alejada
150mm de la posicin P3
270
MVS P2, -80
' Movimiento recto a una posicin alejada 80mm de la
posicin P2
280
OVRD 30
' Velocidad al 30%
290
MVS P2
' Movimiento recto a la posicin P2
300
HOPEN 1
' Abrir Pinza
310
DLY 0.5
' Espera de 0,5 segundos
320
MVS P2, -50
' Movimiento recto a una posicin alejada 50mm de la
posicin P2
330
OVRD 70
' Velocidad al 70%
340
MOV P1
' Movimiento interpolado a la posicin P1
350
END
' Fin del programa
Festo Didactic
67
Solucin Prctica 3
10 '*********************FESTO DIDACTIC*********************
20 '*
CURSO DE INTRODUCCIN A LA ROBTICA
*
30 '*
*
40 '*
PRACTICA - 3
*
50 '*
MOVIMIENTO CONTINUO
*
60 '* Autor: Ferran
*
70 '* Fecha: Marzo 2005
*
80 '* Comentarios:
*
90 '*
*
100 '*********************************************************
110
'HOPEN 1
' Abrir Pinza
120
OVRD 80
' Velocidad al 80%
130
MOV P1
' Movimiento interpolado a la posicin P1
140
DLY 3
' Espera de 3 segundos
150
MOV P2, -100
' Movimiento interpolado a una posicin alejada
100mm de la posicin P2
160
MVS P2
' Movimiento recto a la posicin P2
170
WAIT M_IN(10)=1
' Espera que se active la entrada M_IN(10)
180
HCLOSE 1
' Cierra pinza
190
DLY 3
' Espera de 3 segundos
200
MVS P2, -100
' Movimiento recto a una posicin alejada 100mm
de la posicin P2
210
MOV P1
' Movimiento interpolado a la posicin P1
220
MOV P3, -50
' Movimiento recto a una posicin alejada
50mm de la posicin P3
230
OVRD 40
' Velocidad al 40%
240
MVS P3
' Movimiento recto a la posicin P3
250
DLY 1
' Espera de 1 segundo
260
CNT 1
' Inicio movimiento continuo
270
MVS P4
' Movimiento recto a la posicin P4
280
'CNT 1,50,50
' movimiento continuo
290
MVS P5
' Movimiento recto a la posicin P5
300
'CNT 1,50,50
' movimiento continuo
310
MVS P6
' Movimiento recto a la posicin P6
320
'CNT 1,50,50
' movimiento continuo
330
MVS P3
' Movimiento recto a la posicin P3
340
'CNT 1,50,50
' movimiento continuo
350
MVS P5
' Movimiento recto a la posicin P5
360
CNT 0
' Final del movimiento continuo
370
OVRD 80
' Velocidad al 80%
380
MOV P1
' Movimiento interpolado a la posicin P1
390
HOPEN 1
' Abre la pinza
400
HLT
' Para el programa
410
END
' Fin del programa
Festo Didactic
68
Solucin Prctica 4
10 '*********************FESTO DIDACTIC*********************
20 '*
CURSO DE INTRODUCCIN A LA ROBTICA
*
30 '*
*
40 '*
PRACTICA - 4
*
50 '*
PALETIZACIN
*
60 '* Autor: Ferran
*
70 '* Fecha: Marzo 2005
*
80 '* Comentarios:
*
90 '*
*
100 '*********************************************************
110
DEF PLT 1, P3, P4, P5, P6, 3, 3, 2 ' Definicin del palet
120
DEF POS OFFSET
' Declaracin variable posicin OFFSET
130
OFFSET = (0, 0, +100, 0, 0, 0)
' Definicin de OFFSET
140
M9=1
' Asignamos el valor 1 a la variable entera M9
150
OVRD 90
' Velocidad al 90%
160
HOPEN 1
' Abrir Pinza
170
MOV P2, -60
' Movimiento interpolado a una posicin alejada 60mm de
la posicin P2
180
WHILE (M9<=9) ' Mientras M9 sea inferior a 10, se ejecutar el bucle del
WHILE
190
WAIT M_IN(10)=1
' Espera hasta que la seal M_IN(10) se activa
200
OVRD 30
' Velocidad al 30%
210
MVS P2
' Movimiento recto a la posicin P2
220
HCLOSE 1
' Cierra pinza
230
DLY 0.5
' Espera de 0,5 segundos
240
MVS P2, -60
' Movimiento interpolado a una posicin alejada 60mm de
la posicin P2
250
OVRD 90
' Velocidad al 90%
260
P9=(PLT 1, M9) ' Asignamos el valor de una posicin del palet a la variable
de posicin P9
270
MOV P9 + OFFSET
' Movimiento interpolado a la posicin resultante
de la suma de coordenadas
280
OVRD 30
' Velocidad al 30%
290
MVS P9
' Movimiento recto a la posicin P9
300
HOPEN 1
' Abrir Pinza
310
DLY 0.5
' Espera de 0,5 segundos
320
MOV P9 + OFFSET
' Movimiento interpolado a la posicin resultante
de la suma de coordenadas
330
OVRD 90
' Velocidad al 90%
340
MOV P2, -60
' Movimiento interpolado a una posicin alejada 60mm de
la posicin P2
350
M9=M9+1
' Incrementa el valor de la variable entera M9
360
WEND
' Fin del bucle
370
END
' Fin del programa
Festo Didactic
69
Solucin Prctica 5
10 '*********************FESTO DIDACTIC*********************
20 '*
CURSO DE INTRODUCCIN A LA ROBTICA
*
30 '*
*
40 '*
PRACTICA - 5
*
50 '*
SUBRUTINAS
*
60 '* Autor: Ferran
*
70 '* Fecha: Abril 2005
*
80 '* Comentarios:
*
90 '*
*
100 '*********************************************************
110
DEF POS OFFSET
' Declaracin variable posicin OFFSET
120
OFFSET = (0, 0, +60, 0, 0, 0)
' Definicin de OFFSET
130
DEF INTE RAPIDO
' Declaracin variable RAPIDO
140
DEF INTE LENTO
' Declaracin variable LENTO
150
DEF INTE OPCION
' Declaracin variable OPCION
160
RAPIDO = 90
' Velocidad rpida al 90%
170
LENTO = 30
' Velocidad lenta al 30%
180
HOPEN 1
' Abrir Pinza
190
*INICIO
' Etiqueta de reinicio
200
OVRD RAPIDO
' Velocidad al 90%
210
MOV P1
' Movimiento interpolado a la posicin P1
220
MOV P2 + OFFSET
' Movimiento interpolado a la suma de
coordenadas de P2 y OFFSET
230
OVRD LENTO
' Velocidad al 30%
240
MVS P2
' Movimiento recto a la posicin P2
250
HCLOSE 1
' Cierra pinza
260
DLY 0.5
' Espera de 0,5 segundos
270
MOV P2 + OFFSET
' Movimiento interpolado a la suma de
coordenadas de P2 y OFFSET
280
OVRD RAPIDO
' Velocidad al 90%
290
MOV P3
' Movimiento interpolado a la posicin P3
300
*INI
' Etiqueta
310
OPCION = 0
' Inicializacin de la variable OPCION
320
WAIT (M_IN(8)=1) OR (M_IN(9)=1) OR (M_IN(10)=1) OR (M_IN(11)=1)
' Espera a que se active alguna seal
330
IF M_IN(11)=1 THEN OPCION =4 ' Comprueba el valor de M_IN(11)
340
IF M_IN(10)=1 THEN OPCION =3 ' Comprueba el valor de M_IN(10)
350
IF M_IN(9)=1 THEN OPCION =2 ' Comprueba el valor de M_IN(9)
360
IF M_IN(8)=1 THEN OPCION =1 ' Comprueba el valor de M_IN(8)
370
SELECT OPCION
' Selecciona el vector ENT para comparar
380
CASE OPCION =1
' Compara una posicin del vector
390
GOSUB *GIRAR
' Llama a la subrutina GIRAR
400
BREAK
' Fin de las instrucciones del CASE seleccionado
410
CASE OPCION =2
' Compara una posicin del vector
420
GOSUB *CIRCULO
' Llama a la subrutina CIRCULO
430
BREAK
' Fin de las instrucciones del CASE seleccionado
440
CASE OPCION =3
' Compara una posicin del vector
450
GOSUB *BOTAR
' Llama a la subrutina BOTAR
460
BREAK
' Fin de las instrucciones del CASE seleccionado
470
CASE OPCION =4
' Compara una posicin del vector
480
GOSUB *TIRAR
' Llama a la subrutina TIRAR
490
BREAK
' Fin de las instrucciones del CASE seleccionado
500
DEFAULT
' Si no hay entradas activas
Festo Didactic
70
510
520
530
540
550
560
570
580
590
600
610
620
630
640
650
660
670
680
690
700
710
720
730
740
750
760
770
780
790
800
810
820
830
840
850
860
870
880
890
900
910
920
930
940
950
960
970
980
990
1000
1010
1020
1030
Festo Didactic
DLY 0.5
' Espera de 0,5 segundos
BREAK
' Fin de las instrucciones del CASE seleccionado
END SELECT
' Finaliza la opcin SELECT CASE
IF OPCION=0 OR OPCION=1 THEN GOTO *INI
' Si la variable OPCION
vale 0 o 1, salta a INI
GOTO *INICIO
' Salta a la etiqueta INICIO
END
' Fin del programa
'-------------------------------------------------------------------------------------*GIRAR
' Inicio de la subrutina GIRAR
DEF POS GIRO
' Declaracin variable posicin
GIRO = (0, 0, 0, 120, 0, 0)
' Asignacin de valores a la posicin GIRO
OVRD LENTO
' Velocidad al 30%
CNT 1
' Inicio del movimiento continuo
MOV P3+GIRO
' Movimiento interpolado a la suma de
coordenadas de P3 y GIRO
MOV P3
' Movimiento interpolado a la posicin P3
MOV P3-GIRO
' Movimiento interpolado a la suma de
coordenadas de P3 y GIRO
MOV P3
' Movimiento interpolado a la posicin P3
CNT 0
' Fin del movimiento continuo
OVRD RAPIDO
' Velocidad al 90%
RETURN
' Final de la subrutina GIRAR
'-------------------------------------------------------------------------------------*CIRCULO
' Inicio de la subrutina CIRCULO
CNT 1
' Inicio del movimiento continuo
MOV P1
' Movimiento interpolado a la posicin P1
MOV P4 + OFFSET
' Movimiento interpolado a la suma de
coordenadas de P4 y OFFSET
MVS P4
' Movimiento interpolado a la posicin P4
MVC P4,P5, P6
' Movimiento circular entre los puntos P4, P5 y P6
CNT 0
' Fin del movimiento continuo
MOV P4 + OFFSET
' Movimiento interpolado a (P4 + OFFSET)
MOV P7 + OFFSET
' Movimiento interpolado a (P7 + OFFSET)
OVRD LENTO
' Velocidad al 30%
MVS P7
' Movimiento recto a la posicin P7
HOPEN 1
' Abrir Pinza
DLY 0.5
' Espera de 0,5 segundos
MVS P7 + OFFSET
' Movimiento interpolado a (P7+OFFSET)
RETURN
' Final de la subrutina CIRCULO
'-------------------------------------------------------------------------------------*BOTAR
' Inicio de la subrutina BOTAR
CNT 1
' Inicio del movimiento continuo
MOV P8 - OFFSET
' Movimiento interpolado a (P8 - OFFSET)
MOV P8 + OFFSET
' Movimiento interpolado a (P8 + OFFSET)
MOV P8 - OFFSET
' Movimiento interpolado a (P8 - OFFSET)
MOV P8 + OFFSET
' Movimiento interpolado a (P8 + OFFSET)
MOV P8 - OFFSET
' Movimiento interpolado a (P8 - OFFSET)
MOV P8 + OFFSET
' Movimiento interpolado a (P8 + OFFSET)
MOV P8
' Movimiento interpolado a P8
CNT 0
' Fin del movimiento continuo
MOV P9 + OFFSET
' Movimiento interpolado a (P9 + OFFSET)
OVRD LENTO
' Velocidad al 30%
MVS P9
' Movimiento recto a P9
HOPEN 1
' Abrir Pinza
DLY 0.5
' Espera de 0,5 segundos
MVS P9 + OFFSET
' Movimiento recto a (P9 + OFFSET)
RETURN
' Final de la subrutina BOTAR
71
1040
1050
1060
1070
1080
1090
1100
1110
1120
1130
1140
1150
Festo Didactic
'-------------------------------------------------------------------------------------*TIRAR
' Inicio de la subrutina TIRAR
DEF POS SUELO
' Declaracin variable posicin
SUELO = (0,-50,+3,0,0,0) ' Definicin de SUELO
MOV P10 + SUELO + OFFSET
' Movimiento interpolado a la suma de
coordenadas de P10, SUELO y OFFSET
OVRD 20
' Velocidad al 20%
MOV P10 + SUELO
' Movimiento interpolado a (P10 + SUELO)
MVS P10
' Movimiento recto a P10
HOPEN 1
' Abrir Pinza
DLY 0.5
' Espera de 0,5 segundos
MOV P10 + OFFSET
' Movimiento interpolado a (P10+OFFSET)
RETURN
' Final de la subrutina TIRAR
72
Solucin Prctica 6
10 '*********************FESTO DIDACTIC*********************
20 '*
CURSO DE INTRODUCCIN A LA ROBTICA
*
30 '*
*
40 '*
PRACTICA - 6
*
50 '*
INTERRUPCIONES
*
60 '* Autor: Ferran
*
70 '* Fecha: Abril 2005
*
80 '* Comentarios:
*
90 '*
*
100 '*********************************************************
110
DEF POS HORNO
' Declaracin variable posicin HORNO
120
DEF POS OFFSET
' Declaracin variable posicin OFFSET
130
DEF POS P9
' Declaracin variable posicin P9
140
HORNO = (0,0,+50,0,0,0) ' Definicin de HORNO
150
OFFSET = (0,0,+60,0,0,0) ' Definicin de OFFSET
160
'DEF IO N_PASTEL = BIT,10
170
DEF ACT 1, M_IN(10) = 1 GOSUB *COCER ' Definicin interrupcin COCER
180
DEF ACT 2, M_TIMER(1) > 30000 GOSUB *RETIRAR ' Definicin interrupcin
RETIRAR
190
DEF INTE NPP
' Declaracin variable entera NPP
200
DEF INTE CONTADOR
' Declaracin variable entera CONTADOR
210
DEF INTE RAPIDO
' Declaracin variable entera RAPIDO
220
DEF INTE LENTO
' Declaracin variable entera LENTO
230
DEF PLT 1, P4, P5, P6, P7, 3, 3, 2
' Definicin del palet 1
240
RAPIDO = 90
' Definicin de RAPIDO
250
LENTO = 60
' Definicin de LENTO
260
'..........................................................................................
270
HOPEN 1
' Abrir Pinza
280
OVRD RAPIDO
' Velocidad al 90%
290
MOV P1
' Movimiento interpolado a la posicin P1
300
ACT 1 = 1
' Habilita la interrupcin 1
310
GOSUB *COGER_P
' Llama a la subrutina COGER_P
320
*INI
' Etiqueta INI
330
NPP = 1
' Inicializacin del contador NPP
340
WHILE (NPP <= 9)
' Mientras NPP sea inferior a 10, se ejecutar el
bucle del WHILE
350
P9 = (PLT 1, NPP)
' Asignamos el valor de una posicin del palet a la
variable de posicin P9
360
MOV P9 + OFFSET
' Movimiento interpolado a la posicin P9+OFFSET
370
OVRD LENTO
' Velocidad al 60%
380
CONTADOR = 0
' Inicializacin del contador CONTADOR
390
WHILE (CONTADOR < NPP)
' Mientras NPP sea inferior a 10, se
ejecutar el WHILE
400
MVS P9
' Movimiento recto a la posicin P9
410
MVS P9 + OFFSET
' Movimiento recto a la suma de coordenadas de
P9 + OFFSET
420
CONTADOR = CONTADOR + 1
' Actualizacin del contador CONTADOR
430
WEND
' Fin del WHILE
440
OVRD RAPIDO
' Velocidad al 90%
450
NPP = NPP + 1
' Actualizacin del contador NPP
460
WEND
' Fin del WHILE
470
GOTO *INI
' Salto a la etiqueta INI
480
END
' Fin del programa
490 '------------------------------------------------------------------------------------500 *COGER_P
' Inicio de la subrutina COGER_P
Festo Didactic
73
510
520
530
540
550
560
570
Festo Didactic
OVRD RAPIDO
MOV P2 + OFFSET
OVRD LENTO
MVS P2
HCLOSE 1
DLY 0.5
MVS P2 + OFFSET
74
1050
1060
DLY 0.5
MVS P8 + HORNO
1070
1080
1090
1100
1110
1120
1130
OVRD RAPIDO
MOV P3 + OFFSET
OVRD LENTO
MVS P3
HOPEN 1
DLY 0.5
MVS P3 + OFFSET
1140
1150
1160
1170
OVRD RAPIDO
GOSUB *COGER_P
MOV P1
RETURN 0
Festo Didactic
75