Download - Programacion de Un Robot Manipulador
![Page 1: Programacion de Un Robot Manipulador](https://reader036.vdocumento.com/reader036/viewer/2022081722/563db7ce550346aa9a8e2019/html5/thumbnails/1.jpg)
![Page 2: Programacion de Un Robot Manipulador](https://reader036.vdocumento.com/reader036/viewer/2022081722/563db7ce550346aa9a8e2019/html5/thumbnails/2.jpg)
A. Giménez ([email protected])
Área de Ingeniería Mecánica
Departamento de Ingeniería
Módulo 1.- Fundamentos de robótica de manipulación
Práctica 1. Programación básica de un robot manipulador
![Page 3: Programacion de Un Robot Manipulador](https://reader036.vdocumento.com/reader036/viewer/2022081722/563db7ce550346aa9a8e2019/html5/thumbnails/3.jpg)
Programación de robots industriales en RAPID
Robot ABB 140
![Page 4: Programacion de Un Robot Manipulador](https://reader036.vdocumento.com/reader036/viewer/2022081722/563db7ce550346aa9a8e2019/html5/thumbnails/4.jpg)
Indice
Lenguajes de programación. 1. Introducción General
2. Robot IRB 140 y Sistema IRC5
3. Lenguaje RAPID – Estructuras de Datos
– Instrucciones de movimiento
– Instrucciones lógicas
Referencias Bibliográficas: 1. Fundamentos de robótica, 2ª Ed. MCGRAW-
HILL, 2007 Barrientos 2. Manual de referencia de RAPID
4
![Page 5: Programacion de Un Robot Manipulador](https://reader036.vdocumento.com/reader036/viewer/2022081722/563db7ce550346aa9a8e2019/html5/thumbnails/5.jpg)
Introducción. Programación de robots
El robot industrial es un manipulador
multifuncional reprogramable
Adaptación rápida y económica a diferentes tareas y
aplicaciones
Cerca de 1.000.000 de unidades en funcionamiento
en el mundo
El sistema de programación es la
herramienta con que cuenta el usuario para
acceder a las prestaciones del robot
5
![Page 6: Programacion de Un Robot Manipulador](https://reader036.vdocumento.com/reader036/viewer/2022081722/563db7ce550346aa9a8e2019/html5/thumbnails/6.jpg)
Introducción. Programación de robots
Durante la ejecución de un programa se
interacciona con: La memoria del sistema: lectura y actualización de
variables
La memoria de programa: control de flujo de
ejecución
El sistema de control dinámico y cinemático: da las
señales de mando de los accionadores
Las entradas-salidas del sistema: digitales o
analógicas, para sincronizarse con otros equipos
Entorno exterior: mediante las acciones que ejecuta y
mediante sensores externos 6
![Page 7: Programacion de Un Robot Manipulador](https://reader036.vdocumento.com/reader036/viewer/2022081722/563db7ce550346aa9a8e2019/html5/thumbnails/7.jpg)
CALCULO
DE
TRAYECTORIAS MODELO
CINEMÁTICO
PROGRAMA
MUESTREO
CONTROL
DINÁMICO
Punto de destino Tipo de trayectoria Velocidad media y tiempo Precisión Herramienta
Velocidad y aceleración máxima de la articulación
Trayectorias articulares qi(t)
Referencias para el control dinámico qi(kT)
MODELO
DINÁMICO
GENERACIÓN
DE
TRAYECTORIAS
PROGRAMA
MUESTREO
CONTROL
DINÁMICO MODELO
DINÁMICO
Programación de robots
(Barrientos [1])
MODELO
CINEMÁTICO
SENSORES
EXTERNOS
SENSORES
EXTERNOS
7
![Page 8: Programacion de Un Robot Manipulador](https://reader036.vdocumento.com/reader036/viewer/2022081722/563db7ce550346aa9a8e2019/html5/thumbnails/8.jpg)
Lenguajes de Programación ABB
8
Lenguajes
ARLA (1981)
RAPID (1994)
S4
S5 (IRC5)
![Page 9: Programacion de Un Robot Manipulador](https://reader036.vdocumento.com/reader036/viewer/2022081722/563db7ce550346aa9a8e2019/html5/thumbnails/9.jpg)
Menus de windows, RAPID
Paletas de ARLA
Programación por guiado
9
![Page 10: Programacion de Un Robot Manipulador](https://reader036.vdocumento.com/reader036/viewer/2022081722/563db7ce550346aa9a8e2019/html5/thumbnails/10.jpg)
Programación textual
Se basa en la existencia
de un lenguaje formal de
programación para
indicar los comandos al
robot
PROGRAMA:
Secuencia de ordenes
10
![Page 11: Programacion de Un Robot Manipulador](https://reader036.vdocumento.com/reader036/viewer/2022081722/563db7ce550346aa9a8e2019/html5/thumbnails/11.jpg)
Programación fuera de línea
Ordenador
Unidad de programación
Sistema de control
Manipulador
11
![Page 12: Programacion de Un Robot Manipulador](https://reader036.vdocumento.com/reader036/viewer/2022081722/563db7ce550346aa9a8e2019/html5/thumbnails/12.jpg)
Programación fuera de línea
Se desarrolla en la oficina, no en la fábrica
Ventajas:
Durante la programación no se necesita ni el
robot ni su entorno
El programa queda totalmente documentado
Posibilidad de simulación del programa
creado, verificando tiempos, colisiones, etc.
Posibilidad de cargarlo y “ejecutarlo” desde
fuera
12
![Page 13: Programacion de Un Robot Manipulador](https://reader036.vdocumento.com/reader036/viewer/2022081722/563db7ce550346aa9a8e2019/html5/thumbnails/13.jpg)
Programación fuera de línea
Robot Studio (ABB)
Creación de una estación Creación de un programa
13
![Page 14: Programacion de Un Robot Manipulador](https://reader036.vdocumento.com/reader036/viewer/2022081722/563db7ce550346aa9a8e2019/html5/thumbnails/14.jpg)
Requerimientos de un sistema de programación de robots
Lenguaje de programación avanzado:
Entorno de programación
Modelado del entorno
Tipos de datos avanzados
Control del flujo de ejecución del programa
Manejo de E/S: digitales y analógicas
Control de movimiento
Auto-acomodación según información sensorial
externa
14
![Page 15: Programacion de Un Robot Manipulador](https://reader036.vdocumento.com/reader036/viewer/2022081722/563db7ce550346aa9a8e2019/html5/thumbnails/15.jpg)
Modelado del entorno
Es la representación que tiene el programa del robot
de los objetos con los que trabaja
Normalmente son características geométricas:
Posición y orientación en los sistemas más clásicos
– Asignando a cada objeto un sistema de referencia solidario
– En coordenadas articulares (q1, … , qn)
– En coordenadas cartesianas (X, Y, Z, Q1, Q2, Q3, Q4)
Sistemas avanzados: Modelado tridimensional
– Modelos de Fronteras
– Geometría Constructiva de Sólidos
Características físicas
Pesos, c.d.g. e inercias para definir las cargas
Máxima velocidad, aceleración, etc.
15
![Page 16: Programacion de Un Robot Manipulador](https://reader036.vdocumento.com/reader036/viewer/2022081722/563db7ce550346aa9a8e2019/html5/thumbnails/16.jpg)
Rígida
No rígida
Pinza
Modelado del entorno
Mundo
Cinta
Pieza B
No rígida
No rígida
No rígida
Robot
Pieza A
Rígida
Rígida
Mesa
Pieza C
Pieza D
No rígida
16
![Page 17: Programacion de Un Robot Manipulador](https://reader036.vdocumento.com/reader036/viewer/2022081722/563db7ce550346aa9a8e2019/html5/thumbnails/17.jpg)
Robot IRB 140
80 mm
70 mm
6 kg
Carga
suplemtaria en
el antebrazo
1 kg
Carga suplementaria
en la muñeca 0.5 kg
Carga 6 kg
Alcance 0.81 m
Repetibilidad 0.03 mm
17
6 Ejes = 6 GDL
![Page 18: Programacion de Un Robot Manipulador](https://reader036.vdocumento.com/reader036/viewer/2022081722/563db7ce550346aa9a8e2019/html5/thumbnails/18.jpg)
Test de precision a 1.000 mm/s
518 520 522 524 526 528 530
290
300
310
320
330
340
350
360
Path XY: mc6 (red/green), decbuf (blue/black)
x [mm]
y [
mm
]
Sin TrueMove ni
QuickMove
Con la segunda versión
de TrueMove y
QuickMove
18
![Page 19: Programacion de Un Robot Manipulador](https://reader036.vdocumento.com/reader036/viewer/2022081722/563db7ce550346aa9a8e2019/html5/thumbnails/19.jpg)
Montaje del robot
Gran alcance en un radio de 360º
Puede ser montado en cualquier ángulo
No hay limitación en el montaje con el primer eje
19
![Page 20: Programacion de Un Robot Manipulador](https://reader036.vdocumento.com/reader036/viewer/2022081722/563db7ce550346aa9a8e2019/html5/thumbnails/20.jpg)
Principales aplicaciones
Soldadura (laser y arco)
Otras
Embalaje/Pintura
Ensamblaje
Manipulación de material/Alimentación de máquinas 20
![Page 21: Programacion de Un Robot Manipulador](https://reader036.vdocumento.com/reader036/viewer/2022081722/563db7ce550346aa9a8e2019/html5/thumbnails/21.jpg)
Controlador IRC5
Controlador del Robot.
Igual para cualquier modelo IRB
Ligero
Conexiones industriales
Robot –PC
Seta de emergencia
Motores ON/OFF
Contador de programas
21
![Page 22: Programacion de Un Robot Manipulador](https://reader036.vdocumento.com/reader036/viewer/2022081722/563db7ce550346aa9a8e2019/html5/thumbnails/22.jpg)
Panel lateral del controlador IRC5
Partes
22
![Page 23: Programacion de Un Robot Manipulador](https://reader036.vdocumento.com/reader036/viewer/2022081722/563db7ce550346aa9a8e2019/html5/thumbnails/23.jpg)
Unidad de programación
Partes Principales del FlexPendant
23
![Page 24: Programacion de Un Robot Manipulador](https://reader036.vdocumento.com/reader036/viewer/2022081722/563db7ce550346aa9a8e2019/html5/thumbnails/24.jpg)
Partes de la pantalla
pantalla
24
![Page 25: Programacion de Un Robot Manipulador](https://reader036.vdocumento.com/reader036/viewer/2022081722/563db7ce550346aa9a8e2019/html5/thumbnails/25.jpg)
Lenguaje de programación RAPID
El ≈ 60% de los robot en el mundo son ABB
RAPID (Robotics Application Programming Interactive Dialogue)
Características más importantes Lenguaje de alto nivel estructurado
El entorno de programación se maneja con ventanas y menús desplegables
Los programas se guardan en formato estándar
El software del controlador es instalable por el usuario
Fácil manejo de los parámetros del sistema
25
![Page 26: Programacion de Un Robot Manipulador](https://reader036.vdocumento.com/reader036/viewer/2022081722/563db7ce550346aa9a8e2019/html5/thumbnails/26.jpg)
Lenguaje de programación RAPID
Herramientas de creación programas:
Simuladores (RobotStudio)
Paletas de Programación (TeachPendant)
Ordenador (Editor ASCII)
Robotics -
8-
26
![Page 27: Programacion de Un Robot Manipulador](https://reader036.vdocumento.com/reader036/viewer/2022081722/563db7ce550346aa9a8e2019/html5/thumbnails/27.jpg)
Estructura de un programa
Instrucciones
Acaban en “;”
Comentarios “!”
Asignación “:=“
Unidades:
milímetros
Grados
sexagesimales
Función Principal
PROC main() 27
![Page 28: Programacion de Un Robot Manipulador](https://reader036.vdocumento.com/reader036/viewer/2022081722/563db7ce550346aa9a8e2019/html5/thumbnails/28.jpg)
Expresiones del lenguaje
Aritméticas: Devuelven una valor numérico si operan con variables de tipo num
y una cadena si operan con cadenas de caracteres.
Utilizan los operadores aritméticos: *, +, -, /, DIV (división entera), MOD (resto)
Ejemplo: perimetro := 2 * 3.14 * radio;
frase: = “IN” + “PUT”;
Lógicas: Devuelven un valor de tipo bool
Utilizan los operadores lógicos: <, >, <>, =, <=, >=, AND, OR, NOT, XOR
Ejemplo: DInput(di1) = 1
num1 < num2;
nombre1 = nombre2;
Doutput(do1) = 0 AND pos1.x > 100
28
![Page 29: Programacion de Un Robot Manipulador](https://reader036.vdocumento.com/reader036/viewer/2022081722/563db7ce550346aa9a8e2019/html5/thumbnails/29.jpg)
Tipos de datos en RAPID
Alcance
Globales
Locales
Variabilidad
Constantes
CONST num repeticion;
Variables
VAR num veces_repetidas;
Persistentes
PERS num pinza_cogida;
29
![Page 30: Programacion de Un Robot Manipulador](https://reader036.vdocumento.com/reader036/viewer/2022081722/563db7ce550346aa9a8e2019/html5/thumbnails/30.jpg)
Tipos de datos en RAPID
Atómicos Un solo dato
Num
Bool
Registro Contienen una estructura de datos
string – Cadena de caracteres. Máximo 80, incluidas las comillas
Pos – Guarda la posición X, Y, Z (los tres son tipo num)
Orient – Guarda la orientación q1, q2, q3, q4 (los cuatro son tipo num)
30
![Page 31: Programacion de Un Robot Manipulador](https://reader036.vdocumento.com/reader036/viewer/2022081722/563db7ce550346aa9a8e2019/html5/thumbnails/31.jpg)
1000
zzzz
yyyy
xxxx
paon
paon
paon
T
Tipos de datos
31
Datos de posición y
orientación
![Page 32: Programacion de Un Robot Manipulador](https://reader036.vdocumento.com/reader036/viewer/2022081722/563db7ce550346aa9a8e2019/html5/thumbnails/32.jpg)
Tipos de datos: Sistemas de coordenadas
*
*
32
![Page 33: Programacion de Un Robot Manipulador](https://reader036.vdocumento.com/reader036/viewer/2022081722/563db7ce550346aa9a8e2019/html5/thumbnails/33.jpg)
Tipos de datos en RAPID
pose
trans pos
rot orient
Var pose sitio:=[[1000,200,3500],[0.7,0,0.7,0]];
confdata
cf1, cf4, cf6, cfx
Var confdata configuracion:=[-1,0,1,0];
extjoint
eax_a, eax_b, …, eax_f
Extjoint ejes_externos:=[9E+09, 9E+09,…., 9E+09]; 33
![Page 34: Programacion de Un Robot Manipulador](https://reader036.vdocumento.com/reader036/viewer/2022081722/563db7ce550346aa9a8e2019/html5/thumbnails/34.jpg)
Tipos de datos (ROBTARGET)
Sirve para definir la posición del robot y de sus
ejes externos
trans pos
rot orient
robconf confdata
extax extjoint
CONST robtarget punto_reposo:=
[[1780,2500,3500],
[0.707,0.707,0,0],[0,-1,0,0],
[9E+09,...]]; 34
![Page 35: Programacion de Un Robot Manipulador](https://reader036.vdocumento.com/reader036/viewer/2022081722/563db7ce550346aa9a8e2019/html5/thumbnails/35.jpg)
Tipos de datos (JOINTARGET)
Alamcena la posición en giros de cada eje
dataobject of jointtarget >
< robax of robjoint >
< rax_1 of num >
< rax_2 of num >
< rax_3 of num >
< rax_4 of num >
< rax_5 of num >
< rax_6 of num >
< extax of extjoint >
< eax_a of num >
< eax_b of num >
< eax_c of num >
< eax_d of num >
< eax_e of num >
< eax_f of num >
CONST jointtarget calib_pos :=
[ [ 0, 0, 0, 0, 0, 0],
[ 0, 9E9,9E9, 9E9, 9E9, 9E9] ];
35
![Page 36: Programacion de Un Robot Manipulador](https://reader036.vdocumento.com/reader036/viewer/2022081722/563db7ce550346aa9a8e2019/html5/thumbnails/36.jpg)
Tipos de datos (Velocidad)
Especifica la velocidad a la que se mueve el robot y los
ejes externos
speeddata
v_tcp num velocidad del TCP en mm/s
v_ori num velocidad de reorientación en º/s
v_leax num velocidad de los ejes externos lineales
v_reax num velocidad de los ejes externos rotacionales
v100, v500, …, v2000
Muchos están definidos por defecto
en la configuración del robot
36
![Page 37: Programacion de Un Robot Manipulador](https://reader036.vdocumento.com/reader036/viewer/2022081722/563db7ce550346aa9a8e2019/html5/thumbnails/37.jpg)
Tipos de datos (Precisión del movimiento)
Indica la zona de precisión por la que van
a pasar los puntos intermedios de paso.
zonedata
finep num Es un punto de precisión fino
pzone_tcp num en mm
pzone_ori num en º
pzone_eax num en mm ó en º
z100, z20, …, z5, finep
Muchos están definidos por defecto
en la configuración del robot
zone_ori num
zone_leax num
zone_reax num
37
![Page 38: Programacion de Un Robot Manipulador](https://reader036.vdocumento.com/reader036/viewer/2022081722/563db7ce550346aa9a8e2019/html5/thumbnails/38.jpg)
Tipos de datos (Herramienta)
Contiene la información de la herramienta que se
usa.
tooldata
robothold bool La herramienta está sujeta por el
robot
tframe pose en mm
tload loaddata en mm
Si no hay herramienta: tool0
Es el único dato por defecto 38
![Page 39: Programacion de Un Robot Manipulador](https://reader036.vdocumento.com/reader036/viewer/2022081722/563db7ce550346aa9a8e2019/html5/thumbnails/39.jpg)
Tipos de datos
Datos para representar cargas
Posición del c.d.g.
Orientación de los ejes principales de inercia
Masas y momentos de inercia
Datos para representar herramientas
(TCP)
Posición y orientación de su punto de trabajo
Carga
39
![Page 40: Programacion de Un Robot Manipulador](https://reader036.vdocumento.com/reader036/viewer/2022081722/563db7ce550346aa9a8e2019/html5/thumbnails/40.jpg)
4321 qqqqPPP zyx
X
YZ
Xr
Yr
Zr
Tipos de datos
X
YZ
Matriz TCP (posición y orientación)
Carga
Ix
Iz Iy
c.d.g
40
![Page 41: Programacion de Un Robot Manipulador](https://reader036.vdocumento.com/reader036/viewer/2022081722/563db7ce550346aa9a8e2019/html5/thumbnails/41.jpg)
Tipos de datos (datos de la carga)
Contiene la información de la pieza que se está
moviendo.
loaddata
mass num Masa de la pieza
cog pos centro de gravedad de la pieza
aom orient orientacion de los ejes principales de inercia
ix num momento de inercia eje x
iy num momento de inercia eje y
iz num momento de inercia eje z
Datos predefinidos: load0 load1 41
![Page 42: Programacion de Un Robot Manipulador](https://reader036.vdocumento.com/reader036/viewer/2022081722/563db7ce550346aa9a8e2019/html5/thumbnails/42.jpg)
Lenguaje de programación RAPID
Declaración de datos:
Puntos:
CONST robtarget A:= [[1780,2500,3500],
[0.707,0.707,0,0],[0,-1,0,0], [9E+09,...]];
Herramientas:
CONST tooldata pinza:= [TRUE,
[[350,250,500],[1,0,0,0]], [1,[0,125,250],
[1,0,0,0],0.1,1,0]];
42
![Page 43: Programacion de Un Robot Manipulador](https://reader036.vdocumento.com/reader036/viewer/2022081722/563db7ce550346aa9a8e2019/html5/thumbnails/43.jpg)
Control del movimiento del robot
Hay que especificar el movimiento del
robot:
Punto de destino (posición y orientación)
Tipo de trayectoria espacial: articulares,
recta, recta modificada, arco de círculo, etc.
Sistema de coordenadas utilizado
Base: referida al sistema del mundo
Mundo
Herramienta: en el extremo o estacionaria
Objeto: referido a un sistema de usuario 43
![Page 44: Programacion de Un Robot Manipulador](https://reader036.vdocumento.com/reader036/viewer/2022081722/563db7ce550346aa9a8e2019/html5/thumbnails/44.jpg)
Lenguaje de programación RAPID
Instrucciones de movimento:
Articulares:
MoveJ C1,v100,z5,pinza;
Opciones
[\T
MoveJ C1,v100\T:=5,z5,pinza;
Articulares absolutas:
MoveAbsJ punto,v100,z3,pinza; 44
![Page 45: Programacion de Un Robot Manipulador](https://reader036.vdocumento.com/reader036/viewer/2022081722/563db7ce550346aa9a8e2019/html5/thumbnails/45.jpg)
Lenguaje de programación RAPID
Instrucciones de movimento:
Línea recta en cartesianas:
MoveL P2,v80,fine,Tool0;
Opciones
Offs(…)
MoveL Offs(P2,0,0,100),v80,fine,Tool0;
45
![Page 46: Programacion de Un Robot Manipulador](https://reader036.vdocumento.com/reader036/viewer/2022081722/563db7ce550346aa9a8e2019/html5/thumbnails/46.jpg)
Lenguaje de programación RAPID
Instrucciones de movimento:
Interpolación circular:
MoveC P2,P3,v150,z15,Tool;
P0
P3
P2
P0
P1
46
![Page 47: Programacion de Un Robot Manipulador](https://reader036.vdocumento.com/reader036/viewer/2022081722/563db7ce550346aa9a8e2019/html5/thumbnails/47.jpg)
Control del movimiento del robot
Especificación el movimiento del robot:
Precisión Punto de paso
Esfera deprecisión
Puntodestino
47
![Page 48: Programacion de Un Robot Manipulador](https://reader036.vdocumento.com/reader036/viewer/2022081722/563db7ce550346aa9a8e2019/html5/thumbnails/48.jpg)
Lenguaje de programación RAPID
Zonedata: Z50
fine
Punto de paso
Esfera deprecisión
Puntodestino
50 mm
48
![Page 49: Programacion de Un Robot Manipulador](https://reader036.vdocumento.com/reader036/viewer/2022081722/563db7ce550346aa9a8e2019/html5/thumbnails/49.jpg)
Lenguaje de programación RAPID
Instrucciones de movimento:
Trayectoria circular:
MoveC Pto_int, pto_final,v80,fine,Tool0;
Traza arcos de circunferencia
49
![Page 50: Programacion de Un Robot Manipulador](https://reader036.vdocumento.com/reader036/viewer/2022081722/563db7ce550346aa9a8e2019/html5/thumbnails/50.jpg)
Control del movimiento del robot
Especificación el movimiento del robot:
Velocidad media del recorrido
· En la propia instrucción
· Definición global
0 tf
q qf
V
Vnominal
tacc
Pendiente
50
![Page 51: Programacion de Un Robot Manipulador](https://reader036.vdocumento.com/reader036/viewer/2022081722/563db7ce550346aa9a8e2019/html5/thumbnails/51.jpg)
Lenguaje de programación RAPID
Speeddata: v100
VelSet
0 tf
q qf
V
100 mm/s
tacc
Pendiente
51
![Page 52: Programacion de Un Robot Manipulador](https://reader036.vdocumento.com/reader036/viewer/2022081722/563db7ce550346aa9a8e2019/html5/thumbnails/52.jpg)
Control del flujo de ejecución
Permitir al programador especificar el flujo de operaciones del robot en función de una serie de condiciones lógicas
Instrucciones tradicionales:
IF ... THEN ... ELSE
Selección por casos: CASE
Bucles: FOR, WHILE, REPEAT
Procesamiento en paralelo multitarea
¡La ejecución correcta del programa en sentido inverso no está garantizada!
52
![Page 53: Programacion de Un Robot Manipulador](https://reader036.vdocumento.com/reader036/viewer/2022081722/563db7ce550346aa9a8e2019/html5/thumbnails/53.jpg)
Control del flujo de ejecución
IF <condicion> THEN
…
ENDIF
IF <condicion> THEN
…
ELSE
…
ENDIF
IF <condicion> THEN
…
ELSEIF <condicion>
…
ELSE
…
ENDIF
53
![Page 54: Programacion de Un Robot Manipulador](https://reader036.vdocumento.com/reader036/viewer/2022081722/563db7ce550346aa9a8e2019/html5/thumbnails/54.jpg)
Control del flujo de ejecución
WHILE <condicion> DO
…
ENDWHILE
FOR <contador> FROM <valor inicial> TO <valor final> [STEP incremento] DO
….
ENDFOR
54
![Page 55: Programacion de Un Robot Manipulador](https://reader036.vdocumento.com/reader036/viewer/2022081722/563db7ce550346aa9a8e2019/html5/thumbnails/55.jpg)
Manejo de Entradas/Salidas
Para comunicar y sincronizar el robot con otras
máquinas o procesos de fabricación
Mediante señales binarias de entrada/salida Dosificación y mezcla Transporte de mortero Bombeo Robot de proyección
Transporte de moldes
Red SINEC-L1
Com. serie RS-232
E/S digitales 24v DC
PC control
FACTORIAOFICINA
55
![Page 56: Programacion de Un Robot Manipulador](https://reader036.vdocumento.com/reader036/viewer/2022081722/563db7ce550346aa9a8e2019/html5/thumbnails/56.jpg)
Manejo de Entradas/Salidas
Poner una salida digital a 1
Set <signaldo> ej: set do8;
Poner un salida digital a 0
Reset <signaldo> ej: Reset do8;
Cambia un señal de valor
SetDO <señal>,<valor> ej: SetDO do8, 1;
Lectura de una entrada digital
Dinput(Entrada digital) ej: booleano:=Dinput(di4);
Lectura de una entrada digital
TestDI(entrada digital) ej: valor:=TestDI(di6);
Ginput(gi1)
Goutput(go2)
56
![Page 57: Programacion de Un Robot Manipulador](https://reader036.vdocumento.com/reader036/viewer/2022081722/563db7ce550346aa9a8e2019/html5/thumbnails/57.jpg)
Instrucciones de espera
Detiene la ejecución del programa durante un tiempo
en segundos
WaitTime <tiempo> ej: WaitTime 5;
Espera un tiempo o hasta que se cumpla una
condición
WaitUntil <condicion> [\MaxTime]
WaitUntil Dinput(di3) ej: Reset do8;
Cambia un señal de valor
SetDO <señal>,<valor> ej: SetDO do8, 1;
57
![Page 58: Programacion de Un Robot Manipulador](https://reader036.vdocumento.com/reader036/viewer/2022081722/563db7ce550346aa9a8e2019/html5/thumbnails/58.jpg)
Rutinas Procedimientos
Funciones que no devuelven valor
Funciones
Funciones que devuelven un valor
TRAP
Rutinas de tratamiento de interrupciones
58
![Page 59: Programacion de Un Robot Manipulador](https://reader036.vdocumento.com/reader036/viewer/2022081722/563db7ce550346aa9a8e2019/html5/thumbnails/59.jpg)
Interrupciones
Main()
0.- Connect TRAP Inp 1
1.- Move P1
2.- Move P2
3.- Grip On
4.- Wait 0.5
5.- Move P3
6.- Grip Off
7.- Move P4
8.- Set Output1
9.- Wait 2
10.- ~ ~ ~ ~ ~
TRAP Inp 1
1.- Reset Output1
2.- Reset Output2
3.- Move P100
4.- Write “Reparar Pinza”
5.- Wait Input20
6.- ~ ~ ~ ~ ~
Dosificación y mezcla Transporte de mortero Bombeo Robot de proyección
Transporte de moldes
Red SINEC-L1
Com. serie RS-232
E/S digitales 24v DC
PC control
FACTORIAOFICINA
59
![Page 60: Programacion de Un Robot Manipulador](https://reader036.vdocumento.com/reader036/viewer/2022081722/563db7ce550346aa9a8e2019/html5/thumbnails/60.jpg)
Manejo de Entradas/Salidas
Comunicaciones avanzadas:
Punto a punto con una conexión serie
Carga y descarga de programas
Monitorización y supervisión
Control directo del robot (Computer Link)
Impresora línea serie
Buses de campo (PROFIBUS, RIO, CAN,
etc.)
Redes de área local (LAN) 60
![Page 61: Programacion de Un Robot Manipulador](https://reader036.vdocumento.com/reader036/viewer/2022081722/563db7ce550346aa9a8e2019/html5/thumbnails/61.jpg)
Manejo de Entradas/Salidas (II)
Otra función de la E/S es la integración de
la información aportada por sensores
externos:
Modificar la trayectoria en línea en función
de la información sensorial de visión artificial,
láser, fuerza/par, etc.
Detección de obstáculos mediante
ultrasonidos, láser, infrarrojos, etc.
Tipos de movimientos:
Acomodaticios
Protegidos 61
![Page 62: Programacion de Un Robot Manipulador](https://reader036.vdocumento.com/reader036/viewer/2022081722/563db7ce550346aa9a8e2019/html5/thumbnails/62.jpg)
PROGRAMA EJEMPLO
• El robot se encuentra esperando en un punto de
reposo (punto A) la activación de la entrada digital 1
• En cuanto la entrada digital 1 pasa al estado UNO,
el robot se aproxima al punto B para coger la pieza.
• El robot lleva la pieza al punto C pasando por una
zona segura
• El ciclo finaliza en el punto de reposo
62
![Page 63: Programacion de Un Robot Manipulador](https://reader036.vdocumento.com/reader036/viewer/2022081722/563db7ce550346aa9a8e2019/html5/thumbnails/63.jpg)
%%%
VERSION:1
LANGUAGE:ENGLISH
%%%
MODULE EJEMPLO
CONST robtarget A:=[[200,100,500],[0.7,0.7,0,0],
[0,-1,0,0], [9E+09,...]];
………….
CONST tooldata pinza:= [TRUE, [[0,0,10],
[1,0,0,0]], [0,[0,0,0],[1,0,0,0],0,0,0]];
PROC cerrar_pinza()
WaitTime 0.5;
Set spinza;
ENDPROC
PROC coger_pieza()
MoveJ B1,v100,z5,pinza;
MoveL B,v80,fine,pinza;
cerrar_pinza;
ENDPROC
63
![Page 64: Programacion de Un Robot Manipulador](https://reader036.vdocumento.com/reader036/viewer/2022081722/563db7ce550346aa9a8e2019/html5/thumbnails/64.jpg)
PROC main()
abrir_pinza;
MoveJ A,v100,fine,pinza;
WaitDI econtrol,1;
coger_pieza;
MoveL B1,v80,z5,pinza;
MoveJ D,v100,z100,pinza;
MoveJ C1,v100,z5,pinza;
MoveL C,v80,fine,pinza;
abrir_pinza;
MoveL C1,v80,z5,pinza;
ENDPROC
ENDMODULE
64