Documentos de Académico
Documentos de Profesional
Documentos de Cultura
INDICE
1.
2.
3.
4.
5.
6.
7.
8.
Introduccin.
Sistema de coordenadas del robot.
Ejes del robot.
Estructura de la programacin.
Caractersticas de los datos.
Instrucciones.
Otras consideraciones.
Programa de ejemplo.
1. INTRODUCCIN:
Es un lenguaje de ltima generacin (creado en 1994 por ABB). Muy similar a lenguajes
de programacin de propsito general de alto nivel (Basic, Pascal, C, C++).
1
2
Pgina 1
EJE5
EJE4
EJE3
EJE6
EJE2
EJE1
Pgina 2
Programa
Programa
Datos
Datosde
deprograma
programa
Principal
Principal
Rutina
Rutina
Pgina 3
PERS: Dato persistente. Los datos persistentes slo pueden declararse en el nivel de
mdulo (fuera de las rutinas) y deben tener obligatoriamente un valor inicial. Si un
dato persistente es actualizado, se actualizar automticamente su valor de
inicializacin para nuevas ejecuciones del mismo.
|PERS num reg:=1;
Tipos de datos ms usuales:
Bool: Valores lgicos (con los valores verdadero o falso) TRUE/FALSE.
|VAR bool estado;
|VAR num reg1;
|estado:=reg1>100;
|!Se le asigna el valor TRUE a estado, si reg1 es que 100.
|!De lo contrario de la asigna el valor FALSE.
ConfData: Sirve para definir la configuracin de los ejes del robot. A veces el robot es
capaz de alcanzar la misma posicin y orientacin de la herramienta mediante varias
configuraciones de ejes diferentes. Para evitar esta ambigedad se utilizar este tipo
de dato.
Figura 4_Ejemplo de varias configuraciones de los ejes para una misma posicin.
En la figura 4 se observa las distintas configuraciones que se han dado al robot para
alcanzar un misma posicin, conservando la orientacin del eje 6, que es el que marca
la posicin deseada. El dato confdata indica los cuadrantes en los que se encuentran
los ejes 1, 4, 6 y 5 del robot. cf1 indica el cuadrante en el que se encuentra el eje1
Pgina 4
(entre -4 y +3), cf4 indica el cuadrante en el que se encuentra el eje4 (entre -4 y +3).
cf6 indica el cuadrante en el que se encuentra el eje6 (entre -4 y +3). Cfx no se utiliza
de momento.
Para cada uno de los ejes 1, 4 y 6 se indica el cuadrante en el que se debe encontrar
situado. En la figura 5 podemos ver las configuraciones que pueden adoptar los ejes 1,
4, 6 y 5 segn en el cuadrante que se site al orientarse. Es importante fijarse en el
dibujo de la figura 5 para entender los ejemplos, ya que en la nueva versin del manual
Rapid, que se guarda en el equipo al instalar RobotStudio 5.12, en este ejemplo hay un
error, y tanto las flechas hacia donde pueden girar los ejes, como la explicacin de los
ejemplos estn mal.
Pgina 5
- robax: Posicin de los ejes del robot en grados. Tipo de dato robjoint.
- extax: Posicin de los ejes externos. Tipo de dato extjoint.
La posicin se define como eax_a, eax_b, eax_ceax_f para cada eje. El valor 9E9 se
utiliza para definir los ejes que no estn conectados.
|CONST jointtarget calib_pos:=[[0,0,0,0,0,0],[0,9E9,9E9,9E9,9E9,9E9,9E9]];
|!Todos los ejes del robot estn calibrados a 0o.
|!Los ejes externos estn el primero calibrado a 0o y el resto estn sin definir.
LoadData: Define las caractersticas de la carga que deber manipular el robot. Se
especifican el peso, el centro de gravedad y los momentos de inercia. Se utiliza para
ajustar los pares a ejercer por los motores del robot.
Num: Valores numricos. Decimales 3.14 o Enteros 1, -52263.
|VAR num nivel:=3;
|!Se le asigna a nivel el valor 3.
Orient: Se utiliza para orientaciones (por ejemplo de la herramienta) y rotaciones
(por ejemplo de un sistema de coordenadas). La orientacin se describe en forma de
cuaternios, vector de 4 valores numricos (Q1, Q2, Q3, Q4).
|VAR orient orient1;
|orient1 := [1, 0, 0, 0];
|!Se asigna a la orientacin orient1 el valor q1=1, q2=q3=q4=0.
|!Esto equivale a ninguna rotacin.
La orientacin debe estar normalizada, es decir, la suma de los cuadrados debe ser
igual a 1.
q12+q22+q32+q42=1;
Pgina 6
RobTarget: Se utiliza para definir la posicin del robot y de los ejes externos.
Declaracin de un dato Variable.
|[LOCAL] CONST tipo_dato nombre_dato:=[[trans],[rot],[robconf],[extax]];
- trans: Translacin. La Posicin (X, Y, Z) del punto central de la herramienta
expresado en mm. Tipo de dato pos.
- rot: Rotacin. La Orientacin de la herramienta expresada en cuaternios (q1,
q2, q3, q4). Tipo de dato orient.
- robconf: Configuracin del robot. La Configuracin de los ejes del robot (cf1,
cf4, cf6, cfx). Tipo de dato confdata.
- extax: Ejes externos. La posicin de los ejes externos (eax_a, eax_beax_f).
Tipo de dato extjoint.
Ejemplo1:
|CONST robtarget p15 := [[600, 500, 225.3], [1, 0, 0, 0], [1, 1, 0, 0] ,[11, 12.3,
9E9, 9E9, 9E9, 9E9, 9E9]];
|!Se definen los parmetros de posicin X=600, Y=500 y Z=225.3, la orientacin
de |!la herramienta que por la configuracin equivale a ninguna rotacin, la
|!configuracin de los ejes del robot que indica que los ejes 1 y 4 se sitan en el
|!cuadrante 1, es decir, de 0 o a 90o, y los ejes 6 y 5 en el cuadrante 0, es decir,
de |!90 o a 180o. Y por ltimo la configuracin de los ejes externos, que indica
que hay |!dos ejes conectados, los otros cuatros estn sin conectar.
Ejemplo2:
|VAR robtarjet p20;
|
|p20:=CRobT();
|p20:=Offs(p20,10,0,0);
|!Se declara el dato robtarjet, la posicin de referencia p20.
|!Luego se indica mediante la funcin CRobT que la posicin de referencia p20
|!tomo las coordenadas de referencia actuales en las que se sita el robot en ese
|!momento.
|!CRobT se utiliza para leer la posicin actual de los ejes del robot y los ejes
|!externos a partir de datos robtarjet.
|!Para finalizar, se mueve la posicin del robot 10mm en la direccin X.
SpeedData: Sirve para especificar la velocidad del robot: TCP, reorientacin de la
herramienta y ejes externos. Cuando se combinan diferentes tipos de movimientos,
hay velocidad que limita todos los movimientos. La velocidad del resto de movimientos
ser reducida para que los movimientos acaben su ejecucin al mismo tiempo.
Componentes:
- V_tcp: Velocidad del TCP en mm/s.
- V_ori: Velocidad de la reorientacin de la herramienta en grados/segundos.
- V_leax: Velocidad de los ejes externos lineales en mm/s.
- V_reax: Velocidad de los ejes externos rotativos en mm/s.
Pgina 7
Pgina 8
Programa
Salida:
Entrada:
Electroiman
Finales
de carrera
6. INSTRUCCIONES:
Instrucciones de movimiento en Offset:
A continuacin se van a mostrar y explicar las diferentes partes de una instruccin, en la
figura 9 vemos detalladamente como declaramos una instruccin de movimiento.
Pgina 9
Figura 10_Arco.
Declaracin de la instruccin:
|MoveC coord_punto0, coord_punto1, velocidad, zona, pinza;
|MoveC Offs(p10,490,120,0), Offs(p10,630,290,0), v100, z50, tool0;
|!El robot traza un arco.
Pgina 10
p1
p2
p4
p3
3
Figura 11_Crculo.
|MoveL p1,v500,fine,tool1;
|MoveC p2,p3,v500,z20,tool1;
|MoveC p4,p1,v500,fine,tool1;
|!El robot traza un crculo.
MoveJ: Sirve para mover rpidamente el robot, de un punto a otro punto con la misma
orientacin de herramienta, sin garantizar la trayectoria recta. Todos los ejes se mueven a
una velocidad constante y alcanzan su posicin a la vez.
|MoveJ coordenadas_orientacion, veloc_TCP, zona, herramienta;
|MoveJ punto1, v200, z40, pinza10;
MoveL: Sirve para mover el TCP de la herramienta a lo largo de una trayectoria lineal al
punto destino.
|MoveL punto1, v200, z40, pinza3;
MoveAbsJ: Se utiliza para mover el TCP de la herramienta a una posicin de ejes
absoluta, definida por un dato jointtarjet.
|VAR jointtarjet p_reorient :=[[0,0,0,0,0,0],[ 9E9, 9E9, 9E9, 9E9, 9E9, 9E9]];
|p_reorient:=CJointT();
|p_reorient.robax.rax_6:=p_reorient.robx.rax_6-90;
|MoveAbsJ p_reorient, v20,fine, soplador3.
|!Declaramos un tipo de dato jointtarjet.
|!Con CJointT leemos los ngulos actuales de los ejes del robot.
|!y esta informacin la mandamos a p_reorient.
|!Movemos 90o el ngulo 6 del robot.
|!Con MoveAbsJ movemos la herramienta con la posicin de ejes.
|!definida por p_reoerient.
Pgina 11
Pgina 12
Pgina 13
|ready:
|...
|!Aqu se definen las instrucciones de la etiqueta ready.
|!Si reg1 es mayor que 100, la ejecucin se transfiere a la etiqueta highvalue.
|!De lo contrario, la ejecucin se transfiere a la etiqueta lowvalue.
WaitTime: Se utiliza para esperar una cantidad determinada de tiempo o esperar hasta
que el robot deje de moverse.
|WaitTime 5;
|!La ejecucin del programa espera 5 segundos.
WaitUntil: Se utiliza para esperar hasta que se cumpla una condicin lgica.
Ejemplo1:
|WaitUntil ent:=1;
|!La ejecucin del programa slo contina despus de que se ha activado la
|!entrada ent.
Ejemplo2:
|VAR bool timeout;
|WaitUntil start_in = 1 AND grip_status = 1\MaxTime := 60 \TimeFlag := timeout;
|IF timeout THEN
|TPWrite "No start order received within expected time";
|ELSE
|start_next_cycle;
|ENDIF
|!Si no se cumplen las dos condiciones de entrada en un plazo de 60 segundos, se
|!escribe un mensaje de error en la pantalla del FlexPendant.
|!MaxTime es el periodo mximo permitido para el tiempo de espera.
|!TimeFlag es el parmetro de salida que contiene el valor TRUE si se agota el
|!tiempo mximo de espera permitido antes de que se cumpla la condicin.
WaitDI: Se utiliza para esperar hasta que se activa una seal digital de entrada.
Ejemplo1:
|WaitDI di4, 1;
|!La ejecucin del programa slo contina despus de activarse la entrada di4.
Ejemplo2:
|WaitDI grip_status, 0;
|!La ejecucin del programa contina despus de restablecerse grip_status.
Set: Activar una seal digital de salida (cambiarla a 1).
|Set do1;
|!Activa la seal do1, la cambia a 1.
Pgina 14
Ejemplo3:
|IF reg1<5 THEN
|Set do1;
|Set do2;
|ENDIF
|!Si reg1 es mayor que 5, entonces se activan las seales do1 y do2.
Pgina 15
7. OTRAS CONSIDERACIONES:
- Al final de cada instruccin 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 sern: v10, v20,
v30, v40, v50, y v100.
- Los comentarios en los programas tienen que ir precedidos de !.
- Para realizar la asignacin de un valor a un dato, utilizaremos :=.
- Las coordenadas se ponen en milmetros (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
8. PROGRAMA DE EJMPLO:
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 12.
Pgina 16
p1
100 mm
p2
50 mm
p4
p3
Pgina 17
MODULE modulo1
Pgina 18