Está en la página 1de 18

Manual de programacin para lenguaje RAPID

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++).

2. SISTEMAS DE COORDENADAS DEL ROBOT:


El robot tiene 3 sistemas de coordinadas:
1. Coordenadas Mundo.
2. Coordenadas Base.
3. Coordenadas Objeto de trabajo.
En la figura 1 se puede ver la situacin virtual de cada uno de los sistemas de
coordenadas.

1
2

Figura 1_Coordenadas robot.

Manual de programacin para lenguaje RAPID.

Pgina 1

3. EJES DEL ROBOT:


El robot con el que vamos a trabajar tiene 6 ejes. Estos se pueden ver marcados en la
figura 2.

EJE5

EJE4
EJE3

EJE6

EJE2

EJE1

Figura 2_Ejes de robot.

4. ESTRUCTURA DE LA PROGRAMACIN DEL ROBOT:


El programa consta de tres partes, como se observa en la figura 3:
- Datos de programa.
- Programa principal.
- Rutinas.
Hay dos tipos de rutinas:
- Procedimiento: Se usa como subprograma.
- Funcin: devuelve un valor de un tipo de dato especfico y se usa como
argumento de una instruccin.
- Tratamiento de Interrupciones: Para el tratamiento de las interrupciones.
Nunca pueden ser llamadas explcitamente desde el programa.

Manual de programacin para lenguaje RAPID.

Pgina 2

Programa
Programa
Datos
Datosde
deprograma
programa
Principal
Principal
Rutina
Rutina

Figura 3_Estructura del programa.

5. CARACTERSTICAS DE LOS DATOS:


Para cada dato se define su mbito de utilizacin o alcance: local o global y su
persistencia: variable, constante o persistente.
Alcance de los datos:
DATOS DE PROGRAMA: Datos declarados fuera de una rutina. Estos datos a su vez
pueden ser:
LOCALES: Slo se pueden usaren la rutina o mdulo donde se declara. Se
deben declarar aadiendo al principio la palabra reservada LOCAL.
GLOBALES: Pueden ser llamadas desde otras rutinas o mdulos. Se deben
declarar aadiendo al principio la palabra reservada GLOBAL.
DATOS DE RUTINA: Datos declarados dentro de una rutina. Slo se pueden usar en la
rutina en que se encuentra.
Declaracin de los datos:
VAR: Dato variable. Su valor puede ser modificado en el programa.
Declaracin de un dato Variable.
|[LOCAL] VAR tipo_dato nombre_dato;
Ejemplo1:
|VAR num matriz{10}:=[1,2,3,4,5,6,7,8,9,0];
Ejemplo2:
|VAR string nombre:=JUAN;
CONST: Dato constante. No permite ser modificado.
|CONST num pi:=3.1415;

Manual de programacin para lenguaje RAPID.

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

Manual de programacin para lenguaje RAPID.

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.

Figura 5_Configuraciones para determinar el cuadrante.


|VAR confdata conf_1 := [0, 0, -1, 1];
La instruccin anterior indica que la configuracin del eje1 del robot es el cuadrante 0,
es decir, de 0 o a 90o. La configuracin del eje4 del robot es el cuadrante 0, es decir, de
0 o a 90o. La configuracin del eje6 del robot es el cuadrante -1, es decir, de 0 o a -90o.
La configuracin del eje5 del robot es el cuadrante 1, es decir, de 90 o a 180o.
ExtJoint: Se utiliza para almacenar la posicin de los seis ejes externos que puede
controlar el robot. Estos son a, b, c, d, e y f. Cada uno de estos ejes podr ser
conectado a un eje fsico mediante un parmetro del sistema. En el caso de no estar
conectado a un eje fsico, se indicar 9E9 como valor de posicin.
|VAR extjoint pos_ejes_ext1:=[11, 25.2,9E9, 9E9, 9E9, 9E9];
JointTarget: Se utiliza para especificar una posicin deseada para los ejes tanto
(articulaciones) del robot, como los externos, al ejecutar una instruccin MoveAbsJ. Se
utiliza cuando se quiere gobernar el robot directamente a travs de sus articulaciones
sin especificar posiciones y orientaciones.
Declaracin de un dato Variable.
|[LOCAL] CONST tipo_dato nombre_dato:=[[robax],[extax]];

Manual de programacin para lenguaje RAPID.

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;

Pos: Se utiliza para posiciones (slo para X, Y y Z), no influye en la orientacin de la


herramienta ni en la posicin de los ejes. El valor de las posiciones es de tipo NUM.
|VAR pos pos1:=[500,0,940];
|!Se asigna a la posicin pos1 el valor X=500mm, Y=0mm y Z=940mm.
|pos1.x:=pos1.x+50;
|!Se traslada la posicin de pos1, 50mm en la direccin X.
Robjoint: Se utiliza para definir la posicin en grados de cada uno de los ejes del
robot.
El valor rax_1, rax_2rax_6, es un dato de tipo NUM.

Manual de programacin para lenguaje RAPID.

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.

Manual de programacin para lenguaje RAPID.

Pgina 7

|VAR speeddata vel_alta:=[2000,30,200,15];


String: Cadenas de caracteres. Estn compuestas por un mximo de 80 caracteres,
encerrados entre comillas ().
Por ejemplo: "Esto es una cadena de caracteres".
Si desea incluir comillas dentro de la cadena de caracteres, debe escribirlas dos veces.
Por ejemplo: "Esta cadena contiene un carcter "" de comillas".
Si desea incluir una barra invertida dentro de la cadena de caracteres, debe escribirla
dos veces.
Por ejemplo: "Esta cadena contiene un carcter \\".
|VAR string text;
|text := "comienzo de soldadura de tubo1";
|TPWrite text;
|!El texto comienzo de soldadura tubo1 se escribe en el FlexPendant.
|!La instruccin TPWrite se utiliza para escribir texto en el FlexPendant.
ToolData: Se utiliza para describir las caractersticas de la herramienta utilizada por el
robot. Se especifica tanto la geometra (sistema de coordenadas de la herramienta)
como la carga (peso, centro de gravedad y momentos de inercia). Los datos relativos al
peso y centro de gravedad de la herramienta se utilizan para adecuar los pares a
ejercer por los motores del robot.
Los datos de la herramienta debern ser definidos nicamente como PERS y no
debern ser definidos dentro de una rutina.
ZoneData: Una posicin puede terminarse en un punto de paro o en un punto de
paso. Un punto de paro significa que el robot debe alcanzar la posicin programada. En
el punto de paso, el robot nunca alcanzar la posicin programada, sino que
comenzar a moverse hacia el siguiente punto cuando entre en la zona que se haya
definido. Este comportamiento lo podemos ver en la figura 6.
La zona se puede definir como la precisin con la que se alcanza una posicin antes de
que el robot pueda dirigirse hacia la posicin siguiente. Existen valores predefinidos,
z10, z20, z50fine. El valor indica la mxima diferencia en milmetros respecto del
punto pedido.

Manual de programacin para lenguaje RAPID.

Pgina 8

Figura 6_Precisin con la que alcanza un punto segn zone.


Wobjdata: Se utiliza para definir el objeto de trabajo.
Nombrar variables:
El nombre de la variable debe:
- Tener 16 caracteres como mximo.
- 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 7_E/S del Sistema.

Figura 8_Palabras reservadas RAPID.

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.

Manual de programacin para lenguaje RAPID.

Pgina 9

Figura 9. Instruccin de movimiento.


Posiciones de referencia p1 y p0: Dato tipo RobTarget.
Velocidad v100: Dato tipo SpeedData.
Precisin z10: Dato tipo ZoneData.
Herramienta tool1: Dato tipo ToolData.
Instrucciones de movimiento:
MoveC: Sirve para mover el TCP de la herramienta a lo largo de una trayectoria circular.
Ser necesario especificar, el punto de paso intermedio p0 que servir para definir la
curvatura y el punto de destino p1. El las figuras 10 y 11 se muestran dos ejemplos
distintos, uno es un arco, con la programacin necesaria en la parte inferior para que se
trace un arco. Y el otro es un crculo y su programacin en la parte inferior.

p0: Punto intermedio.

p1: Punto destino.

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.

Manual de programacin para lenguaje RAPID.

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.

Manual de programacin para lenguaje RAPID.

Pgina 11

Instrucciones de llamada a otra rutina:


ProcCall: Llamar (saltar) a otra rutina. Esta es la nica instruccin que no se usa la
palabra ProCall, pero el hecho de llamar a una rutina se le da el nombre de ProCall. Para
ver como se efecta la llamada, aadimos un ejemplo.
|VAR num reg:=50;
|...
|MoveL Offs(p20,40,-530,50),v20,z10,soplador3.
|IF reg<100 THEN
|soplar;
!En este momento es cuando efectuamos la llamada a procedimiento.
||Llamamos al programa soplar, que est definido en otro lugar.
|ENDIF
|...
|PROC soplar()
|...
|!Aqu definimos las funciones para el procedimiento soplar.
|ENDPROC
RETURN: Se utiliza para finalizar la ejecucin de una rutina y volver a la rutina principal.
Si la rutina es una funcin, devuelve valor que debe esepcificarse.
Ejemplo1:
|VAR num di1;
|...
|errormessage;
|!Se llama al procedimiento errormessage.
|Set do1;
|PROC errormessage()
|IF di1=1 THEN
|RETURN;
|!Cuando el procedimiento llega a la instruccin RETURN, la ejecucin del
|!programa vuelve a la instruccin que sigue a la llamada al procedimiento
|!es decir, Set do1.
|ENDIF
|TPWrite "Error";
|ENDPROC
Ejemplo2:
|FUNC num abs_value
|IF value<0 THEN
|RETURN -value;
|ELSE
|RETURN value;
|ENDIF
|ENDFUNC
|!La funcin devuelve el valor absoluto de un nmero.

Manual de programacin para lenguaje RAPID.

Pgina 12

Otras estructuras e instrucciones de activacin/desactivacin de E/S:


TEST/CASE: Se utiliza cuando es necesario ejecutar instrucciones diferentes en funcin
del valor de una expresin o dato (similar al switch/case del lenguaje C). Si no hay
demasiadas alternativas, tambin es posible utilizar IF...ELSE.
|TEST reg1
|CASE 1,2,3 :
|routine1;
|CASE 4 :
|routine2;
|DEFAULT :
|TPWrite "Illegal choice";
|Stop;
|ENDTEST
|!Se ejecutan instrucciones diferentes en funcin del valor de reg1.
|!Si el valor es 1, 2 3, se ejecuta routine1.
|!Si el valor es 4, se ejecuta routine2.
|!De lo contrario, se enva un mensaje de error a la unidad de programacin y la
|!ejecucin se detiene.
GOTO: Se utiliza para transferir la ejecucin del programa a otra lnea (una etiqueta)
creada dentro de la misma rutina.
Ejemplo 1:
|reg1 := 1;
|next:
|...
|!Aqu se programa las instrucciones necesarias para ejecutar la etiqueta next.
|reg1 := reg1 + 1;
|IF reg1<=5 GOTO
|next;
|ENDIF
|!La ejecucin se transfiere cuatro veces a la etiqueta next (para reg1=2,3,4,5).
Ejemplo 2:
|IF reg1>100 THEN
|GOTO highvalue;
|ELSE
|GOTO lowvalue;
|ENDIF
|lowvalue:
|...
|!Aqu se definen las instrucciones de la etiqueta lowvalue.
|GOTO ready;
|highvalue:
|...
|!Aqu se definen las instrucciones de la etiqueta highvalue.

Manual de programacin para lenguaje RAPID.

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.

Manual de programacin para lenguaje RAPID.

Pgina 14

SetAO: Se utiliza para cambiar el valor de una salida analgica.


|SetAO tensin, 5.5;
|!Se cambia la seal de tensin a 5.5;
SetDO: Se utiliza para cambiar el valor de una seal digital de salida (on/off, etc).
Ejemplo1:
|SetDO do15, 1;
|!Se cambia la seal do15 a 1.
Ejemplo2:
|SetDO do15, off;
|!Se cambia la seal do15 a 0.
Reset: Desactiva una seal digital de salida (cambiarla a 0).
|Reset do15
|!Se cambia la seal do15 a 0;
Instrucciones IF:
IF ... THEN ... ELSE ... ENDIF: Ejecutar una secuencia de instrucciones diferentes, slo si
se cumple una cierta condicin.
Ejemplo1:
|IF reg1<5 THEN
|Set do1;
|Set do2;
|ENDIF
|!Si reg1 es mayor que 5, entonces se activan las seales do1 y do2.
Ejemplo2:
|IF reg1<5 THEN
|Set do1;
|ELSE
|Set do2;
|ENDIF
|!Si reg1 es mayor que 5, se activa las seales do1, si no es mayor se activa do2.

Ejemplo3:
|IF reg1<5 THEN
|Set do1;
|Set do2;
|ENDIF
|!Si reg1 es mayor que 5, entonces se activan las seales do1 y do2.

Manual de programacin para lenguaje RAPID.

Pgina 15

Instrucciones de control de flujo de ejecucin While y For:


FORENDFOR: Se utiliza para repetir una operacin un nmero de veces.
|FOR i FROM 1 TO 10 DO
|secado;
|ENDFOR
|!Repite el procedimiento secado 10 veces.
WHILEENDWHILE: Se usa cuando es necesario repetir una secuencia de instrucciones
siempre y cuando siga cumplindose una condicin.
|WHILE reg1 > reg2 DO
|...
|reg1:=reg1+1;
|ENDWHILE
|!Repite las instrucciones que se encuentran dentro del bloque WHILE siempre y
|!cuando reg1 > reg2

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.

Manual de programacin para lenguaje RAPID.

Pgina 16

p1

100 mm

p2
50 mm

p4

p3

Figura 12_Esquema del programa.


Para ello, nos dan el punto 1 ya almacenado con sus correspondientes coordenadas. Este
se encuentra elevado 5cm sobre el mismo.
Una vez estemos en el punto exacto, activaremos la seal del Electroiman durante
medio segundo.
Posible solucin

Figura 13. Programa acabado

Manual de programacin para lenguaje RAPID.

Pgina 17

MODULE modulo1

! Esta lnea la tienen que incluir todos los programas.


! Inicio del modulo.
! Aqu podemos definir los datos que consideremos oportunos.
VAR num puntos:=0; ! Definimos la variable puntos con un valor inicial de 0.
PROC programa1()

! Esta lnea 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 seal Electroiman.
WaitTime 0.5;
! Durante 0.5 segundos.
Reset Electroiman;
!Resetea la seal.
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

! Esta lnea estar siempre.


! Declara el final del programa principal.
ENDMODULE ! Esta lnea la tienen que incluir todos los programas. Final del modulo.

Manual de programacin para lenguaje RAPID.

Pgina 18

También podría gustarte