Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Industrial -II
Automatizacin
Industrial - II
56 10569
2 Cuatrimestre 2006
Lenguaje RAPID
Robotics Application Programming Interactive Dialogue
1/44
Automatizacin
Industrial -II
Lenguaje RAPID
Estructura del lenguaje
Aplicacin RAPID
RAPID es un leguaje de
Programa
Datos programa
Rutina Principal
Mdulo Principal
Rutina1
Mdulo1
Rutina2
Mdulo2
Rutina3
Mdulo2
Mdulo4
Datos programa
Rutina4
Rutina5
Mdulos
Mdulosdel
delsistema
sistema
2/44
Automatizacin
Industrial -II
Lenguaje RAPID
Programa RAPID
Programa
Datos de programa
Rutina
Rutina
Principal
Principal
(main)
(main)
SubSubrutinas
rutinas
Un conjunto de sub-rutinas:
Sirven para dividir el programa en partes ms pequeas a fin de obtener un
programa modular.
Los datos del programa:
Definen posiciones, valores numricos, sistemas de coordenadas, etc.
AI -II (56-10569):2006 UC3M Dr. Alaa Khamis
3/44
Automatizacin
Industrial -II
Lenguaje RAPID
Programa RAPID
%%%
VERSION:1
LANGUAGE:ENGLISH
%%%
MODULE Module1
declaraciones
PROC proc1()
. . .
ENDPROC
Programa
Mdulo Principal
Datos programa
Rutina Principal
Mdulo1
Mdulo2
Rutina1
Mdulo2
Rutina2
Mdulo4
Rutina3
PROC main()
. . .
. . .
ENDPROC
ENDMODULE
AI -II (56-10569):2006 UC3M Dr. Alaa Khamis
4/44
Automatizacin
Industrial -II
Lenguaje RAPID
Programa RAPID
%%%
VERSION:1
LANGUAGE:ENGLISH
%%%
MODULE EJEMPLO
CONST robtarget A:=[[0,0,0],[0,0,0,0],[0,-1,0,0], [9E+09,...]];
CONST tooldata pinza:= [TRUE, [[0,0,0],[1,0,0,0]],
[0,[0,0,0],[1,0,0,0],0,0,0]];
PROC cerrar_pinza()
Set spinza;
ENDPROC
PROC coger_pieza()
MoveJ B1,v100,z5,pinza;
MoveL B,v80,fine,pinza;
cerrar_pinza;
ENDPROC
AI -II (56-10569):2006 UC3M Dr. Alaa Khamis
5/44
Automatizacin
Industrial -II
Lenguaje RAPID
Programa RAPID
PROC main()
CONST dionum listo:=1;
abrir_pinza;
WHILE TRUE DO
MoveJ A,v100,fine,pinza;
WaitDI econtrol,listo;
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;
ENDWHILE
ENDPROC
ENDMODULE
AI -II (56-10569):2006 UC3M Dr. Alaa Khamis
6/44
Automatizacin
Industrial -II
Lenguaje RAPID
Elementos bsicos
Identificadores:
Permiten nombrar mdulos, rutinas, datos y etiquetas.
Ejemplo:
MODULE nombre_mdulo
PROC
nomre_rutina()
VAR pos
nombre_dato;nombre_etiqueta:
Palabras reservadas:
AND
DO
ENDPROC
FOR
MOD
RAISE
TO
WITH
BACKWARD
ELSE
ENDTEST
FROM
MODULE
READONLY
SYSMODULE TRAP
XOR
CASE
ELSEIF
ENDTRAP
FUNC
NOSTEPIN
RETRY
TRUE
CONNECT
ENDFOR
ENDWHILE
GOTO
NOT
RETURN
VAR
CONST
ENDFUNC
ERROR
IF
OR
STEP
VIEWONLY
DEFAULT
ENDIF
EXIT
INOUT
PERS
TEST
WHILE
DIV
ENDMODULE
FALSE
LOCAL
PROC
THEN
7/44
Automatizacin
Industrial -II
Lenguaje RAPID
Elementos bsicos
Espacios y caracteres de fin de lnea:
RAPID es un lenguaje sin formatos, en consecuencia los espacios pueden utilizarse
en cualquier parte excepto en: identificadores, palabras reservadas, valores
numricos.
Los identificadores , las palabras reservadas y los valores numricos debern estar
separados entre s por un espacio, un carcter de fin de lnea o un tabulador
Comentarios:
Sirven para facilitar la comprensin del programa, ocupan una lnea entera
comenzando con el smbolo !, finaliza con un carcter de fin de lnea.
! Esto es un comentario
Valores de cadena:
Secuencia de caracteres entre comillas.
8/44
Automatizacin
Industrial -II
Lenguaje RAPID
Los Datos
9/44
Automatizacin
Industrial -II
Lenguaje RAPID
Los Datos
Los datos se pueden definir segn la cantidad de memoria que se necesita para
almacenarlo:
10/44
Automatizacin
Industrial -II
Lenguaje RAPID
Tipos de Datos: Atmicos
Ejemplo:
VAR bool abrir:=TRUE;
abrir:=FALSE;
abrir:= reg1 > 1;
string: Se usa para guardar cadenas de caractres, que pueden tener como mximo 80
11/44
Automatizacin
Industrial -II
Lenguaje RAPID
Tipos de Datos: Registros
Ejemplo:
VAR pos posicion1;
posicion1 := [500, 0, 940];
posicion1.x := posicion1.x + 50;
AI -II (56-10569):2006 UC3M Dr. Alaa Khamis
12/44
Automatizacin
Industrial -II
Lenguaje RAPID
Tipos de Datos: Registros
Ejemplo:
Automatizacin
Industrial -II
Lenguaje RAPID
Tipos de Datos: Registros
Ejemplo:
VAR confdata conf10:=[1,-1,0]
14/44
Automatizacin
Industrial -II
Lenguaje RAPID
Tipos de Datos: Registros
15/44
Automatizacin
Industrial -II
Lenguaje RAPID
Tipos de Datos: Registros
robtarget: Sirve para definir la posicin del robot y de sus ejes externos.
trans
rot
robconf
extax
Ejemplo:
: Posiciones ( x, y, z )
: Orientacin de la herramienta.
: Configuracin de los ejes.
: posicin de los ejes externos
VAR robtarget punto1;
punto1 := [[500, 100, 800],[1,0,0,0]];
punto1.trans := [650, -230, 1230];
punto1.trans.y := -23.54;
16/44
Automatizacin
Industrial -II
Lenguaje RAPID
Tipos de Datos: Registros
v_ori
v_leax
v_reax
TCP
Datos predefinidos:
v5
[5,5,50,5]
v10,v20,..,v80
v100, v150, v200, v300,.,v800
v1000, v1500, v2000, v2500, v3000
vmax [5000, 500, 5000, 500]
AI -II (56-10569):2006 UC3M Dr. Alaa Khamis
17/44
Automatizacin
Industrial -II
Lenguaje RAPID
Tipos de Datos: Registros
Ejemplo:
Datos predefinidos:
z1 [1, 1, 1, 0.1, 1, 0.1]
z5, z10, z15, z20, ..,z100
z150
z200[ 200, 300, 300, 30, 300, 30 ]
AI -II (56-10569):2006 UC3M Dr. Alaa Khamis
18/44
Automatizacin
Industrial -II
Lenguaje RAPID
Mdulos
Encabezado de archivo:
19/44
Automatizacin
Industrial -II
Lenguaje RAPID
Mdulos
Declaracin:
MODULE
ENDMODULE
[<Lista de atributos>]
:
SYSMODULE
: Mdulo del sistema.
NOSTEPIN
: No se podr entrar durante ejecucin paso a paso.
VIEWONLY
: No podr ser modificado.
READONLY
: No podr ser modificado pero s sus atributos.
20/44
Automatizacin
Industrial -II
Lenguaje RAPID
Rutinas
Procedimientos:
Tres tipos:
Funciones:
FUNC <tipo valor dato> ( Lista de parmetros)
<Lista de declaraciones de datos>;
<Lista de instrucciones>;
RETURN dato;
ERROR <lista instrucciones>;
ENDFUNC
Interrupciones:
TRAP <nombre trap>
<Lista de declaraciones de datos>;
<Lista de instrucciones>;
ERROR <lista instrucciones>;
ENDTRAP
AI -II (56-10569):2006 UC3M Dr. Alaa Khamis
21/44
Automatizacin
Industrial -II
Lenguaje RAPID
Expresiones del lenguaje
Las expresiones se utilizan para evaluar un valor y as poder asignarlo a una
variable o utilizarlo como argumento de una instruccin o de una rutina. Segn el
tipo de valor que devuelve la expresin se distinguen dos tipos:
Aritmticas: Devuelven una valor numrico si operan con variables de tipo num
y una cadena si operan con cadenas de caracteres.
22/44
Automatizacin
Industrial -II
Lenguaje RAPID
Expresiones del lenguaje
Utilizan los operadores lgicos: <, >, <>, =, <=, >=, AND, OR, NOT, XOR
Ejemplo: DInput(di1) = 1 Doutput(do3) = 0
num1 < num2;
nombre1 = nombre2;
Doutput(do1) = 0 AND pos1.x > 100
23/44
Automatizacin
Industrial -II
Lenguaje RAPID
Instrucciones: Movimiento
Para mover el robot hay tres instrucciones:
MoveJ Punto, Velocidad, Zona, Herramienta
24/44
Automatizacin
Industrial -II
Lenguaje RAPID
Instrucciones: Movimiento
Tipo trayectoria
L: Lnea
J : Eje a Eje
C : Circular
Tamao Zona
p1
Herramienta TCP
10
m/
0m
0
20
Velocidad
/s
m
m
p3
Posicin de destino
50
0m
m/
s
MoveL
p2
MoveL
MoveL
MoveJ
AI -II (56-10569):2006 UC3M Dr. Alaa Khamis
Automatizacin
Industrial -II
Lenguaje RAPID
Instrucciones: Posicionamiento (Programacin con desplazamiento)
Pto de arranque
MoveL
Desplaz. y
Desplaz. x
p1
100 mm.
p2
50 mm.
p4
p3
Desplaz. z
MoveL
MoveL
MoveL
MoveL
MoveL
La funcin Offs sirve para desplazar una posicin del robot. Devuelve el dato de
la posicin desplazada de tipo robtarget.
Offs(punto, OffestX, OffestY, OffestZ)
26/44
Automatizacin
Industrial -II
Lenguaje RAPID
Instrucciones: entrada/salida
Set seal;
DOutput(do2)
SetDO do1, 1
! Activacin =1
Desactivacin = 0
27/44
Automatizacin
Industrial -II
Lenguaje RAPID
Instrucciones: Condicin de espera
WaitDI
di, 1
WaitTime
0.5
WhileUntil
28/44
Automatizacin
Industrial -II
Lenguaje RAPID
Control de Flujo: Compact IF
Ejecutar una instruccin slo si se cumple una condicin.
IF <condicin> Instruccin;
Control de Flujo: IF
Diferentes instrucciones se ejecutan si se cumple la condicin.
IF <condicin>
THEN
Instrucciones;
ELSE
Instrucciones;
ENDIF
29/44
Automatizacin
Industrial -II
Lenguaje RAPID
Control de Flujo: WHILE
WHILE <condicin>
Instrucciones;
ENDWHILE
DO
30/44
Automatizacin
Industrial -II
Lenguaje RAPID
Juego de instrucciones del RAPID
31/44
Automatizacin
Industrial -II
Lenguaje RAPID
Juego de instrucciones del RAPID
32/44
Automatizacin
Industrial -II
Lenguaje RAPID
Ejemplo: Clula robotizada de inspeccin
El robot retira de una cinta
transportadora aquellas piezas
identificadas como defectuosas.
La operacin se desarrolla
como sigue:
1. El robot se encuentra en espera hasta la llegada de una seal indicando la existencia
de una pieza defectuosa sobre la cinta transportadora.
2. El robot procede entonces a parar la cinta y a coger la pieza y a depositarla en un
almacn de piezas defectuosas.
3. El propio robot se encarga de activar de nuevo el movimiento de la cinta una vez la
pieza ha sido cogida.
4. Tras la operacin, el robot vuelve a su posicin inicial y se repite de nuevo el ciclo.
AI -II (56-10569):2006 UC3M Dr. Alaa Khamis
33/44
Automatizacin
Industrial -II
Lenguaje RAPID
Clula de inspeccin: Definicin de variables
herramienta: una variable de tipo tooldata que representa una pinza en el extremo
del robot para la manipulacin de piezas.
carga: una variable de tipo loaddata para definir la carga a transportar por la pinza.
PERS tooldata herramienta:=[FALSE,[[97,0,223],
[0.924,0,0,0.383,0]],[5,[-23,0,75],[1,0,0,0],0,0,0]]
PERS loaddata carga:=[5,[50,0,50],[1,0,0,0],0,0,0];
tooldata
robhold
tframe
tload
34/44
Automatizacin
Industrial -II
Lenguaje RAPID
Clula de inspeccin: Definicin de variables
VAR signaldo pinza
VAR signaldo activar_cinta
robtarget
trans
rot
robconf
extax
:
:
:
:
Posiciones ( x, y, z )
Orientacin de la herramienta.
Configuracin de los ejes.
posicin de los ejes externos
35/44
Automatizacin
Industrial -II
Lenguaje RAPID
Clula de inspeccin: Rutinas de control de la pinza
PROC Coger()
Set pinza
WaitTime 0.3
GripLoad carga
ENDPROC
PROC Dejar()
Reset pinza
WaitTime 0.3
GripLoad LOAD0
ENDPROC
!Abrir la pinza
!Esperar 0,3 segundos
!Sealar que no hay pieza cogida
36/44
Automatizacin
Industrial -II
Lenguaje RAPID
Clula de inspeccin: Rutina de coger la pieza de la cinta
PROC Coger_pieza()
MOVEJ *,VMAX,z60,herramienta
MOVEL *,V500,z20,herramienta
ENDPROC
ENDPROC
AI -II (56-10569):2006 UC3M Dr. Alaa Khamis
37/44
Automatizacin
Industrial -II
Lenguaje RAPID
Clula de inspeccin: Rutina de ir a la posicin de espera
PROC Ir_posicion_espera()
MOVEJ conf_espera,VMAX,z30,herramienta
ENDPROC
38/44
Automatizacin
Industrial -II
Lenguaje RAPID
Clula de inspeccin: Programa principal
PROC main()
Ir_posicion_espera;
WHILE Dinput(terminar)=0 Do
!Parar cinta
Coger_pieza
!Coger la pieza
SetDO activar_cinta,1;
Ir_posicion_espera;
ENDIF
ENDWHILE
ENDPROC
39/44
Automatizacin
Industrial -II
Lenguaje RAPID
Entorno de programacin
40/44
Automatizacin
Industrial -II
Lenguaje RAPID
Entorno de programacin: ABB
RAPID SyntaxChecker
(Analizador sintctico fuera de lnea)
ABB Deskware
41/44
Automatizacin
Industrial -II
Lenguaje RAPID
Entorno de programacin: FESTO COSIMIR
42/44
Automatizacin
Industrial -II
Lenguaje RAPID
FESTO COSIMIR
Demo >>
43/44
Automatizacin
Industrial -II
Automatizacin
Industrial - II
56 10569
2 Cuatrimestre 2006
Lenguaje RAPID
Robotics Application Programming Interactive Dialogue
44/44