Académique Documents
Professionnel Documents
Culture Documents
Lenguaje RAPID
Robotics Application Programming Interactive Dialogue
1/44
Lenguaje RAPID
Estructura del lenguaje
Aplicacin RAPID
Programa
Datos programa Rutina Principal
RAPID es un leguaje de
2/44
Lenguaje RAPID
Programa RAPID
Programa
Datos de programa Rutina Rutina Principal Principal (main) (main)
instrucciones que controlan el robot y en general consta de tres partes: Una rutina principal (main): Rutina donde se inicia la ejecucin. Un conjunto de sub-rutinas:
SubSubrutinas 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
Lenguaje RAPID
Programa RAPID
%%% VERSION:1 LANGUAGE:ENGLISH %%% MODULE Module1 declaraciones PROC proc1() . . . ENDPROC PROC main() . . . . . . ENDPROC ENDMODULE
AI -II (56-10569):2006 UC3M Dr. Alaa Khamis 4/44
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
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
Lenguaje RAPID
Elementos bsicos
Identificadores: Permiten nombrar mdulos, rutinas, datos y etiquetas.
Ejemplo:
- El primer carcter es siempre una letra. - Longitud mxima 16. - Diferencia entre maysculas y minsculas.
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
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
Lenguaje RAPID
Los Datos
Los datos a manejar pueden ser definidos como: Constantes: (CONS) representen datos de un valor fijo a los que no se puede reasignar un nuevo valor. Variables: (VAR) son datos a los que se les puede asignar un nuevo valor durante la ejecucin del programa. Persistentes: (PERS) se trata de variables en las que cada vez que se cambia su valor durante la ejecucin del programa, tambin se cambia el valor de su inicializacin.
9/44
Lenguaje RAPID
Los Datos
Los datos se pueden definir segn la cantidad de memoria que se necesita para almacenarlo: Atmicos: En ellos solo se guarda un dato. No se puede dividir en otros ms sencillos. Registros: Es un tipo de dato en el que se guardan de una forma ordenada ms de un dato. En lenguaje C sera un tipo de dato similar a las estructuras.
10/44
Lenguaje RAPID
Tipos de Datos: Atmicos
string: Se usa para guardar cadenas de caractres, que pueden tener como mximo 80
VAR string text; text:= Arranque del sistema;
11/44
incluidas las comillas que son las que delimitan la cadena. Ejemplo:
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
Lenguaje RAPID
Tipos de Datos: Registros
de algn elemento, como por ejemplo la de la herramienta. ABB usa cuaternios para almacenar la orientacin.
por un dato pos y otro de tipo orient. trans pos rot orient
VAR pose pos1; pos1 := [[500, 100, 800],[1,0,0,0]]; pos1.trans := [650, -230, 1230]; pos1.trans.y := -23.54;
13/44
Lenguaje RAPID
Tipos de Datos: Registros
14/44
Lenguaje RAPID
Tipos de Datos: Registros
15/44
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
Lenguaje RAPID
Tipos de Datos: Registros
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
Lenguaje RAPID
Tipos de Datos: Registros
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
Lenguaje RAPID
Mdulos
Encabezado de archivo:
Puede estar formado de diferentes datos y rutinas. Uno de los mdulos contiene el procedimiento de entrada, un procedimiento global de entrada llamado main. Mdulos del sistema: Sirven para definir datos y rutinas normales del sistema, como por ejemplo las herramientas.
19/44
Lenguaje RAPID
Mdulos
Declaracin:
MODULE <nombre_mdulo> [<Lista de atributos>] <Lista declaracin de datos> <Lista declaracin rutina>
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
Lenguaje RAPID
Rutinas
Procedimientos:
PROC <nombre procedimiento> ( Lista de parmetros ) <Lista de declaraciones de datos>; <Lista de instrucciones>; ERROR <lista instrucciones>; ENDPROC
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
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
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
Lenguaje RAPID
Instrucciones: Movimiento
Para mover el robot hay tres instrucciones:
MoveJ Punto, Velocidad, Zona, Herramienta
Se mueve el robot hacia un punto usando coordenadas articulares. Cuando no tiene que seguir ninguna trayectoria determinada.
MoveL Punto, Velocidad, Zona, Herramienta
Se mueve el extremo del robot hacia el punto de destino pasando por el punto del circulo trazando un arco de circunferencia.
AI -II (56-10569):2006 UC3M Dr. Alaa Khamis 24/44
Lenguaje RAPID
Instrucciones: Movimiento
Tipo trayectoria L: Lnea J : Eje a Eje C : Circular Tamao Zona
MoveL
p1
10
p3
Posicin de destino
p p2
p1, v200, z10, herram1 p2, v100, fine, herram1 p3, v500, fine, herram1
25/44
50 0m m/ s
m/ 0m s
Lenguaje RAPID
Instrucciones: Posicionamiento (Programacin con desplazamiento)
Pto de arranque Desplaz. y
MoveL
Desplaz. x
Desplaz. z
p1
100 mm.
p2
50 mm.
p1, v200, fine, herram1 Offs (p1, 100, 0, 0 ), v100, fine, herram1 Offs (p1, 100, 50, 0 ), v100, fine, herram1 Offs (p1, 0, 50, 0 ), v100, fine, herram1 p1, v100, fine, herram1
p4
p3
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
Lenguaje RAPID
Instrucciones: entrada/salida
Set seal;
Lenguaje RAPID
Instrucciones: Condicin de espera
WaitDI WaitTime WhileUntil di, 1 0.5 !Esperar hasta que se active una seal digital !Esperar cierto tiempo
28/44
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
Lenguaje RAPID
Control de Flujo: WHILE
WHILE <condicin> Instrucciones; ENDWHILE DO
Lenguaje RAPID
Juego de instrucciones del RAPID
31/44
Lenguaje RAPID
Juego de instrucciones del RAPID
32/44
Lenguaje RAPID
Ejemplo: Clula robotizada de inspeccin
El robot retira de una cinta transportadora aquellas piezas identificadas como defectuosas.
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];
robhold tframe : Tipo bool que define si el robot sujeta la herramienta o no. : Sistema de coordenadas de la herramienta Posicin del TCP (mueca del robot) (x,y,z) Orientacin (q1,q2,q3,q4) : Carga de la herramienta Peso Centro de gravedad (x,y,z) Ejes de momento de la herramienta (q1,q2,q3,q4) Momento de inercia de los ejes (x,y,z).
34/44
tooldata
tload
Lenguaje RAPID
Clula de inspeccin: Definicin de variables
VAR signaldo pinza VAR signaldo activar_cinta VAR signaldi terminar !seal de activacin de pinza !seal de activacin de cinta !seal de terminar programa
Es necesario definir una configuracin inicial en la que el robot espera la seal que le indica que puede recoger la pieza defectuosa.
VAR robtarget conf_espera:=[[600,500,225],[1,0,0,0],[1,0,0,0], [9E9,9E9,9E9,9E9,9E9,9E9]];
robtarget
: : : :
Posiciones ( x, y, z ) Orientacin de la herramienta. Configuracin de los ejes. posicin de los ejes externos
35/44
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 !Cerrar la pinza activando la seal digital pinza !Esperar 0,3 segundos !Sealar que la pieza est cogida
!Abrir la pinza !Esperar 0,3 segundos !Sealar que no hay pieza cogida
36/44
Lenguaje RAPID
Clula de inspeccin: Rutina de coger la pieza de la cinta
PROC Coger_pieza() MOVEJ *,VMAX,z60,herramienta MOVEL *,V500,z20,herramienta
!Mov. en articulares con poca precisin !Mov. Lnea recta con precisin
MOVEL *,V150,FINE,herramienta !Bajar con precisin mxima Coger !Coger la pieza MOVEL *,V200,z20,herramienta ENDPROC
!Subir con la pieza cogida
Lenguaje RAPID
Clula de inspeccin: Rutina de ir a la posicin de espera
PROC Ir_posicion_espera() MOVEJ conf_espera,VMAX,z30,herramienta ENDPROC
!Mover a posicin inicial
38/44
Lenguaje RAPID
Clula de inspeccin: Programa principal
PROC main() Ir_posicion_espera; WHILE Dinput(terminar)=0 Do !Mover a posicin de espera !Esperar la seal de terminar
IF Dinput(pieza_defectuosa)=1 THEN !Esperar la seal de pieza !defectuosa SetDO activar_cinta,0; Coger_pieza SetDO activar_cinta,1; Ir_posicion_espera; ENDIF ENDWHILE ENDPROC !Parar cinta !Coger la pieza !Activar seal de cinta !Mover a posicin de espera
39/44
Lenguaje RAPID
Entorno de programacin
40/44
Lenguaje RAPID
Entorno de programacin: ABB
RAPID SyntaxChecker (Analizador sintctico fuera de lnea)
ABB Deskware
41/44
Lenguaje RAPID
Entorno de programacin: FESTO COSIMIR
42/44
Lenguaje RAPID
FESTO COSIMIR
Demo >>
43/44
Automatizacin Industrial - II
56 10569 Prctica 3 Lunes y Mircoles 8 & 10 de Mayo 2006 2 Cuatrimestre 2006
Lenguaje RAPID
Robotics Application Programming Interactive Dialogue
44/44