Proyecto: Telemantenimiento y telegestión de sistemas robotizados y/o automatizados Tema 4: ENTRADAS y SALIDAS
4
ENTRADAS y SALIDAS
4.1 Entradas y salidas del robot El sistema robot dispone de un conector de entradas y salidas digitales que se localiza en el módulo controlador del robot, que en el caso del IR120 es el modelo compacto. El “pineado” del conector correspondiente a las entradas, salidas y tomas de t ensión es el siguiente: DSQC-652
-XP7 INPUT CH 1...8
0V INPUT CH 9...16
0V
OUTPUT CH 1...8
<1
0V OUTPUT CH 9...16
0V
<1
21
INPUT 01
22
INPUT 02
23
INPUT 03
24
INPUT 04
25
INPUT 05
26
INPUT 06
27
INPUT 07
28
INPUT 08
31
INPUT 09
32
INPUT 10
33
INPUT 11
34
INPUT 12
35
INPUT 13
36
INPUT 14
37
INPUT 15
38
INPUT 16
1
OUTPUT 01
2
OUTPUT 02
3
OUTPUT 03
4
OUTPUT 04
5
OUTPUT 05
6
OUTPUT 06
7
OUTPUT 07
8
OUTPUT 08
11
OUTPUT 09
12
OUTPUT 10
13
OUTPUT 11
14
OUTPUT 12
15
OUTPUT 13
16
OUTPUT 14
17
OUTPUT 15
18
OUTPUT 16
-XS10 1
24V
24V OUT
2
0V OUT
3
0V OUTPUT
4
24V OUTPUT
5
0V Input
6
. s a d i l a s y s a d a r t n E
: 4 a m e T
1
Proyecto: Telemantenimiento y telegestión de sistemas robotizados y/o automatizados Tema 4: ENTRADAS y SALIDAS
Consiste en un conector del tipo D-sub de 44 polos que está conectado conectado internamente con la unidad de E/S (DSQC-652) y puede conectar hasta 16 entradas y 16 salidas digitales que se utilizan para conectar detectores de presencia de pieza o activación de electroválvulas de pinzas de soldar por ejemplo.
Configuración de las señales de E/S Si el sistema robot no tiene configuradas las entradas/salidas, se han de seguir los siguientes pasos: 1. Configuración de la tarjeta de entradas/salidas: Configurar la tarjeta que el módulo controlador tiene instalada. En el FlexPendant seleccionar ABB\Panel de control\Configuración\Unit
. s a d i l a s y s a d a r t n E
: 4 a m e T
2
Proyecto: Telemantenimiento y telegestión de sistemas robotizados y/o automatizados Tema 4: ENTRADAS y SALIDAS
Consiste en un conector del tipo D-sub de 44 polos que está conectado conectado internamente con la unidad de E/S (DSQC-652) y puede conectar hasta 16 entradas y 16 salidas digitales que se utilizan para conectar detectores de presencia de pieza o activación de electroválvulas de pinzas de soldar por ejemplo.
Configuración de las señales de E/S Si el sistema robot no tiene configuradas las entradas/salidas, se han de seguir los siguientes pasos: 1. Configuración de la tarjeta de entradas/salidas: Configurar la tarjeta que el módulo controlador tiene instalada. En el FlexPendant seleccionar ABB\Panel de control\Configuración\Unit
. s a d i l a s y s a d a r t n E
: 4 a m e T
2
Proyecto: Telemantenimiento y telegestión de sistemas robotizados y/o automatizados Tema 4: ENTRADAS y SALIDAS Una vez seleccionado Unit , en la nueva pantalla emergente, seleccionar Añadir y cumplimentar los datos que pide.
En Name: Name: identificar la tarjeta con un nombre cualquiera. Por ejemplo t1. t1. En Type of Unit : identificar la tarjeta instalada en el sistema robot. En el ejemplo d652. d652. En su defecto elegir Virtual . En Connected to Bus: Bus: identificar el bus interno al que la tarjeta está conectado en el controlador del robot DeviceNet . En su defecto elegir Virtual . Los demás campos son opcionales. 2. Configuración de las señales de entradas/salidas: En el FlexPendant seleccionar ABB\Panel de control\Configuración\Signal de control\Configuración\Signal
. s a d i l a s y s a d a r t n E
: 4 a m e T
3
Proyecto: Telemantenimiento y telegestión de sistemas robotizados y/o automatizados Tema 4: ENTRADAS y SALIDAS Una vez seleccionado Signal , en la nueva pantalla emergente, seleccionar Añadir y cumplimentar los datos que pide.
En Name: identificar la señal con un nombre significativo. Por ejemplo do1 (digital output 1). En Type of Signal : identificar el tipo de señal. En el ejemplo es una salida, por tanto Digital Output . En Assigned to Unit : identificar la tarjeta a la que pertenece la señal, configurada en el punto anterior t1. En Unit Mapping: asignar de los 16 bits de salida que tiene la tarjeta, con cual de ellos se configura. Como es el primer bit se le asigna el 0. En Category : asignar 0. En Access Level : asignar All (acceso desde el FlexPendant y RobotStudio) o Default (acceso solamente desde el FlexPendant). En Default value: asignar el valor de la señal en reposo (0 o 1) en este caso 0. Los demás campos son opcionales. Este proceso se ha de repetir hasta configurar todas las señales de entradas y salidas. Como al aceptar cada una de ellas el programa pide reiniciar el FlexPendant, se seleccionara No, salvo en la última señal configurada. Al reiniciarse el FlexPendant todas las señales programadas son operativas
. s a d i l a s y s a d a r t n E
: 4 a m e T
4
Proyecto: Telemantenimiento y telegestión de sistemas robotizados y/o automatizados Tema 4: ENTRADAS y SALIDAS 3. Configuración de grupos de señales de entradas/salidas: En el FlexPendant seleccionar ABB\Panel de control\Configuración\Signal Se procede igual que si se configurase una entrada o salida solamente que en el tipo de señal hay que elegir Group Input o Group Output .
Para formar un grupo de señales, es necesario que éstas estén definidas anteriormente. Por ejemplo, si se pretende configurar un grupo de entradas digitales: En Name: identificar el grupo de señales con un nombre significativo. Por ejemplo gi1 (group digital input 1). En Type of Signal : identificar que es un grupo de señales de entrada, por tanto Group Input . En Assigned to Unit : identificar la tarjeta a la que pertenece la señal, configurada en el punto anterior t1. En Unit Mapping: asignar de los bits de entrada que contiene el grupo. Si se asigna 0-3 significa que lo componen los bits 0, 1, 2 y 3. Si se asigna 1,2 significa que lo componen los bits 1y 2. En Category : asignar 0. En Access Level : asignar All (acceso desde el FlexPendant y RobotStudio) o Default (acceso solamente desde el FlexPendant). Los demás campos son opcionales. 4. Configuración de grupos de señales de entradas/salidas analógicas: Se procede igual que si se configurase una entrada o salida digital solamente que en el tipo de señal hay que elegir Analog Input o Analog Output .
4.2 Visualización y forzado de valores de las señales de E/S El valor de las entradas y salidas, se puede visualizar y simular o forzar desde el FlexPendant. Para ello seleccionar ABB\Panel de control\Entradas y salidas. En la pantalla emergente, si no se visualiza nada, se ha de elegir el tipo de señales que se pretenden visualizar o manipular. En el ejemplo de la figura corresponde a entradas digitales, para ello clicar sobre Ver y elegir las citadas Entradas digitales.
. s a d i l a s y s a d a r t n E
: 4 a m e T
5
Proyecto: Telemantenimiento y telegestión de sistemas robotizados y/o automatizados Tema 4: ENTRADAS y SALIDAS
Se visualizarán todas las entradas digitales configuradas con el valor. Si se pretende variar el valor de la entrada di1 por ejemplo, basta con seleccionarla y actuar sobre Simular .
Mediante los dígitos 0 y 1 que se hacen visibles se puede forzar su valor y las entradas quedan configuradas como Simuladas. Si se pretende actuar con la entrada física es necesario que ésta no esté seleccionada como simulada por lo que hay que seleccionar la entrada correspondiente y clicar sobre Eliminar simulación de lo contrario el sistema no responde a los cambios de la entrada cableada.
. s a d i l a s y s a d a r t n E
: 4 a m e T
6
Proyecto: Telemantenimiento y telegestión de sistemas robotizados y/o automatizados Tema 4: ENTRADAS y SALIDAS Visualización de un grupo de señales de E/S El valor de los grupos configurados de entradas y salidas, también se se puede visualizar y simular o forzar desde el FlexPendant. Para ello seleccionar ABB\Panel de control\Entradas y salidas, clicar sobre Ver y elegir Entrada de grupos.
Se visualizarán todos los grupos de entradas digitales configurados con el valor actual expresado en decimal. Si se pretende variar el valor del grupo de entradas, basta con seleccionarlo y actuar sobre Simular .
. s a d i l a s y s a d a r t n E
: 4 a m e T
7
Proyecto: Telemantenimiento y telegestión de sistemas robotizados y/o automatizados Tema 4: ENTRADAS y SALIDAS Clicando sobre 123… que se hace visible un teclado numérico con el que asignar el valor al grupo. Como se observa en la figura también se dispone de los valores, expresados en decimal, máximo y mínimo que puede tener dicho grupo. En el ejemplo se ha asignado un valor de 9 y como el grupo de entradas está compuesto por las entradas 4-7, su valor quedará seleccionado de la siguiente manera.
gi0 Grupo de entradas Valor binario Valor decimal
di4 Input 4
di5 Input 5
di6 Input 6
di7 Input 7
1
0
0
1
9
4.3 Instrucciones y datos Las instrucciones más utilizadas y relacionadas con las entradas y salidas son: IF…THEN :
Instrucción condicional que ejecuta una serie de instrucciones si se cumple la condición. Por ejemplo IF di1=1 THEN …….. Set : Instrucción que activa una señal digital de salida. Por ejemplo Set do1. Reset : Instrucción que desactiva una señal digital de salida. Por ejemplo Reset do1. WaitDI : Espera hasta que se active una señal digital de entrada. Por ejemplo WaitDI di1.
Existen otras instrucciones interesantes que se expondrán en la medida que se necesiten utilizar en las actividades ligadas a este tema. Para una mayor información, consultar el manual de RAPID. Datos numéricos Aunque no están necesariamente ligados a instrucciones de entradas y salidas, se utilizan por ejemplo para programar contadores. El tipo de valor puede ser: Entero : Por ejemplo -3. Decimal : Por ejemplo 4,28. Expresado en forma exponencial : Por ejemplo 2E3 (2.103 ) o 2,5E-2 (0,025).
Las instrucciones más utilizadas y relacionadas con los datos numéricos son: := : Asignación, se asigna un valor al dato. Obviamente los dos lados de la asignación tienen que tener el mismo formato de datos ya que no solamente se utiliza con datos numéricos. Por ejemplo reg1 := 5 ; (reg1 está definido como dato numérico). Incr : Incrementa en uno la variable numérica. Por ejemplo Incr cont1; que equivale a (cont1:= cont1+1) Decr : Decrementa en uno la variable numérica. Por ejemplo Decr cont1; que equivale a (cont1:= cont1-1) Add : Añade un valor a la variable numérica. Por ejemplo Add cont1 25; que equivale a (cont1:= cont1+25) Clear: Borra el valor de la variable numérica. Por ejemplo Clear cont1; que equivale a (cont1:= 0)
. s a d i l a s y s a d a r t n E
: 4 a m e T
8
Proyecto: Telemantenimiento y telegestión de sistemas robotizados y/o automatizados Tema 4: ENTRADAS y SALIDAS
PROYECTO FINANCIADO POR:
. s a d i l a s y s a d a r t n E
: 4 a m e T
9
Proyecto: Telemantenimiento y telegestión de sistemas robotizados y/o automatizados
ACTIVIDAD ENTRADAS y SALIDAS MANEJO DE SEÑALES 4.1 Objetivos de la 01.- Programar el código necesario para reconocer las entradas digitales. 02.- Programar el código necesario para activar las salidas digitales. actividad: 03.- Entender la estructura de las instrucciones con entradas y salidas.
Conocimientos previos:
01.- Entradas y Salidas digitales del robot. Conexión de las mismas. 02.- Entradas y Salidas digitales del robot. Configuración y verificación
Conocimientos relacionados:
01.- Manejo de las entradas y salidas en el FlexPendant Manual FlexPendant Capítulo 8 02.- Instrucción Set Manual de Instrucciones, funciones y tipos de datos RAPID. 03.- Instrucción Reset Manual de Instrucciones, funciones y tipos de datos RAPID. 04.- Instrucción WaitTime Manual de Instrucciones, funciones y tipos de datos RAPID. 05.- Instrucción WaitDI Manual de Instrucciones, funciones y tipos de datos RAPID. 04.- Instrucción WaitUntil Manual de Instrucciones, funciones y tipos de datos RAPID. 05.- Instrucción PulseDO Manual de Instrucciones, funciones y tipos de datos RAPID.
Recursos necesarios
01.- Sistema Robot IRB120 u otro de mayor gama.
Archivos de imagen relacionados
01.- Entradas y salidas1 Realización condicionada de una pirámide a la espera de una señal de entrada. Activación de luz verde y roja. 02.- Entradas y salidas2 Realización condicionada de una pirámide a la espera de una señal de entrada. Activación de luz verde y roja. WaitTime 03.- Entradas y salidas3 Realización condicionada de una pirámide a la espera de una señal “bimanual” de entrada. Intermitencia. Nota: No se pueden observar la activación de entradas en la simulación.
Archivos de programa relacionados
01.- Entradas y salidas Realización condicionada de una pirámide a la espera de una señal de entrada. Activación de luz verde y roja. Pack and GO realizado con RobotStudio 5.14.02.01 y RobotWare 5.14.02_2039. Para visualizar los programas, Archivo\Compartir\Unpack and Work
PROYECTO FINANCIADO POR:
s e l a ñ e s e d o j e n a M . s a d i l a s y s a d a r t n E
: 1 . 4 d a d i v i t c A
1
Proyecto: Telemantenimiento y telegestión de sistemas robotizados y/o automatizados
ACTIVIDAD ENTRADAS y SALIDAS MANEJO DE SEÑALES 4.1 Objetivos: 1.- Crear un programa de forma que la punta de la herramienta dibuje o siga las aristas de una pirámide, cuando se active una señal de entrada ( di1).
2.- Se activarán dos señales digitales de salida a cada una de las cuales se conectará una lámpara: Mientras la herramienta esté en la posición de reposo, se activará la señal de salida (do1), encendiendo la lámpara verde. Cuando la señal de comienzo de ciclo se active, se activará la señal de salida ( do2), encendiendo la lámpara roja y se apagará la lámpara verde. 3.- El programa dispondrá de un punto de inicio alejado de la pirámide.
Procedimiento: 1.- Crear un programa siguiendo los pasos descritos en el tema T3. ABB\ Editor de programas\Tareas y programas\Archivo\Nuevo programa.
2.- Crear la rutina “ piramide” siguiendo los pasos descritos en el tema T3, teniendo en cuenta que la herramienta seleccionada es la llamada puntero que previamente está calibrada. ABB\ Editor de programas pestaña Rutinas\Archivo\Nueva rutina. PROC piramide() MoveJ p10, MoveL p20, MoveL p50, MoveL p40, MoveL p30, MoveL p50, MoveL p30, MoveL p20, MoveL offs ENDPROC
v1000,fine, puntero; v1000,fine, puntero; v1000,fine, puntero; v1000,fine, puntero; v1000,fine, puntero; v1000,fine, puntero; v1000,fine, puntero; v1000,fine, puntero; (p20,0,0,150), v1000,fine, puntero;
s e l a ñ e s e d o j e n a M . s a d i l a s y s a d a r t n E
: 1 . 4 d a d i v i t c A
2
Proyecto: Telemantenimiento y telegestión de sistemas robotizados y/o automatizados
3.- Insertar las instrucciones correspondientes a las activaciones de las señales d e salida y a la de espera a la señal de entrada: Para que el programa ejecute la rutina “piramide” cuando se active la señal de entrada, insertar la instrucción WaitDI del grupo Common (pulsando siguiente). En la siguente pantalla elegir di1 para sustituir a . Si hubiera que activar la rutina con la entrada con valor 0, habría que editar (Editar\ ABC…) la instrucción para cambiar su valor: WaitDI di1,1; → WaitDI di1,0;
Para que el programa desactive las salidas insertar la instrucción Reset del mismo grupo Common.
Sintaxis del procedimiento main: PROC main() Set do1; “activa la salida1 o lámpara verde” WaitDI di1,1; “espera a que la entrada1 se active (se ponga a 1)” Reset do1; “desactiva la salida1 o lámpara verde” Set do2; “activa la salida2 o lámpara roja” piramide; “ejecuta la rutina pirámide” MoveAbsJ jpos10\ NoEOffs,v1000,z50, MyTool; “posición de inicio” Reset do2; “desactiva la salida2 o lámpara roja” ENDPROC
s e l a ñ e s e d o j e n a M . s a d i l a s y s a d a r t n E
: 1 . 4 d a d i v i t c A
3
Proyecto: Telemantenimiento y telegestión de sistemas robotizados y/o automatizados
Observación:
En cuanto se comienza a ejecutar la instrucción MoveAbsJ que lleva al robot a la posición de inicio el puntero pasa a la siguiente instrucción que apaga la luz roja ( Reset do2) e incluso pasa a ejecutar la siguiente que enciende la luz verde (Set do1) sin que todavía los brazos del robot hayan llegado a dicha posición inicial porque los movimientos del robot tardan en ejecutarse mucho más tiempo que el movimiento del puntero. Esta situación se refleja en el FlexPendant al observar que el símbolo del robot está en la instrucción MoveAbsJ mientras que el puntero del programa está en la instrucción WaitDI habiendo ejecutado las dos instrucciones anteriormente citadas.
Una solución consiste en introducir una instrucción de espera en la que el puntero del programa estará parado el tiempo que tardan los brazos del robot en llegar a la posición de inicio. La instrucción a utilizar es WaitTime: PROC main() Set do1; “activa la salida1 o lámpara verde” WaitDI di1,1; “espera a que la entrada1 se active (se ponga a 1)” Reset do1; “desactiva la salida1 o lámpara verde” Set do2; “activa la salida2 o lámpara roja” piramide; “ejecuta la rutina pirámide” MoveAbsJ jpos10\ NoEOffs,v1000,z50, MyTool; “posición de inicio” WaitTime 2; “espera 2s” Reset do2; “desactiva la salida2 o lámpara roja” ENDPROC
4.- Ejecutar el programa situando el cursor en main (Depurar\ PP a main) y pulsar el botón Play para comenzar los movimientos del robot. Para poder ejecutar las condiciones, la entrada y las dos salidas estarán convenientemente cableadas al controlador del robot siguiendo el esquema general expresado en el Tema 4.
s e l a ñ e s e d o j e n a M . s a d i l a s y s a d a r t n E
: 1 . 4 d a d i v i t c A
4
Proyecto: Telemantenimiento y telegestión de sistemas robotizados y/o automatizados
En el esquema adjunto se aprovecha la fuente de alimentación interna del controlador del robot.
Seguridad bimanual. Instrucción PulseDO 5.- Con el mismo procedimiento, rutina “piramide” se pretende que el mismo no arranque hasta haber pulsado los dos pulsadores a la vez (Seguridad bimanual) y que mientras el brazo del robot se retira a la posición de inicio la luz roja realice una intermitencia utilizando la instrucción PulseDO. La sintaxis del programa será: PROC main() Set do1; WaitUntil di1 = 1 AND di2 = 1; ”Seguridad bimanual” Reset do1; Set do2; piramide; MoveAbsJ jpos10\ NoEOffs,v1000,z50, MyTool; Reset do2; “deactiva la salida 2” WaitTime 0.4; “espera durante un periodo de 0,4s.” PulseDO\PLength:=0.4, do2; “activa la salida2 durante un periodo de 0,4s.” WaitTime 0.4; PulseDO\PLength:=0.4, do2; WaitTime 0.4; ENDPROC
La instrucción PulseDO genera un pulso en la salida especificada, en este caso do2, durante el tiempo que tiene asignado el argumento \PLength:=0.4, en este caso de 0,4 segundos.
s e l a ñ e s e d o j e n a M . s a d i l a s y s a d a r t n E
: 1 . 4 d a d i v i t c A
5
Proyecto: Telemantenimiento y telegestión de sistemas robotizados y/o automatizados
En las siguientes figuras se observa cómo es la ejecución de esta instrucción cuando el nivel de señal previo corresponde a “0” o “1”.
El programa, también se podría haber hecho con instrucciones Set; Reset y WaitTime
s e l a ñ e s e d o j e n a M . s a d i l a s y s a d a r t n E
: 1 . 4 d a d i v i t c A
6
Proyecto: Telemantenimiento y telegestión de sistemas robotizados y/o automatizados
ACTIVIDAD ENTRADAS y SALIDAS PROGRAMACIÓN CONDICIONAL 4.2 Objetivos de la 01.- Programar el código necesario para que el robot realice una tarea en función del estado de una entrada. actividad: 02.- Entender la estructura de las instrucciones condicionales. 03.- Programar el robot mediante la FlexPendant.
Conocimientos previos:
01.- Entradas y Salidas digitales del robot. Configuración y verificación. 02.- Salto a rutinas.
Conocimientos relacionados:
01.- Manejo de las entradas y salidas en el FlexPendant Manual FlexPendant Capítulo 8 02.- Instrucción IF Manual de Instrucciones, funciones y tipos de datos RAPID. 03.- Instrucción Compact IF Manual de Instrucciones, funciones y tipos de datos RAPID.
Recursos necesarios
01.- Sistema Robot IRB120 u otro de mayor gama.
Archivos de imagen relacionados
01.- Condicional1 Realización condicionada de un hexágono y una pletina con la instrucción IF….THEN o CompactIF. 02.- Condicional2_hex Realización condicionada del hexágono con la instrucción IF… THEN ELSE, cuando la entrada digital es = 1. 03.- Condicional2_ple Realización condicionada de la pletina con la instrucción IF… THEN ELSE cuando la entrada digital es = 0. Nota: No se pueden observar la activación de entradas en la simulación.
Archivos de programa relacionados
01.- Condicional Programación del hexágono y pletina con la instrucción IF… THEN ELSE. 02.- Condicional1 Programación del hexágono y pletina con la instrucción IF… THEN o CompactIF. Pack and GO realizado con RobotStudio 5.14.02.01 y RobotWare 5.14.02_2039. Para visualizar los programas, Archivo\Compartir\Unpack and Work
PROYECTO FINANCIADO POR:
. l a n o i c i d n o c n ó i c a m a r g o r P . s a d i l a s y s a d a r t n E : 2 . 4 d a d i v i t c A
1
Proyecto: Telemantenimiento y telegestión de sistemas robotizados y/o automatizados
ACTIVIDAD ENTRADAS y SALIDAS PROGRAMACIÓN CONDICIONAL 4.2 Objetivos: 1.- Crear un programa de forma que la punta de la herramienta dibuje o siga las dos formas geométricas expresadas en la figura, hexágono y “pletina” . 2.- Cada figura estará programada en una rutina diferente. Todas ellas se llamarán desde la rutina principal o main y en función de dos entradas digitales el robot ejecutará las figuras: Si se activa la entrada digital 1 ( di1), el robot ejecutará el hexágono. Si se activa la entrada digital 2 ( di2), el robot ejecutará la “pletina. Si no se activa ninguna entrada digital, el robot permanecerá en la posición de inicio sin ejecutar ninguna figura.
3.- El programa dispondrá de un punto de inicio alejado de las formas geométricas.
Procedimiento: 1.- Crear un programa siguiendo los pasos descritos en el tema T3. ABB\ Editor de programas\Tareas y programas\Archivo\Nuevo programa. 2.- Crear las rutinas siguiendo los pasos descritos en el tema T3, teniendo en cuenta que la herramienta seleccionada es la llamada puntero que previamente está calibrada. ABB\ Editor de programas pestaña Rutinas\Archivo\Nueva rutina. PROC hexagono() MoveJ p20, MoveL p30, MoveL p40, MoveL p50, MoveL p60, MoveL p70, MoveL p20, MoveL offs ENDPROC
v1000,fine, puntero; v1000,fine, puntero; v1000,fine, puntero; v1000,fine, puntero; v1000,fine, puntero; v1000,fine, puntero; v1000,fine, puntero; (p20,0,0,50), v1000,fine, puntero;
PROC pletina() MoveJ p80, v1000,fine, puntero; MoveL p90, v1000,fine, puntero; MoveL p100, v1000,fine, puntero; MoveC p110, 120, v1000,fine, puntero; MoveL p80, v1000,fine, puntero; ENDPROC
. l a n o i c i d n o c n ó i c a m a r g o r P . s a d i l a s y s a d a r t n E : 2 . 4 d a d i v i t c A
2
Proyecto: Telemantenimiento y telegestión de sistemas robotizados y/o automatizados 3.- Insertar las instrucciones correspondientes a la ll amada condicional de las rutinas mediante la instrucción IF . Para ello, situar el cursor en la instrucción del punto de inicio ( MoveAbsJ jpos10) en la rutina main y Añadir instrucción\IF .
4.- Para insertar la condición (activar la entrada digital 1, di1) clicar dos veces sobre y si las expresiones que aparecen no son válidas como es el caso, buscar el tipo de dato clicando sobre Cambiar tipo de dato. Elegir el tipo de datos signaldi y pulsar OK . Elegir la entrada deseada en la ventana emergente, en este caso di1.
. l a n o i c i d n o c n ó i c a m a r g o r P . s a d i l a s y s a d a r t n E : 2 . 4 d a d i v i t c A
3
Proyecto: Telemantenimiento y telegestión de sistemas robotizados y/o automatizados
5.- Una vez insertada la entrada, para completar la condición (activar la entrada digital 1, di1=1) clicar sobre Editar y elegir ABC… para editar la condición. Con el teclado de la ventana emergente, añadir a di1 =1para completar la condición.
Completar la instrucción realizando la llamada a la rutina hexágono seleccionando la sentencia y realizando la llamada a rutina con la instrucción ProcCall . El procedimiento main una vez insertadas la llamadas condicionales a las rutinas “hexagono” y “pletina” queda de la siguiente forma: PROC main() MoveAbsJ p10, v1000,fine, puntero; ”punto de inicio” IF di1=1 THEN ”llamada condicional a rutina hexágono ” hexagono; ENDIF IF di2=1 THEN ”llamada condicional a rutina pletina ” pletina; ENDIF ENDPROC
. l a n o i c i d n o c n ó i c a m a r g o r P . s a d i l a s y s a d a r t n E : 2 . 4 d a d i v i t c A
4
Proyecto: Telemantenimiento y telegestión de sistemas robotizados y/o automatizados
6.- Ejecutar el programa situando el cursor en main (Depurar\ PP a main) y pulsar el botón Play para comenzar los movimientos del robot. Para poder ejecutar las condiciones, las dos entradas estarán convenientemente cableadas al controlador del robot siguiendo el esquema general expresado en el Tema 4. En el esquema adjunto se aprovecha la fuente de alimentación interna del controlador del robot.
Al ejecutar el programa, el robot realizará el hexágono, la pletina, ambas figuras geométricas o ninguna en función del estado de las dos entradas.
Utilización de la instrucción IF …THEN; ELSE La instrucción IF lleva emparejada por lo general la opción ELSE en los lenguajes de programación de alto nivel conocidos. En el caso de la instrucción RAPID es opcional utilizarla. Se propone una variante del ejemplo anterior en la que: Si la entrada di1 está activada, se ejecutará el hexágono. Si la entrada di1 está desactivada, se ejecutará la pletina. La sintaxis del programa será: PROC main() IF di1=1 THEN hexagono; ”llamada condicional a rutina hexágono ” ELSE pletina; ”llamada condicional a rutina pletina ” ENDIF ENDPROC
7.- Situar el cursor en la instrucción del punto de inicio (MoveAbsJ jpos10) en la rutina main e insertar la instrucción IF tal y como se expresa en el apartado 3 de esta actividad.
. l a n o i c i d n o c n ó i c a m a r g o r P . s a d i l a s y s a d a r t n E : 2 . 4 d a d i v i t c A
5
Proyecto: Telemantenimiento y telegestión de sistemas robotizados y/o automatizados
8.- Teniendo seleccionada todas la instrucción IF (Las tres líneas que la componen) clicar dos veces sobre la selección y en la ventana que aparece, seleccionar Añadir ELSE . Al aceptar con OK , las líneas de programa de la instrucción IF contienen la condición ELSE .
9.- Basta con adecuar el programa a la sintaxis expuesta, siguiendo los apartados 4 y 5, sustituyendo: por la expresión di1=1 detrás de THEN, por la sentencia expresada con la rutina hexagono detrás de ELSE, por la sentencia expresada con la rutina pletina PROC main() IF di1=1 THEN hexagono; ”llamada condicional a rutina hexágono ” ELSE pletina; ”llamada condicional a rutina pletina ” ENDIF ENDPROC
. l a n o i c i d n o c n ó i c a m a r g o r P . s a d i l a s y s a d a r t n E : 2 . 4 d a d i v i t c A
6
Proyecto: Telemantenimiento y telegestión de sistemas robotizados y/o automatizados
Como se puede apreciar en la imagen correspondiente a Añadir ELSE , existe la posibilidad de programar una condición más compleja con Añadir ELSEIF .
Utilización de la instrucción CompactIF Cuando la condición no requiere la alternativa ELSE , existe una instrucción IF compacta, es decir sin ELSE, que se denomina CompactIF . Esta instrucción bastaría para programar el primero de los ejemplos expuestos, realizar el hexágono o la pletina en función de las dos entradas, para ello se seguirán unos pasos parecidos a los expuestos en dicho ejemplo. La sintaxis del programa será: PROC main() IF di1=1 THEN hexagono; ”llamada condicional a rutina hexágono ” IF di2=1 THEN pletina; ”llamada condicional a rutina pletina ” ENDPROC
Como se verificará más tarde, esta instrucción carece de E NDIF
10.- Situar el cursor en la instrucción del punto de inicio ( MoveAbsJ jpos10) en la rutina main e insertar la instrucción CompactIF .
11.- Basta con adecuar el programa a la sintaxis expuesta, siguiendo los apartados 4 y 5, sustituyendo: por la expresión di1=1 o di2=1 detrás de THEN, por la sentencia expresada con la rutina hexagono o pletina PROC main() IF di1=1 hexagono; ”llamada condicional a rutina hexágono ” IF di2=1 pletina; ”llamada condicional a rutina pletina ” ENDPROC
. l a n o i c i d n o c n ó i c a m a r g o r P . s a d i l a s y s a d a r t n E : 2 . 4 d a d i v i t c A
7
Proyecto: Telemantenimiento y telegestión de sistemas robotizados y/o automatizados
12.- Como se observa en la imagen esta instrucción se expresa en una sola línea y carece de ENDIF. Por supuesto no se puede programar la condición ELSE.
. l a n o i c i d n o c n ó i c a m a r g o r P . s a d i l a s y s a d a r t n E : 2 . 4 d a d i v i t c A
8
Proyecto: Telemantenimiento y telegestión de sistemas robotizados y/o automatizados
ACTIVIDAD ENTRADAS y SALIDAS ARRANQUE y PARO MEDIANTE PULSADORES 4.3 Objetivos de la actividad:
01.- Programar las entradas digitales para que el arranque, parada u otras operaciones se puedan realizar sin la ayuda del FlexPendant.
Conocimientos previos:
01.- Entradas y Salidas digitales del robot. Conexión de las mismas. 02.- Entradas y Salidas digitales del robot. Configuración y verificación.
Conocimientos relacionados:
01.- Ejecución en producción Manual FlexPendant Capítulo 7 02.- Manejo de las entradas y salidas en el FlexPendant Manual FlexPendant Capítulo 8
Recursos necesarios
01.- Sistema Robot IRB120 u otro de mayor gama.
Archivos de imagen relacionados
01.- Marcha y paro mediante pulsadores Realización de una pirámide con marcha y paro mediante pulsadores externos. Funcionamiento automático. Nota: No se pueden observar la activación de entradas en la simulación.
Archivos de programa relacionados
01.- Entradas y salidas2 Realización de una pirámide con marcha y paro mediante pulsadores externos. Funcionamiento automático. Pack and GO realizado con RobotStudio 5.14.02.01 y RobotWare 5.14.02_2039. Para visualizar los programas, Archivo\Compartir\Unpack and Work
PROYECTO FINANCIADO POR:
. s e r o d a s l u p e t n a i d e m o r a p y e u q n a r r A . s a d i l a s y s a d a r t n E : 3 . 4 d a d i v i t c A
1
Proyecto: Telemantenimiento y telegestión de sistemas robotizados y/o automatizados
ACTIVIDAD ENTRADAS y SALIDAS ARRANQUE y PARO MEDIANTE PULSADORES 4.3 Objetivos: IMPORTANTE! Esta actividad solamente se puede realizar en modo automático por lo que hay que asegurarse que las medidas de seguridad son las adecuadas ya que el robot no va a funcionar con velocidad reducida. Si no se pueden asegurar las estrictas medidas de seguridad que requiere el funcionamiento automático, no realizar la actividad. 1.- Aprovechando la rutina “piramide” de la actividad 4.1, poner en marcha y parar el robot mediante pulsadores externos es decir, sin utilizar las opciones PP a main, play y stop del FlexPendant.
2.- Mediante las siguientes señales digitales de entrada se activarán: Motores en ON (MotorON ) mediante la entrada di1. Puntero del programa y marcha (PP a main y Play ) mediante la entrada di2. Parada (Stop) mediante la entrada di3.
Procedimiento: 1.- Llamar o crear la rutina “ piramide” de la actividad 4.1, teniendo en cuenta que la herramienta seleccionada es la llamada puntero que previamente está calibrada. ABB\ Editor de programas pestaña Rutinas\Archivo\Nueva rutina. PROC piramide() MoveJ p10, MoveL p20, MoveL p50, MoveL p40, MoveL p30, MoveL p50, MoveL p30, MoveL p20, MoveL offs ENDPROC
v1000,fine, puntero; v1000,fine, puntero; v1000,fine, puntero; v1000,fine, puntero; v1000,fine, puntero; v1000,fine, puntero; v1000,fine, puntero; v1000,fine, puntero; (p20,0,0,150), v1000,fine, puntero;
. s e r o d a s l u p e t n a i d e m o r a p y e u q n a r r A . s a d i l a s y s a d a r t n E : 3 . 4 d a d i v i t c A
2
Proyecto: Telemantenimiento y telegestión de sistemas robotizados y/o automatizados
3.- Programar las entradas digitales para que ejecuten las acciones mencionadas anteriormente (MotoresON, marcha y paro). Actuar sobre ABB\ Configuración y en la siguiente pantalla clicar sobre System Input.
4.- Si no hay ninguna entrada programada, clicar sobre Añadir, o si ya hay entradas programadas, clicar sobre Editar . En la siguiente pantalla asignar: Signal Name: la señal digital de entrada a la que se quiere asignar la tarea. En la figura la entrada digital 1 (di1 ). Action: la acción o tarea propiamente dicha, de acuerdo con las condiciones, poner motores a ON (Motors On ). . s e r o d a s l u p e t n a i d e m o r a p y e u q n a r r A . s a d i l a s y s a d a r t n E : 3 . 4 d a d i v i t c A
3
Proyecto: Telemantenimiento y telegestión de sistemas robotizados y/o automatizados
De esta forma, queda asignada la entrada di1 para que realice la terea Motors ON . Al confirmar la asignación mediante OK , el controlador solicita el reinicio del mismo. Como hay más señales que programar, pulsar No.
5.- Para asignar la segunda entrada, clicar nuevamente sobre Añadir , o si ya hay entradas programadas, clicar sobre Editar . En la siguiente pantalla asignar: Signal Name: La entrada digital correspondiente (di2 ). Action: la acción o tarea propiamente dicha, de acuerdo con las condiciones situar el puntero y arrancar (Start a Main ). Argument1: En esta ocasión, la acción o tarea requiere un argumento exclusivo de la tarea como es, si solamente realiza un solo ciclo o por el contrario sigue en marcha hasta pulsar la parada (Cycle o Continuous ).
. s e r o d a s l u p e t n a i d e m o r a p y e u q n a r r A . s a d i l a s y s a d a r t n E : 3 . 4 d a d i v i t c A
4
Proyecto: Telemantenimiento y telegestión de sistemas robotizados y/o automatizados
6.- Asignar la última entrada a la acción de parar ( Stop ) siguiendo los pasos de los anteriores apartados. Para finalizar confirmar la inicialización del FlexPendant.
6.- Insertar las instrucciones correspondientes a la rutina main: Sintaxis del procedimiento main: PROC main() Reset do1; “desactiva la salida1 o lámpara verde” Set do2; “activa la salida2 o lámpara roja” piramide; “ejecuta la rutina pirámide” MoveAbsJ jpos10\ NoEOffs,v1000,z50, MyTool; “posición de inicio” Reset do2; “desactiva la salida2 o lámpara roja” Set do1; “activa la salida1 o lámpara verde” ENDPROC
7.- Ejecutar el programa pasando la llave de manual a automático pues, como se ha comentado anteriormente, estas operaciones solamente se pueden realizar en este modo de funcionamiento. Respetar extrictamente las normas de seguridad.
Una vez conmutado el modo de funcionamiento, el FlexPendant advierte de que se ha seleccionada el modo automático.
. s e r o d a s l u p e t n a i d e m o r a p y e u q n a r r A . s a d i l a s y s a d a r t n E : 3 . 4 d a d i v i t c A
5
Proyecto: Telemantenimiento y telegestión de sistemas robotizados y/o automatizados
Comentario:
Una vez confirmada la selección del modo automático, al pulsar l a entrada di1, se observa que los motores se ponen en ON sin necesidad de accionar nada más.
Al al pulsar la entrada di2, el programa se ejecuta situando el puntero en la primera instrucción de la rutina main (PP a main y Play ). Para parar la ejecución del programa basta con pulsar la entrada di3 (Stop). En el programa, no hay ninguna instrucción relacionada con estas entradas porque ninguna de ellas interviene en él, solamente intervienen en las acciones asociadas a los programas. El cableado de estas entradas es el que representa la siguiente figura:
. s e r o d a s l u p e t n a i d e m o r a p y e u q n a r r A . s a d i l a s y s a d a r t n E
.
: 3 . 4 d a d i v i t c A
6
Proyecto: Telemantenimiento y telegestión de sistemas robotizados y/o automatizados
ACTIVIDAD DATOS NUMÉRICOS CONTAJE 4.4 Objetivos de la 01.- Programar el código necesario para que el robot realice un contaje de piezas o repeticiones. actividad: 02.- Entender la estructura de los datos numéricos. 03.- Mostrar mensajes útiles en el FlexPendant.
Conocimientos previos:
01.- Datos de programa de tipo num. Crear datos numéricos.
Conocimientos relacionados:
01.- Programación y pruebas. Tipos de datos en el FlexPendant Manual FlexPendant Capítulo 6 02.- Instrucción Incr, Decr Manual de Instrucciones, funciones y tipos de datos RAPID. 03.- Instrucción Clear Manual de Instrucciones, funciones y tipos de datos RAPID. 04.- Instrucción Asignación := Manual de Instrucciones, funciones y tipos de datos RAPID. 05.- Instrucción TPWrite Manual de Instrucciones, funciones y tipos de datos RAPID. 06.- Instrucción TPErase Manual de Instrucciones, funciones y tipos de datos RAPID.
Recursos necesarios
01.- Sistema Robot IRB120 u otro de mayor gama.
Archivos de imagen relacionados
01.- Contador Realización condicionada de una pieza y contaje del nº de repeticiones.
Archivos de programa relacionados
01.- Contador Programación de la pieza y contaje del número de repeticiones.
Nota1: No se pueden observar la activación de entradas en la simulación. Nota2: No se pueden observar el valor del contaje en el FlexPendant.
Pack and GO realizado con RobotStudio 5.14.02.01 y RobotWare 5.14.02_2039. Para visualizar los programas, Archivo\Compartir\Unpack and Work
PROYECTO FINANCIADO POR:
e j a t n o C . s o c i r é m u n s o t a D : 4 . 4 d a d i v i t c A
1
Proyecto: Telemantenimiento y telegestión de sistemas robotizados y/o automatizados
ACTIVIDAD DATOS NUMÉRICOS CONTAJE 4.4 Objetivos: 1.- Crear un programa de forma que al activar una entrada, la punta de la herramienta siga la forma geométrica expresada en la figura.
2.- Mientras la entrada esté activada, la operación se repetirá una y otra vez hasta desactivarla. 3.- Un contador, contará el nº de repeticiones y las mostrará en la pantalla del FlexPendant. 3.-El programa dispondrá de un punto de inicio alejado de las formas geométricas.
Procedimiento: 1.- Crear un programa siguiendo los pasos descritos en el tema T3. ABB\ Editor de programas\Tareas y programas\Archivo\Nuevo programa.
2.- Crear el dato numérico que va a servir para contar el número de repeticiones que va a realizar el robot llamado “CONT1”, para ello clicar en ABB\ Datos de programa. En la pantalla emergente, elegir el tipo de dato clicando dos veces en num.
e j a t n o C . s o c i r é m u n s o t a D : 4 . 4 d a d i v i t c A
2
Proyecto: Telemantenimiento y telegestión de sistemas robotizados y/o automatizados
3.- Pulsando en Nuevo, declarar el dato “ CONT1”, de tipo Variable para poder cambiar su valor y declararlo en el módulo MainModule.
4.- Una vez declarado el dato, aceptarlo pulsando en OK . Si se abre el editor de programas, el módulo main contiene el dato “CONT1” como se puede apreciar en la imagen.
5.- Crear la rutina “figura” siguiendo los pasos descritos en el tema T3, teniendo en cuenta que la herramienta seleccionada es la llamada puntero que previamente está calibrada. ABB\ Editor de programas pestaña Rutinas\Archivo\Nueva rutina. PROC figura() MoveJ p10, MoveL p20, MoveJ p30, MoveL p40, MoveL p50,
v1000,fine, v1000,fine, v1000,fine, v1000,fine, v1000,fine,
puntero; puntero; puntero; puntero; puntero;
e j a t n o C . s o c i r é m u n s o t a D : 4 . 4 d a d i v i t c A
3
Proyecto: Telemantenimiento y telegestión de sistemas robotizados y/o automatizados
MoveJ MoveL MoveL MoveJ MoveL ENDPROC
p60, v1000,fine, puntero; p70, v1000,fine, puntero; p80, v1000,fine, puntero; p90, v1000,fine, puntero; p100, v1000,fine, puntero;
6.- En la rutina main, escribir el programa de acuerdo con la condiciones expresadas en el enunciado. Las instrucciones TPWrite y TPErase, sirven para mostrar o borrar respectivamente datos y/o textos en la pantalla del FlexPendant. PROC main() MoveAbsJ p10, v1000,fine, puntero; ”punto de inicio” IF di1=1 THEN ”llamada condicional a rutina figura ” figura; Incr CONT1”incrementar el contador” TPWrite “ Repeticiones realizadas:” \Num:=CONT1; ”escribir en pantalla el texto entrecomillado tal cual y el valor numérico del contador ” ELSE Clear CONT1; ”poner a cero el contador ” TPErase; ”borrar los mensajes de la pantalla del FlexPendant ” ENDIF ENDPROC
7.- Al ejecutar el programa situando el cursor en main (Depurar\ PP a main) y pulsando el botón Play se observa que, mientras la entrada digital esté activada, los movimientos se repiten incrementando el valor del contador cuyo valor se refleja en la pantalla del FlexPendant.
8.- Para poder programar la instrucción Incr C0NT1que sirve para incrementar el valor del contador cada vez que el puntero del programa pasa por su línea de programación, por tanto contará el número de repeticiones que realiza el robot, insertar la citada instrucción que se encuentra en el grupo Mathematics.
e j a t n o C . s o c i r é m u n s o t a D : 4 . 4 d a d i v i t c A
4
Proyecto: Telemantenimiento y telegestión de sistemas robotizados y/o automatizados
Una vez seleccionada la instrucción, en la pantalla que emerge a continuación, se determina cuál es la expresión que se quiere incrementar sustituyendo en este caso, el genérico por el dato CONT1.
9.- Para poder expresar una información en pantalla, se utiliza la instrucción TPWrite que sirve tanto para expresar un texto (el texto que está entrecomillado) como para poder escribir los valores de algunos datos de programa mediante los argumentos opcionales que tiene dicha instrucción. Para comenzar, se inserta la citada instrucción que se encuentra en el grupo Communicate. Una vez insertada, basta con clicar sobre ella, para completar la instrucción.
e j a t n o C . s o c i r é m u n s o t a D : 4 . 4 d a d i v i t c A
5
Proyecto: Telemantenimiento y telegestión de sistemas robotizados y/o automatizados
En la nueva pantalla se clica sobre String “”, y se edita el texto en las pantallas sucesivas tal y como se ha realizado en anteriores actividades (Editar\ ABC...).
Una vez editado el texto, en el ejemplo “Repeticiones realizadas:”, Clicar sobre Argumento opcional en la barra inferior y en la pantalla siguiente elegir num. Clicar en Utilizar para habilitar el argumento valor numérico al que se le asignará el valor del contador sustituyendo por C0NT1.
e j a t n o C . s o c i r é m u n s o t a D : 4 . 4 d a d i v i t c A
6
Proyecto: Telemantenimiento y telegestión de sistemas robotizados y/o automatizados
Clicando sobre aparecerá una nueva pantalla donde se visualizan todos los datos numéricos que se disponen y se pueden asignar al argumento \Num. Basta con clicar sobre CONT1.
Una vez realizadas las operaciones anteriores se observa como queda la instrucción completa donde se distingue por un lado el texto que aparecerá en pantalla y por otro el valor del dato que se escribirá a continuación.
10.- Completar la programación del MainModule Insertando la opción ELSE a la instrucción IF tal y como se explica en la actividad A4.2, para poder borrar la pantalla mediante la instrucción TPErase y poner a cero el contador mediante la instrucción Clear CONT1.
e j a t n o C . s o c i r é m u n s o t a D : 4 . 4 d a d i v i t c A
7
Proyecto: Telemantenimiento y telegestión de sistemas robotizados y/o automatizados
Para poder programar la instrucción Clear CONT1 se inserta la instrucción que se encuentra en el grupo Mathematics. A continuación se programa de manera similar a la ya mencionada instrucción Incr .
Para poder programar la instrucción TPErase se inserta la instrucción que se encuentra en el grupo Communicate. Como no requiere ningún argumento o texto basta con insertarla.
11.- Las instrucciones Incr CONT1 y Clear C0NT1 se pueden sustituir por instrucciones de asignación (:=): Se puede sustituir Incr C0NT1 por C0NT1:= C0NT1+1 Se puede sustituir Clear C0NT1 por C0NT1:=0
e j a t n o C . s o c i r é m u n s o t a D : 4 . 4 d a d i v i t c A
8
Proyecto: Telemantenimiento y telegestión de sistemas robotizados y/o automatizados
ACTIVIDAD DATOS NUMÉRICOS REPETICIONES 4.5 Objetivos de la 01.- Programar el código necesario para que el robot realice una serie de repeticiones. actividad: 02.- Entender la estructura de las instrucciones de repetición. 03.- Insertar datos útiles desde el FlexPendant.
Conocimientos previos:
01.- Datos de programa de tipo num. Crear datos numéricos.
Conocimientos relacionados:
01.- Programación y pruebas. Tipos de datos en el FlexPendant Manual FlexPendant Capítulo 6 02.- Instrucción While Manual de Instrucciones, funciones y tipos de datos RAPID. 03.- Instrucción TPReadNum Manual de Instrucciones, funciones y tipos de datos RAPID.
Recursos necesarios
01.- Sistema Robot IRB120 u otro de mayor gama.
Archivos de imagen relacionados
01.- Repeticiones Realización de una pieza repetidamente en función del dato introducido desde el FlexPendant.
Archivos de programa relacionados
Repeticiones Realización de una pieza repetidamente en función del dato introducido desde el FlexPendant.
Nota1: No se pueden observar la activación de entradas en la simulación. Nota2: No se pueden observar el valor del contaje en el FlexPendant.
Pack and GO realizado con RobotStudio 5.14.02.01 y RobotWare 5.14.02_2039. Para visualizar los programas, Archivo\Compartir\Unpack and Work
PROYECTO FINANCIADO POR:
s e n o i c i t e p e R . s o c i r é m u n s o t a D : 5 . 4 d a d i v i t c A
1
Proyecto: Telemantenimiento y telegestión de sistemas robotizados y/o automatizados
ACTIVIDAD DATOS NUMÉRICOS REPETICIONES 4.5 Objetivos: 1.- Crear un programa de forma que al activar una entrada, la punta de la herramienta siga la forma geométrica expresada en la figura tantas veces como se seleccione por el FlexPendant.
2.- Un contador, contará el nº de repeticiones y las mostrará en la pantalla del FlexPendant. 3.- Las flechas circulares de la figura indican un cambio en la rotación de la herramienta necesaria por estar los puntos p10 a p50 cerca del origen de coordenadas de la base (Ver simulación). 4.- El programa dispondrá de un punto de inicio alejado de las formas geométricas.
Procedimiento: 1.- Crear un programa siguiendo los pasos descritos en el tema T3. ABB\ Editor de programas\Tareas y programas\Archivo\Nuevo programa.
2.- Crear el dato numérico llamado “CONT1” , o aprovechar el de la anterior actividad, que va a servir para contar el número de repetici ones que va a realizar el robot. Seguir los pasos de la actividad 4.4 Contaje: Clicar en ABB\ Datos de programa. En la pantalla emergente, elegir el tipo de dato clicando en num. Pulsando en Añadir , declarar el dato “CONT1”, de tipo Variable para poder cambiar su valor y declararlo en el módulo programa, MainModule. Una vez declarado el dato, aceptarlo pulsando en OK .
3.- Crear la rutina “figura” siguiendo los pasos descritos en el tema T3, teniendo en cuenta que la herramienta seleccionada es la llamada puntero que previamente está calibrada. ABB\ Editor de programas pestaña Rutinas\Archivo\Nueva rutina. PROC figura() MoveJ p10, MoveL p20, MoveL p30, MoveL p40, MoveL p50, MoveJ p60,
v1000,fine, v1000,fine, v1000,fine, v1000,fine, v1000,fine, v1000,fine,
puntero; puntero; puntero; puntero; puntero; puntero;
s e n o i c i t e p e R . s o c i r é m u n s o t a D : 5 . 4 d a d i v i t c A
2
Proyecto: Telemantenimiento y telegestión de sistemas robotizados y/o automatizados
MoveL MoveL MoveL MoveL MoveJ MoveL ENDPROC
p70, v1000,fine, puntero; p80, v1000,fine, puntero; p90, v1000,fine, puntero; p100, v1000,fine, puntero; p110, v1000,fine, puntero; p10, v1000,fine, puntero;
4.- Además de utilizar las instrucciones TPWrite y TPErase, que como se ha explicado en la actividad anterior sirven para mostrar o borrar respectivamente datos y/o textos en la pantalla del FlexPendant, se va a utilizar la instrucción TPReadnum que sirve para leer un número del FlexPendant y asignarlo a un dato numérico. Así la instrucción: TPReadNum reg1, "Cuantas repeticiones desea hacer?";
Da como resultado lo que se observa en la siguiente figura, presenta un teclado numérico y si selecciona por ejemplo el 3, este valor queda asignado al dato numérico reg1 que el sistema ya lo tiene definido en el módulo user y por tanto no hay que definirlo previamente.
5.- En la rutina main, escribir el programa de acuerdo con la condiciones expresadas en el enunciado. El comienzo de la ejecución está condicionado a la activación de una entrada. PROC main() MoveAbsJ p10, v1000,fine, puntero; ”punto de inicio” Clear CONT1; ”poner a cero el contador ” Clear reg1; ”poner a cero el registro 1 ” TPErase; ”borrar los mensajes de la pantalla del FlexPendant ” IF di1=1 THEN ”llamada condicional” TPReadNum reg1, "Cuantas repeticiones desea hacer?"; WHILE CONT1
s e n o i c i t e p e R . s o c i r é m u n s o t a D : 5 . 4 d a d i v i t c A
3
Proyecto: Telemantenimiento y telegestión de sistemas robotizados y/o automatizados
El programa responde al siguiente organigrama:
INSTRUCCIONES ASOCIADAS
ORGANIGRAMA
MovAbsJ
CONDICIONES DE INICIO: Mover a posición de inicio
Clear CONT1 o CONT1:= 0
CONDICIONES DE INICIO: Poner a 0 el contador CONT1
Clear reg1 o reg1:= 0
CONDICIONES DE INICIO: Poner a 0 el registro reg1
TPErase
BORRAR PANTALLA:
NO
IF di1=1 THEN o WaitDI di1,1
¿Entrada digital activada?
SI TPReadNum reg1
PREGUNTAR: ¿Cuántas repeticiones desea hacer? Reg1
¿Contador repeticiones menor que reg1?
NO
“ ”
WHILE CONT1
SI EJECUTAR RUTINA: Llamada a rutina pieza
ProCall “pieza”
INCREMENTAR contador repeticiones CONT1
Incr CONT1 o CONT1:= CONT1+1
MOSTRAR EN PANTALLA: Nº de repeticiones realizadas CONT1
TPWrite “Nº de repeticiones ”
s e n o i c i t e p e R . s o c i r é m u n s o t a D : 5 . 4 d a d i v i t c A
4
Proyecto: Telemantenimiento y telegestión de sistemas robotizados y/o automatizados
6.- Al ejecutar el programa situando el cursor en main (Depurar\ PP a main) y pulsando el botón Play se observa que, al pulsar la entrada digital, el FlexPendant muestra la pantalla anterior a la espera de introducir un número. Una vez introducido éste, también muestra el número de repeticiones realizadas.
7.- Para poder repetir varias veces una misma operación, se puede utilizar la instrucción WHILE DO en la que la expresión indica la condición para que lo progamado a continuación de DO se ejecute “mientras” se cumpla dicha condición. Para poder programar la instrucción grupo Common.
WHILE…DO se
inserta la misma seleccionándola en el
s e n o i c i t e p e R . s o c i r é m u n s o t a D
Una vez insertada, clicar sobre para poder definir las condiciones para la repetición y en la pantalla siguiente elegir Cambiar tipo de dato para posteriormente escoger el tipo de dato num donde se encuentran tanto el dato CONT1 como el otro dato que se necesita reg1.
: 5 . 4 d a d i v i t c A
5
Proyecto: Telemantenimiento y telegestión de sistemas robotizados y/o automatizados
Para poder definir las condiciones para que se ejecute la repetición, clicar sobre CONT1 y posteriormente elegir Editar\Todos o solo seleccionados para completar las condiciones.
s e n o i c i t e p e R . s o c i r é m u n s o t a D : 5 . 4 d a d i v i t c A
6
Proyecto: Telemantenimiento y telegestión de sistemas robotizados y/o automatizados
Aunque no es el único camino para completar la condición de repetición, el método más sencillo consiste en redactar dichas condiciones con la pantalla para la edición de texto: CONT1
Para finalizar, basta con programar las línea de programa necesarias para que realice la sentencia despues de DO.
7.- La instrucción TPReadNum sirve tanto para expresar un texto (el texto que está entrecomillado), como para asignar a un dato numérico, el valor introducido a través de un teclado que se muestra en la pantalla del FlexPendant. Para comenzar, se inserta la citada instrucción que se encuentra en el grupo Communicate y se clica sobre ella una vez insertada.
s e n o i c i t e p e R . s o c i r é m u n s o t a D : 5 . 4 d a d i v i t c A
7
Proyecto: Telemantenimiento y telegestión de sistemas robotizados y/o automatizados
Al clicar sobre la linea de instrucción, elegir el dato de tipo num que se quiere asociar al valor introducido en la pantalla. Teniendo en cuenta el programa, se elegirá reg1 de entre todos ellos.
Una vez aceptado del dato numérico reg1, falta por completar el texto que se desea aparezca en pantalla. Para editar dicho texto clicar sobre las comillas ( “ ” ) que aparecen en la línea de instrucción.
En la pantalla siguiente, clicar sobre Editar , con las comillas ( “ ” ) seleccionadas y llamar al editor de texto mediante ABC… para poder escribir el texto deseado entre las dos comillas. El editor de texto no proporciona ni acentos ni signos de interrogación al comienzo. El resultado se puede ver en la siguiente figura donde se observa la línea de instrucción completa.
s e n o i c i t e p e R . s o c i r é m u n s o t a D : 5 . 4 d a d i v i t c A
8
Proyecto: Telemantenimiento y telegestión de sistemas robotizados y/o automatizados
8.- La condición de comienzo IF que espera a la activación de la entrada digital para ejecutar las instrucciones comprendidas entre IF…THEN y ENDIF se puede sustituir por la instrucción WaitDI utilizada en la actividad 4.1
s e n o i c i t e p e R . s o c i r é m u n s o t a D : 5 . 4 d a d i v i t c A
9
Proyecto: Telemantenimiento y telegestión de sistemas robotizados y/o automatizados
s e n o i c i t e p e R . s o c i r é m u n s o t a D : 5 . 4 d a d i v i t c A
10
Proyecto: Telemantenimiento y telegestión de sistemas robotizados y/o automatizados
ACTIVIDAD DATOS NUMÉRICOS PIEZA TALADRADA 4.6 Objetivos de la 01.- Programar el código necesario para que el robot realice una operación repetitiva que requiere cambio de herramienta. actividad: 02.- Entender la estructura de las instrucciones de repetición. 03.- Insertar datos útiles desde el FlexPendant.
Conocimientos previos:
01.- Datos de programa de tipo num. Crear datos numéricos.
Conocimientos relacionados:
01.- Programación y pruebas. Tipos de datos en el FlexPendant Manual FlexPendant Capítulo 6 02.- Instrucción TPReadFK Manual de Instrucciones, funciones y tipos de datos RAPID. 03.- Instrucción FOR…DO Manual de Instrucciones, funciones y tipos de datos RAPID. 04.- Instrucción TEST Manual de Instrucciones, funciones y tipos de datos RAPID. 05.- Instrucción GOTO Manual de Instrucciones, funciones y tipos de datos RAPID. 06.- Instrucción Label Manual de Instrucciones, funciones y tipos de datos RAPID.
Recursos necesarios
01.- Sistema Robot IRB120 u otro de mayor gama.
Archivos de imagen relacionados
01.- Pieza taladrada Realización repetitiva de una pieza.
Archivos de programa relacionados
01.- Pieza taladrada Programación de la secuencia y contaje del número de repeticiones. Presentación en pantalla con TPReadNum. 02.- Pieza taladrada1 Programación de la secuencia y contaje del número de repeticiones. Presentación en pantalla con TEST.
Nota1: No se pueden observar la activación de entradas en la simulación. Nota2: No se pueden observar el valor del contaje en el FlexPendant. Nota3: El accionamiento de la pinza se señaliza con la baliza de color rojo. Nota4: El accionamiento del taladro se señaliza con la baliza de color naranja.
Pack and GO realizado con RobotStudio 5.14.02.01 y RobotWare 5.14.02_2039. Para visualizar los programas, Archivo\Compartir\Unpack and Work
PROYECTO FINANCIADO POR:
a d a r d a l a t a z e i P . s o c i r é m u n s o t a D : 6 . 4 d a d i v i t c A
1
Proyecto: Telemantenimiento Telemantenimiento y telegestión de sistemas robotizados y/o automatizados
ACTIVIDAD DATOS NUMÉRICOS PIEZA TALADRADA 4.6 Objetivos: 1.- Crear un programa que taladre 4 agujeros en una pieza. El número de piezas a taladrar se seleccionará a través del FlexPendant.
2.- Las piezas se alimentan por gravedad hasta una posición. Una vez dada la orden de marcha y si el detector de presencia de pieza está activado el brazo robot trasladará la misma a la posición de taladrado mediante unas pinzas neumáticas accionadas mediante electroválvula monoestable. 3.- Una vez en su posición, la pinza irá i rá a recoger el taladro eléctrico y lo asirá para poder realizar los cuatro taladros. 4.- Después de realizar los taladros, el robot dejará el taladro en su soporte y volverá hacia la pieza taladrada para cogerla y depositarla en la rampa de salida. Una vez realizadas el número de piezas pedidas, el brazo irá a una posición de reposo alejada de las piezas. 5.- Un contador, contará el nº de repeticiones y las mostrará en la pantalla del flexPendant. 6.- Las rutinas se crearán en un módulo diferente a MainModule, MainModule, por ejemplo Module1. Module1.
CONDICIONES DE INICIO:
¿ número de piezas pedido = número de iezas realizado?
NO EJECUTAR RUTINA: Coger pieza
EJECUTAR RUTINA: Taladrar pieza
EJECUTAR RUTINA: Depositar pieza
SI a d a r d a l a t a z e i P . s o c i r é m u n s o t a D : 6 . 4 d a d i v i t c A
2
Proyecto: Telemantenimiento Telemantenimiento y telegestión de sistemas robotizados y/o automatizados
Procedimiento: 1.- Crear un programa siguiendo los l os pasos conocidos. ABB\ conocidos. ABB\ Editor Ed itor de programas\Tareas y programas\Archivo\Nuevo programa. programa. 2.- Crear un módulo diferente a MainModule, MainModule, por ejemplo Module1. Module1. ABB\ Editor de programas\Módulos\Archivo\Nuevo módulo. Aceptar módulo. Aceptar la pérdida de puntero y en la última pantalla, escribir el nombre del módulo.
3.- Crear las subrutinas Coger (pieza), (pieza), Taladrar (pieza) y Depositar (pieza) en Module1. Module1. Parea ello, elegir dentro de la pestaña Módulos Módulos el módulo deseado o Module1. Module1. Una vez resaltado, clicar en Mostrar módulo. módulo. Una vez accedido al módulo, clicar en la pastaña Rutinas. Rutinas.
a d a r d a l a t a z e i P . s o c i r é m u n s o t a D : 6 . 4 d a d i v i t c A
3
Proyecto: Telemantenimiento Telemantenimiento y telegestión de sistemas robotizados y/o automatizados
Una vez situados en Rutinas, Rutinas, clicar en Archivo\Nueva en Archivo\Nueva rutina, rutina , editar el nombre de la rutina mediante ABC.. ABC.. y asegurarse de que está declarada en el módulo Module1. Module1. Proceder del mismo modo hasta programar las tres rutinas citadas.
4.- Crear y calibrar las dos herramientas a utilizar en esta actividad, siguiendo los pasos explicados en la actividad 2. Las herramientas se denominarán: Pinza. Para Pinza. Para la pinza que coge y deposita las piezas. Taladro. Para Taladro. Para el taladro que coge la pinza. Nota: Nota: En las imágenes capturadas con el programa RobotStudio para documentar esta actividad, se muestra siempre la herramienta MyTool debido a la complejidad que supone diseñar las herramientas anteriormente citadas. Independientemente de las imágenes, se han de observar los cambios de herramienta en las instrucciones contenidas en las rutinas. 5.- En la rutina Coger definir definir el programa para que el robot coja la pieza con la pinza en la posición de alimentación de piezas y la deposite en la de taladrado . Se necesita que el detector de presencia de pieza di2 esté di2 esté activado. PROC Coger() WaitDI di2,1; “Presencia de pieza en la posición “ coger”” MoveJ p10, v1000,fine, pinza; “posicionarse para coger pieza en el alimentador ” Set do1; “accionar la electroválvula para cierre de pinza ” Set do3; “encendido de piloto pinza cerrada ” MoveL offs (p10,0,0,20), v1000,fine, pinza; “Subir pieza verticalmente ” MoveJ offs (p20,0,0,20),v1000,fine, pinza; “posicionarse para soltar pieza en el taladrado 20mm encima del puesto ” MoveJ p20, v1000,fine, pinza; “posarse para soltar pieza en el taladrado ” Reset do1; “apertura de pinza ” Reset do3; “apagado de piloto pinza cerrada ” ENDPROC
a d a r d a l a t a z e i P . s o c i r é m u n s o t a D : 6 . 4 d a d i v i t c A
4
Proyecto: Telemantenimiento y telegestión de sistemas robotizados y/o automatizados
6.- En la rutina Taladrar definir el programa para que el robot haga las siguientes operaciones: Posicionarse en el punto donde está el taladro, coger el taladro con la pinza. Posicionarse en primer punto de taladrado, cambiando la herramienta en las instrucciones y haciendo un movimiento vertical de bajada y subida. El taladro funcionará de modo contínuo mientras realiza los cuatro agujeros siempre que el detector de presencia de pieza di3 esté activado. Depositar el taladro en su soporte, liberando la pinza y parando el motor del taladro. PROC Taladrar() WaitDI di3,1; “Presencia de pieza en la posición “ taladrar”” MoveJ p30, v1000,fine, pinza; “posicionarse para coger el taladro de su almacen ” Set do1; “accionar la electroválvula para cierre de pinza para coger taladro ” Set do2; “accionar el taladro ” Set do3; “encendido de piloto pinza cerrada ” Set do4; “encendido de piloto taladro funcionando ” MoveJ p40, v1000,fine, taladro; “posición vertical agujero1, herramienta taladro ” MoveL p50, v100,fine, taladro; “taladrar agujero1 a baja velocidad ” MoveL p40, v100,fine, taladro; “retirada taladro agujero1 a baja velocidad ” MoveJ p60, v1000,fine, taladro; “posición vertical agujero2, herramienta taladro ” MoveL p70, v100,fine, taladro; “taladrar agujero2 a baja velocidad ” MoveL p60, v100,fine, taladro; “retirada taladro agujero2 a baja velocidad ” MoveJ p80, v1000,fine, taladro; “posición vertical agujero3, herramienta taladro ” MoveL p90, v100,fine, taladro; “taladrar agujero3 a baja velocidad ” MoveL p80, v100,fine, taladro; “retirada taladro agujero3 a baja velocidad ” MoveJ p100, v1000,fine, taladro; “posición vertical agujero4, herramienta taladro ” MoveL p110, v100,fine, taladro; “taladrar agujero4 a baja velocidad ” MoveL p100, v100,fine, taladro; “retirada taladro agujero4 a baja velocidad ” MoveJ p30, v1000,fine, taladro; “posicionarse para dejar el taladro en su almacen ” Reset do2; “apagado del taladro ” Reset do1; “apertura de pinza, para dejer taladro ” Reset do3; “apagado de piloto pinza cerrada ” Reset do4; “apagado de piloto taladro funcionando ”
ENDPROC
7.- En la rutina Depositar definir el programa para que el robot haga las siguientes operaciones: Posicionarse en la vertical de la pieza taladrada, cambiando la herramienta a pinza para poder coger la pieza. Bajar verticalmente para posteriormente cerrar la pinza para coger la pieza. Subir y depositar la pieza taladrada en la rampa de salida, liberando la pinza. PROC Taladrar() MoveJ p120, v1000,fine, pinza; “posicionarse para coger la pieza taladrada ” MoveL p130, v1000,fine, pinza; “bajar para coger la pieza taladrada ” Set do1; “accionar la electroválvula para cierre de pinza para coger pieza ” Set do3; “encendido de piloto pinza cerrada ” MoveL p120, v1000,fine, pinza; “subir la pieza taladrada para no arrastrarla ” MoveL p140, v1000,fine, pinza; “posicionarse soltar la pieza taladrada ” MoveL p150, v1000,fine, pinza; “depositar la pieza taladrada ” Reset do1; “apertura de pinza, para dejer pieza taladrada ” Reset do3; “apagado de piloto pinza cerrada ” MoveL p140, v1000,fine, pinza; “posicionarse en vertical para ir a posiciones iniciales ” ENDPROC
a d a r d a l a t a z e i P . s o c i r é m u n s o t a D : 6 . 4 d a d i v i t c A
5
Proyecto: Telemantenimiento y telegestión de sistemas robotizados y/o automatizados
7.- En la rutina Main definir el programa para que el robot haga las siguientes operaciones: Posicionarse en un punto de inicio. Comenzar con la orden de marcha. Preguntar cuantas piezas se desean realizar. Repetir las rutinas por orden tantas veces como piezas solicitadas mediante la instrucción FOR. PROC Main() MoveAbsJ jpos10 ,v1000,z100, pinza; “posición de inicio ” TPErase; ”borrar los mensajes de la pantalla del FlexPendant ” WaitDI di1, 1; “esperar a la orden de marcha ” TPReadNum reg1, "Numero de piezas a realizar: " ;“nº de piezas guardadas en “ reg1”” FOR i FROM 1 TO reg1 DO “repetir el blucle tantas veces como valga la variable “ reg1””
Coger; “saltar a la rutina “ coger” con la instrucción ProcCall” Taladrar; “saltar a la rutina “ taladrar” con la instrucción ProcCall” Depositar; “saltar a la rutina “ depositar” con la instrucción ProcCall” ENDFOR ENDPROC
8.- Recordar que las instrucciones TPErase y TPReadNum sirven para, a través de la pantalla del FlexPendant, borrar datos y/o textos y leer un número del FlexPendant asignándolo a un dato numérico respectivamente. En la siguiente figura se observa que estando el robot en la posición de inicio, la pantalla del FlexPendant requiere un número de piezas a realizar que en la imagen es de 6:
a d a r d a l a t a z e i P . s o c i r é m u n s o t a D : 6 . 4 d a d i v i t c A
6
Proyecto: Telemantenimiento y telegestión de sistemas robotizados y/o automatizados
9.- Para poder repetir varias veces una misma operación, se va a utilizar en esta actividad la instrucción FOR FROM TO DO en la que: La expresión indica el nombre del dato que contendrá el valor del contador del bucle actual. Este dato se declara automáticamente. La expresión indica el valor inicial deseado para el contador del bucle. La expresión indica el valor final deseado para el contador del bucle. Para poder programar la instrucción FOR…DO se inserta la misma seleccionándola en el grupo Common.
Una vez insertada, clicar sobre para poder definir el contador de bucle y escribiendo con el editor de texto el dato i que es como el programa identificará dicho contador.
A continuación, clicar sobre la primera ligada a la expresión FROM para poder definir el valor inicial del contador de bucle y en la pantalla siguiente elegir Solo seleccionados para posteriormente escribir con el editor de texto el dato 1 o valor de comienzo de contaje:
a d a r d a l a t a z e i P . s o c i r é m u n s o t a D : 6 . 4 d a d i v i t c A
7
Proyecto: Telemantenimiento y telegestión de sistemas robotizados y/o automatizados
Por último, clicar sobre la segunda ligada a la expresión TO para poder definir el valor final del contador de bucle y en la pantalla siguiente elegir el dato deseado o reg1 que no hace falta definir previamente porque ya viene definido por defecto como dato numérico:
Para completar la instrucción basta con programar las líneas necesarias para que realice la sentencias despues de DO. Como son llamadas a rutinas recordar que hay que utilizar la instrucción ProcCall para la llamada, la instrucción completa quedaría del siguiente modo:
Elección de rutinas mediante la instrucción TEST: 10.- Se puede completar esta actividad realizando un pequeño menú mediante la instrucción TEST que elija si quiere realizar el programa completo o por el contrario solamente se quiere realizar una rutina determinada. Junto con la citada instrucción, se utilizará TPReadFK parecida a la utilizada TPReadNum para poder asignar un valor numérico pero con otra presentación en la pantalla del FlexPendant. El programa main quedará de la siguiente manera: PROC Main() MAIN” para poder saltar a ella con GOTO ” MAIN: “etiqueta llamada “ TPReadFK reg2, "Que desea realizar: ",stEmpty,stEmpty,stEmpty,"TODO","TALADRAR"; “Elección por pantalla en 5 zonas diferentes ” TEST reg2 “elección del caso según el valor de la variable “ reg2”” CASE 4: “si el valor de “reg2” vale 4:” TPErase; “borrar pantalla ” GOTO TODO; “saltar a la etiqueta “ TODO ” o programa completo” CASE 5: “si el valor de “reg2” vale 5:” TPErase; “borrar pantalla ” Taladrar; “saltar a rutina “ Taladrar”” GOTO MAIN; “saltar a la etiqueta “ MAIN ” o inicio de programa” ENDTEST TODO: “etiqueta llamada “ TODO” para poder saltar a ella con GOTO ” MoveAbsJ jpos10 ,v1000,z100, pinza; “posición de inicio ” TPErase; ”borrar los mensajes de la pantalla del FlexPendant ” WaitDI di1, 1; “esperar a la orden de marcha ” TPReadNum reg1, "Numero de piezas a realizar: " ;“nº de piezas guardadas en “ reg1”” FOR i FROM 1 TO reg1 DO “repetir el blucle tantas veces como valga “ reg1”” Coger; “saltar a la rutina “ coger” con la instrucción ProcCall” Taladrar; “saltar a la rutina “ taladrar” con la instrucción ProcCall” Depositar; “saltar a la rutina “ depositar” con la instrucción ProcCall” ENDFOR ENDPROC
a d a r d a l a t a z e i P . s o c i r é m u n s o t a D : 6 . 4 d a d i v i t c A
8
Proyecto: Telemantenimiento y telegestión de sistemas robotizados y/o automatizados
11.- Para insertar las etiquetas MAIN y TODO a las que se puede saltar con la instrucción GOTO insertar la instrucción Label , clicar en y con el editor de texto de la siguiente pantalla, editar la etiqueta, en este caso MAIN , como se ve en la figura:
Para insertar las llamadas a las etiquetas MAIN y TODO añadir donde corresponda, la instrucción GOTO, clicar en y elegir la etiqueta, que previamente ha de estar definida, a la que se quiere saltar en la siguiente pantalla, en este caso MAIN , como se ve en la figura:
12.- Insertar la instrucción TPReadFK , y en la pantalla que emerge, elegir el dato numérico asociado a la misma, en este caso reg2, como se ve en la figura:
El formato de la instrucción TPReadFK es el siguiente: TPReadFK reg2, "Que desea realizar: ",stEmpty,stEmpty,stEmpty,"TODO","TALADRAR";
Con este formato, se muestra el texto "Que desea realizar: " en la pantalla del FlexPendant y se activan las teclas de función 4 y 5 usando las cadenas de texto “TODO” y “TALADRAR” respectivamente (consultar la figura siguiente).
a d a r d a l a t a z e i P . s o c i r é m u n s o t a D : 6 . 4 d a d i v i t c A
9
Proyecto: Telemantenimiento y telegestión de sistemas robotizados y/o automatizados La ejecución del programa espera hasta que se presiona una de las teclas de función, la tecla 4 o la 5. En otras palabras, se asigna a reg2 el valor 4 ó 5 en función de cuál de las teclas se presione.
Para poder editar el texto que aparece en pantalla, clicar sobre las comillas y en la nueva pantalla que emerge, elegir Editar\Solo seleccionados o Todos si queremos editar la instrucción completa. Con el editor de textos que aparece con cualquiera de las opciones editaremos el texto correspondiente.
Para poder editar el texto de las teclas de función, clicar sobre et texto stEmpty correspondiente al lugar donde se desea que aparezcan y en la nueva pantalla que emerge, elegir Editar \ ABC… En este caso también, con el editor de textos que aparece, editaremos el texto correspondiente.
a d a r d a l a t a z e i P . s o c i r é m u n s o t a D : 6 . 4 d a d i v i t c A
10
Proyecto: Telemantenimiento y telegestión de sistemas robotizados y/o automatizados
13.- Mediante la instrucción TEST se ejecutarán instrucciones diferentes en función del valor de una expresión o un dato. En el caso del programa escrito: TEST reg2 “elección del caso según el valor de la variable “ reg2”” CASE 4: “si el valor de “reg2” vale 4:” TPErase; “borrar pantalla ” GOTO TODO; “saltar a la etiqueta “ TODO ” o programa completo” CASE 5: “si el valor de “reg2” vale 5:” TPErase; “borrar pantalla ” Taladrar; “saltar a rutina “ Taladrar”” GOTO MAIN; “saltar a la etiqueta “ MAIN ” o inicio de programa” ENDTEST
Se ejecutan instrucciones diferentes en función del valor de reg2 que se ha asignado mediante la instrucción TPReadFK :
Si el valor es 4 (TODO) se ejecutan: TPErase o borrado de la pantalla del FlexPendant. GOTO TODO o salto a la etiqueta TODO o programa completo.
Si el valor es 5 (TALADRAR) se ejecutan: TPErase o borrado de la pantalla del FlexPendant. Taladrar solo la rutina de taladrado. GOTO MAIN o salto a la etiqueta MAIN o comienzo de programa.
Se puede añadir DEFAULT y ejecutar: TP Write “Elección incorrecta” . Stop o parada del programa. Seleccionar la instrucción TEST del grupo Prog.Flow y al insertarla se observa que solamente se puede editar un CASE .
Para insertar más casos o CASE , clicar sobre la instrucción anterior y añadir todos los necesarios o también se puede añadir DEFAULT
a d a r d a l a t a z e i P . s o c i r é m u n s o t a D : 6 . 4 d a d i v i t c A
11
Proyecto: Telemantenimiento y telegestión de sistemas robotizados y/o automatizados
Con las herramientas de edición que se han utilizado anteriormente, editar todas las expresiones y sentencias hasta completar la instrucción como se ilustra en la figura:
El programa presentará 2 pantallas: una para elegir que operación se desea realizar y otra el número de piezas a realizar solamente en el caso de elegir TODO.
a d a r d a l a t a z e i P . s o c i r é m u n s o t a D : 6 . 4 d a d i v i t c A
12
Proyecto: Telemantenimiento y telegestión de sistemas robotizados y/o automatizados
ACTIVIDAD BASES DE COORDENADAS OBJETO DE TRABAJO 4.7 Objetivos de la actividad:
01.- Programar el código necesario para realizar un cambio en las coordenadas objeto de trabajo. 02.- Entender la estructura de los datos wobjdata.
Conocimientos previos:
01.- Datos de programa de tipo wobjdata. Crear objetos de trabajo.
Conocimientos relacionados:
01.- Programación y pruebas. Tipos de datos en el FlexPendant Manual FlexPendant Capítulo 6 02.- Datos wobjdata Manual de Instrucciones, funciones y tipos de datos RAPID.
Recursos necesarios
01.- Sistema Robot IRB120 u otro de mayor gama.
Archivos de imagen relacionados
01.- Objeto de trabajo1 Realización de la pieza con la mesa en la posición original. 02.- Objeto de trabajo2 Realización de la misma pieza con la mesa girada. Nota1: No se pueden observar la activación de entradas en la simulación.
Archivos de programa relacionados
01.- Objeto de trabajo1 Realización de la pieza con la mesa en la posición original. 02.- Objeto de trabajo2 Realización de la misma pieza con la mesa girada. Pack and GO realizado con RobotStudio 5.14.02.01 y RobotWare 5.14.02_2039. Para visualizar los programas, Archivo\Compartir\Unpack and Work
PROYECTO FINANCIADO POR:
. o j a b a r t e d o t e j b O : 7 . 4 d a d i v i t c A
1
Proyecto: Telemantenimiento y telegestión de sistemas robotizados y/o automatizados
ACTIVIDAD BASES DE COORDENADAS OBJETO DE TRABAJO 4.7 Aclaración: Se trata de entender y programar correctamente coordenadas de objeto de trabajo, una actividad que resulta más propia del tema 2. Como se ha valorado que se requiere una cierta destreza y habilidad que se adquieren con la ejecución de las actividades hasta ahora desarrolladas, ésta se incluye en esta colección de actividades.
Objetivos: 1.- Crear un programa de forma que la punta de la herramienta dibuje o siga un pentágono que está ubicado en una mesa.
2.- Sin modificar los datos robtarjet correspondientes a l os puntos que definen la pieza, al girar la mesa, el robot debe debe de seguir realizando la misma pieza sobre la mesa desplazada. 3.- Utilizar coordenadas de objeto de trabajo o datos de tipo wobjdata. . o j a b a r t e d o t e j b O : 7 . 4 d a d i v i t c A
2
Proyecto: Telemantenimiento y telegestión de sistemas robotizados y/o automatizados
Procedimiento: Paso 1.- Crear el dato correspondiente al objeto de trabajo (mesa en posición original) 1.- Clicar en ABB\Datos de programa, en la siguiente pantalla clicar en wobjdata y por último clicar en Nuevo
2.- Declarar el objeto de trabajo que se va a definir.
. o j a b a r t e d o t e j b O
El nombre del objeto: wobj1 El tipo de almacenamiento: Persistente El Módulo: MainModule Seleccionar el módulo desde el que se desea declarar la herramienta.
: 7 . 4 d a d i v i t c A
3
Proyecto: Telemantenimiento y telegestión de sistemas robotizados y/o automatizados
Paso 2.- Definir la base de coordenadas del objeto de trabajo. 3.- Una vez declarado el objeto de trabajo wobj1 hay que definir sus características. Para ello, clicar en Editar para después hacerlo en Definir .
4.- En la pantalla emergente, seleccinar Mét. Usuario\3 puntos.
5.- Con la ayuda del joystick, mover el robot hasta el punto X1 situado en un punto cualquiera de la arista paralela al eje x. Una vez situado el robot clicar en Modificar posición para grabar el primer punto.
. o j a b a r t e d o t e j b O
6.- Mover el robot hasta el punto X2 situado en un punto cualquiera de la arista paralela al eje X más alejado que el X1. Una vez situado el robot clicar en Modificar posición para grabar el segundo punto o punto de usuario X2.
: 7 . 4 d a d i v i t c A
4
Proyecto: Telemantenimiento y telegestión de sistemas robotizados y/o automatizados
7.- Mover el robot hasta el punto Y1 situado en un punto cualquiera de la arista paralela al eje Y. Una vez situado el robot clicar en Modificar posición para grabar el tercer punto o punto de usuario Y1.
Una vez grabados los tres puntos aceptar los puntos del nuevo objeto de trabajo con OK .
8.- Antes de comenzar a programar la pieza, pentágono en el ejemplo, es muy Importante que el objeto de trabajo esté referenciada a wobj1 u objeto de trabajo definido cuyas coordenadas y rotación distan mucho del wobj0 u objeto de trabajo por defecto. Elegir dicho objeto en Objeto de trabajo de la pantalla movimiento.
. o j a b a r t e d o t e j b O : 7 . 4 d a d i v i t c A
5
Proyecto: Telemantenimiento y telegestión de sistemas robotizados y/o automatizados
9.- En la rutina Main u otra, definir el programa: PROC Main() MoveAbsJ jpos10,v1000,z100, pinza; “posición de inicio” Pentagono; “saltar a la rutina “ pentagono” con la instrucción ProcCall” ENDPROC PROC Pentagono() MovJ MovL MovL MovL MovL MovL
P10,v1000,z100, pinza\WObj:= P20,v1000,z100, pinza\WObj:= P30,v1000,z100, pinza\WObj:= P40,v1000,z100, pinza\WObj:= P50,v1000,z100, pinza\WObj:= P10,v1000,z100, pinza\WObj:=
wobj1; wobj1; wobj1; wobj1; wobj1; wobj1;
ENDPROC
Como se observa en las líneas de programación, al no estar trabajando con el objeto de trabajo que el programa ofrece por defecto, aparece especificado el nuevo objeto de trabajo como: \WObj:= wobj1;
Esto ha sido gracias a que en la opción movimiento, se ha especificado así, por tanto todos los puntos de la pieza están referenciados a este objeto de trabajo o wobj1. Comprobar que el programa se ejecuta correctamente.
Paso 3.- Definir otras bases de coordenadas de objeto de trabajo. 10.- Siguiendo los pasos anteriores, declarar dos nuevos objetos de trabajo, wobj2 y comun. El objeto de trabajo comun, dejarlo como está sin embargo definir las características del objeto de trabajo wobj2.
El bojeto de trabajo comun, se utilizará de “comodín” y mediante una instrucción de asignación, se elegirá entre wobj1 o wobj2 de este modo: comun:= wobj1; comun:= wobj2;
Al ser una asignación el tipo de dato en un lado y otro de la asignación debe de ser del mismo tipo, por eso se ha definido el dato comun como dato de tipo wobjdata.
Mover la mesa de trabajo y una vez definido el objeto de trabajo, wobj2, definirlo. Recordar que hay que clicar en Editar para después hacerlo en Definir .
. o j a b a r t e d o t e j b O : 7 . 4 d a d i v i t c A
6
Proyecto: Telemantenimiento y telegestión de sistemas robotizados y/o automatizados
11.- Situar los tres puntos a partir del vértice utilizada para definir wobj1. Proceder del mismo modo recordando que no hace falta que la distancia entre puntos sea la misma sino que la importante es la orientación.
Si los puntos no tienen el orden adecuado, daría como resultado un sistema de coordenadas invertido en el eje Z como se aprecia en la figura. Para entender este fenómeno aplicar la regla de la mano derecha explicada en el tema 2.
. o j a b a r t e d o t e j b O : 7 . 4 d a d i v i t c A
7
Proyecto: Telemantenimiento y telegestión de sistemas robotizados y/o automatizados
12.- Modificar el programa para que el robot realice la pieza independientemente que la mesa esté en una posición o en otra: PROC Main() MoveAbsJ jpos10,v1000,z100, pinza; “posición de inicio” IF di1=1 THEN comun:= wobj1; “Si la entrada 1 está activada, trabajar con “ wobj1” o mesa en posición original ” ELSE comun:= wobj2; “Si la entrada 1 no está activada, trabajar con “ wobj2” o mesa girada” ENDIF Pentagono; “saltar a la rutina “ pentagono” con la instrucción ProcCall” ENDPROC PROC Pentagono() MovJ MovL MovL MovL MovL MovL
P10,v1000,z100, pinza\WObj:= P20,v1000,z100, pinza\WObj:= P30,v1000,z100, pinza\WObj:= P40,v1000,z100, pinza\WObj:= P50,v1000,z100, pinza\WObj:= P10,v1000,z100, pinza\WObj:=
comun; comun; comun; comun; comun; comun;
ENDPROC
Observar que la rutina “ pentagono” tiene como objeto de trabajo el denominado “comun” para que en la asignación realizada en la condición IF , adopte el objeto de trabajo de la mesa en posición original o wobj1 o el objeto de trabajo de la mesa girada o wobj2.
. o j a b a r t e d o t e j b O : 7 . 4 d a d i v i t c A
8
Proyecto: Telemantenimiento y telegestión de sistemas robotizados y/o automatizados
ACTIVIDAD PROGRAMACIÓN EJERCICIOS PROPUESTOS 4.8 1.- Ejercicio de repetición con desplazamiento Se debe realizar el programa para un robot para que dibuje la misma pieza sobre la misma hoja de papel con un desplazamiento entre piezas de 100 mm en el eje X y 200 mm en el eje Y. Para que el resultado final sea similar al que se puede ver en la figura
Recomendaciones Se trata de realizar el programa sin necesidad de programar las 12 piezas, sino que se debe programar una sola vez la pieza en la primera posición, 1 y desplazar esta programación a la nueva pieza aplicándole el desplazamiento indicado en el enunciado. Hay varias alternativas, entre ellas: 1.- Puede utilizarse las instrucciones para el desplazamiento de una parte de un programa: PdispOn, PdispOff. 2.- Pueden modificarse los valores de las coordenadas de las posiciones. 3.- Desplazando el objeto de trabajo (WorkObject)
2.- Ejercicio de dibujo de una figura sobre un papel que no siempre está en la misma posición Se debe realizar el programa de un robot para que dibuje una figura sobre una pizarra pequeña, con la particularidad de que dicha pizarra no se encuentra siempre en la misma posición, por lo que antes de realizar el dibujo, el robot debe buscar donde está la pizarra y en función de ello desplazar el programa. Vease como ejemplo que las siguientes figuras: P2 P1
P2
P1
P1
P2
P3 P3
P3
. s o t s e u p o r p s o i c i c r e j E . n ó i c a m a r g o r P : 8 . 4 d a d i v i t c A
1
Proyecto: Telemantenimiento y telegestión de sistemas robotizados y/o automatizados
Procedimiento Se debe crear un programa para dibujar la figura sobre la pizarra u otra superficie con un workobject determinado. Realizar una rutina para la definición automática del workobject de la nueva posición de la pizarra, realizando una búsqueda de las 3 esquinas, P1, P2 y P3 para la definición del nuevo workobject, y una vez realizado se pude ejecutar la rutina del dibujo sobre la pizarra en la nueva posición. La búsqueda se debe hacer con un sensor conectado a una entrada digital para buscar la esquina deseada. Este sensor puede ser un final de carrera o un sensor fotoeléctrico.
3.- Ejercicio de paletización Se debe realizar el programa para un robot de una instalación de paletizado con un robot provisto de una pinza para coger piezas según se ve en el siguiente layout: Cinta de entrada piezas
Pallet piezas (Formato 3 x 2 x 4)
ENTRADAS: P_Enpos
Pieza en la posición de recogida
Pinza_Cerrada
Indica que la pinza está cerrada
Pinza_Abierta
Indica que la pinza está abierta
Pallet_Enpos
Indica que el pallet está en la posición adecuada
SALIDAS: A_Pinza
Abrir pinza
C_Pinza
Cerrar pinza
Fin_Pallet
Señal que indica que se ha completado el pallet y se debe cambiar
Descripción del proceso Disponemos de una instalación como la de la figura, que simularemos definiendo las E/S que se han indicado anteriormente y que trabaja de la siguiente manera:
. s o t s e u p o r p s o i c i c r e j E . n ó i c a m a r g o r P : 8 . 4 d a d i v i t c A
2
Proyecto: Telemantenimiento y telegestión de sistemas robotizados y/o automatizados
1. La pieza llega por una cinta trasportadora a la posición de recogida, en este momento la señal de entrada P_Enpos. 2.
EL robot va a recoger la pieza, cuando está en la posición de recogida, activa la señal C_Pinzay espera que se active la entradaPinza_Cerrada.
3. El robot va al pallet, verifica la señal Pallet_Enpos y deja la pieza en la posición calculada correspondiente, activa la salida A_Pinza y espera la señal Pinza_Abierta antes de marcharse a buscar otra pieza.
4.- Ejercicio de paletización con repetición Se debe realizar el paletizado, en donde el paletizarlas en el pallet recoja, según se ve en el siguiente
programa para un robot robot con una pinza 1 o en el 2 en función layout:
de una instalación de para coger piezas y del tipo de pieza que se
Cinta de entrada piezas
Pallet piezas (Formato 2 x 2 x 3)
Pallet piezas (Formato 3 x 2 x 4)
ENTRADAS P_Enpos
Pieza en la posición de recogida
Pinza_Cerrada
Pinza cerrada
Pinza_Abierta
Pinza abierta
Pallet_Enpos_1
Pallet_1 está en la posición adecuada
Pallet_Enpos_2
Pallet_2 está en la posición adecuada
Pieza_1
La pieza a recoger es para el pallet 1
Pieza_2
La pieza a recoger es para el pallet 2
SALIDAS A_Pinza
Abrir pinza
C_Pinza
Cerrar pinza
Fin_Pallet_1
Señal que indica que se ha completado el pallet 1 y se debe cambiar
Fin_Pallet_2
Señal que indica que se ha completado el pallet 2 y se debe cambiar
. s o t s e u p o r p s o i c i c r e j E . n ó i c a m a r g o r P : 8 . 4 d a d i v i t c A
3