Manual de programación para lenguaje RAPID

Anuncio
Manual de programación para lenguaje RAPID
1.
2.
3.
4.
5.
INDICE
Sistemas de coordenadas del robot
Estructura de la programación del robot
Tipos de datos
Instrucciones
Otras consideraciones
6.
Programa de ejemplo
1. Sistemas de coordenadas del robot:
El robot tiene 3 sistemas de coordinadas:
1. Coordenadas Mundo
2. Coordenadas Base
3. Coordenadas Objeto de trabajo
3
1
2
Figura 1. Coordenadas robot
2. Estructura de la programación del robot
El programa consta de tres partes:
- Datos de programa
- Programa principal
- Rutinas
Programa
Programa
Datos
Datosde
deprograma
programa
Principal
Principal
Rutina
Rutina
Figura 2. Estructura del programa
2.1 Tipos de rutinas:
Hay dos tipos de rutinas:
- Procedimiento: Se usa como subprograma.
- Función: devuelve un valor de un tipo de dato específico y se usa como
argumento de una instrucción.
3. Tipos de datos
Normalmente trabajaremos con los siguientes tipos de datos:
- bool: Datos lógicos (con los valores verdadero o falso) TRUE/FALSE
- num: Valores numéricos (decimales o enteros) 1, 3.14, -52263
- string: Cadenas de caracteres (máx. 80)
A su vez, los datos pueden ser:
- Variable(VAR): Las asignación de nuevos valores a las variables puede
realizarse durante la ejecución del programa.
- Persistente(PERS): Un valor persistente puede describirse como una variable
“persistente”. Esto se consigue haciendo que una actualización del valor de una
variable persistente provoque automáticamente la actualización del valor de
inicialización de la declaración de la variable persistente (cuando se guarda un
programa, el valor de inicialización de cualquier declaración de variable
persistente refleja el valor actual de la variable persistente).
- Constante(CONST): Las constantes representan valores fijos y no es posible
asignarles nuevos valores.
3.1 Nombrar variables
El nombre de la variable debe:
- Tener 16 caracteres como máximo
- Empezar con una letra
- No puede nombrarse una variable igual que las palabras reservadas por RAPID
(Instrucciones, tipos de datos…)
Programa
Salida:
Entrada:
Electroiman
Finales
de carrera
Figura 3. E/S del Sistema
Figura 4. Palabras reservadas RAPID
4. Instrucciones
4.1 Instrucciones de movimiento en Offset
A continuación se van a mostrar las diferentes partes de una instrucción:
Instrucción
Punto de comienzo
Movimiento dirección x
Movimiento dirección y
Movimiento dirección z
MoveL Offs (p1,100,50,0),v100,fine,tool0;
Velocidad de Movimiento
Añade un Offset
Aproximación
Herramienta
Figura 5. Instrucción de movimiento
4.2 Instrucciones de posicionamiento
- MoveC: Mover el TCP a lo largo de una trayectoria circular
- MoveJ: Movimiento de ejes
- MoveL: Mover el TCP a lo largo de una trayectoria lineal
- MoveAbsJ: Movimiento absoluto de ejes
4.3 Instrucciones de llamada a otra rutina
- ProcCall: Llamar (saltar) a otra rutina
- RETURN: Volver a la rutina general
4.4 Instrucciones IF
- IF: Ejecutar una secuencia de instrucciones diferentes en función de si se
cumple una condición
IF.....THEN
.....;
EXIT;
ENDIF
IF.....THEN
.....;
RETURN;
ENDIF
IF.....THEN
.....;
RETURN;
ENDIF
ENDPROC
IF.....=TRUE THEN
.....;
ELSE
.....;
ENDIF
IF contador>100 THEN
contador:=100;
ELSEIF contador<0 THEN
contador:=0;
ELSE
contador:=contador+1;
ENDIF
IF longitud<1000 OR longitud>1400 THEN
!fuera de rango
EXIT;
ENDIF
Figura 6. Instrucciones IF
4.5 Bucles While y For
- For: Repetir una sección del programa un número de veces
- While: Repetir una secuencia de instrucciones diferentes mientras siga
cumpliéndose una condición
WHILE .....DO
IF.....AND.....THEN
.....;
ENDIF
ENDWHILE
IF reg1=1 proc1;
FOR i FROM 1 TO.....DO
.....;
ENDFOR
IF contador>10 Set Electroiman, 1;
Figura 7. Buckes For y While
4.6 Otras estructuras e instrucciones de activación/desactivación de E/S
- TEST: Ejecutar instrucciones diferentes en función del valor de una
expresión
- GOTO: Saltar a una etiqueta
- WaitTime: Esperar una cantidad determinada de tiempo o esperar hasta que
el robot deje de moverse
- WaitUntil: Esperar hasta que se cumpla una condición
- Set: Activar una señal digital de salida (cambiarla a 1)
- Reset: Restablecer una señal digital de salida (ponerla a 0)
WaitTime 0.5;
WaitUntil di1=1 AND di2=1;
GOTO next;
.
.
.
next;
TEST alternatives
CASE 1, 2, 3:
.....;
CASE 4:
.....;
DEFAULT:
TPWrite ”Elección Imposible”;
ENDTEST
Set Electroiman;
Reset Electroiman;
Figura 8. Otras instrucciones
5. Otras consideraciones:
- Al final de cada instrucción se pondrá siempre “;” menos para el Inicio/Fin
de Modulo/Programa/Rutina.
- La velocidad del robot se ha limitado. Las velocidades a la que podrá ir
serán: v10, v20, v30, v40, v50, y v100.
- Los comentarios en los programas tienen que ir precedidos de “!”
- Para realizar la asignación de un valor a un dato, utilizaremos “:=”
- Las coordenadas se ponen en milímetros (1 cm = 10 mm)
- La cabecera y la parte final siempre será igual para este laboratorio remoto
MODULE modulo1
! Datos de programa
PROC programa1()
! Instrucciones
ENDPROC
ENDMODULE
6. Programa de ejemplo:
El programa que se va a realizar consiste en hacer que el robot pase por los 4 puntos
marcados en las esquinas como se muestra en la figura 9.
p1
100 mm
p2
50 mm
p4
p3
Figura 9. Esquema del programa
Para ello, nos dan el punto 1 ya almacenado con sus correspondientes coordenadas. Esté
se encuentra elevado 5 cms sobre el mismo.
Una vez estemos en el punto exacto, activaremos la señal del “Electroiman” durante
medio segundo.
Posible solución
Figura 10. Programa acabado
MODULE modulo1 ! Esta línea la tienen que incluir todos los programas. Inicio del modulo
VAR num
! Aquí podemos definir los datos que consideremos oportunos
puntos:=0; ! Definimos la variable ‘puntos’ con un valor inicial de 0.
PROC programa1() ! Esta línea estará siempre. Declara el inicio del programa principal
MoveL p1,v100,z20,tool0;
! Movimiento lineal al punto p1.
MoveL Offs (p1,0,0,-50),v100,fine,tool0; ! Baja los 5 cms que esta elevado
Set Electroiman;
! Activa la señal Electroiman
WaitTime 0.5;
! Durante 0.5 segundos
Reset Electroiman;
!Resetea la señal
MoveL Offs (p1,0,0,0),v100,z20,tool0;
!Vuelve a subir los 5 cms
MoveL Offs (p1,100,0,0),v100,z20,tool0;
MoveL Offs (p1,100,0,-50),v100,fine,tool0;
Set Electroiman;
WaitTime 0.5;
Reset Electroiman;
MoveL Offs (p1,100,0,0),v100,z20,tool0;
MoveL Offs (p1,100,50,0),v100,z20,tool0;
MoveL Offs (p1,100,50,-50),v100,fine,tool0;
Set Electroiman;
WaitTime 0.5;
Reset Electroiman;
MoveL Offs (p1,100,50,0),v100,z20,tool0;
MoveL Offs (p1,0,50,0),v100,z20,tool0;
MoveL Offs (p1,0,50,-50),v100,fine,tool0;
Set Electroiman;
WaitTime 0.5;
Reset Electroiman;
MoveL Offs (p1,0,50,0),v100,z20,tool0;
ENDPROC
ENDMODULE
! Esta línea estará siempre. Declara el final del programa principal
! Esta línea la tienen que incluir todos los programas. Final del modulo
Descargar