Está en la página 1de 71

Proyecto: Telemantenimiento y telegestión de sistemas robotizados y/o automatizados

Tema 4: ENTRADAS y SALIDAS

ENTRADAS y SALIDAS

4.1 Entradas y salidas del robot


4
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 tensión es el siguiente:
-XP7
DSQC-652
INPUT CH 1...8 21 INPUT 01
22 INPUT 02
23 INPUT 03
24 INPUT 04
25 INPUT 05
26 INPUT 06
0V 27 INPUT 07
28 INPUT 08
INPUT CH 9...16 31 INPUT 09
32 INPUT 10
33 INPUT 11
34 INPUT 12
35 INPUT 13
36 INPUT 14
0V 37 INPUT 15
38 INPUT 16

OUTPUT CH 1...8
<1 1 OUTPUT 01
2 OUTPUT 02
3 OUTPUT 03
4 OUTPUT 04
5 OUTPUT 05
6 OUTPUT 06
0V 7 OUTPUT 07
8 OUTPUT 08
OUTPUT CH 9...16
<1 11 OUTPUT 09
12 OUTPUT 10
13 OUTPUT 11
14 OUTPUT 12
15 OUTPUT 13
16 OUTPUT 14
0V 17 OUTPUT 15
18 OUTPUT 16

-XS10
Tema 4: Entradas y salidas.

1 24V OUT
2 0V OUT
24V 3 0V OUTPUT
4 24V OUTPUT
5 0V Input
6

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

Tema 4: Entradas y salidas.

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: identificar la tarjeta con un nombre cualquiera. Por ejemplo t1.


En Type of Unit: identificar la tarjeta instalada en el sistema robot. En el ejemplo
d652. En su defecto elegir Virtual.
En Connected to 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

Tema 4: Entradas y salidas.

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
Tema 4: Entradas y salidas.

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


Tema 4: Entradas y salidas.

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.

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.

Tema 4: Entradas y salidas.

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.

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.

Tema 4: Entradas y salidas.

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 di4 di5 di6 di7


Grupo de entradas Input 4 Input 5 Input 6 Input 7
Valor binario 1 0 0 1
Valor decimal 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
Tema 4: Entradas y salidas.

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)

8
Proyecto: Telemantenimiento y telegestión de sistemas robotizados y/o automatizados
Tema 4: ENTRADAS y SALIDAS

PROYECTO FINANCIADO POR:


Tema 4: Entradas y salidas.

9
Proyecto: Telemantenimiento y telegestión de sistemas robotizados y/o automatizados

ACTIVIDAD ENTRADAS y SALIDAS


4.1 MANEJO DE SEÑALES

Objetivos de la 01.- Programar el código necesario para reconocer las entradas digitales.
actividad: 02.- Programar el código necesario para activar las salidas digitales.
03.- Entender la estructura de las instrucciones con entradas y salidas.

Conocimientos 01.- Entradas y Salidas digitales del robot. Conexión de las mismas.
previos: 02.- Entradas y Salidas digitales del robot. Configuración y verificación

Conocimientos 01.- Manejo de las entradas y salidas en el FlexPendant Manual


relacionados: 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 01.- Sistema Robot IRB120 u otro de mayor gama.


necesarios

Archivos de 01.- Entradas y salidas1 Realización condicionada de una pirámide a la


imagen espera de una señal de entrada. Activación de luz verde y roja.
relacionados 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 01.- Entradas y salidas Realización condicionada de una pirámide a la


programa espera de una señal de entrada. Activación de luz verde y roja.
relacionados Actividad 4.1: Entradas y salidas. Manejo de señales
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:

1
Proyecto: Telemantenimiento y telegestión de sistemas robotizados y/o automatizados

ACTIVIDAD ENTRADAS y SALIDAS


4.1 MANEJO DE SEÑALES

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.
Actividad 4.1: Entradas y salidas. Manejo de señales

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, v1000,fine, puntero;
MoveL p20, v1000,fine, puntero;
MoveL p50, v1000,fine, puntero;
MoveL p40, v1000,fine, puntero;
MoveL p30, v1000,fine, puntero;
MoveL p50, v1000,fine, puntero;
MoveL p30, v1000,fine, puntero;
MoveL p20, v1000,fine, puntero;
MoveL offs (p20,0,0,150), v1000,fine, puntero;
ENDPROC

2
Proyecto: Telemantenimiento y telegestión de sistemas robotizados y/o automatizados

3.- Insertar las instrucciones correspondientes a las activaciones de las señales de 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 <EXP>. 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.

Actividad 4.1: Entradas y salidas. Manejo de señales

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

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()
Actividad 4.1: Entradas y salidas. Manejo de señales
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.

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


Actividad 4.1: Entradas y salidas. Manejo de señales
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 salida2”
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.

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

Actividad 4.1: Entradas y salidas. Manejo de señales

6
Proyecto: Telemantenimiento y telegestión de sistemas robotizados y/o automatizados

ACTIVIDAD ENTRADAS y SALIDAS


4.2 PROGRAMACIÓN CONDICIONAL

Objetivos de la 01.- Programar el código necesario para que el robot realice una tarea en
actividad: función del estado de una entrada.
02.- Entender la estructura de las instrucciones condicionales.
03.- Programar el robot mediante la FlexPendant.

Conocimientos 01.- Entradas y Salidas digitales del robot. Configuración y verificación.


previos: 02.- Salto a rutinas.

Conocimientos 01.- Manejo de las entradas y salidas en el FlexPendant Manual


relacionados: 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 01.- Sistema Robot IRB120 u otro de mayor gama.


necesarios

Archivos de 01.- Condicional1 Realización condicionada de un hexágono y una pletina


imagen con la instrucción IF….THEN o CompactIF.
relacionados 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 01.- Condicional Programación del hexágono y pletina con la instrucción


programa IF… THEN ELSE.
relacionados 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

Actividad 4.2: Entradas y salidas. Programación condicional.

PROYECTO FINANCIADO POR:

1
Proyecto: Telemantenimiento y telegestión de sistemas robotizados y/o automatizados

ACTIVIDAD ENTRADAS y SALIDAS


4.2 PROGRAMACIÓN CONDICIONAL

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.

Actividad 4.2: Entradas y salidas. Programación condicional.


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, v1000,fine, puntero;
MoveL p30, v1000,fine, puntero;
MoveL p40, v1000,fine, puntero;
MoveL p50, v1000,fine, puntero;
MoveL p60, v1000,fine, puntero;
MoveL p70, v1000,fine, puntero;
MoveL p20, v1000,fine, puntero;
MoveL offs (p20,0,0,50), v1000,fine, puntero;
ENDPROC

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

2
Proyecto: Telemantenimiento y telegestión de sistemas robotizados y/o automatizados

3.- Insertar las instrucciones correspondientes a la llamada 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 <EXP> 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.

Actividad 4.2: Entradas y salidas. Programación condicional.

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.

Actividad 4.2: Entradas y salidas. Programación condicional.

Completar la instrucción realizando la llamada a la rutina hexágono seleccionando la sentencia


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

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 Actividad 4.2: Entradas y salidas. Programación condicional.
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.

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.

Actividad 4.2: Entradas y salidas. Programación condicional.

9.- Basta con adecuar el programa a la sintaxis expuesta, siguiendo los apartados 4 y 5,
sustituyendo:

<EXP> por la expresión di1=1


<SMT> detrás de THEN, por la sentencia expresada con la rutina hexagono
<SMT> 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

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 ENDIF

10.- Situar el cursor en la instrucción del punto de inicio (MoveAbsJ jpos10) en la rutina
main e insertar la instrucción CompactIF.

Actividad 4.2: Entradas y salidas. Programación condicional.

11.- Basta con adecuar el programa a la sintaxis expuesta, siguiendo los apartados 4 y 5,
sustituyendo:

<EXP> por la expresión di1=1 o di2=1


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

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.

Actividad 4.2: Entradas y salidas. Programación condicional.

8
Proyecto: Telemantenimiento y telegestión de sistemas robotizados y/o automatizados

ACTIVIDAD ENTRADAS y SALIDAS


4.3 ARRANQUE y PARO MEDIANTE PULSADORES

Objetivos de la 01.- Programar las entradas digitales para que el arranque, parada u
actividad: otras operaciones se puedan realizar sin la ayuda del FlexPendant.

Conocimientos 01.- Entradas y Salidas digitales del robot. Conexión de las mismas.
previos: 02.- Entradas y Salidas digitales del robot. Configuración y verificación.

Conocimientos 01.- Ejecución en producción Manual FlexPendant Capítulo 7


relacionados: 02.- Manejo de las entradas y salidas en el FlexPendant Manual
FlexPendant Capítulo 8

Recursos 01.- Sistema Robot IRB120 u otro de mayor gama.


necesarios

Archivos de 01.- Marcha y paro mediante pulsadores Realización de una pirámide


imagen con marcha y paro mediante pulsadores externos. Funcionamiento
relacionados automático.

Nota: No se pueden observar la activación de entradas en la simulación.

Archivos de 01.- Entradas y salidas2 Realización de una pirámide con marcha y paro
programa mediante pulsadores externos. Funcionamiento automático.
relacionados
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

Actividad 4.3: Entradas y salidas. Arranque y paro mediante pulsadores.

PROYECTO FINANCIADO POR:

1
Proyecto: Telemantenimiento y telegestión de sistemas robotizados y/o automatizados

ACTIVIDAD ENTRADAS y SALIDAS


4.3 ARRANQUE y PARO MEDIANTE PULSADORES

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.

Actividad 4.3: Entradas y salidas. Arranque y paro mediante pulsadores.


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, v1000,fine, puntero;
MoveL p20, v1000,fine, puntero;
MoveL p50, v1000,fine, puntero;
MoveL p40, v1000,fine, puntero;
MoveL p30, v1000,fine, puntero;
MoveL p50, v1000,fine, puntero;
MoveL p30, v1000,fine, puntero;
MoveL p20, v1000,fine, puntero;
MoveL offs (p20,0,0,150), v1000,fine, puntero;
ENDPROC

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

Actividad 4.3: Entradas y salidas. Arranque y paro mediante pulsadores.

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

Actividad 4.3: Entradas y salidas. Arranque y paro mediante pulsadores.

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.

Actividad 4.3: Entradas y salidas. Arranque y paro mediante pulsadores.


Una vez conmutado el modo de funcionamiento, el FlexPendant advierte de que se ha
seleccionada el modo automático.

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

Actividad 4.3: Entradas y salidas. Arranque y paro mediante pulsadores.

6
Proyecto: Telemantenimiento y telegestión de sistemas robotizados y/o automatizados

ACTIVIDAD DATOS NUMÉRICOS


4.4 CONTAJE

Objetivos de la 01.- Programar el código necesario para que el robot realice un contaje
actividad: de piezas o repeticiones.
02.- Entender la estructura de los datos numéricos.
03.- Mostrar mensajes útiles en el FlexPendant.

Conocimientos 01.- Datos de programa de tipo num. Crear datos numéricos.


previos:

Conocimientos 01.- Programación y pruebas. Tipos de datos en el FlexPendant


relacionados: 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 01.- Sistema Robot IRB120 u otro de mayor gama.


necesarios

Archivos de 01.- Contador Realización condicionada de una pieza y contaje del nº de


imagen repeticiones.
relacionados
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.

Archivos de 01.- Contador Programación de la pieza y contaje del número de


programa repeticiones.
relacionados
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
Actividad 4.4: Datos numéricos. Contaje

PROYECTO FINANCIADO POR:

1
Proyecto: Telemantenimiento y telegestión de sistemas robotizados y/o automatizados

ACTIVIDAD DATOS NUMÉRICOS


4.4 CONTAJE

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.

Actividad 4.4: Datos numéricos. Contaje

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.

Actividad 4.4: Datos numéricos. Contaje

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, v1000,fine, puntero;
MoveL p20, v1000,fine, puntero;
MoveJ p30, v1000,fine, puntero;
MoveL p40, v1000,fine, puntero;
MoveL p50, v1000,fine, puntero;

3
Proyecto: Telemantenimiento y telegestión de sistemas robotizados y/o automatizados

MoveJ p60, v1000,fine, puntero;


MoveL p70, v1000,fine, puntero;
MoveL p80, v1000,fine, puntero;
MoveJ p90, v1000,fine, puntero;
MoveL p100, v1000,fine, puntero;
ENDPROC

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.

Actividad 4.4: Datos numéricos. Contaje

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.

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

Actividad 4.4: Datos numéricos. Contaje

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 <EXP> por C0NT1.

Actividad 4.4: Datos numéricos. Contaje

6
Proyecto: Telemantenimiento y telegestión de sistemas robotizados y/o automatizados

Clicando sobre <EXP> 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.

Actividad 4.4: Datos numéricos. Contaje

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.

Actividad 4.4: Datos numéricos. Contaje

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

8
Proyecto: Telemantenimiento y telegestión de sistemas robotizados y/o automatizados

ACTIVIDAD DATOS NUMÉRICOS


4.5 REPETICIONES

Objetivos de la 01.- Programar el código necesario para que el robot realice una serie de
actividad: repeticiones.
02.- Entender la estructura de las instrucciones de repetición.
03.- Insertar datos útiles desde el FlexPendant.

Conocimientos 01.- Datos de programa de tipo num. Crear datos numéricos.


previos:

Conocimientos 01.- Programación y pruebas. Tipos de datos en el FlexPendant


relacionados: 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 01.- Sistema Robot IRB120 u otro de mayor gama.


necesarios

Archivos de 01.- Repeticiones Realización de una pieza repetidamente en función del


imagen dato introducido desde el FlexPendant.
relacionados
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.

Archivos de 01. Repeticiones Realización de una pieza repetidamente en función del dato
programa introducido desde el FlexPendant.
relacionados
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

Actividad 4.5: Datos numéricos. Repeticiones

PROYECTO FINANCIADO POR:

1
Proyecto: Telemantenimiento y telegestión de sistemas robotizados y/o automatizados

ACTIVIDAD DATOS NUMÉRICOS


4.5 REPETICIONES

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 repeticiones 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
Actividad 4.5: Datos numéricos. Repeticiones

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, v1000,fine, puntero;
MoveL p20, v1000,fine, puntero;
MoveL p30, v1000,fine, puntero;
MoveL p40, v1000,fine, puntero;
MoveL p50, v1000,fine, puntero;
MoveJ p60, v1000,fine, puntero;

2
Proyecto: Telemantenimiento y telegestión de sistemas robotizados y/o automatizados

MoveL p70, v1000,fine, puntero;


MoveL p80, v1000,fine, puntero;
MoveL p90, v1000,fine, puntero;
MoveL p100, v1000,fine, puntero;
MoveJ p110, v1000,fine, puntero;
MoveL p10, v1000,fine, puntero;
ENDPROC

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()
Actividad 4.5: Datos numéricos. Repeticiones

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<reg1 DO ”mientras el CONT1 sea menor que reg1, ejecutar:”
figura;
Incr CONT1; ”incrementar el contador”
TPWrite “numero de repeticiones: ”\Num:=CONT1; ”escribir en pantalla
el texto entrecomillado tal cual y el valor numérico del contador”
ENDWHILE
ENDIF
ENDPROC

3
Proyecto: Telemantenimiento y telegestión de sistemas robotizados y/o automatizados

El programa responde al siguiente organigrama:

ORGANIGRAMA INSTRUCCIONES
ASOCIADAS

CONDICIONES DE INICIO: MovAbsJ


Mover a posición de inicio

CONDICIONES DE INICIO: Clear CONT1 o


Poner a 0 el contador CONT1 CONT1:= 0

CONDICIONES DE INICIO: Clear reg1 o


Poner a 0 el registro reg1 reg1:= 0

BORRAR PANTALLA: TPErase

NO ¿Entrada digital IF di1=1 THEN o


activada? WaitDI di1,1

SI
PREGUNTAR: TPReadNum reg1 “ ”
¿Cuántas repeticiones desea hacer?
Reg1

¿Contador
NO WHILE CONT1<reg1 DO
repeticiones menor
que reg1?

SI
Actividad 4.5: Datos numéricos. Repeticiones

EJECUTAR RUTINA: ProCall “pieza”


Llamada a rutina pieza

INCREMENTAR contador repeticiones Incr CONT1 o


CONT1 CONT1:= CONT1+1

MOSTRAR EN PANTALLA: TPWrite “Nº de


Nº de repeticiones realizadas CONT1 repeticiones”
realizadas CONT1

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 <EXP> DO en la que la expresión <EXP> 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 WHILE…DO se inserta la misma seleccionándola en el


grupo Common.

Actividad 4.5: Datos numéricos. Repeticiones

Una vez insertada, clicar sobre <EXP> 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
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.

Actividad 4.5: Datos numéricos. Repeticiones

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<reg1. Aceptar mediante OK.

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.

Actividad 4.5: Datos numéricos. Repeticiones

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.

Actividad 4.5: Datos numéricos. Repeticiones

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.

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

Actividad 4.5: Datos numéricos. Repeticiones

9
Proyecto: Telemantenimiento y telegestión de sistemas robotizados y/o automatizados

Actividad 4.5: Datos numéricos. Repeticiones

10
Proyecto: Telemantenimiento y telegestión de sistemas robotizados y/o automatizados

ACTIVIDAD DATOS NUMÉRICOS


4.6 PIEZA TALADRADA

Objetivos de la 01.- Programar el código necesario para que el robot realice una
actividad: operación repetitiva que requiere cambio de herramienta.
02.- Entender la estructura de las instrucciones de repetición.
03.- Insertar datos útiles desde el FlexPendant.

Conocimientos 01.- Datos de programa de tipo num. Crear datos numéricos.


previos:

Conocimientos 01.- Programación y pruebas. Tipos de datos en el FlexPendant


relacionados: 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 01.- Sistema Robot IRB120 u otro de mayor gama.


necesarios

Archivos de 01.- Pieza taladrada Realización repetitiva de una pieza.


imagen
Nota1: No se pueden observar la activación de entradas en la simulación.
relacionados
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.

Archivos de 01.- Pieza taladrada Programación de la secuencia y contaje del número


programa de repeticiones. Presentación en pantalla con TPReadNum.
relacionados 02.- Pieza taladrada1 Programación de la secuencia y contaje del
número de repeticiones. Presentación en pantalla con TEST.

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
Actividad 4.6: Datos numéricos. Pieza taladrada

PROYECTO FINANCIADO POR:

1
Proyecto: Telemantenimiento y telegestión de sistemas robotizados y/o automatizados

ACTIVIDAD DATOS NUMÉRICOS


4.6 PIEZA TALADRADA

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 CONDICIONES DE INICIO:


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. ¿ número de piezas SI
pedido = número de
piezas realizado?
3.- Una vez en su posición, la pinza irá a recoger
Actividad 4.6: Datos numéricos. Pieza taladrada

el taladro eléctrico y lo asirá para poder realizar


los cuatro taladros. NO
EJECUTAR RUTINA:
4.- Después de realizar los taladros, el robot
Coger pieza
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 EJECUTAR RUTINA:
de piezas pedidas, el brazo irá a una posición de Taladrar pieza
reposo alejada de las piezas.

5.- Un contador, contará el nº de repeticiones y EJECUTAR RUTINA:


las mostrará en la pantalla del flexPendant. Depositar pieza

6.- Las rutinas se crearán en un módulo


diferente a MainModule, por ejemplo Module1.

2
Proyecto: Telemantenimiento y telegestión de sistemas robotizados y/o automatizados

Procedimiento:

1.- Crear un programa siguiendo los pasos conocidos. ABB\ Editor de programas\Tareas y
programas\Archivo\Nuevo programa.

2.- Crear un módulo diferente a MainModule, por ejemplo Module1. ABB\ Editor de
programas\Módulos\Archivo\Nuevo 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), Taladrar (pieza) y Depositar (pieza) en Module1.
Parea ello, elegir dentro de la pestaña Módulos el módulo deseado o Module1. Una vez
resaltado, clicar en Mostrar módulo. Una vez accedido al módulo, clicar en la pastaña
Rutinas.

Actividad 4.6: Datos numéricos. Pieza taladrada

3
Proyecto: Telemantenimiento y telegestión de sistemas robotizados y/o automatizados

Una vez situados en Rutinas, clicar en Archivo\Nueva rutina, editar el nombre de la rutina
mediante ABC.. y asegurarse de que está declarada en el módulo 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 la pinza que coge y deposita las piezas.


Taladro. Para el taladro que coge la pinza.

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 el programa para que el robot coja la pieza con la pinza en la
Actividad 4.6: Datos numéricos. Pieza taladrada

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

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.
Actividad 4.6: Datos numéricos. Pieza taladrada

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

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:

Actividad 4.6: Datos numéricos. Pieza taladrada

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 <EXP1> FROM <EXP2> TO <EXP3> DO en la que:

La expresión <EXP1> indica el nombre del dato que contendrá el valor del contador
del bucle actual. Este dato se declara automáticamente.
La expresión <EXP2> indica el valor inicial deseado para el contador del bucle.
La expresión <EXP3> 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 <ID> 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 <EXP> ligada a la expresión FROM para poder definir
Actividad 4.6: Datos numéricos. Pieza taladrada

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:

7
Proyecto: Telemantenimiento y telegestión de sistemas robotizados y/o automatizados

Por último, clicar sobre la segunda <EXP> 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: “etiqueta llamada “MAIN” para poder saltar a ella con GOTO”
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:”
Actividad 4.6: Datos numéricos. Pieza taladrada

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

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

Actividad 4.6: Datos numéricos. Pieza taladrada

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

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.
Actividad 4.6: Datos numéricos. Pieza taladrada

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:


TPWrite “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
Actividad 4.6: Datos numéricos. Pieza taladrada

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 <EXP> y sentencias <SMT> 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.

Actividad 4.6: Datos numéricos. Pieza taladrada

12
Proyecto: Telemantenimiento y telegestión de sistemas robotizados y/o automatizados

ACTIVIDAD BASES DE COORDENADAS


4.7 OBJETO DE TRABAJO

Objetivos de la 01.- Programar el código necesario para realizar un cambio en las


actividad: coordenadas objeto de trabajo.
02.- Entender la estructura de los datos wobjdata.

Conocimientos 01.- Datos de programa de tipo wobjdata. Crear objetos de trabajo.


previos:

Conocimientos 01.- Programación y pruebas. Tipos de datos en el FlexPendant


relacionados: Manual FlexPendant Capítulo 6
02.- Datos wobjdata Manual de Instrucciones, funciones y tipos de datos
RAPID.

Recursos 01.- Sistema Robot IRB120 u otro de mayor gama.


necesarios

Archivos de 01.- Objeto de trabajo1 Realización de la pieza con la mesa en la


imagen posición original.
relacionados 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 01.- Objeto de trabajo1 Realización de la pieza con la mesa en la


programa posición original.
relacionados 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:


Actividad 4.7: Objeto de trabajo.

1
Proyecto: Telemantenimiento y telegestión de sistemas robotizados y/o automatizados

ACTIVIDAD BASES DE COORDENADAS


4.7 OBJETO DE TRABAJO

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


Actividad 4.7: Objeto de trabajo.

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.

Actividad 4.7: Objeto de trabajo.

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.

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.

Actividad 4.7: Objeto de trabajo.

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.

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.

Actividad 4.7: Objeto de trabajo.

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 P10,v1000,z100, pinza\WObj:= wobj1;


MovL P20,v1000,z100, pinza\WObj:= wobj1;
MovL P30,v1000,z100, pinza\WObj:= wobj1;
MovL P40,v1000,z100, pinza\WObj:= wobj1;
MovL P50,v1000,z100, pinza\WObj:= wobj1;
MovL P10,v1000,z100, pinza\WObj:= 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
Actividad 4.7: Objeto de trabajo.

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.

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.

Actividad 4.7: Objeto de trabajo.

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 P10,v1000,z100, pinza\WObj:= comun;


MovL P20,v1000,z100, pinza\WObj:= comun;
MovL P30,v1000,z100, pinza\WObj:= comun;
MovL P40,v1000,z100, pinza\WObj:= comun;
MovL P50,v1000,z100, pinza\WObj:= comun;
MovL P10,v1000,z100, pinza\WObj:= 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.

Actividad 4.7: Objeto de trabajo.

8
Proyecto: Telemantenimiento y telegestión de sistemas robotizados y/o automatizados

ACTIVIDAD PROGRAMACIÓN
4.8 EJERCICIOS PROPUESTOS

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
Actividad 4.8: Programación. Ejercicios propuestos.

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
P1 P2 P1 P2

P3
P3 P3

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
Actividad 4.8: Programación. Ejercicios propuestos.

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:

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 programa para un robot de una instalación de


paletizado, en donde el robot con una pinza para coger piezas y
paletizarlas en el pallet 1 o en el 2 en función del tipo de pieza que se
recoja, según se ve en el siguiente layout:

Cinta de entrada piezas

Pallet piezas Pallet piezas


(Formato 2 x 2 x 3) (Formato 3 x 2 x 4)

ENTRADAS

P_Enpos Pieza en la posición de recogida


Pinza_Cerrada Pinza cerrada
Pinza_Abierta Pinza abierta Actividad 4.8: Programación. Ejercicios propuestos.

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

3
Proyecto: Telemantenimiento y telegestión de sistemas robotizados y/o automatizados

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:

1. La pieza llega por una cinta trasportadora a la posición de recogida, en este momento
la señal de entrada P_Enpos_1 o P_Enpos_2 se activará en función de si es una pieza
para el pallet 1 o para el pallet 2.

2. EL robot va a recoger la pieza, cuando está en la posición de recogida, activa la señal


C_Pinza y espera que se active la entrada Pinza_Cerrada.

3. El robot va al pallet correspondiente, verifica la señal Pallet_Enpos_1 que nos indica


que el pallet está en la posición correcta 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. Cuando el pallet está completo, el robot activa la señal correspondiente para que se
produzca el cambio de pallet.

PROYECTO FINANCIADO POR:

Actividad 4.8: Programación. Ejercicios propuestos.

También podría gustarte