manual practicas robotica

75
Manual de Instrucciones de COSIROP para el lenguaje MELFA BASIC IV Festo Didactic - 2005

Upload: carlos-mendoza

Post on 26-Jun-2015

1.881 views

Category:

Documents


27 download

TRANSCRIPT

Page 1: Manual Practicas Robotica

MMaannuuaall ddee IInnssttrruucccciioonneess ddee CCOOSSIIRROOPP

ppaarraa eell lleenngguuaajjee MMEELLFFAA BBAASSIICC IIVV

Festo Didactic - 2005

Page 2: Manual Practicas Robotica

©Festo Didactic 2

Uso al que se destina

Esta estación ha sido desarrollada y producida exclusivamente con fines de formación profesional y continuada, en el campo de la automatización y las comunicaciones. La empresa que imparta la formación y/ o los instructores deben asegurar que los alumnos observan las medidas de seguridad descritas en los manuales suministrados.

Festo Didactic declina cualquier responsabilidad por daños a los alumnos, a la organización, a terceras partes, o a todos ellos, como resultado del uso o aplicación de los equipos fuera de la situación de pura formación.

Nº de artículo: Descripción: Manual de Prácticas para el brazo robot RV-2AJ

Fecha: 03/2005 Autor: Juan Olea Pastor

© Festo Didactic , 2005 Internet: www.festo.com/didactic e-mail: [email protected]

Sin nuestra expresa autorización, queda terminantemente prohibida la reproducción total o parcial de este documento, así como su uso indebido y/ o su exhibición o comunicación a terceros. De los infractores se exigirá el correspondiente resarcimiento de daños y perjuicios. Quedan reservados todos los derechos inherentes, en especial los de patentes, de modelos registrados y estéticos.

Page 3: Manual Practicas Robotica

©Festo Didactic 3

INDICE :

1 INTRODUCCIÓN...........................................................................6

OBJETIVOS DEL CURSO ............................................................................6 SEGURIDAD .............................................................................................6 GARANTÍAS Y RESPONSABILIDADES ........................................................7

2 INTRODUCCIÓN A LA ROBÓTICA ....................................8

HISTORIA.................................................................................................8 ¿QUÉ ES UN ROBOT? ................................................................................9

3 CARACTERISTICAS RV-2AJ................................................10

ESTRUCTURA DE UN ROBOT INDUSTRIAL ...............................................10 PARTES DEL BRAZO ROBOT Y PERIFÉRICOS ............................................11 RESUMEN DE CARACTERÍSTICAS............................................................12 CARACTERÍSTICAS DEL BRAZO ROBOT...................................................13 CARACTERÍSTICAS DEL CONTROLADOR .................................................14 MANTENIMIENTO ..................................................................................15

4 INTRODUCCIÓN AL COSIROP...........................................16

CREACIÓN DE UN PROYECTO NUEVO EN COSIROP...............................16 ICONOS DE LA BARRA DE HERRAMIENTAS DE COSIROP .......................19 TEACH DE LAS POSICONES DESDE EL COSIROP....................................20 CARGA Y EJECUCIÓN DEL PROGRAMA EN EL BRAZO ROBOT ...................25 OPCIONES DE MONITORIZACIÓN ............................................................27

5 ESTRUCTURA DE LA PROGRAMACIÓN......................29

ESTRUCTURA DEL PROGRAMA ...............................................................29 LÍNEAS DE INSTRUCCIÓN .......................................................................32 TIPOS DE VARIABLES .............................................................................33

6 INSTRUCCIONES BÁSICAS ..................................................34

INTRODUCCIÓN......................................................................................34 MOV.....................................................................................................34 MVS .....................................................................................................35 HOPEN / HCLOSE ..............................................................................36 OVDR...................................................................................................36 SPD.......................................................................................................36 DLY......................................................................................................36 PRÁCTICA 1 INSTRUCCIONES BÁSICAS................................................37

7 INSTRUCCIONES DE MOVIMIENTO ..............................40

MVR .....................................................................................................40 CNT ......................................................................................................41

Page 4: Manual Practicas Robotica

©Festo Didactic 4

ACCEL .................................................................................................41 JOVDR .................................................................................................41 HLT ......................................................................................................42 FINE .....................................................................................................42 TOOL ...................................................................................................42 PRÁCTICA 2 MOVIMIENTOS CIRCULARES ...........................................43

8 SEÑALES DE ENTRADA / SALIDA ....................................45

DEF I/O ................................................................................................45 WAIT....................................................................................................46 PRÁCTICA 3 MOVIMIENTO CONTINUO ................................................47

9 PALETIZACIÓN...........................................................................49

INTRODUCCIÓN......................................................................................49 DEF PLT ..............................................................................................49 PLT .......................................................................................................50 PRÁCTICA 4 PALETIZACIÓN................................................................51

10 SALTOS CONDICIONALES Y BUCLES ........................53

GOTO ...................................................................................................53 ON GOTO ............................................................................................53 IF THEN ELSE ....................................................................................53 SELECT CASE ....................................................................................54 GOSUB.................................................................................................54 RETURN ..............................................................................................54 ON GOSUB..........................................................................................54 FOR NEXT...........................................................................................55 WHILE WEND ....................................................................................55 PRÁCTICA 5 SUBRUTINAS...................................................................56

11 INTERRUPCIONES..................................................................58

DEF ACT..............................................................................................58 ACT ......................................................................................................58 RETURN ..............................................................................................58 PRÁCTICA 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

Page 5: Manual Practicas Robotica

©Festo Didactic 5

FPRM ...................................................................................................63 CLR ......................................................................................................63 EJEMPLO DE APLICACIÓN VISIÓN ARTIFICIAL .....................................64

13 APENDICE....................................................................................65

SOLUCIÓN PRÁCTICA 1 ..........................................................................66 SOLUCIÓN PRÁCTICA 2 ..........................................................................67 SOLUCIÓN PRÁCTICA 3 ..........................................................................68 SOLUCIÓN PRÁCTICA 4 ..........................................................................69 SOLUCIÓN PRÁCTICA 5 ..........................................................................70 SOLUCIÓN PRÁCTICA 6 ..........................................................................73

Page 6: Manual Practicas Robotica

©Festo Didactic 6

Objetivos del curso

Este manual pretende ser una guía de ayuda con la información necesaria para ayudar a los asistentes del curso de Introducción a la Robótica, como unas directrices a seguir en la consecución y realización de los problemas que se pueden plantear en la realización de las prácticas.

Introducirá al lector con una cierta formación técnica, en los aspectos relacionados con la robótica, presentando de manera sencilla las diferentes características que componen las diferentes tecnologías de un robot industrial (mecánica, electrónica, control y programación) centrando estas especificaciones en el modelo utilizado en las prácticas.

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 atención las recomendaciones de seguridad.

Además, deben respetarse las normas y regulaciones sobre prevención de accidentes, aplicables localmente.

El responsable del funcionamiento se compromete en asegurar que el robot industrial es utilizado solamente por personas que:

Estén familiarizadas con las normas básicas relacionadas con la seguridad operativa y prevención de accidentes. Hayan recibido instrucciones en el manejo del Sistema Modular de Producción. Estén medianamente habituados en trabajar con seguridad.

- A tener en cuenta :

General Los alumnos sólo deben trabajar con el robot bajo la supervisión de un instructor. Observar los datos de los componentes individuales de las fichas técnicas.

Posicionamiento En el posicionamiento hay que tener especial atención 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.

Manipulación

1 INTRODUCCIÓN

Page 7: Manual Practicas Robotica

©Festo Didactic 7

Antes de la ejecución del programa del programa habrá que retirar previamente elementos que no estén especificados en la concepción este con el fin de evitar colisiones en la ejecución de las secuencias de movimiento.

Electricidad Las conexiones eléctricas deben establecerse y desconectarse sólo cuando la tensión principal esté cortada Utilizar sólo bajas tensiones de hasta 24 V DC.

Mecánica No intervenir manualmente a no ser que la máquina se halle parada.

El Sistema Modular de Producción está diseñado según los últimos avances en esta tecnología y cumple con reconocidas normas de seguridad. Sin embargo, al utilizar el sistema puede haber un riesgo de ocasionar daños físicos o lesiones al usuario o a terceras partes, o de causar daños a la máquina o a otros bienes materiales.

Garantías y responsabilidades

En principio, se aplican todos nuestros " Términos y Condiciones de Venta" . Estos términos se ponen a disposición del responsable del funcionamiento, a lo más tardar en el momento de la firma del contrato. Las reclamaciones de la garantía y responsabilidad por daños a personas y materiales quedan excluidas si estas pueden imputarse a una o varias de las siguientes causas:

o Uso de la instalación con fines que no son los previstos. o Montaje de la máquina, puesta a punto, funcionamiento o mantenimiento

incorrectos. o Funcionamiento de la instalación utilizando equipos de seguridad

defectuosos o mal montados, o dispositivos protectores fuera de servicio. o La falta de observación de notas de las instrucciones de funcionamiento en

relación con el transporte, almacenamiento, montaje, puesta a punto, funcionamiento, mantenimiento y preparación del equipo.

o Modificaciones constructivas no autorizadas en la instalación. o Supervisión inadecuada de la instalación o de componentes sometidos a

desgaste. o Reparaciones llevadas a cabo incorrectamente. o Catástrofes resultantes por causas ajenas o por fuerza mayor.

Festo Didactic declina cualquier responsabilidad por daños a los alumnos, a la organización, a terceras partes, o a todos ellos, como resultado del uso o aplicación de los equipos fuera de la situación de pura formación.

El Robot industrial debe ser utilizado exclusivamente con fines didácticos y en

condiciones absolutamente seguras.

Page 8: Manual Practicas Robotica

©Festo Didactic 8

Historia

El concepto de máquinas automatizadas se remonta a la antigüedad, con mitos de seres mecánicos vivientes. Los autómatas, o máquinas semejantes a personas, ya aparecían en los relojes de las iglesias medievales, y los relojeros del siglo XVIII eran famosos por sus ingeniosas criaturas mecánicas.

Algunos de los primeros robots empleaban mecanismos de realimentación para corregir errores, mecanismos que siguen empleándose actualmente. Un ejemplo de control por realimentación 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 válvula y deja entrar más agua en el bebedero. Al subir el agua, el flotador también sube, y al llegar a cierta altura se cierra la válvula y se corta el paso del agua.

El primer auténtico controlador realimentado fue el regulador de Watt, inventado en 1788 por el ingeniero británico James Watt. Este dispositivo constaba de dos bolas metálicas unidas al eje motor de una máquina de vapor y conectadas con una válvula que regulaba el flujo de vapor. A medida que aumentaba la velocidad de la máquina de vapor, las bolas se alejaban del eje debido a la fuerza centrífuga, con lo que cerraban la válvula. Esto hacía que disminuyera el flujo de vapor a la máquina y por tanto la velocidad.

El control por realimentación, el desarrollo de herramientas especializadas y la división del trabajo en tareas más pequeñas que pudieran realizar obreros o máquinas fueron ingredientes esenciales en la automatización de las fábricas en el siglo XVIII. A medida que mejoraba la tecnología se desarrollaron máquinas especializadas para tareas como poner tapones a las botellas o verter caucho líquido en moldes para neumáticos. Sin embargo, ninguna de estas máquinas tenía la versatilidad del brazo humano, y no podían alcanzar objetos alejados y colocarlos en la posición 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 podía programar para realizar tareas específicas. En 1975, el ingeniero mecánico 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 inglés). El PUMA era capaz de mover un objeto y colocarlo en cualquier orientación en un lugar deseado que estuviera a su alcance. El concepto básico multiarticulado del PUMA es la base de la mayoría de los robots actuales.

2 INTRODUCCIÓN A LA ROBÓTICA

Page 9: Manual Practicas Robotica

©Festo Didactic 9

¿Qué es un robot?

Según el Instituto Norteamericano de Robótica es " un manipulador multifuncional y reprogramable, diseñado 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 difícil concretar unos elementos comunes a todos, lo cierto es que la mayoría dispone de un esqueleto o chasis, que puede ser interno o externo, motores, piezas que permiten su movilidad, sistemas de agarre y manipulación y una fuente de alimentación, normalmente eléctrica.

En cambió según la norma JIS ( Japanese Industrial Standard ), incluye en su definición cinco tipos diferentes en función de sus características, sistema de control y programación.

o Telerobot: Robot gobernado directamente por un operario.

o Robot de secuencia: Robot que ejecuta la tarea de manera secuencial en función de la información que recibe en cada momento.

o Robot guiado: Robot que reproduce una secuencia ( trayectoria ) que ha sido guiado previamente por un operario.

o Robot controlado numéricamente: Robot que realiza una secuencia en función de una programación numérica introducida previamente, sin haber realizado ningún movimiento.

o Robot inteligente: Robot dotado de una inteligencia artificial que es capaz de determinar por si mismo en cada momento la acción a realizar.

Page 10: Manual Practicas Robotica

©Festo Didactic 10

Estructura de un robot industrial

El diseño de un robot industrial generalmente se inspira en el brazo humano, aunque con algunas diferencias, según su estructura y composición pero en esencia es así. Por ejemplo, un brazo robótico puede extenderse telescópicamente, es decir, deslizando unas secciones cilíndricas dentro de otras para alargar el brazo. También pueden construirse brazos robóticos de forma que puedan doblarse como la trompa de un elefante. Las pinzas están diseñadas para imitar la función y estructura de la mano humana. Muchos robots están equipados con pinzas especializadas para agarrar dispositivos concretos, como una gradilla de tubos de ensayo o un soldador de arco.

Las articulaciones de un brazo robótico suelen moverse mediante motores eléctricos, aunque pueden utilizarse otras tecnologías (neumática, hidráulica). En la mayoría de los robots, la pinza se mueve de una posición a otra cambiando su orientación. La controladora calcula los ángulos de articulación necesarios para llevar la pinza a la posición deseada, un proceso conocido como cinemática inversa.

La mayoría de los brazos multiarticulados están equipados con servo controladores, o controladores por realimentación, que reciben datos de la controladora. Cada articulación del brazo tiene un dispositivo de medición que mide su ángulo (encoder) y envía ese dato al controlador. Si el ángulo real del brazo no es igual al ángulo calculado para la posición deseada, el servo controlador mueve la articulación hasta que el ángulo del brazo coincida con el ángulo calculado. Este tipo de control se denomina control de lazo cerrado.

El diagrama de bloques de un control de posicionamiento en lazo cerrado es el siguiente:

Los controladores y los ordenadores asociados también pueden procesar los datos recogidos por cámaras que localizan los objetos que se van a agarrar o las informaciones de censores situados en las pinzas que regulan la fuerza de agarre.

3 CARACTERISTICAS RV-2AJ

Consigna

Controlador

Motor

SJt

1

S

1

Encoder

Perturbación

Par

Velo

cida

d

Posi

ción

Unidad de control

Estructura mecánica

Page 11: Manual Practicas Robotica

©Festo Didactic 11

Partes del brazo robot y periféricos En este figura se muestra de manera esquemática las diferentes partes y periféricos que se pueden asociar al brazo robot con el que se realizan las prácticas.

Se observa en la figura que la estructura mecánica (brazo robot) y la controladora forma la estructura principal, a la que después se le acoplará la herramienta deseada según el tipo de tarea o aplicación que se desee realizar.

La unidad de control del brazo robot se puede ampliar para poder interconectar mediante buses de comunicación o entras y salidas a otros elementos y herramientas que comporten la célula de fabricación.

RV-2AJ (5 ejes)

Unidad paralela de E/S

Interfase para pinza neumática

Interfase para pinza eléctrica

Controladora

Cable de E/S externas

Interfase Ethernet

Interfase CC-Link

Expansión Interfase serie

Pinza neumática

Pinza eléctrica

Consola

Ordenador

Software programación

Estructura básica

Cable programación

Dispositivos Periféricos

Visión Artificial

Page 12: Manual Practicas Robotica

©Festo Didactic 12

Resumen de características En este apartado se muestran las características más 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 básicos:

3 lineales -> grados de traslación ( X; Y; Z ) 3 rotacionales -> grados de rotación A:rotación B:guiñada C:orientación

El campo de trabajo es el volumen espacial dentro del cual el robot puede situar el extremo de su muñeca. Está limitado por las envolventes que se producen al mover los ejes del robot entre sus posiciones mínimas y máximas.

El campo de trabajo de un robot influye en el grado de accesibilidad de éste a las diferentes máquinas o elementos de la instalación, por lo que cuando se desea robotizar una instalación es necesario estudiar, la distribución de elementos en el entorno del robot.

Resolución: Movimiento mínimo que puede producir el robot (condicionado por la mecánica y el tipo de control).

Exactitud: Capacidad de un robot para situar el extremo de su muñeca en un punto señalado dentro del volumen de trabajo. La exactitud es mayor cuando su brazo trabaja cerca de la base (inexactitudes mecánicas)

Repetibilidad: Capacidad para volver repetidamente al mismo punto

CARACTERÍSTICA ESPECIFICACIÓN

Grados de libertad 5

Carga máxima 2 kg

Repetitividad 0,02 mm

Velocidad máxima 2100 mm/s

Alcance de la pinza 482 mm

Alcance desde Q, en mm A 410, B 285

Alcance desde Q, en mm C 190, D 300

Alcance desde Q, en grados E 150

Alcance desde Q, en mm R1 220, R2 410

Page 13: Manual Practicas Robotica

©Festo Didactic 13

Características del brazo robot

CARACTERÍSTICA UNIDAD ESPECIFICACIÓN Modelo - RV-2AJ Grados de libertad - 5 Instalación - Sobre el suelo Estructura - Vertical, mult.-joint type Sistema de guiado - Servo motor AC Método detección de posición - J1, J2 y J3 :50W con freno; J4 y J6 :15W sin freno;

J5 :15W con freno Tipo de detector - Encoder absoluto

Hombro 0 Antebrazo 250 Brazo 160 Codo 0

Longitud del brazo

Muñeca

mm

72 J1 300 (-150 , +150) J2 180 (-60 , +120) J3 230 (-110 , +120) J4 180 (-90 , +90)

Rango de movimiento

J5

grados [º]

400 (-200 , +200) J1 180 J2 90 J3 135 J4 180

Velocidad de movimiento

J5

grados/s

210 Velocidad total máxima mm/s Aprox. 2100

Máxima 2 Capacidad de carga Rating

kg 1.5

Repetitibidad de posición mm 0.02 Temperatura ambiente ºC De 0º a 40º

Peso kg Aprox. 17 J4 2,16 Momento

permisible J5 N·m

1,10 J4 3,24·10-2 Inercia

permisible J5 Kg·m2

8,43·10-3

Radio accesible al brazo mm 410

Cables de herramienta - 4 para señales de entrada; 4 para señales de salida; salida motorizada de la mano

Tubos neumáticos - 4x4 (de la base a la mano) Presión de alimentación MPa 0.5 10% Tipo protección - IP30

Page 14: Manual Practicas Robotica

©Festo Didactic 14

Características del controlador

CARACTERÍSTICA UNIDAD ESPECIFICACIÓN Observaciones Modelo - CR1-571

Número de ejes a controlar - 6 a la vez (max.)

C P U - 64 bit RISC, DSP

Posiciones de

enseñanza y

número de pasos

punto

paso

2500

5000 Capacidad

de

memoria Número de

programas - 88

Lenguaje de programación -

MELFA-BASIC IV

Movemaster

Command

Método enseñanza de posición - Método MDI

Entradas y salida punto 16/16 Max. 240/240

E/S dedicadas punto Asignado con E/S de

uso general

STOP 1 punto

fijado

E/S de

abrir/cerrar la

mano

punto Entradas 4 puntos/

Salidas 0 puntos

Se pueden añadir

hasta 4 puntos de

salida

Entrada de paro

de emergencia punto 1

Solo una línea de

emergencia

Entradas y

salidas

externas

Ent. interruptor

de puerta punto 1

Solo una línea de

interruptor puerta

RS-232C puerto 1

RS-422 puerto 1 Dedicada para T/B

Ranura para la

mano slot 1

Dedicada para

interfaz de mano

neumática

Ranura de

expansión slot 3

Caja opción

extensión usada

Interfaz

Conexión de E/S

del robot canal 1

240 usados con

E/S de uso general

Rango del voltaje V 1 fase, AC, 90 a 132V

1 fase, AC, 170 a 253V Fuente de

alimentación Potencia máxima kVA 0.7

No incluye la

sobrecorriente de

arranque

Dimensiones de contorno mm 212x290x151 Excepto salientes

Peso kg Aprox. 8

Construcción - Autónomo y abierto IP20

Rango de temperaturas ºC De 0 a 40

Humedad ambiente %RH De 45 s 85 Sin condensación

Toma de tierra

100 o menos Classe D

Color - Gris claro Munsell7.65Y7.64

Page 15: Manual Practicas Robotica

©Festo Didactic 15

Mantenimiento

- Piezas consumibles :

Nº PIEZA TIPO LUGAR DE USO CANTIDAD SUMINISTRADOR

1 Grasa SK-1A Engranajes de cada

eje Lo necesario

2 Batería de

Litio A6BAT En la cubierta F 5

Mitsubischi Electric

- Piezas de repuesto :

Nº PIEZA TIPO LUGAR DE

USO CANT. SUMINISTRADOR

1 291-3GT-6 Eje J2 1

2 315-3GT-6 Eje J3 1

3 210-2GT-3 ¿J4?? 1

4

Correa dentada

230-2GT-3 Eje J4 1

5 BU220C795G51 Eje J1 1

6 BU220C795G52 Eje J2 1

7 BU220C795G53 Eje J3 1

8 BU220C793G54 ¿J4?? 1

9 BU220C793G65 Eje J4 1

10

Servo motor AC

BU220C794G51 Eje J5 1

11 BKO-FA0530H09 Ejes J1, J2, J3 3

12 BKO-FA0530H10 ¿J4?? 1

13

Engranajes

reductores BKO-FA0530H10 Ejes J4, J5 2

Mitsubischi Electric

Page 16: Manual Practicas Robotica

©Festo Didactic 16

Este capitulo trata de definir los pasos necesarios para realizar un proyecto con el software COSIROP.

El software COSIROP es el software de programación que será utilizado en este curso y que permite realizar programas de secuencia y definir posiciones, para más tarde poder compilarlo y guardarlo vía RS-232 en el Robot RV-2AJ utilizado para la práctica.

Una vez abierto el programa aparece la siguiente ventana general:

Creación de un proyecto nuevo en COSIROP

Para crear un proyecto nuevo ir a la barra de opciones y en el menú despegable File hacer clic con el ratón en la opción Project Wizard .

4 INTRODUCCIÓN AL COSIROP

Page 17: Manual Practicas Robotica

©Festo Didactic 17

Aparecerá una ventana flotante llamada Project Wizard Step 1 of 3 donde se definirá la información general del proyecto. En los siguiente campos:

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 botón de Browse... y especificando la ruta.

Una vez rellenados los campos hacer clic sobre el botón 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 configuración.

Page 18: Manual Practicas Robotica

©Festo Didactic 18

En la lista Robot Type se especificará el modelo de robot del que se va a realizar la práctica.

En el campo de selección I/O interface Cards se especifica el numero de tarjetas de entradas y salidas externas que se han instalado en la controladora. (En nuestro caso será 1).

En el campo Hands se seleccionará el número de herramientas que se controla desde el propio robot (En este caso se dispone de una pinza neumática o eléctrica por lo que se pondrá 1)

En la opción Adittional Axis 1 (L1) o Adittional Axis 2 (L2) se puede elegir si el robot controlara ejes adicionales y si estos son lineales o giratorios (Ej. Mesas giratorias o cintas transportadoras).

Antes de finalizar esta ventana, se debe especificar el lenguaje de programación en el que se desea realizar la programación. (En nuestro caso se debe de elegir el MELFA BASIC IV).

Una vez realizada la configuración del robot necesaria para el proyecto, se hará de nuevo clic en el botón Next para pasar a la siguiente ventana .

La ventana Project Wizard

Step 3 of 3 permite escribir comentarios que se crean de importancia sobre el proyecto, aunque en esta ventana no es obligatorio rellenar nada, después hacer clic sobre el botón de Finish situado en la parte inferior derecho de la ventana para acabar la creación del nuevo proyecto.

Tras crear un proyecto aparecerá la ventana principal de la aplicación las diferentes ventanas que componen el proyecto.

Ventana de programación: Ventana donde se escribirá el programa

Ventana de posiciones: Ventana donde se crearan las posiciones fijas a las que se hace referencia en el programa.

Ventana de mensajes del sistema: Ventana de información del sistema.

Ventana de animación: Ventana que te permite de visualizar la posición del robot en las diferentes posiciones del proyecto. (Atención no realiza la secuencia del programa).

Page 19: Manual Practicas Robotica

©Festo Didactic 19

Iconos de la barra de herramientas de COSIROP

Dentro de la ventana principal se encuentra una barra de iconos que llaman directamente a las opciones principales. También se puede acceder a estas desde el menú contextual desplegable de la parte superior.

Además de los iconos típicos que se encuentran en múltiples aplicaciones basadas en el sistema operativo windows como son los iconos: Abrir, guardar, buscar, cortar,... etc. Esta barra dispone de otros iconos propios del software de programación.

Ahora se tratará de manera precisa una breve explicación de los iconos principales más utilizados, que posteriormente serán tratados de manera más concisa en las diferentes secuencias para la programación del brazo robot con dicho software.

Ventana de programación

Ventana de mensajes

Ventana de posiciones

Ventana de animación

Syntax Check

Renumber

Download Program

Reset Error

Current Error

Init Connection

Conenection

I/O Monitor

Conenection

Robot Position -> PC

Jog Operation

Monitor Functions Functions

Monitor toolbar Functions

Upload Download

Page 20: Manual Practicas Robotica

©Festo Didactic 20

Renumber: Renombra las líneas de código del programa. Check Syntax: Compila y comprueba que el programa no tenga errores. Download Program: Carga programa en la controladora del robot. Upload Program: Descarga los programas desde el robot Robot Position > PC: Carga la posición actual de robot en la lista de posiciones Reset Error: Resetea el error Current Error: Diagnostica el error producido Init Connection: Inicia la conexión entre el PC -Robot Jog Operation: Entra en la opción del Teach de posiciones. Monitor Funtions: Permite cargar directamente instrucciones en el robot y ejecutarlas I/O Monitor: Monitoriza el estado de las entradas y salidas del robot. Monitor toolbar: Llama a la barra de monitorización.

Teach de las posiciones desde el COSIROP

Una vez creado el programa y definido las posiciones fijas que se necesitan en la secuencia del mismo. Será necesario enseñar (teach) al robot en el espacio de trabajo real cuales son estas posiciones de trabajo que se han definido en la secuencia del programa.

El Teach de las posiciones se realizará moviendo el brazo robot libremente en la zona de trabajo hasta posicionarlo en la posición que se desea. Una vez colocado en la posición cargar esta con el número al que hace referencia en el programa.

Se tiene que tener claro que para la definición de dichas posiciones, Estas deben estar dentro del área de trabajo del robot y que los ejes no están trabajando en zona crítica.

Los pasos a seguir para poder mover el brazo robot desde el ordenador y las diferentes formas de movimientos se explican en los pasos siguientes:

Antes de poder interrelacionar con el brazo robot se debe establecer una comunicación con el mismo.

Conectar el cable de programación entre el PC y la controladora del brazo robot en el puerto RS-232C que tiene en la parte frontal de la misma.

Page 21: Manual Practicas Robotica

©Festo Didactic 21

Una vez conectado encender la controladora apretando el botón Power , esperar unos segundos hasta que haya finalizado la secuencia de inicio.

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 posición Disable deshabilitando así este método de control.

Ahora el sistema estará preparado para ser controlado y movido a través del PC.

Para controlar y mover el robot para hacer el teach de las posiciones, primero se tendrá que establecer la comunicación vía serie. Dentro del COSIROP se irá al menú contextual desplegable de opciones y se hará clic en la opción Extras/ Settings/ Communication Port .

Está acción abrirá la ventana flotante Communication Port , en la pestaña Common comprobar que se utiliza un interfase de comunicación vía serie.

Page 22: Manual Practicas Robotica

©Festo Didactic 22

En la pestaña Serial interface comprobar que el puerto de comunicación del PC, así como las propiedades de envío de la trama son las indicadas.

Nota: El número de puerto serie COM debe ser el mismo que esté definido en el sistema operativo, sino dará error de comunicación.

Una vez que se haya comprobado que el protocolo de comunicación es el adecuado, se pasará a establecer la comunicación con la controladora, para ello se debe ir al menú de opciones contextual Execute y hacer clic en la opción Init Connection o sobre el icono de conexión que se encuentra en la barra de herramientas.

En el momento que se haya conectado, ya se puede iniciar el Teach de las posiciones utilizadas en el programa. En el menú contextual despegable Execute hacer clic en la opción Jog Operation .

Page 23: Manual Practicas Robotica

©Festo Didactic 23

Aparecerá la siguiente ventana que permite controlar los movimientos del brazo robot desde el PC.

El programa te permite elegir entre tres métodos de posicionado para alcanzar la posición 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 opción el brazo robot se moverá respeto al eje de coordenadas situado en el centro la herramienta (En este caso la pinza).

A T E N C I Ó N En este punto hay que hacer especial hincapié en realizar los movimientos con especial atención con el fin de evitar colisiones y malos posicionados, que puedan causar daños mecánicos o un mal funcionamiento en este.

Abrir/Cerrar Pinza

Método de movimiento

Velocidad del incremento

Distancia del incremento

Carga la actual posición en la lista de posiciones con el número indicado

Realiza un incremento en el eje de coordenadas especificado

Page 24: Manual Practicas Robotica

©Festo Didactic 24

Nota: Con la opción Joint Jog el aspecto de la ventana de movimiento será el de la figura. La única diferencia remarcable es que los movimientos se realizarán individualmente para cada articulación del brazo robot y el incremento se dará en grados.

Con el botón 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 posición cargada manualmente.

Una vez se tenga la posición deseada con el botón Current position > Pos. List cargar la posición actual del robot en la lista de posiciones con el número especificado.

Page 25: Manual Practicas Robotica

©Festo Didactic 25

Carga y ejecución del programa en el brazo robot

Una vez se haya conectado iniciado la comunicación entre el PC y la controladora del brazo robot y se haya realizado el Teach de las posiciones que se utilizan en el programa se dispondrá de todo lo necesario para la carga del programa en el robot y la ejecución de este. Con este fin habrá que seguir los siguientes pasos:

Una vez finalizado el programa, se tendrá que comprobar que la numeración de las líneas es correcta y que haciendo cambios y correcciones dentro del programa no se haya duplicado algún número de línea, para solucionar este problema en la barra de icono de la ventana principal hacer clic sobre el icono Renumber , teniendo la ventana de programa seleccionada, esta opción renombra automáticamente las líneas de código del programa correctamente.

Otra opción que comprueba que la sintaxis del programa creado es correcta es Check Syntax que compilará el programa y especificará en la ventana de mensajes

si existe algún error y en que línea del programa se encuentra.

Cuando el programa no tenga errores y se haya establecido la comunicación, se procederá a cargar el programa y el listado de posiciones en la controladora del brazo robot.

Seleccionar la ventana del programa y hacer clic sobre el icono Download PC > Robot o la ruta Execute/Download PC > Robot .

Page 26: Manual Practicas Robotica

©Festo Didactic 26

Aparecerá la ventana flotante Line and Position number donde se especificará la línea de inicio y final del programa que se desean que se cargue en la controladora. También se especificará el nombre como se quiere cargar dicho programa en la controladora. Al hacer clic en el botón OK comenzará la descarga del programa a la controladora. Una vez finalizada la descarga repetir la operación con el listado de posiciones.

Una vez esté cargado el programa y el listado de posiciones en la controladora, el robot ya estará preparado para ejecutar el programa, para ello desde el PC ir al menú desplegable Execute y seleccionar la opción Program Start tras confirmar la operación, el robot comenzará a ejecutar la aplicación.

Para parar el programa desde el PC en cualquier momento ir al menú desplegable Execute y elegir la opción Program Stop en ese momento se parará el programa

que se esté ejecutando en el brazo robot.

Page 27: Manual Practicas Robotica

©Festo Didactic 27

Opciones de monitorización

Las opciones de monitorización sirven para la supervisión de los diferentes elementos y características del brazo robot mientras este esta ejecutando una tarea.

Para ir a la barra de monitorización, ir al icono Monitor Toolbar o la ruta Execute/Monitor Funtions . Esta opción hará aparecer una barra flotante donde

aparecen las diferentes opciones de monitorización.

En la barra de monitorización se pueden elegir las opciones siguientes:

Program Monitor: Esta opción permite monitorizar el programa online y observar la línea de programa que se está ejecutando en ese momento.

Slot State Monitor: Se observa el estado de cada slot.

Position Monitor: Monitoriza las posiciones angulares de cada eje y las posición respecto al eje de coordenadas del robot.

Motor Speed: Con esta opción se puede observar las velocidades de los diferentes servomotores en cada uno de los movimientos del programa mientras se ejecuta.

Droop: Monitoriza de manera gráfica la relación entre la medida actual de posición del encoder y el valor máximo que puede llegar a alcanzar.

Encoder: Monitoriza el valor de los encoders en valor absoluto y relativo de cada eje del robot.

Load: Monitoriza de manera gráfica la relación entre la medida actual de carga y el valor máximo de carga de cada eje que puede llegar a alcanzar antes de dar un error.

Program Monitor

Slot State Monitor

Position Monitor

Motor Speed

Droop

Encoder

Load

Current 1

Voltage

Current 2

Variables Monitor

Page 28: Manual Practicas Robotica

©Festo Didactic 28

Current 1: Monitoriza de manera gráfica la relación entre la medida actual de corriente del lazo de corriente 2 del motor y el valor máximo en cada eje.

Current 2: Monitoriza de manera gráfica la relación entre la medida actual de corriente del lazo de corriente 2 del motor y el valor máximo en cada eje.

Voltage: Monitoriza de manera gráfica la relación entre la medida actual tensión de cada motor y el valor máximo antes de generar un error.

Variable Monitor: Se pueden monitorizar las diferentes variables que se han definido en el programa.

Existe también una opción en la barra de herramientas que monitoriza de manera visual las entradas y salidas externas, para activar dicha opción hacer clic en el icono Monitor I/O y aparecerá la siguiente pantalla.

Si esta conectado el PC con el robot aparecerá el campo ONLINE en vez de OFFLINE y aparecerán iluminadas las señales que se encuentren activadas.

Con esta opción Command Tool que se encuentra la barra de iconos del programa principal se puede enviar al robot directamente instrucciones que cuando se envían y se ejecutan directamente por este, tal y como se muestra en la figura.

Tipos de instrucción

Instrucciones

Edición de la instrucción

Envía al robot

Page 29: Manual Practicas Robotica

©Festo Didactic 29

Estructura del proyecto Todo proyecto generado con el software de programación COSIROP consta de diferentes archivos que conforman el proyecto.

- El archivo *.PRJ

es el archivo que guarda nuestra configuración del proyecto y asocia a este el listado de posiciones, así como el programa. (Este archivo no se deberá cargar en el robot).

- El archivo *.POS

es el listado de posiciones del proyecto estas posiciones podrán ser modificadas más tarde con la consola si se desea. (Es recomendable que el listado de posiciones como el programa se carguen en el robot con el mismo nombre de archivo).

- El archivo *.MB4

es el archivo que contiene la programación de la secuencia que se desea que ejecute el robot que en este caso se ha generado en el lenguaje MELFA BASIC 4. (Este archivo junto con el listado de posiciones son los que se tienen que descargar al robot para ejecutar la secuencia).

Para relacionar los diferentes archivos en un proyecto, para que la compilación sea correcta. Se deben seguir los pasos siguientes:

1.- Ir al menú contextual Execute y elegir la opción Project Management .

5 ESTRUCTURA DE LA PROGRAMACIÓN

Nota: Este mismo formato de archivos y procedimiento de relación de los diferentes archivos de proyecto es el mismo en el software de simulación COSIMIR.

Page 30: Manual Practicas Robotica

©Festo Didactic 30

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.

En esta ventana se pueden realizar diferentes acciones, como activar otro proyecto compilarlo o borrarlo. (Los proyectos se guardarán con la extensión de archivo *.PRJ)

4.- Una vez creado el proyecto y activado, seleccionar la pestaña de la parte derecha Files

donde se relaciones el archivo de programación, así como el archivo del listado de posiciones.

5.- Para añadirlos en el proyecto apretar el icono Add Archive

y seleccionar los archivo de programación *.MB4

que se desea asociar al proyecto. Realizar esta misma operación con el archivo de listado de posiciones *.POS .

Proyecto Activo

Activar Proyecto

Compilar Proyecto

Añadir Proyecto

Borrar Proyecto

Page 31: Manual Practicas Robotica

©Festo Didactic 31

6.- Cuando se tenga el archivo del programa seleccionado, en la parte inferior Properties en la opción Compile Mode

elegir Main Program

lo que asociará ese archivo *.MB4 como programa principal del proyecto.

7.- Cuando se haya asociados los dos archivos al proyecto, compilar el proyecto con el icono de compilación de proyecto de la parte izquierda de la ventana.

Estructura del programa Como cualquier tipo de programa, el programa de la secuencia de un brazo robot mantiene una estructura determinada que ayuda a la comprensión de este. El programa debe de tener una estructura determinada. Lo primero que habrá en el programa es una zona de declaración de las diferentes variables. Seguido se colocará el programa principal que acaba con la instrucción END después del programa principal se colocan las diferentes subrutina a las que se hayan llamado que finalizan con la instrucción RETURN .

Definición de posiciones

Comentarios

Definición de I/O externas

Definición de variables internas

Número de línea de instrucción

Page 32: Manual Practicas Robotica

©Festo Didactic 32

Líneas de instrucción

El programa se construye en base a líneas de instrucción que se ejecutarán de manera secuencial, excepto que haya instrucciones de salto, bucles o llamadas a subrutina. Los elementos que las forman se muestran a continuación.

Ejemplo de declaración de comanda:

10 MOV P1 WTHM_OUT (17) = 1

Número de línea Es el numero usado para determinar el orden de ejecución del programa. El programa se ejecutará en orden ascendente.

Mnemotécnico de la instrucción Es la comanda que designa la operación a realizar por el robot.

Dato El dato puede ser un valor o una variable del tipo requerido por la instrucción.

Declaración añadida Solo se usa si es necesario.

1)

2)

3)

4)

Programa principal

Subrutina

Inicio Sub

Final Sub

Etiqueta

Salto a línea

Llamada a Subrutina

Page 33: Manual Practicas Robotica

©Festo Didactic 33

Tipos de variables

- POSICIÓN : Coordenadas ortogonales de la posición. El nombre de la variable empieza por P .

- ANGULOS DE EJE : Ángulos de empalme. El nombre de la variable empieza con J.

- ARITMÉTICA : Valor numérico (entero, real,..). El nombre empieza por M .

- CARÁCTER : Cadenas de letras. El nombre de la variable termina en $ .

Variable de

VARIABLE

Variable de

Variable de control de

Variable de control de

Page 34: Manual Practicas Robotica

©Festo Didactic 34

Introducción

En la programación de brazos robot, siempre persiste un tipo de instrucciones básicas para todos los tipos software que son aquellas que definen los movimientos más simples del brazo y que por si solas son las base de la mayoría de las secuencias de una aplicación

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 aceleración que a lo largo del tiempo se han de imprimir para ajustarse al movimiento especificado.

Pese a su complejidad es la forma más rápida para el robot.

MOV

El robot se mueve a la posición indicada con una interpolación angular de cada eje. El camino recorrido no se puede prever. Se pueden introducir las declaraciones añadidas WTH o WTHIF.

Ejemplos de llamadas de instrucción:

MOV P1............. Se mueve a P1. MOV P1+P2....... Se mueve a la posición resultante de sumar las coordenadas de P1

y P2. MOV P1*P2....... Se mueve a la posición relativa convertida de P1 a P2. MOV P1, -50...... Se mueve desde P1 hasta una posición a 50mm en la dirección de la

pinza. MOV P1 WTH M_OUT(7)=1... .. Empieza el movimiento hacia P1, y

simultáneamente 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.

6 INSTRUCCIONES BÁSICAS

Page 35: Manual Practicas Robotica

©Festo Didactic 35

Programa ejemplo:

10 MOV P1 20 MOV P2, -50 30 MOV P2 40 END

Movimiento lineal

El Robot describe una línea recta entre los puntos origen y destino.

Es un movimiento lento para el robot y solo se emplea en movimientos críticos 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 línea recta hacia la posición indicada. Se pueden introducir las declaraciones añadidas WTH o WTHIF.

Ejemplos de llamadas de instrucción:

MVS P1............. Se mueve hasta P1. MVS P1+P2....... Se mueve a la posición resultante de sumar P1 y P2. MVS P1*P2........ Se mueve a la posición relativa convertida de P1 a P2. MVS P1, -50...... Se mueve desde P1 hasta una posición a 50mm en la dirección de la

pinza. MVS , -50.......... Se mueve 50mm desde la posición actual en la dirección de la

pinza. MVS P1 WTH M_OUT(7)=1.......... Empieza el movimiento hacia P1, y

simultáneamente enciende la salida 7. MVS 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.

MVS P1, TYPE 0, 2......... Se mueve hasta P1 con una interpolación ABC. MVS P1, TYPE 0, 1......... Se mueve a P1 con una interpolación ortogonal de 3 ejes.

P1

P2

50

Page 36: Manual Practicas Robotica

©Festo Didactic 36

Programa ejemplo:

10 MVS P1 20 MVS P2, -50 30 MVS P2 40 END

HOPEN / HCLOSE

Abre/cierra la pinza designada.

Ejemplo de llamada de instrucción:

HOPEN 1........... Abre la pinza 1 HCLOSE 1......... Cierra la pinza 1

OVDR

Designa la velocidad de movimiento según un porcentaje relativo a la velocidad máxima. Afecta a todos los movimientos posteriores, si es que no se vuelve a modificar el valor.

Ejemplo de llamada de instrucción:

OVRD 60............ Fija la velocidad de todos los movimientos al 60% de la velocidad máxima.

SPD

Define la velocidad de interpolación linear y circular(para instrucciones MVS, MVR y MVC) de la pinza en mm/s.

Ejemplo de llamada de instrucción:

SPD 30.............. Configura la velocidad de los movimientos lineales y circulares en 30mm/s.

DLY

Espera los segundos indicados (el mínimo es 0.05), y luego sigue con el programa.

Ejemplo de llamada de instrucción:

DLY 3................. Espera 3 segundos antes de seguir.

P1

P2

50

Page 37: Manual Practicas Robotica

©Festo Didactic 37

Práctica 1 Instrucciones básicas

Anunciado:

Realizar un programa para que el brazo industrial recoja una pieza en un punto de recogida y la deposite en otro punto. Las aproximaciones a estos dos puntos debe hacerse suavemente (más despacio).

Realización:

Primero hay que definir las posiciones clave del movimiento, que en este caso serán cinco:

-P1 : posición inicial o de reposo -P2 : posición de aproximación a la zona de carga -P3 : posición para coger la pieza -P4 : posición de aproximación a la zona de descarga -P5 : posición donde dejamos la pieza

Para definir las posiciones se utilizará la opción 'Jog Operation' que se encuentra en el menú 'Execute'.

( ANTES DEBE CONECTARSE EL PC CON EL ROBOT CLICANDO EN )

P2

P3

P4

P5

P19

Page 38: Manual Practicas Robotica

©Festo Didactic 38

Existen 3 maneras de moverlo desde esta ventana:

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

- TOOL Jog: El centro de los ejes de coordenadas se sitúa en el extremo del brazo (centro de la pinza), las articulaciones se interpolan respecto el eje X, Y, o Z.

Para definir las posiciones se sitúa el brazo en la posición deseada y se guarda con el botón 'Current Position > Pos. List' . El programa crea una nueva posición en el listado de posiciones y le pone el nombre Px, donde x es el numero de posición 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 máxima. - HOPEN > Abre la pinza. - HCLOSE > Cierra la pinza. - DLY > Espera los segundos indicados.

Después de introducir el programa, se deben numerar las filas con la opción

'Renumber'.

Luego se puede compilar con

'Syntax Check' que detecta los errores de programación.

Page 39: Manual Practicas Robotica

©Festo Didactic 39

Si no tenemos errores ya podemos volcar los dos archivos (programa y posiciones) al

robot. Lo haremos clicando en la ventana de cada archivo y pulsando en

'Download'.

Para que se ejecute el programa utilizamos la opción 'Program Start' del menú 'Execute' ; y para pararlo, 'Program Stop'.

Ampliaciones:

Eliminar las posiciones de aproximación P2 y P4.

A) Utilizar la instrucción ampliada de MOV que permite mover hasta una distancia determinada, por encima de una posición (en la dirección del eje Z).

MOV P9, -50...... Movimiento interpolado hasta una posición 50mm encima de la posición P9.

B) Utilizar una posición de offset, definiéndola al inicio del programa y utilizándola sumada a P3 y P5:

DEF POS OFFSET OFFSET = (0, 0, +50, 0, 0, 0)

MOV P9 + OFFSET

Page 40: Manual Practicas Robotica

©Festo Didactic 40

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 añadidas WTH o WTHIF.

MVR : Se define el punto de inicio, uno de tránsito, y el punto final.

MVR2 : Se define la posición 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 círculo. El movimiento va del inicial al final por el camino más corto del círculo.

MVC : Se define la posición de inicio (y final), punto de tránsito 1, y punto de tránsito 2. El movimiento sigue el recorrido:

inicio tránsito1 tránsito2 final.

Ejemplos de llamadas de instrucción:

MVR P1, P2, P3............... Se mueve con una interpolación circular entre P1 P2 P3. MVR P1, P2, P3 WTH M_OUT(7)=1............ Interpolación 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 interpolación circular entre P1 P2 P3.

MVR2 P1, P2, P3............. Interpolación circular de P1 a P2, sin pasar por P3. MVR3 P1, P3, P4............. Se mueve con una interpolación circular de P1 a P3 por el

camino más corto. El punto P4 es el centro. MVC P6, P8, P9............... Movimiento circular P6 P8 P9 P6.

Programa ejemplo:

10 MVR P1, P2, P3 20 MVR2 P3, P4, P5 30 MVR3 P4, P6, P7 40 MVC P6, P8, P9 50 END

7 INSTRUCCIONES DE MOVIMIENTO

P1

P2

P3

P6

P7

P4

P5

P8

P9

Page 41: Manual Practicas Robotica

©Festo Didactic 41

CNT

Define el principio y el final de un movimiento continuo.

Ejemplos de llamadas de instrucción:

CNT 1................. Define el inicio del movimiento continuo. CNT 1, 100, 200............... Define el inicio del movimiento continuo, la distancia de

separación con el punto inicial, y la distancia de separación con el punto final.

CNT 0................. Define el final del movimiento continuo.

Programa ejemplo:

10 MOV P1 20 CNT 1 30 MVS P2 40 CNT 1, 50, 100 50 MVS P3 60 MVS P4 70 CNT 0 80 END

ACCEL

Define la aceleración y desaceleración durante el movimiento como un porcentaje del máximo.

Ejemplos de llamadas de instrucción:

ACCEL................. Configura la aceleración y la desaceleración al 100%. ACCEL 60, 80..... Configura la aceleración al 60% y la desaceleración al 80%.

JOVDR

Define la velocidad de movimiento angular axial (para instrucciones MOV), como un porcentaje de la máxima.

Ejemplo de llamada de instrucción:

JOVRD 70........... Configura la velocidad del movimiento angular de cada eje al 70% de la máxima.

P1

P2

50

100 P4

P3

50

Page 42: Manual Practicas Robotica

©Festo Didactic 42

HLT

Para la ejecución del programa y entra en el estado de paro.

Ejemplos de llamadas de instrucción:

HLT..................... Para la ejecución del programa. IF M_IN(8)=1 THEN HLT................ Para la ejecución del programa cuando se activa la

señal de entrada M_IN(8). MOV P3 WTHIF M_IN(9)=1, HLT................. Para la ejecución del programa si la señal

de entrada M_IN(9) se activa durante el movimiento a P3.

FINE

Define las condiciones de posicionamiento final con un número de pulsos.

Ejemplo de llamada de instrucción:

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 instrucción:

TOOL P60.......... Define la forma guardada en P60.

Page 43: Manual Practicas Robotica

©Festo Didactic 43

Práctica 2 Movimientos circulares

Anunciado:

Realizar un programa para que el brazo industrial recoja un objeto de un soporte elevado y luego realice dos círculos antes de volver a dejarlo.

Realización:

Las posiciones necesarias serán:

-P1 : posición inicial o de reposo -P2 : posición de recogida -P3 : posición de inicio del circulo -P4 : posición de tránsito 1 -P5 : posición de tránsito 2

Para este ejercicio utilizaremos éstas nuevas comandas:

- MVS > Realiza un movimiento en línea recta. - MVC > Realiza un movimiento circular pasando por 3 puntos. - MOV Px, -50 > Realiza un movimiento suave hasta una posición

50mm encima de la posición Px. - MVS Px, -50 > Realiza un movimiento recto hasta una posición

50mm encima de la posición Px.

P5

P1

P3

P4

P2

Page 44: Manual Practicas Robotica

©Festo Didactic 44

Ampliaciones:

· Modificar el programa para que realice 3 vueltas seguidas en vez de dos. Utilizar la instrucción 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 instrucción MVR3 . La posición del centro será como la posición de recogida, pero 100mm más baja.

MVR3 P_inicial, P_final, P_centro

Page 45: Manual Practicas Robotica

©Festo Didactic 45

El robot industrial es un sistema de automatización flexible y reprogramable capaz de realizar diferentes tareas o secuencias. Las acciones del robot industrial generalmente están integradas dentro de un entorno donde debe tener una interrelación con otras máquinas de mayor o menor complejidad.

Según la complejidad de esta interrelación se definen tres niveles de sistemas automáticos:

1.- Sistema robótico: Donde el robot sostiene la principal tarea a realizar.

2.- Célula de fabricación flexible: Unidad de fabricación que tiene una o más máquinas herramientas y sistemas auxiliares, donde el robot realiza funciones de servidor del sistema (manipulación. carga y descarga e inspección).

3.- Sistema de fabricación flexible: Formado por un conjunto complejo de maquinas herramientas dispuestos en forma de línea de fabricación, capaz de generar diferentes variantes de producto. En este sistema el robot industrial interviene como un elemento más del sistema.

DEF I/O

El robot dispone de 32 entradas y 32 salidas digitales. Algunas están reservadas:

Salidas reservadas 0 (running), 1 (Servo On), 4 y 5 (abrir y cerrar pinza)

Entradas reservadas 0 (stop), 1 (Servo off), 2 (error reset), 3 (start), (4 servo on)

8 SEÑALES DE ENTRADA / SALIDA

Page 46: Manual Practicas Robotica

©Festo Didactic 46

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 instrucción X

También se pueden renombrar al gusto del usuario con la instrucción DEF IO .

DEF IO MARCHA = BIT,10

WAIT

Espera a que la variable alcance el valor indicado.

Ejemplos de llamadas de instrucción:

WAIT M_IN(1)=1...... Espera a que la señal de entrada 1 se active.

Page 47: Manual Practicas Robotica

©Festo Didactic 47

Práctica 3 Movimiento continuo

Anunciado:

El programa ha de empezar haciendo que el robot agarre un rotulador adaptado y espere hasta que se active la señal de entrada M_IN(10). Ésta señal se ha de cablear con un pulsador, para poderla activar repetidamente. Cuando se pulsa debe realizar un movimiento continuo por un rectángulo definido por 4 posiciones. La punta del rotulador ha de quedar cerca de la superficie de la mesa para que pueda escribir.

Realización:

Las posiciones clave para realizar el movimiento descrito serán:

-P1 : posición inicial o de reposo -P2 : posición de recogida del rotulador -P3 : posición del primer vértice del rectángulo -P4 : vértice 2 -P5 : vértice 3 -P6 : vértice 4

P2

P6

P5

P4

P3

P1

Page 48: Manual Practicas Robotica

©Festo Didactic 48

Las nuevas comandas que se utilizaran en el programa, son:

- CNT > Da continuidad a los movimientos suavizando las transiciones. - WAIT > Espera a que la variable alcance el valor indicado. - GOTO > Salta a la línea o etiqueta indicada - HLT > Para el programa

Las variables externas I/O se denominan M_IN(x) las de entrada, y M_OUT(x) las de salida.

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 señal de paro, el robot debe interrumpir el programa, y sólo seguirá si M_IN(10)=0 y M_IN(9)=1.

· Definir las variables externas con un nombre más práctico: DEF IO nombre=bit, 10 ( redefine la variable M_IN(10) )

Page 49: Manual Practicas Robotica

©Festo Didactic 49

Introducción

La manipulación automatizada de objetos y piezas, ha extendido la utilización de palets, que son contenedores compartimentados o elementos de fijación, que permiten ordenar un determinado número de piezas iguales, para su transporte y manipulación del conjunto. Esta manera hace que no se pierda el orden, facilitando las tareas de manipulación.

DEF PLT

Define el palet para ser usado.

Ejemplos de llamadas de instrucción:

DEF PLT 1, P1, P2, P3, P4, 3, 5, 1

Define el palet nº1, con posición de inicio en P1, posición final de primera fila en P2, posición inicial de última fila en P3, y punto diagonal en P4. El palet será 3x5, y su distribución del tipo 1 (zig-zag).

DEF PLT 1, P1, P2, P3, , 6, 5, 2 . Define el palet nº1, con posición de inicio en P1, posición final de primera fila en P2 y posición inicial de última fila en P3. El palet será 6x5, y su distribución del tipo 2 (misma dirección).

DEF PLT 1, P1, P2, P3, , 7, 1, 3... . Define el palet nº1, posición de inicio en P1, punto de transito P2 y posición final en P3. El palet es en arco (tipo 3) y tiene 7 posiciones.

NOTA: Se ha de tener en cuenta que la posición relativa de la pinza respecto el brazo ha de ser del mismo signo. No pueden haber dos posiciones que definen el palet con la coordenada de orientación en 180º y 180º.

9 PALETIZACIÓN

P1

P2

P3

P4

Tipo 1

Tipo 2

1

2

3

4

6

5

8

7

9

10

11

12

13

14

16

15

19

18

17

20

1

2

3

4

5

11

12

13

14

15

20

19

18

17

16

6

8

7

9

10

Page 50: Manual Practicas Robotica

©Festo Didactic 50

PLT

Obtiene la posición deseada sobre un palet.

Ejemplos de llamadas de instrucción:

(PLT 1, 4)........... Obtiene la cuarta posición del palet nº1. (PLT 1, M1)........ Obtiene la posición indicada por la variable M1, del palet nº1.

Programa ejemplo:

10 DEF PLT 1, P2, P3, P4, P5, 3, 4, 2 20 MOV P1 30 HCLOSE 1 40 P10=(PLT 1, 4) 50 MOV P10, -50 60 MVS P10 70 HOPEN 1 80 MVS P10, -50 90 P10=(PLT 1, 11) 100 MOV P10, -50 110 MVS P10 120 HCLOSE 1 130 MVS P10, -50 140 END

P1

P2

50

P3

P4

50

P5

Page 51: Manual Practicas Robotica

©Festo Didactic 51

Práctica 4 Paletización

Anunciado:

El programa ha de llenar las un palet 3x3 con las piezas disponibles. Al empezar el robot irá a la posición de recogida, y esperará que se active la señal M_IN(10) para recoger la pieza. Cada vez que recoja una pieza la pondrá en una posición distinta del palet, y luego volverá a la posición de espera de la recogida hasta que se active la señal.

Realización:

Las posiciones necesarias serán:

-P1 : posición inicial o de reposo -P2 : posición de recogida de piezas -P3 : posición del primer vértice del palet -P4 : vértice 2 -P5 : vértice 3 -P6 : vértice 4

Las nuevas comandas que se utilizaran en el programa, son:

- DEF PLT > Para Definir el palet. Se indican unas posiciones y la distribución.

P2

P3

P1

P5

P4

P6

Page 52: Manual Practicas Robotica

©Festo Didactic 52

- PLT > Obtiene la posición deseada mediante un entero - WHILE > Repite las instrucciones que hay hasta WEND , mientras las condiciones especificadas al lado de WHILE , se cumplan.

Ampliación:

Cambiar la estructura del WHILE por un IF THEN , utilizando también la instrucción de salto de línea GOTO .

IF M3=9 THEN 360

Page 53: Manual Practicas Robotica

©Festo Didactic 53

Los saltos y bucles son instrucciones condicionales que pueden repetir acciones un número determinado de veces o saltar a partes del programa.

GOTO

Salto incondicional a la línea indicada.

Ejemplos de llamadas de instrucción:

GOTO 300.......... Salto incondicional a la línea 300. GOTO *FIN......... Salto incondicional a la línea de nivel FIN.

ON GOTO

Salto en función 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 instrucción:

ON M1 GOTO 50, 150, 300........... Si el valor de la variable M1 es 1 salta a la línea 50, si es 2 salta a la línea 150, si es 3 salta a la línea 300, y si es otro valor salta a la siguiente línea.

IF THEN ELSE

Salto según el valor de la variable. Los valores de condición pueden ser designados aleatoriamente. Solo hay un tipo de condición por declaración de comanda.

Ejemplos de llamadas de instrucción:

IF M1=1 THEN 50............. Si la variable M1 vale 1, salta a la 50; sino, salta a la línea siguiente.

IF M1=1 THEN 50 ELSE 90............. Si la variable M1 vale 1, salta a la 50; sino, salta a la línea 90.

10 SALTOS CONDICIONALES Y BUCLES

Page 54: Manual Practicas Robotica

©Festo Didactic 54

SELECT CASE

Salto según el valor de la variable. Los valores de condición pueden ser designados aleatoriamente. Hay múltiples condiciones por declaración 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 debería salir del SELECT CASE pasando por la línea END CASE, ya que si sólo sale con GOTO o GOSUB , acaba parándose por anidamiento excesivo.

Ejemplos de llamadas de instrucción:

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 próximo END SELECT . END SELECT....... Finaliza la declaración de SELECT CASE.

Nota: Al final de cada instrucción CASE es recomendable poner la instrucción BRAKE .

GOSUB

Llama a la subrutina con la o el nivel indicado.

Ejemplos de llamadas de instrucción:

GOSUB 300....... Llama la subrutina de la 300. GOSUB *GET..... Llama la subrutina del nivel GET .

RETURN

Retorna a la línea siguiente de donde estaba la comanda GOSUB .

ON GOSUB

Llama a la subrutina según la variable numérica indicada. El valor de las condiciones siguen valores enteros.

Ejemplo de llamada de instrucción:

ON M1 GOSUB 300, 400, 500...... Si la variable numérica vale 1, llama la subrutina de la 300; si vale 2 llama, llama la subrutina de la

Page 55: Manual Practicas Robotica

©Festo Didactic 55

400; y si vale 3 llama, llama la subrutina de la 500. Si el valor no corresponde, sigue en la siguiente .

FOR NEXT

Repite las instrucciones entre la de FOR y la de NEXT, hasta satisfacer las condiciones especificadas.

Ejemplos de llamadas de instrucción:

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 repetición.

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 repetición.

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 instrucción:

WHILE (M1 >= 1)AND(M1 <= 10)............... Repite las instrucciones entre WHILE y WEND hasta que la variable M1 sale del rango [1..10].

WEND

Page 56: Manual Practicas Robotica

©Festo Didactic 56

Práctica 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 posición, esperará hasta que detecte que se activa una de las señales 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 señal que se active:

· M_IN(8)=1 Siguiendo en la misma posición, hace girar la pieza suavemente, para verla mejor.

· M_IN(9)=1 Realiza un círculo y deposita la pieza en el almacén 1. · M_IN(10)=1 Mueve la pieza arriba y abajo y la deposita en el almacén 2. · M_IN(11)=1 Deposita la pieza en la zona de desperdicios.

Realización:

Las posiciones clave para realizar el movimiento descrito serán:

-P1 : posición inicial o de reposo -P2 : posición de recogida de piezas -P3 : posición de enseñar la pieza -P4 : posición de inicio del circulo -P5 : posición de tránsito 1 -P6 : posición de tránsito 2 -P7 : posición del almacén 1 -P8 : posición para mover arriba y abajo -P9 : posición del almacén 2 -P10 : posición del almacén de desperdicios

P1

P3

P5

P2

P4

1

2

P6

P7

P9

P8

P10

Page 57: Manual Practicas Robotica

©Festo Didactic 57

Las nuevas instrucciones que se utilizaran en el programa, son:

- GOSUB > Llama a la subrutina con el número de línea o la etiqueta indicada. - RETURN > Retorna a la línea siguiente de donde estaba la comanda GOSUB . - SELECT CASE > Salto según el valor de la variable.

La declaración de vectores se realiza con las definiciones iniciales, dónde la d es la dimensión del vector. Para modificar o consultar una posición, se llama : nombre(p) , dónde la p es la posición seleccionada.

DEF DIM nombre(d)

Page 58: Manual Practicas Robotica

©Festo Didactic 58

Son instrucciones que al recibir o al cumplirse una condición en cualquier momento de la ejecución del programa (no en un punto determinado) realiza una tarea especificada y una vez finalizada vuelve al punto del programa principal donde lo había dejado.

DEF ACT

Define las condiciones de interrupción y el proceso para generarla.

Ejemplos de llamadas de instrucción:

DEF ACT 1, M_IN(7)=1 GOSUB 200............ Define con prioridad nº1, la llamada de la subrutina de la 200 cuando la señal de entrada M_IN(7) se activa.

DEF ACT 2, M_IN(8)=1 GOSUB 480, L......... Define con prioridad nº2, la llamada de la subrutina de la 480 cuando la señal de entrada M_IN(8) se activa y la instrucción que se estaba ejecutando termina.

DEF ACT 3, M_IN(9)=1 GOSUB 330............ Define con prioridad nº3, la llamada de la subrutina de la 330 cuando la señal de entrada M_IN(9) se activa.

ACT

Señala la validez de la interrupción.

Ejemplos de llamadas de instrucción:

ACT 1=1............. Habilita la interrupción de prioridad nº1. ACT 2=0............. Deshabilita la interrupción de prioridad nº2.

RETURN

Si una subrutina es llamada por el proceso de interrupción, retorna a la donde hubo la interrupción.

Ejemplos de llamadas de instrucción:

RETURN 0........... Retorna a la línea donde ocurrió la interrupción. RETURN 1........... Retorna a la siguiente línea de donde ocurrió la interrupción.

11 INTERRUPCIONES

Page 59: Manual Practicas Robotica

©Festo Didactic 59

Práctica 6 Interrupciones (general)

Anunciado:

El brazo industrial debe realizar un punzado de las posiciones del palet. En cada posición picará tantas veces como el número de la posición. A parte, tiene que haber una interrupción que simule la cocción de un pastel. Cuando se active la señal M_IN(10), dejará lo que hacia e irá a recoger la pieza-pastel. Luego la dejará en la posición del horno y esperará 30 segundos antes de cogerlo y llevarlo a la posición donde lo ha recogido. Durante los 30 segundos de la cocción, el robot seguirá con la operación de punzado.

Realización:

Las posiciones clave para realizar el movimiento descrito serán:

-P1 : posición inicial o de reposo -P2 : posición de recogida de la pieza de punzado -P3 : posición de recogida de la pieza-pastel -P4 : posición del primer vértice del palet -P5 : vértice 2 -P6 : vértice 3 -P7 : vértice 4 -P8 : posición del horno

P2

P6

P1

P4

P7

P5

P3

P8

Page 60: Manual Practicas Robotica

©Festo Didactic 60

Las nuevas comandas que se utilizaran en el programa, son:

- DEF ACT > Define las condiciones de interrupción y el proceso para generarla. - ACT > Habilita / deshabilita las interrupciones. - M_TIMER(x) > Relojes de programa que podemos inicializar y consultar.

Page 61: Manual Practicas Robotica

©Festo Didactic 61

Son instrucciones que gestionan la comunicación con otros elementos externos periféricos.

OPEN

Abre la línea de comunicación.

Ejemplo de llamada de instrucción:

OPEN COM1: AS#1....... Abre la línea de comunicación COM1 como archivo nº1.

CLOSE

Cierra la línea de comunicación.

Ejemplos de llamadas de instrucción:

CLOSE #1..... Cierra el archivo nº1. CLOSE........... Cierra todos los archivos abiertos.

PRINT #

Exporta los datos en el formato ASCII. CR es el código final.

Ejemplos de llamadas de instrucción:

PRINT #1, TEST ............. Exporta los caracteres TEST al archivo nº1. PRINT #2, M1= ; M1...... Exporta los caracteres M1= y el valor de M1 al archivo

nº2. Por ejemplo : M1=3 +CR+LF (cuando M1=3). PRINT #3, P1................... Exporta las coordenadas de la variable posición P1 al

archivo nº3. PRINT #1, M3, P3........... Exporta el valor de la variable M3 y las coordenadas de P3,

al archivo nº1. Los dos datos los separa con una coma.

12 COMUNICACIONES

Page 62: Manual Practicas Robotica

©Festo Didactic 62

INPUT #

Importa datos en formato ASCII. El código final es CR.

Ejemplos de llamadas de instrucción:

INPUT #1, M6..... Convierte los datos de entrada en valores y los substituye en la variable numérica M6.

INPUT #1, P7...... Convierte los datos de entrada en valores y los substituye en la variable de posición P7.

INPUT #1, M9, P5............. Convierte los primeros datos de entrada en valores y los substituye en la variable numérica M9. Convierte los siguientes datos de entrada en valores y los substituye en la variable de posición P5.

ON COM GOSUB

Define la rutina a llamar en caso de que las líneas de comunicación generen una interrupción. La interrupción aparece cuando entran datos de un dispositivo externo.

Ejemplos de llamadas de instrucción:

ON COM(1) GOSUB 330................. Define saltar a la 330 cuando entran datos por la línea de comunicación COM1.

ON COM(2) GOSUB *RECV............. Define llamar a la subrutina RECV cuando entran datos por la línea de comunicación COM1.

COM ON

Habilita el proceso de interrupción de la línea de comunicación indicada.

Ejemplo de llamada de instrucción:

COM(1) ON......... Habilita la interrupción desde la línea COM1.

COM OFF

Deshabilita el proceso de interrupción de la línea de comunicación indicada. Si ocurre la interrupción, no será válida.

Ejemplo de llamada de instrucción:

COM(2) OFF........ Deshabilita la interrupción desde la línea COM2.

Page 63: Manual Practicas Robotica

©Festo Didactic 63

COM STOP

Para el proceso de interrupción de la línea de comunicación indicada. Si hay una interrupción, se guarda y se ejecuta mas tarde.

Ejemplo de llamada de instrucción:

COM(3) STOP................... Para (sostiene) la interrupción desde la línea 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 instrucción:

CALLP 10 ...................... Llama al programa número 10. CALLP 30 , M2, P2......... Llama al programa número 30 y le transfiere la variable

numérica M1 y la variable de posición P2.

FPRM

Se transfiere una discusión con la llamada de programa CALLP.

Ejemplo de llamada de instrucción:

FPRM M22, P22............... Recibe las variables transferidas con la comanda CALLP. La variable numérica será M22 en el subprograma, y la variable de posición será P22.

CLR

Resetea las señales de salida, basándose en el patrón de reset de las señales de salida.

Ejemplos de llamadas de instrucción:

CLR 1.................. Borra basándose en el patrón de reset de las salidas.

Page 64: Manual Practicas Robotica

©Festo Didactic 64

Ejemplo de aplicación Visión artificial

Descripción previa:

Este ejemplo muestra una aplicación en que el brazo robot usa las instrucciones de comunicación para adquirir datos de un sistema de visión artificial con el fin de corregir la posición donde el brazo robot tiene que ir a recoger el objeto en cuestión.

Para conectar la unidad de visión a la controladora CR1, se puede usar la tarjeta de expansión serie RS-232C. También se podría usar el puerto que conecta la controladora con el PC, pero se recomienda usar uno dedicado para el sistema de visión.

Programa ejemplo:

10 OPEN COM2: AS #1 ' Abre la comunicación RS232C 20 MOV P1, -50 ' Mueve la posición de la cámara 30 M_OUT(10) = 1 DLY 0.5 ' Activa la señal de salida que conecta la camera

(enciende el sensor) 40 PX=P1 ' Obtiene el origen de la camera 50 INPUT #1, MX, MY, MC ' Obtiene los datos de la corrección 60 PX.X=PX.X+MX ' Aplica los datos de la corrección en la dirección X 70 PPX.Y=PX.Y+MY ' Aplica los datos de la corrección en la dirección Y 80 PX.C=PX.C+RAD(MC) ' Aplica los datos de la corrección en el eje C 90 MOV PX, -50 ' Mueve a una posición encima del objeto 100 OVRD 30 ' Velocidad al 30% 110 MVS PX ' Mueve a la posición objetivo 120 DLY 0.3 ' Espera de 0.3 segundos 130 HCLOSE ' Cierra pinza 140 DLY 0.3 ' Espera de 0.3 segundos 150 MVS, -50 ' Movimiento recto alejándose hacia arriba

...

Unidad de visión

CR1 (controlador)

Cámera

Page 65: Manual Practicas Robotica

©Festo Didactic 65

Conexionado de E/S externas:

La controladora dispone de un conector conceptronics de 50 pines donde se conectarán las señales de E/S externas.

Esquema de conexión y la descripción de casa señal del conector se muestra a continuación.

13 APENDICE

Page 66: Manual Practicas Robotica

©Festo Didactic 66

Solución Práctica 1

10 '*********************FESTO DIDACTIC********************* 20 '* CURSO DE INTRODUCCIÓN A LA ROBÓTICA * 30 '* * 40 '* PRÁCTICA - 1 * 50 '* INSTRUCCIONES BÁSICAS * 60 '* Autor: Ferran * 70 '* Fecha: Febrero 2005 * 80 '* Comentarios: * 90 '* * 100 '********************************************************* 110 HOPEN 1 ' Abrir Pinza 120 MOV P1 ' Movimiento interpolado a la posición 1 130 OVRD 90 ' Velocidad al 90% 140 MOV P2 ' Movimiento interpolado a la posición 2 150 OVRD 30 ' Velocidad al 30% 160 MOV P3 ' Movimiento interpolado a la posición 3 170 HCLOSE 1 ' Cierra pinza 180 DLY 0.5 ' Espera de 0.5 segundos 190 MOV P2 ' Movimiento interpolado a la posición 2 200 OVRD 90 ' Velocidad 90% 210 MOV P4 ' Movimiento interpolado a la posición 4 220 OVRD 30 ' Velocidad al 30% 230 MOV P5 ' Movimiento interpolado a la posición 5 240 HOPEN 1 ' Abre pinza 250 MOV P4 ' Movimiento interpolado a la posición 4 260 OVRD 90 ' Velocidad 90% 270 MOV P1 ' Movimiento interpolado a la posición 1 280 DLY 3 ' Espera de 3 segundos 290 END ' Fin del programa

Page 67: Manual Practicas Robotica

©Festo Didactic 67

Solución Práctica 2

10 '*********************FESTO DIDACTIC********************* 20 '* CURSO DE INTRODUCCIÓN A LA ROBÓTICA * 30 '* * 40 '* PRÁCTICA - 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 posición P1 140 DLY 3 ' Espera de 3 segundos 150 MOV P2, -80 ' Movimiento interpolado a una posición alejada 80mm de

la posición P2 160 OVRD 30 ' Velocidad al 30% 170 MVS P2 ' Movimiento recto a la posición P2 180 HCLOSE 1 ' Cierra pinza 190 DLY 0.5 ' Espera de 0,5 segundos 200 MVS P2, -50 ' Movimiento recto a una posición alejada 50mm de la

posición P2 210 OVRD 70 ' Velocidad al 70% 220 MOV P3, -150 ' Movimiento interpolado a una posición alejada 150mm de

la posición P3 230 MOV P3 ' Movimiento interpolado a la posición P3 240 MVC P3, P4, P5 ' Movimiento circular 250 MVC P3, P4, P5 ' Movimiento circular 260 MOV P3, -150 ' Movimiento interpolado a una posición alejada

150mm de la posición P3 270 MVS P2, -80 ' Movimiento recto a una posición alejada 80mm de la

posición P2 280 OVRD 30 ' Velocidad al 30% 290 MVS P2 ' Movimiento recto a la posición P2 300 HOPEN 1 ' Abrir Pinza 310 DLY 0.5 ' Espera de 0,5 segundos 320 MVS P2, -50 ' Movimiento recto a una posición alejada 50mm de la

posición P2 330 OVRD 70 ' Velocidad al 70% 340 MOV P1 ' Movimiento interpolado a la posición P1 350 END ' Fin del programa

Page 68: Manual Practicas Robotica

©Festo Didactic 68

Solución Práctica 3

10 '*********************FESTO DIDACTIC********************* 20 '* CURSO DE INTRODUCCIÓN A LA ROBÓTICA * 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 posición P1 140 DLY 3 ' Espera de 3 segundos 150 MOV P2, -100 ' Movimiento interpolado a una posición alejada

100mm de la posición P2 160 MVS P2 ' Movimiento recto a la posición 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 posición alejada 100mm

de la posición P2 210 MOV P1 ' Movimiento interpolado a la posición P1 220 MOV P3, -50 ' Movimiento recto a una posición alejada

50mm de la posición P3 230 OVRD 40 ' Velocidad al 40% 240 MVS P3 ' Movimiento recto a la posición P3 250 DLY 1 ' Espera de 1 segundo 260 CNT 1 ' Inicio movimiento continuo 270 MVS P4 ' Movimiento recto a la posición P4 280 'CNT 1,50,50 ' movimiento continuo 290 MVS P5 ' Movimiento recto a la posición P5 300 'CNT 1,50,50 ' movimiento continuo 310 MVS P6 ' Movimiento recto a la posición P6 320 'CNT 1,50,50 ' movimiento continuo 330 MVS P3 ' Movimiento recto a la posición P3 340 'CNT 1,50,50 ' movimiento continuo 350 MVS P5 ' Movimiento recto a la posición P5 360 CNT 0 ' Final del movimiento continuo 370 OVRD 80 ' Velocidad al 80% 380 MOV P1 ' Movimiento interpolado a la posición P1 390 HOPEN 1 ' Abre la pinza 400 HLT ' Para el programa 410 END ' Fin del programa

Page 69: Manual Practicas Robotica

©Festo Didactic 69

Solución Práctica 4

10 '*********************FESTO DIDACTIC********************* 20 '* CURSO DE INTRODUCCIÓN A LA ROBÓTICA * 30 '* * 40 '* PRACTICA - 4 * 50 '* PALETIZACIÓN * 60 '* Autor: Ferran * 70 '* Fecha: Marzo 2005 * 80 '* Comentarios: * 90 '* * 100 '********************************************************* 110 DEF PLT 1, P3, P4, P5, P6, 3, 3, 2 ' Definición del palet 120 DEF POS OFFSET ' Declaración variable posición OFFSET 130 OFFSET = (0, 0, +100, 0, 0, 0) ' Definición 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 posición alejada 60mm de

la posición 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 señal M_IN(10) se activa 200 OVRD 30 ' Velocidad al 30% 210 MVS P2 ' Movimiento recto a la posición P2 220 HCLOSE 1 ' Cierra pinza 230 DLY 0.5 ' Espera de 0,5 segundos 240 MVS P2, -60 ' Movimiento interpolado a una posición alejada 60mm de

la posición P2 250 OVRD 90 ' Velocidad al 90% 260 P9=(PLT 1, M9) ' Asignamos el valor de una posición del palet a la variable

de posición P9 270 MOV P9 + OFFSET ' Movimiento interpolado a la posición resultante

de la suma de coordenadas 280 OVRD 30 ' Velocidad al 30% 290 MVS P9 ' Movimiento recto a la posición P9 300 HOPEN 1 ' Abrir Pinza 310 DLY 0.5 ' Espera de 0,5 segundos 320 MOV P9 + OFFSET ' Movimiento interpolado a la posición resultante

de la suma de coordenadas 330 OVRD 90 ' Velocidad al 90% 340 MOV P2, -60 ' Movimiento interpolado a una posición alejada 60mm de

la posición P2 350 M9=M9+1 ' Incrementa el valor de la variable entera M9 360 WEND ' Fin del bucle 370 END ' Fin del programa

Page 70: Manual Practicas Robotica

©Festo Didactic 70

Solución Práctica 5

10 '*********************FESTO DIDACTIC********************* 20 '* CURSO DE INTRODUCCIÓN A LA ROBÓTICA * 30 '* * 40 '* PRACTICA - 5 * 50 '* SUBRUTINAS * 60 '* Autor: Ferran * 70 '* Fecha: Abril 2005 * 80 '* Comentarios: * 90 '* * 100 '********************************************************* 110 DEF POS OFFSET ' Declaración variable posición OFFSET 120 OFFSET = (0, 0, +60, 0, 0, 0) ' Definición de OFFSET 130 DEF INTE RAPIDO ' Declaración variable RAPIDO 140 DEF INTE LENTO ' Declaración variable LENTO 150 DEF INTE OPCION ' Declaración variable OPCION 160 RAPIDO = 90 ' Velocidad rápida 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 posición 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 posición 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 posición P3 300 *INI ' Etiqueta 310 OPCION = 0 ' Inicialización 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 señal 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 posición 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 posición 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 posición 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 posición 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

Page 71: Manual Practicas Robotica

©Festo Didactic 71

510 DLY 0.5 ' Espera de 0,5 segundos 520 BREAK ' Fin de las instrucciones del CASE seleccionado 530 END SELECT ' Finaliza la opción SELECT CASE 540 IF OPCION=0 OR OPCION=1 THEN GOTO *INI ' Si la variable OPCION

vale 0 o 1, salta a INI 550 GOTO *INICIO ' Salta a la etiqueta INICIO 560 END ' Fin del programa 570 '-------------------------------------------------------------------------------------- 580 *GIRAR ' Inicio de la subrutina GIRAR 590 DEF POS GIRO ' Declaración variable posición 600 GIRO = (0, 0, 0, 120, 0, 0) ' Asignación de valores a la posición GIRO 610 OVRD LENTO ' Velocidad al 30% 620 CNT 1 ' Inicio del movimiento continuo 630 MOV P3+GIRO ' Movimiento interpolado a la suma de

coordenadas de P3 y GIRO 640 MOV P3 ' Movimiento interpolado a la posición P3 650 MOV P3-GIRO ' Movimiento interpolado a la suma de

coordenadas de P3 y GIRO 660 MOV P3 ' Movimiento interpolado a la posición P3 670 CNT 0 ' Fin del movimiento continuo 680 OVRD RAPIDO ' Velocidad al 90% 690 RETURN ' Final de la subrutina GIRAR 700 '-------------------------------------------------------------------------------------- 710 *CIRCULO ' Inicio de la subrutina CIRCULO 720 CNT 1 ' Inicio del movimiento continuo 730 MOV P1 ' Movimiento interpolado a la posición P1 740 MOV P4 + OFFSET ' Movimiento interpolado a la suma de

coordenadas de P4 y OFFSET 750 MVS P4 ' Movimiento interpolado a la posición P4 760 MVC P4,P5, P6 ' Movimiento circular entre los puntos P4, P5 y P6 770 CNT 0 ' Fin del movimiento continuo 780 MOV P4 + OFFSET ' Movimiento interpolado a (P4 + OFFSET) 790 MOV P7 + OFFSET ' Movimiento interpolado a (P7 + OFFSET) 800 OVRD LENTO ' Velocidad al 30% 810 MVS P7 ' Movimiento recto a la posición P7 820 HOPEN 1 ' Abrir Pinza 830 DLY 0.5 ' Espera de 0,5 segundos 840 MVS P7 + OFFSET ' Movimiento interpolado a (P7+OFFSET) 850 RETURN ' Final de la subrutina CIRCULO 860 ' -------------------------------------------------------------------------------------- 870 *BOTAR ' Inicio de la subrutina BOTAR 880 CNT 1 ' Inicio del movimiento continuo 890 MOV P8 - OFFSET ' Movimiento interpolado a (P8 - OFFSET) 900 MOV P8 + OFFSET ' Movimiento interpolado a (P8 + OFFSET) 910 MOV P8 - OFFSET ' Movimiento interpolado a (P8 - OFFSET) 920 MOV P8 + OFFSET ' Movimiento interpolado a (P8 + OFFSET) 930 MOV P8 - OFFSET ' Movimiento interpolado a (P8 - OFFSET) 940 MOV P8 + OFFSET ' Movimiento interpolado a (P8 + OFFSET) 950 MOV P8 ' Movimiento interpolado a P8 960 CNT 0 ' Fin del movimiento continuo 970 MOV P9 + OFFSET ' Movimiento interpolado a (P9 + OFFSET) 980 OVRD LENTO ' Velocidad al 30% 990 MVS P9 ' Movimiento recto a P9 1000 HOPEN 1 ' Abrir Pinza 1010 DLY 0.5 ' Espera de 0,5 segundos 1020 MVS P9 + OFFSET ' Movimiento recto a (P9 + OFFSET) 1030 RETURN ' Final de la subrutina BOTAR

Page 72: Manual Practicas Robotica

©Festo Didactic 72

1040 ' -------------------------------------------------------------------------------------- 1050 *TIRAR ' Inicio de la subrutina TIRAR 1060 DEF POS SUELO ' Declaración variable posición 1070 SUELO = (0,-50,+3,0,0,0) ' Definición de SUELO 1080 MOV P10 + SUELO + OFFSET ' Movimiento interpolado a la suma de

coordenadas de P10, SUELO y OFFSET 1090 OVRD 20 ' Velocidad al 20% 1100 MOV P10 + SUELO ' Movimiento interpolado a (P10 + SUELO) 1110 MVS P10 ' Movimiento recto a P10 1120 HOPEN 1 ' Abrir Pinza 1130 DLY 0.5 ' Espera de 0,5 segundos 1140 MOV P10 + OFFSET ' Movimiento interpolado a (P10+OFFSET) 1150 RETURN ' Final de la subrutina TIRAR

Page 73: Manual Practicas Robotica

©Festo Didactic 73

Solución Práctica 6

10 '*********************FESTO DIDACTIC********************* 20 '* CURSO DE INTRODUCCIÓN A LA ROBÓTICA * 30 '* * 40 '* PRACTICA - 6 * 50 '* INTERRUPCIONES * 60 '* Autor: Ferran * 70 '* Fecha: Abril 2005 * 80 '* Comentarios: * 90 '* * 100 '********************************************************* 110 DEF POS HORNO ' Declaración variable posición HORNO 120 DEF POS OFFSET ' Declaración variable posición OFFSET 130 DEF POS P9 ' Declaración variable posición P9 140 HORNO = (0,0,+50,0,0,0) ' Definición de HORNO 150 OFFSET = (0,0,+60,0,0,0) ' Definición de OFFSET 160 'DEF IO N_PASTEL = BIT,10 170 DEF ACT 1, M_IN(10) = 1 GOSUB *COCER ' Definición interrupción COCER 180 DEF ACT 2, M_TIMER(1) > 30000 GOSUB *RETIRAR ' Definición interrupción

RETIRAR 190 DEF INTE NPP ' Declaración variable entera NPP 200 DEF INTE CONTADOR ' Declaración variable entera CONTADOR 210 DEF INTE RAPIDO ' Declaración variable entera RAPIDO 220 DEF INTE LENTO ' Declaración variable entera LENTO 230 DEF PLT 1, P4, P5, P6, P7, 3, 3, 2 ' Definición del palet 1 240 RAPIDO = 90 ' Definición de RAPIDO 250 LENTO = 60 ' Definición de LENTO 260 '.......................................................................................... 270 HOPEN 1 ' Abrir Pinza 280 OVRD RAPIDO ' Velocidad al 90% 290 MOV P1 ' Movimiento interpolado a la posición P1 300 ACT 1 = 1 ' Habilita la interrupción 1 310 GOSUB *COGER_P ' Llama a la subrutina COGER_P 320 *INI ' Etiqueta INI 330 NPP = 1 ' Inicialización 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 posición del palet a la variable de posición P9

360 MOV P9 + OFFSET ' Movimiento interpolado a la posición P9+OFFSET 370 OVRD LENTO ' Velocidad al 60% 380 CONTADOR = 0 ' Inicialización del contador CONTADOR 390 WHILE (CONTADOR < NPP) ' Mientras NPP sea inferior a 10, se

ejecutará el WHILE

400 MVS P9 ' Movimiento recto a la posición P9 410 MVS P9 + OFFSET ' Movimiento recto a la suma de coordenadas de

P9 + OFFSET 420 CONTADOR = CONTADOR + 1 ' Actualización del contador CONTADOR 430 WEND ' Fin del WHILE

440 OVRD RAPIDO ' Velocidad al 90% 450 NPP = NPP + 1 ' Actualización 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

Page 74: Manual Practicas Robotica

©Festo Didactic 74

510 OVRD RAPIDO ' Velocidad al 90% 520 MOV P2 + OFFSET ' Movimiento interpolado a la posición P2+OFFSET 530 OVRD LENTO ' Velocidad al 60% 540 MVS P2 ' Movimiento interpolado a la posición P1 550 HCLOSE 1 ' Cierra pinza 560 DLY 0.5 ' Espera de 0,5 segundos 570 MVS P2 + OFFSET ' Movimiento recto a la suma de coordenadas de

P2 + OFFSET 580 OVRD RAPIDO ' Velocidad al 90% 590 RETURN ' Final de la subrutina COGER_P 600 '-------------------------------------------------------------------------------------- 610 *DEJAR_P ' Inicio de la subrutina DEJAR_P 620 OVRD RAPIDO ' Velocidad al 90% 630 MOV P2 + OFFSET ' Movimiento interpolado a la posición P2+OFFSET 640 OVRD LENTO ' Velocidad al 60% 650 MVS P2 ' Movimiento recto a la posición P2 660 HOPEN 1 ' Abrir Pinza 670 DLY 0.5 ' Espera de 0,5 segundos 680 MOV P2 + OFFSET ' Movimiento interpolado a la posición P2+OFFSET 690 OVRD RAPIDO ' Velocidad al 90% 700 RETURN ' Final de la subrutina DEJAR_P 710 '-------------------------------------------------------------------------------------- 720 *COCER ' Inicio de la interrupción COCER 730 ACT 1 = 0 ' Deshabilita la interrupción 1 740 OVRD RAPIDO ' Velocidad al 90% 750 MOV P1 ' Movimiento interpolado a la posición P1 760 GOSUB *DEJAR_P ' Llama a la subrutina DEJAR_P 770 MOV P3 + OFFSET ' Movimiento interpolado a la posición P3+OFFSET 780 OVRD LENTO ' Velocidad al 60% 790 MVS P3 ' Movimiento recto a la posición P3 800 HCLOSE 1 ' Cierra pinza 810 DLY 0.5 ' Espera de 0,5 segundos 820 MVS P3 + OFFSET ' Movimiento recto a la suma de coordenadas de

P3 + OFFSET 830 OVRD RAPIDO ' Velocidad al 90% 840 MOV P8 + HORNO ' Movimiento interpolado a la posición P8+OFFSET 850 OVRD LENTO ' Velocidad al 60% 860 MVS P8 ' Movimiento recto a la posición P8 870 HOPEN 1 ' Abrir Pinza 880 DLY 0.5 ' Espera de 0,5 segundos 890 MVS P8 + HORNO ' Movimiento recto a la suma de coordenadas de

P8 + HORNO 900 GOSUB *COGER_P ' Llama a la subrutina COGER_P 910 MOV P1 ' Movimiento interpolado a la posición P1 920 ACT 2 = 1 ' Habilita la interrupción 2 930 M_TIMER(1) = 0 ' Inicialización del reloj a cero 940 RETURN 0 ' Final de la interrupción COCER 950 '-------------------------------------------------------------------------------------- 960 *RETIRAR ' Inicio de la interrupción RETIRAR 970 ACT 2 = 0 ' Deshabilita la interrupción 2 980 OVRD RAPIDO ' Velocidad al 90% 990 MOV P1 ' Movimiento interpolado a la posición P1 1000 GOSUB *DEJAR_P ' Llama a la subrutina DEJAR_P 1010 MOV P8 + HORNO ' Movimiento interpolado a la posición P8+HORNO 1020 OVRD LENTO ' Velocidad al 60% 1030 MVS P8 ' Movimiento recto a la posición P8 1040 HCLOSE 1 ' Cierra pinza

Page 75: Manual Practicas Robotica

©Festo Didactic 75

1050 DLY 0.5 ' Espera de 0,5 segundos 1060 MVS P8 + HORNO ' Movimiento recto a la suma de coordenadas de

P8 + HORNO 1070 OVRD RAPIDO ' Velocidad al 90% 1080 MOV P3 + OFFSET ' Movimiento interpolado a la posición P3+OFFSET 1090 OVRD LENTO ' Velocidad al 60% 1100 MVS P3 ' Movimiento recto a la posición P3 1110 HOPEN 1 ' Abrir Pinza 1120 DLY 0.5 ' Espera de 0,5 segundos 1130 MVS P3 + OFFSET ' Movimiento recto a la suma de coordenadas de

P3 + OFFSET 1140 OVRD RAPIDO ' Velocidad al 90% 1150 GOSUB *COGER_P ' Llama a la subrutina COGER_P 1160 MOV P1 ' Movimiento interpolado a la posición P1 1170 RETURN 0 ' Final de la interrupción RETIRAR