You are on page 1of 31

UVA - CARTIF Manual Bsico de Programacin.

Lenguaje RAPID
J. M. Vzquez Pag.: 3
Manual Bsico de Programacin. Lenguaje RAPID UVA - CARTIF
J.M. Vzquez Pag.: 4
MANUAL BSICO DE PROGRAMACIN
LENGUAJE RAPID
J.C. Fraile
J. Lpez Cruzado
J.M. Vzquez
Valladolid, Octubre 2003
UVA - CARTIF Manual Bsico de Programacin. Lenguaje RAPID
J. M. Vzquez Pag.: 5
Manual Bsico de Programacin. Lenguaje RAPID UVA - CARTIF
J.M. Vzquez Pag.: 6
ndice
1. CARACTERSTICAS GENERALES DEL LENGUAJE RAPID 8
2. ELEMENTOS BASICOS DEL LENGUAJE 9
2.1 IDENTIFICADORES 9
2.2 SEPARADORES 9
2.3 VALORES NUMRICOS, LGICOS Y DE CADENA 9
2.4 COMENTARIOS 9
2.5 COMODINES 9
2.6 ENCABEZADO DE ARCHIVO 10
2.7 CONTROL DEL FLUJO DEL PROGRAMA 10
2.8 INSTRUCCIONES Y ARGUMENTOS 10
3. MODULOS Y RUTINAS 12
3.1 ESTRUCTURA DE UNA APLICACIN 12
3.2 MDULOS 12
3.2.1 DECLARACIN DE LOS MDULOS 12
3.2.2 MDULOS DE SISTEMA 13
3.3 RUTINAS 13
3.3.1 TIPOS DE RUTINAS 13
3.3.2 ALCANCE DE UNA RUTINA 13
3.3.3 DECLARACIN DE UNA RUTINA 13
3.3.4 PARMETROS DE UNA RUTINA 14
4. DATOS 15
4.1 INTRODUCCIN 15
4.2 CARACTERSTICAS DE LOS DATOS 15
4.2.1 ALCANCE DE LOS DATOS 15
4.2.2 DECLARACIN DE LOS DATOS 15
4.3 TIPOS DE DATOS 15
4.4 LISTA DE LOS DIFERENTES TIPOS DE DATOS 16
4.5 DESCRIPCIN DE ALGUNOS DE LOS TIPOS DE DATOS MS USUALES 16
4.5.1 POS 16
4.5.2 ORIENT 17
4.5.3 POSE 17
4.5.4 CONFDATA 18
4.5.5 LOADDATA 18
4.5.6 SPEEDDATA 19
4.5.7 ZONEDATA 19
4.5.8 EXTJOINT 20
4.5.9 ROBTARGET 20
4.5.10 TOOLDATA 20
UVA - CARTIF Manual Bsico de Programacin. Lenguaje RAPID
J. M. Vzquez Pag.: 7
4.5.11 WOBJDATA 21
5. MOVIMIENTOS 22
5.1 CARACTERSTICAS DE MOVIMIENTO 22
5.1.1 DEFINICIN DE LA VELOCIDAD 22
5.1.2 DEFINICIN DE LA ACELERACIN 22
5.1.3 DEFINICIN DE LA GESTIN DE LA CONFIGURACIN 22
5.1.4 DEFINICIN DE LA CARGA TIL 23
5.1.5 DEFINICIN DEL COMPORTAMIENTO DEL ROBOT CERCA DE UN PUNTO SINGULAR 23
5.1.6 DESPLAZAMIENTO DE UN PROGRAMA 23
5.1.7 SERVO SUAVE 24
5.1.8 VALORES DE AJUSTE DEL ROBOT 24
5.2 INSTRUCCIONES DE POSICIONAMIENTO MS USUALES 25
5.3 OTRAS INSTRUCCIONES Y FUNCIONES RELACIONADAS 27
6. ENTRADAS Y SALIDAS 28
6.1 INSTRUCCIONES DE E/S MS USUALES 28
6.1.1 SET 28
6.1.2 RESET 28
6.1.3 SETAO 28
6.1.4 SETDO 28
6.1.5 SETGO 28
6.1.6 WAITDI 29
6.1.7 WAITDO 29
6.2 OTRAS INSTRUCCIONES Y FUNCIONES RELACIONADAS 29
7. DIALOGO CON EL OPERADOR Error!Marcador no definido.
7.1 INSTRUCCIONES DE COMUNICACIN MS USUALES 30
7.1.1 TPWRITE 30
7.1.2 TPREADFK 30
7.2 OTRAS INSTRUCCIONES Y FUNCIONES RELACIONADAS 31
8. INSTRUCCIONES VARIAS 32
8.1 INSTRUCCIONES DE ESPERA 32
8.2 FECHA Y HORA 32
8.3 MATEMTICAS 32
8.4 INSTRUCCIONES DE SERVICIO 33
8.5 FUNCIONES DE CADENA 33
8.6 FUNCIONES VARIAS 33
Manual Bsico de Programacin. Lenguaje RAPID UVA - CARTIF
J.M. Vzquez Pag.: 8
1. CARACTERSTICAS GENERALES DEL LENGUAJE RAPID
RAPID = Robotics Application Programming Interactive Dialogue
Lenguaje estructurado de alto nivel.
Procedimientos y funciones.
Programas modulares.
Datos y rutinas locales y globales.
Interrupciones.
Gestin automtica de errores.
Gestin de ejecucin hacia atrs.
Expresiones aritmticas y lgicas.
Multitarea: varios programas ejecutndose a la vez.
Libreras de mdulos de programas para rutinas especficas.
El programa robot y los datos definidos por el usuario se almacenan en formato texto PC
DOS.
Los programas se escriben de una manera fcil usando ventanas que contienen las
instrucciones.
Puede ser ampliado por el usuario generando sus propias instrucciones.
ProcessWare: coleccin de mdulos de software que proporcionan herramientas para los
distintos procesos. Ejemplos: ArcWare (para soldadura de arco) y SpotWare (para soldadura
por puntos).
Programacin OFF-LINE y transmisin de los programas al robot desde disquete o PC (va
puerto serie)



UVA - CARTIF Manual Bsico de Programacin. Lenguaje RAPID
J. M. Vzquez Pag.: 9
2. ELEMENTOS BSICOS DEL LENGUAJE
2.1 Identificadores
Los identificadores sirven para nombrar mdulos, rutinas, datos y etiquetas.
El primer carcter de un identificador debe ser una letra.
El resto de caracteres pueden ser letras, nmeros o el carcter de subrayado _.
La longitud mxima de cualquier identificador es de 16 caracteres.
El tamao de la letra (mayscula o minscula) no diferencia los identificadores.
Hay una serie de palabras que no se pueden utilizar como identificadores:
Palabras reservadas del lenguaje RAPID (ej.: AND, IF, MODULE, LOCAL, etc.)
Nombres predefinidos para tipos de datos, datos del sistema, instrucciones y funciones.
2.2 Separadores
El lenguaje RAPID es un lenguaje sin formatos, lo que significa que los espacios pueden utilizarse en
cualquier parte excepto en : identificadores, palabras reservadas, valores numricos y comodines.
Los caracteres fin de lnea, tabuladores y fin de pgina se pueden usar donde se pueda usar un espacio,
excepto dentro de comentarios.
Las instrucciones se separan entre s mediante ; .
Los identificadores, palabras reservadas y valores numricos debern estar separados entre s por un
espacio, un carcter fin de lnea o un tabulador.
Los espacios innecesarios y los caracteres de fin de lnea sern automticamente borrados al cargar un
programa en la memoria. Esto implica que un programa cargado desde un disquete (programa realizado
OFF-LINE) y luego almacenado de nuevo, puede diferir del original.
2.3 Valores numricos, lgicos y de cadena
Un valor numrico (entero o coma flotante) deber estar dentro de los lmites especificados por el
estndar ANSI de coma flotante simple precisin.
Un valor lgico podr expresarse como TRUE (verdadero) o FALSE (falso).
Un valor de cadena es una secuencia de caracteres (ISO 8859-1) y de caracteres de control. Se pueden
incluir cdigos de caracteres (precedidos por \) y caracteres no imprimibles. Una cadena va siempre
entre comillas . En el caso de tener que incluir dentro de una cadena los caracteres \ o , se deben
escribir dos veces.
Ejemplo:
Esta cadena termina con el cdigo de control BEL \07
Esta cadena contiene un carcter comillas
2.4 Comentarios
Los comentarios se incluyen para facilitar la comprensin del programa y no afectan en modo alguno al
funcionamiento del mismo. Un comentario empieza siempre con el smbolo ! y acaba con el carcter de
fin de lnea. Siempre ocupa una lnea entera.
Ejemplo:
...
! Esto es un comentario
...
2.5 Comodines
Los comodines se utilizan para representar de forma temporal ciertas partes del programa que todava
no han sido definidas.
Manual Bsico de Programacin. Lenguaje RAPID UVA - CARTIF
J.M. Vzquez Pag.: 10
Comodn Representa
<DDN> Una declaracin de datos
<RDN> Una declaracin de rutina
<PAR> Un parmetro alternativo opcional
<ALT> Un parmetro opcional
<DIM> Una definicin de la dimensin de una matriz
<SMT> Una instruccin
<VAR> Una referencia (variable, persistente o parmetro) a un dato
<EIT> La clusula ELSE de una instruccin IF
<CSE> La clusula CASE de una instruccin TEST
<EXP> Una expresin
<ARG> Un argumento de llamada de procedimiento
<ID> Un identificador
2.6 Encabezado de archivo
Un archivo de programa empieza siempre con el siguiente encabezado:
%%%
VERSION: 1 Versin del sistema
LANGUAGE: ENGLISH Idioma
%%%
2.7 Control del flujo del programa
En algunos casos es necesario interrumpir la ejecucin secuencial de las instrucciones del programa. El
flujo del programa se puede controlar mediante:
Llamadas a rutinas
ProcCall: llamada (salto) a otra rutina.
CallByVar: llamada a un procedimiento con nombre especfico.
RETURN: regreso a la rutina original.
Instrucciones de evaluacin de condicin:
CompactIF: ejecuta una instruccin slo si se cumple una condicin.
IF: ejecuta una parte de programa u otra segn una condicin.
WHILE: repite una parte del programa hasta que se cumpla una condicin.
TEST: ejecuta diferentes partes de programa segn el valor de una expresin.
Instrucciones de repeticin de una secuencia:
FOR: repite una parte de programa un cierto nmero de veces.
Salto a una etiqueta dentro de una rutina:
GOTO: salta a una etiqueta.
Parada de la ejecucin del programa:
STOP: detiene la ejecucin del programa.
EXIT: para la ejecucin de un programa cuando el rearranque de un programa no es
permitido.
BREAK: para la ejecucin de un programa temporalmente para el diagnstico y
solucin de averas.
2.8 Instrucciones y argumentos
Un programa robot est formado por una serie de instrucciones que describen el trabajo del mismo:
instrucciones de movimiento, de entradas y salidas, de comunicacin, etc.
Las instrucciones contienen argumentos asociados que definen lo que va a producir la ejecucin de la
instruccin. Los argumentos se pueden especificar de alguna de las siguientes maneras:
Valor numrico: 4, 1E4, 2.5, etc.
UVA - CARTIF Manual Bsico de Programacin. Lenguaje RAPID
J. M. Vzquez Pag.: 11
Referencia a un dato: reg1 (num), posicin3 (robtarget), etc.
Expresin. ej.:5+reg1*2.
Llamada a una funcin. ej.: Abs(reg1).
Valor de cadena. ej.: Nmero de piezas.
Manual Bsico de Programacin. Lenguaje RAPID UVA - CARTIF
J.M. Vzquez Pag.: 12
3. MDULOS Y RUTINAS
3.1 Estructura de una Aplicacin
Una Aplicacin consta de un programa y una serie de mdulos de sistema. A su vez el programa puede
estar dividido en varios mdulos.
3.2 Mdulos
Un mdulo de programa est compuesto por DATOS y RUTINAS. Cada mdulo puede ser cargado o
salvado independientemente.
Uno de los mdulos del programa contendr la rutina principal o MAIN, que es el punto de arranque del
programa.
3.2.1 Declaracin de los mdulos
Al declarar un mdulo hay que especificar un nombre y unos atributos (los atributos slo se pueden
aadir OFF-LINE).
Tipos de atributos:
SYSMODULE: se trata de un mdulo de sistema.
NOSTEPIN: no permite la entrada en el mdulo durante la ejecucin paso a paso.
VIEWONLY: el mdulo no puede ser modificado.
READONLY: el mdulo no puede ser modificado pero sus atributos pueden ser eliminados.
NOVIEW: no puede ser visualizado; slo ejecutado. Un programa que contiene un mdulo
NOVIEW no puede ser salvado. NOVIEW se utiliza sobre todo para los mdulos de sistema.
Ejemplo:
MODULE modulo1 (SYSMODULE, NOVIEW) Mdulo de sistema no visible
! Declaraciones
! Instrucciones
ENDMODULE
PROGRAMA
MDULO PRINCIPAL
DATOS
RUTINA PRINCIPAL
RUTINAS
MDULO 1
DATOS
RUTINAS
MDULO N
DATOS
RUTINAS
...
MDULO
de
SISTEMA
MDULO
de
SISTEMA
MDULO
de
SISTEMA
...
MEMORIA DE PROGRAMA
UVA - CARTIF Manual Bsico de Programacin. Lenguaje RAPID
J. M. Vzquez Pag.: 13
3.2.2 Mdulos de Sistema
Sirven para la definicin de los datos y rutinas especficas del sistema, como por ejemplo las
herramientas. No sern incluidos cuando se salva un programa, lo que significa que una modificacin
realizada en un mdulo de sistema afectar a todos los programas.
Los mdulos de sistema residen siempre en memoria (se cargan durante el arranque en fro del sistema)
y pueden ser utilizados siempre.
3.3 Rutinas
Una rutina tpica tiene la siguiente estructura:
3.3.1 Tipos de rutinas
Existen tres tipos de rutinas:
PROCEDIMIENTOS: rutinas que no devuelven ningn valor.
FUNCIONES: devuelven un valor de un tipo determinado.
RUTINAS DE TRATAMIENTO DE INTERRUPCIONES: para el tratamiento de las
interrupciones. Nunca pueden ser llamadas explcitamente desde el programa.
3.3.2 Alcance de una rutina
El alcance de una rutina hace referencia a desde dnde se puede acceder a dicha rutina. Desde este
punto de vista hay dos tipos de rutinas:
LOCALES: slo se puede acceder desde el mdulo que la contiene. Se deben declarar
aadiendo al principio la palabra reservada LOCAL.
GLOBALES: puede ser llamada desde cualquier mdulo. Las rutinas son globales por
defecto.
3.3.3 Declaracin de una rutina
Declaracin de un procedimiento:
PROC nombre_proc ( ...argumentos... )
...
ENDPROC
El final de un procedimiento est indicado por ENDPROC, BACKWARD o ERROR, pero
tambin se puede forzar con la instruccin RETURN.
Declaracin de una funcin:
FUNC tipo_devuelto nombre_func ( ...argumentos... )
...
RETURN(...);
...
ENDFUNC
DECLARACIONES
DATOS
INSTRUCCIONES
RUTINA de TRATAMIENTO
de ERRORES
Manual Bsico de Programacin. Lenguaje RAPID UVA - CARTIF
J.M. Vzquez Pag.: 14
La evaluacin de una funcin debe terminar con una instruccin RETURN.
Declaracin de una rutina de tratamiento de interrupciones:
TRAP nombre_rut_trat_int
...
RETURN
...
ENDTRAP
El final de una rutina de interrupcin est indicado por ENDTRAP o ERROR, pero tambin
se puede forzar con la instruccin RETURN.
3.3.4 Parmetros de una rutina
Son los argumentos que se deben suministrar a dicha rutina cuando se la llama. Tipos de parmetros:
NORMALES: se utilizan como entradas a la rutina y son procesados como variables de la
rutina. El cambio de esta variable en la rutina no cambia el valor del argumento.
INOUT: el argumento correspondiente debe ser una variable o un entero persistente y su
valor puede ser cambiado por la rutina.
VAR: el argumento correspondiente debe ser una variable que puede ser cambiada por la
rutina.
PERS: el argumento correspondiente debe ser un persistente entero que puede ser cambiado
por la rutina.
Un parmetro puede ser opcional. En ese caso se antepone un \ en la declaracin. Si hay varios
parmetros opcionales mutuamente excluyentes entre s se deben separar por |.
Ejemplo:
PROC rutina1 (num par_in, INOUT num par_inout, VAR num par_var, PERS num
par_pers, num par_obligat, \num par_opcional, \num
par_opc_1 | num par_opc_2)
El tipo especial switch slo puede ser asignado a parmetros opcionales y proporciona una forma de
utilizar argumentos especificados por los nombres y no por los valores.
Ejemplo:
PROC rutina2 (\switch on | \switch off)
...
IF present(off) THEN
...
ENDPROC
Las matrices tambin pueden utilizarse como argumento. La dimensin de la matriz ser determinada
por el parmetro.
Ejemplo:
PROC rutina3 (VAR num matriz1{*,*})
UVA - CARTIF Manual Bsico de Programacin. Lenguaje RAPID
J. M. Vzquez Pag.: 15
4. DATOS
4.1 Introduccin
Existen 3 tipos de datos:
VARIABLES: se les puede asignar un nuevo valor durante la ejecucin del programa.
PERSISTENTES: es una variable que tiene la particularidad de que su valor de inicializacin
se actualiza a medida que va cambiando. Cuando se guarda un programa, el valor de
inicializacin de cualquier declaracin de persistente refleja el ltimo valor que ha tomado el
dato persistente.
CONSTANTES: representan un valor esttico que no podr cambiar.
Siempre que se declara un dato es necesario asignarle un tipo de dato, excepto los datos predefinidos y
las variables de bucle.
No hay limitacin en cuanto al nmero de datos que se pueden definir de cada tipo, excepto las
limitaciones impuestas por la memoria del sistema.
4.2 Caractersticas de los datos
4.2.1 Alcance de los datos
El alcance de un dato hace referencia a desde donde se puede acceder a dicho dato. Segn dnde se
declaren los datos, stos pueden ser:
DATOS DE PROGRAMA: datos declarados fuera de una rutina. Estos datos a su vez pueden
ser :
LOCALES: slo se pueden usar en el mdulo que los contiene. Se deben declarar
aadiendo al principio la palabra reservada LOCAL.
GLOBALES: puede ser llamada desde cualquier mdulo. Las rutinas son globales por
defecto.
DATOS DE RUTINA: datos declarados dentro de una rutina. Slo se pueden usar en la rutina
en que se encuentran.
4.2.2 Declaracin de los datos
Declaracin de un dato variable:
[LOCAL] VAR tipo_dato nombre_dato
Los datos de variable con tipo de valor podrn ser inicializados en la declaracin:
VAR num matriz{10}:=[1,2,3,4,5,6,7,8,9,0]
VAR string nombre:=JUAN
Declaracin de un dato persistente:
PERS num reg1:=0
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.
Declaracin de un dato constante:
CONS num pi:= 3.1415
4.3 Tipos de datos
Atendiendo a su descomposicin, existen 2 grandes grupos de tipos de datos:
ATMICOS: datos cuya definicin no est basada en otro tipo y que no puede ser dividido en
partes ni componentes. Ej.: num.
REGISTRO: tipo de datos formado por componentes ordenados y nombrados. Ej.: pos.
Atendiendo a su valor, hay dos grandes grupos de tipos de datos:
Manual Bsico de Programacin. Lenguaje RAPID UVA - CARTIF
J.M. Vzquez Pag.: 16
CON VALOR: representan de alguna forma un valor. Pueden ser utilizados en operaciones
que tratan con valores: inicializacin, asignacin, comparacin , etc.
SIN VALOR: no representan un valor.
4.4 Lista de los diferentes tipos de datos
bool Valores lgicos
clock Medida del tiempo
confdata Datos de configuracin del robot
dionum Valores digitales (0,1)
errnum Nmero de error
extjoint Posicin de los ejes externos
intnum Identificacin de una interrupcin
iodev Canales y archivos de comunicacin serie
jointtarget Datos de posicin de los ejes
loaddata Datos de carga
mecunit Unidad mecnica
motsetdata Datos de movimiento
num Valores numricos (registros)
orient Orientacin
o_lointtarget Dato de posicin original de un eje
o_robtarget Datos de posicin original
pos Posiciones (X,Y,Z) sin orientacin
pose Transformacin de coordenadas
progdisp Desplazamiento de programa
robjoint Posicin de los ejes del robot
robtarget Datos de posicin (completos)
signalai Seales de entrada analgicas
signalao Seales de salida analgicas
signaldi Seales de entrada digitales
signaldo Seales de salida digitales
signalgi Grupo de seales de entrada digitales
signalgo Grupo de seales de salida digitales
speeddata Datos de velocidad
string Cadena de caracteres
symnum Nmero simblico
tooldata Datos de herramienta
triggdata Eventos de posicionamiento (disparo)
tunetype Tipo de ajuste servo
wobjdata Datos del objeto de trabajo
zonedata Datos de zona de ajuste
Datos del sistema
4.5 Descripcin de algunos de los tipos de datos ms usuales
4.5.1 Pos
Se usa para almacenar la posicin del robot (Solo X,Y,Z)
Componentes:
UVA - CARTIF Manual Bsico de Programacin. Lenguaje RAPID
J. M. Vzquez Pag.: 17
x Coordenada X num
y Coordenada Y num
z Coordenada Z num
Ejemplo:
VAR pos posicion1:= [600,500,400];
4.5.2 Orient
El tipo de datos Orient se utiliza para almacenar la orientacin de un sistema de coordenadas.
Componentes:
q1 Cuaternio 1 num
q2 Cuaternio 2 num
q3 Cuaternio 3 num
q4 Cuaternio 4 num
La orientacin de un sistema de coordenadas respecto a uno de referencia se puede describir mediante
una matriz de rotacin. Esta matriz tendr por columnas los vectores normalizados que representan las
direcciones de los ejes X, Y y Z respecto al sistema de coordenadas de referencia. Necesitamos, por
tanto, 9 valores para representar una orientacin.
x x x x
y y y y
z z z z
=
=
=
( , , )
( , , )
( , , )
1 2 3
1 2 3
1 2 3
x y z
x y z
x y z
1 1 1
2 2 2
3 3 3

Mediante los cuaternios podemos representar la orientacin con slo 4 valores. Los cuaternios se
calculan en funcin de los componentes de la matriz de rotacin de la siguiente forma:
q
x y z
q
x y z
sign q sign y z
q
y x z
sign q sign z x
q
z x y
sign q sign x y
1
1 2 3 1
2
2
1 2 3 1
2
2 3 2
3
2 1 3 1
2
3 1 3
4
3 1 2 1
2
4 2 1
=
+ + +
=
+
=
=
+
=
=
+
=
( )
( )
( )
Siempre se cumple que q q q q 1 2 3 4 1
2 2 2
+ + + =
Ejemplo:
VAR orient orient1:= [1,0,0,0]; Orientacin del sistema de coordenadas de la mueca
4.5.3 Pose
Se usa para definir un sistema de coordenadas respecto a otro, por ejemplo, el sistema de coordenadas
de la herramienta respecto al sistema de la mueca
Componentes:
trans Desplazamiento (x,y,z) del sistema de coordenadas pos
rot Rotacin del sistema de coordenadas orient
Ejemplo:
VAR pose pose1:= [[50,0,40], [1,0,0,0] ];
Manual Bsico de Programacin. Lenguaje RAPID UVA - CARTIF
J.M. Vzquez Pag.: 18
4.5.4 Confdata
Sirve para definir las configuraciones 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.
Componentes:
cf1 Indica el cuadrante en el que se encuentra el eje 1 (entre -4 y +3) num
cf4 Indica el cuadrante en el que se encuentra el eje 4 (entre -4 y +3) num
cf6 Indica el cuadrante en el que se encuentra el eje 6 (entre -4 y +3) num
cfx No se utiliza de momento num
El cuadrante 0 corresponde a un ngulo entre 0 y 90, el 1 entre 90 y 180, el -1 entre 0 y -90, y as
sucesivamente.
Ejemplo:
VAR confdata config1:= [1,-1,0,0];
4.5.5 Loaddata
Sirve para definir las cargas instaladas en la brida de montaje del robot. Las cargas definidas sirven para
determinar un modelo de dinmica del robot, de forma que los movimientos puedan ser controlados de la
mejor forma posible.
NOTA: la carga til que manipula la pinza del robot es de tipo Loaddata. La carga de la propia
herramienta es tambin de este tipo pero est definida dentro de la herramienta.
Si la carga declarada es mayor que la real, el robot no ser utilizado a su capacidad mxima, la precisin
ser incorrecta y habr riesgo de vibraciones. Si la carga declarada es menor que la instalada, la
precisin ser incorrecta y habr tambin riesgo de vibraciones.
Componentes:
mass El peso de la carga en Kg. num
cog El centro de gravedad de la carga (x,y,z) en mm pos
aom La orientacin de los ejes del momento de la carga en el centro de
gravedad.
orient
ix El momento de inercia de la carga alrededor del eje X en Kgm
2
num
iy El momento de inercia de la carga alrededor del eje Y en Kgm
2
num
iz El momento de inercia de la carga alrededor del eje Z en Kgm
2
num
La orientacin de los ejes de momento y de los momentos de inercia, normalmente no necesitan ser
definidos. Si ix, iy e iz son 0 kgm
2
, se considera una carga puntual. Normalmente, slo se definir el
momento de inercia cuando la distancia entre la brida de montaje y el centro de gravedad sea menor que
la dimensin de la carga.
La carga til debe ser definida slo como persistente y no dentro de una rutina.
La carga load0 define una carga til de un peso de 0 kg. Siempre se puede acceder a la carga load0
desde el programa, pero no se puede cambiar (se almacena en el mdulo de sistema BASE).
PERS loaddata load0:= [0, [0,0,0], [1,0,0,0],0,0,0];
Ejemplo:
PERS loaddata pieza1:= [5, [50,0,50], [1,0,0,0],0,0,0];
Set pinza;
WaitTime 0.3;
GripLoad pieza1; La conexin de la carga til pieza1 se especifica en el momento en que el
robot coge la pieza1
Reset pinza;
WaitTime 0.3;
GripLoad load0; La desconexin de la carga til pieza1 se especifica en el momento en que el
robot deja la pieza1
UVA - CARTIF Manual Bsico de Programacin. Lenguaje RAPID
J. M. Vzquez Pag.: 19
4.5.6 Speeddata
Sirve para especificar la velocidad del robot: TCP, reorientacin de la herramienta y de los ejes externos.
Cuando se combinan diferentes tipos de movimientos hay una velocidad que limita todos los
movimientos. La velocidad del resto de movimientos ser reducida para que los movimientos acaben su
ejecucin al mismo tiempo. La velocidad tambin ser restringida por la capacidad del robot.
Componentes:
v_tcp Velocidad del TCP en mm/s num
v_ori Velocidad de la reorientacin de la herramienta en grados/segundo num
v_leax Velocidad de los ejes externos lineales en mm/s num
v_reax Velocidad de los ejes externos rotativos en mm/s num
Hay una serie de datos de velocidad ya definidos en el mdulo de sistema BASE: v5, v10, v20, ..., v3000
y vmax.
Ejemplo:
VAR speeddata vel_alta:= [2000,30,200,15];
4.5.7 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 un punto de paso, el robot nunca alcanza la
posicin programada sino que comenzar o moverse hacia el siguiente punto cuando entre en la zona
que se haya definido.
Para cada posicin se pueden definir 2 zonas distintas:
Zona de la trayectoria del TCP
Zona extendida de reorientacin de la herramienta y ejes externos.
El tamao de la zona nunca podr ser mayor que la mitad de la distancia a la posicin anterior o
siguiente ms cercana. Si se especifica una zona mayor, el robot la reducir automticamente.
Punto Programa
Zona del TCP Zona extendida
(reorientacin y ejes externos)
Inicio del cambio de
reorientacin
Inicio del cambio de
trayectoria del TCP
Componentes:
finep TRUE: el movimiento termina en un punto de paro
FALSE: el movimiento termina en un punto de paso
bool
pzone_tcp Radio de la zona del TCP en mm num
pzone_ori Radio de la zona de reorientacin de la herramienta en mm (debe ser
mayor que pzonetcp)
num
pzone_eax Radio de la zona de los ejes externos (debe ser mayor que pzonetcp) num
zone_ori Tamao de la zona de reorientacin de herramienta en grados num
zone_leax Tamao de zona de los ejes externos lineales en mm num
zone_reax Tamao de la zona de los ejes externos rotativos en grados num
Hay una serie de datos de zona ya definidos en el mdulo de sistema BASE: z1, z5, z10, z15, ..., z200 y
fine (punto de paro).
Manual Bsico de Programacin. Lenguaje RAPID UVA - CARTIF
J.M. Vzquez Pag.: 20
Ejemplo:
VAR zonedata zona1:= [FALSE,25,40,40,10,35,5];
4.5.8 Extjoint
Se utiliza para almacenar la posicin de los ejes externos. Los 6 ejes externos que puede controlar el
robot se denominan a,b,c,d,e y f. Cada uno de estos ejes lgicos podr ser conectado a una eje fsico
mediante un parmetro de sistema. En el caso de que un eje lgico no est conectado a un eje fsico, se
indicar 9E9 como valor de posicin.
Para los ejes rotativos, la posicin ser definida como la rotacin en grados a partir de la posicin de
calibracin. Para los ejes lineales, la posicin ser definida como la distancia en mm a partir de la
posicin de calibracin.
Componentes:
eax_a Posicin del eje externo a (en grados o mm segn el tipo de eje) num
eax_b Posicin del eje externo b (en grados o mm segn el tipo de eje) num
eax_c Posicin del eje externo c (en grados o mm segn el tipo de eje) num
eax_d Posicin del eje externo d (en grados o mm segn el tipo de eje) num
eax_e Posicin del eje externo e (en grados o mm segn el tipo de eje) num
eax_f Posicin del eje externo f (en grados o mm segn el tipo de eje) num
Ejemplo:
VAR extjoint pos_ejes_ext1:= [11,25.2,9E9,9E9,9E9,9E9];
4.5.9 Robtarget
Sirve para definir la posicin del robot y los ejes externos. Dado que el robot es capaz de alcanzar una
misma posicin de varias formas diferentes, se deber especificar la configuracin de los ejes.
Componentes:
trans Posicin XYZ del TCP en mm respecto al sistema de coordenadas
objeto incluyendo desplazamiento si lo hay.
pos
rot Orientacin de la herramienta expresada en cuaternios orient
robconf Configuracin de los ejes del robot (cf1, cf4, cf6 y cfx) confdata
extax Posicin de los ejes externos extjoint
Ejemplo:
CONST robtarget punto1:= [[600,500,400], [1,0,0,0], [1,1,0,0],
[15,20.3,9E9,9E9,9E9,9E9];
4.5.10 Tooldata
Se utiliza para describir las caractersticas de una herramienta: TCP, carga, etc. Los datos de
herramienta debern ser definidos nicamente como persistentes y no debern ser definidos dentro de
una rutina.
Componentes:
robhold TRUE: el robot est sujetando la herramienta.
FALSE: se trata de una herramienta estacionaria.
bool
tframe Sistema de coordenadas de la herramienta: posicin del TCP y
orientacin.
pose
tload Define la carga de la herramienta loaddata
La herramienta tool0 define el sistema de coordenadas de la mueca. Los datos de tool0 no pueden ser
cambiados (estn almacenados en el mdulo de sistema BASE).
PERS tooldata tool0:= [TRUE,[ [0,0,0], [1,0,0,0] ], [0,[0,0,0],
[1,0,0,0],0,0,0] ];
Ejemplo:
UVA - CARTIF Manual Bsico de Programacin. Lenguaje RAPID
J. M. Vzquez Pag.: 21
PERS tooldata herram1:= [TRUE,[ [58,26.3,0], [0.924,0,0.383,0] ],
[5,[23,0,75], [1,0,0,0],0,0,0] ];
4.5.11 Wobjdata
Se utiliza para definir el objeto de trabajo del robot. Si se utiliza una herramienta estacionaria o ejes
externos coordinados se deber definir el objeto de trabajo, ya que la trayectoria y la velocidad se
referirn al objeto de trabajo y no al TCP.
Componentes:
robhold TRUE: el robot est sujetando el objeto de trabajo.
FALSE: el robot est sujetando la herramienta.
bool
ufprog TRUE: sistema de coordenadas fijo del usuario.
FALSE: sistema de coordenadas mvil de usuario (ejes externos
coordinados)
bool
ufmec La unidad mecnica con la que los movimientos del robot estn
coordinados.
string
uframe Sistemas de coordenadas del usuario pose
oframe Sistema de coordenadas del objeto pose
Los datos de objeto debern ser definidos nicamente como persistentes y no debern ser definidos
dentro de una rutina.
El objeto wobj0 coincide con el sistema de coordenadas mundo. Los datos de wobj0 no pueden ser
cambiados (estn almacenados en el mdulo de sistema BASE).
PERS wobjdata wobj0:= [FALSE,TRUE,,[ [0,0,0], [1,0,0,0] ], [[0,0,0],
[1,0,0,0]]];
Ejemplo:
PERS wobjdata objeto1:= [FALSE,TRUE,,[ [300,600,200], [1,0,0,0] ],
[[0,200,30], [1,0,0,0]]];
NOTA: para ms informacin sobre el resto de tipos de datos, consultar el captulo Tipos de datos de la
GUIA DE REFERENCIA RAPID.
Manual Bsico de Programacin. Lenguaje RAPID UVA - CARTIF
J.M. Vzquez Pag.: 22
5. MOVIMIENTOS
5.1 Caractersticas de movimiento
Las caractersticas bsicas del movimiento del robot estn especificadas en los argumentos de las
instrucciones de movimiento. Sin embargo hay algunas que se especifican en instrucciones separadas y
se aplican a todos los movimientos hasta que estas cambian.
Las caractersticas generales de movimiento del robot estn especificadas mediante una serie de
instrucciones, pero tambin pueden leerse mediante las variables de sistema C_MOTSET
(caractersticas de movimiento excepto desplazamientos de programa) y C_PROGDISP (desplazamiento
de programa).
Los valores por defecto de estas caractersticas quedan activados automticamente (mediante la
ejecucin de la rutina SYS_RESET del mdulo de sistema BASE) al arrancar el programa, cargar un
programa nuevo o arrancar un programa desde el principio.
Veamos a continuacin estas caractersticas:
5.1.1 Definicin de la velocidad
Adems de la velocidad absoluta especificada en cada instruccin se puede definir una velocidad
mxima y un ajuste de velocidad con la instruccin VelSet.
VelSet ajuste Max
Sirve para definir la velocidad mxima y el ajuste de velocidad.
ajuste Es la velocidad deseada expresada en un % de la velocidad programada.
Valor por defecto = 100%
num
Max Velocidad mxima del TCP en mm/s.
Valor por defecto = 5000 mm/s.
num
Ejemplo:
VelSet 200, 1000
Todas las velocidades programadas se duplican pero sin pasar nunca de 1000.
5.1.2 Definicin de la aceleracin
Cuando se manipulan piezas frgiles, por ejemplo, se puede reducir la aceleracin en una parte del
programa, para que los movimientos del robot sean ms suaves.
AccSet Acc Rampa
Sirve para ajustar la aceleracin del robot.
Acc Limita la aceleracin, mediante un porcentaje de la aceleracin mxima.
Valor mximo =100%. Un valor <20% se toma como 20%.
num
Rampa Limita la rampa de aceleracin, mediante un porcentaje del valor normal.
Valor mximo=100%. Un valor <10% se toma como 10%.
num
Ejemplo:
AccSet 30, 50
La aceleracin se limita al 30% de la mxima y la rampa al 50%.
5.1.3 Definicin de la gestin de la configuracin
Las instrucciones ConfJ y ConfL permiten gestionar el control de la configuracin de los ejes durante un
movimiento eje a eje o lineal respectivamente. Hay que tener en cuenta que a veces es posible alcanzar
la misma posicin y orientacin con diferentes configuraciones de ejes.
ConfJ [\On] | [\Off]
Activa o desactiva el control de la configuracin de los ejes en los movimientos de tipo MOVEJ.
UVA - CARTIF Manual Bsico de Programacin. Lenguaje RAPID
J. M. Vzquez Pag.: 23
[\On] El robot siempre se mueve a la configuracin de ejes programada. Si ello no
es posible la ejecucin del programa se detiene. Opcin activa por defecto.
switch
[\Off] En el caso en que la posicin y orientacin programadas se pueda alcanzar
de varias maneras diferentes, con distintas configuraciones de ejes, el
sistema escoger la ms cercana posible.
switch
ConfL [\On] | [\Off]
Activa o desactiva el control de la configuracin de los ejes en los movimientos de tipo MOVEL o
MOVEC.
[\On] El robot siempre se mueve a la configuracin de ejes programada. Si ello no
es posible la ejecucin del programa se detiene. Opcin activa por defecto.
switch
[\Off] En el caso en que la posicin y orientacin programadas se pueda alcanzar
de varias maneras diferentes, con distintas configuraciones de ejes, el
sistema escoger la ms cercana posible.
switch
5.1.4 Definicin de la carga til
Se deber definir la carga til correcta del robot para optimizar el funcionamiento del mismo.
GripLoad carga
Define la carga til que el robot sujeta con su pinza.
carga Carga til utilizada. Por defecto es load0 (de 0 Kg). loaddata
5.1.5 Definicin del comportamiento del robot cerca de un punto singular
Se puede programar el robot para que evite los puntos singulares cambiando la orientacin de la
herramienta automticamente.
SingArea [\Wrist] | [\Arm] | [\Off]
Define cmo el robot debe moverse en la proximidad de los puntos singulares.
[\Wrist] Se tolera una pequea diferencia en la orientacin de la herramienta a fin de
evitar la singularidad de la mueca. Se usa cuando los ejes 4 y 6 estn
alineados.
switch
[\Arm] Se tolera una pequea diferencia en la orientacin de la herramienta a fin de
evitar la singularidad del brazo. Se usa cuando el centro de la mueca
coincide con la extensin del eje 1.
switch
[\Off] No se permite cambiar la orientacin en los puntos singulares. Argumento
por defecto.
switch
5.1.6 Desplazamiento de un programa
Permite desplazar todos los puntos de un programa en una direccin determinada. Se utilizar cuando
se repitan estructuras de movimientos en diferentes lugares del programa. Un desplazamiento de
programa consiste en una traslacin y una rotacin respecto al sistema de coordenadas objeto.
PDispSet BaseDesp
Define y activa un desplazamiento de programa utilizando valores.
BaseDesp Dato que define el desplazamiento. pose
Ejemplo:
VAR pose desp1:= [[100,-50,0],[1,0,0,0]];
PDispSet desp1;
El sistema de coordenadas de desplazamiento de programa ser desplazado 100 mm del sistema de
coordenadas objeto en la direccin positiva del eje X y 50 en la negativa del eje y. La orientacin no
cambia.
Otras instrucciones relacionadas:
Manual Bsico de Programacin. Lenguaje RAPID UVA - CARTIF
J.M. Vzquez Pag.: 24
PDispOn Activa el desplazamiento de programa
PDispOff Desactiva el desplazamiento de programa
EOffsOn Activar un offset de un eje externo
EOffsSet Activar un offset de un eje externo especificando un valor
EOffsOff Desactivar un offset de un eje externo
Funciones relacionadas:
DefDFrame Calcula un desplazamiento de programa a partir de 3 posiciones
DefFrame Calcula un desplazamiento de programa a partir de 6 posiciones
ORobT Elimina un desplazamiento de programa a partir de 1 posicin
5.1.7 Servo suave
Esta funcin puede aplicarse a uno o varios ejes del robot, proporcionndole una gran flexibilidad.
SoftAct Eje Suavidad [\Rampa]
Activa el servo suave en cualquiera de los ejes del robot.
Eje Eje del robot (1 a 6). num
Suavidad Valor de suavidad en porcentaje (0-100%)En el caso en que la posicin y
orientacin programadas se pueda alcanzar de varias maneras diferentes,
con distintas configuraciones de ejes, el sistema escoger la ms cercana
posible.
num
[\Rampa] Factor de rampa en % (>100%). Cuanto ms elevado sea el valor, el servo
funcionar ms lentamente. (rampa ms larga)
num
SoftDeact
Desactiva el servo suave en todos los ejes del robot.
5.1.8 Valores de ajuste del robot
En el caso de desajuste del robot, se podrn ajustar determinados valores para conseguir siempre el
mximo rendimiento del robot.
TuneServo Unidadmec Eje Valorajuste [\Tipo]
Ajusta el comportamiento dinmico de los ejes del robot.
Unidadmec Unidad mecnica (ej.: IRB) del robot (1 a 6). mecunit
Eje Nmero de eje (1 a 6) num
Valorajuste Valor de ajuste en % (1 a 200%). 100 es el valor normal. num
[\Tipo] Tipo de ajuste servo: TUNE_DF, TUNE_KP, TUNE_KV y TUNE_TI. tunetype
TuneReset
Reinicializa el comportamiento dinmico del todos los ejes del robot a sus valores normales.
UVA - CARTIF Manual Bsico de Programacin. Lenguaje RAPID
J. M. Vzquez Pag.: 25
5.2 Instrucciones de posicionamiento ms usuales
MoveJ [\Conc] Alpunto Velocidad [\V] [\T] Zona [\Z] Herramienta [\WObj]
Sirve para mover rpidamente el robot de un punto a otro punto cuando este movimiento no tiene que
realizarse necesariamente en lnea recta. Todos los ejes se mueven a una velocidad constante y
alcanzan su posicin final a la vez. La herramienta ser orientada y los ejes externos se movern, al
mismo tiempo que se mueve el TCP. En el caso en que la reorientacin o los ejes externos no puedan
alcanzar la velocidad programada, la velocidad de TCP ser reducida.
[\Conc] Con esta opcin, las instrucciones lgicas siguientes se ejecutarn
mientras el robot est en movimiento. Acorta tiempo de ciclo.
switch
Alpunto Coordenadas y orientacin del punto destino. robtarget
Velocidad Velocidad del TCP, reorientacin de la herramienta y ejes externos. speeddata
[\V] Sirve para especificar la velocidad del TCP en mm/s directamente en la
instruccin.
num
[\T] Sirve para especificar el tiempo total del movimiento en segundos. num
Zona Tamao de la zona cero del movimiento. zonedata
[\Z] Sirve para especificar el tamao en mm. de la zona cero directamente en
la instruccin
num
Herramienta Es la herramienta activa durante el movimiento. El TCP de la misma es el
punto que se mueve.
tooldata
[\WObj] Es el objeto de trabajo (sistema de coordenadas) al que se refiere la
posicin del robot en la instruccin. Si se omite este argumento, se refiere
al sistema de coordenadas mundo.
wobjdata
Ejemplo:
MoveJ punto1, v200, z40, pinza3;
MoveL [\Conc] Alpunto Velocidad [\V] [\T] Zona [\Z] Herramienta [\WObj]
Sirve para mover el TCP de la herramienta de forma lineal al punto destino. La herramienta es orientada
a intervalos iguales sobre la trayectoria y los ejes externos (no coordinados) se movern a un a
velocidad constante para que puedan llegar al punto de destino al mismo tiempo que los ejes del robot.
En el caso en que la reorientacin o los ejes externos no puedan alcanzar la velocidad programada, la
velocidad de TCP ser reducida.
[\Conc] Con esta opcin, las instrucciones lgicas siguientes se ejecutarn
mientras el robot est en movimiento. Acorta tiempo de ciclo.
switch
Alpunto Coordenadas y orientacin del punto destino. robtarget
Velocidad Velocidad del TCP, reorientacin de la herramienta y ejes externos. speeddata
[\V] Sirve para especificar la velocidad del TCP en mm/s directamente en la
instruccin.
num
[\T] Sirve para especificar el tiempo total del movimiento en segundos. num
Zona Tamao de la zona cero del movimiento. zonedata
[\Z] Sirve para especificar el tamao en mm. de la zona cero directamente en
la instruccin
num
Herramienta Es la herramienta activa durante el movimiento. El TCP de la misma es el
punto que se mueve.
tooldata
[\WObj] Es el objeto de trabajo (sistema de coordenadas) al que se refiere la
posicin del robot en la instruccin. Si se omite este argumento, se refiere
al sistema de coordenadas mundo.
wobjdata
Ejemplo:
MoveL punto1, v200, z40, pinza3;
Manual Bsico de Programacin. Lenguaje RAPID UVA - CARTIF
J.M. Vzquez Pag.: 26
MoveC [\Conc] PuntoCirculo Alpunto Velocidad [\V] [\T] Zona [\Z] Herramienta
[\WObj]
Sirve para mover el TCP de la herramienta de forma circular. La herramienta es reorientada a velocidad
constante desde la orientacin de la posicin de arranque hasta la del punto destino. La reorientacin
se lleva a cabo respecto a la trayectoria circular. En el caso en que la reorientacin o los ejes externos
no puedan alcanzar la velocidad programada, la velocidad de TCP ser reducida.
[\Conc] Con esta opcin, las instrucciones lgicas siguientes se ejecutarn
mientras el robot est en movimiento. Acorta tiempo de ciclo.
switch
PuntoCirculo Es la posicin en el crculo entre el punto de arranque y de destino. No
debe estar situado demasiado cerca del punto de arranque o destino.
robtarget
Alpunto Coordenadas y orientacin del punto destino. robtarget
Velocidad Velocidad del TCP, reorientacin de la herramienta y ejes externos. speeddata
[\V] Sirve para especificar la velocidad del TCP en mm/s directamente en la
instruccin.
num
[\T] Sirve para especificar el tiempo total del movimiento en segundos. num
Zona Tamao de la zona cero del movimiento. zonedata
[\Z] Sirve para especificar el tamao en mm. de la zona cero directamente en
la instruccin
num
Herramienta Es la herramienta activa durante el movimiento. El TCP de la misma es el
punto que se mueve.
tooldata
[\WObj] Es el objeto de trabajo (sistema de coordenadas) al que se refiere la
posicin del robot en la instruccin. Si se omite este argumento, se refiere
al sistema de coordenadas mundo.
wobjdata
Ejemplo:
MoveC punto2,punto3, v200, z40, pinza3;
MoveAbsJ [\Conc] APosEje Velocidad [\V] [\T] Zona [\Z] Herramienta [\WObj]
Sirve para mover el TCP de la herramienta a una posicin absoluta. Se debe utilizar esta instruccin
slo en los siguientes casos: cuando el punto final es un punto singular o para posiciones ambiguas en
el 6400C.
[\Conc] Con esta opcin, las instrucciones lgicas siguientes se ejecutarn
mientras el robot est en movimiento. Acorta tiempo de ciclo.
switch
APosEje Posicin absoluta de destino del robot y de los ejes externos. jointtarget
Velocidad Velocidad del TCP, reorientacin de la herramienta y ejes externos. speeddata
[\V] Sirve para especificar la velocidad del TCP en mm/s directamente en la
instruccin.
num
[\T] Sirve para especificar el tiempo total del movimiento en segundos. num
Zona Tamao de la zona cero del movimiento. zonedata
[\Z] Sirve para especificar el tamao en mm. de la zona cero directamente en
la instruccin
num
Herramienta Es la herramienta activa durante el movimiento. El TCP de la misma es el
punto que se mueve.
tooldata
[\WObj] Es el objeto de trabajo (sistema de coordenadas) al que se refiere la
posicin del robot en la instruccin. Si se omite este argumento, se refiere
al sistema de coordenadas mundo.
wobjdata
Ejemplo:
MoveAbsJ punto2, v200, z40, pinza3;
UVA - CARTIF Manual Bsico de Programacin. Lenguaje RAPID
J. M. Vzquez Pag.: 27
5.3 Otras instrucciones y funciones relacionadas
Instrucciones de bsqueda:
SearchC Bsqueda a lo largo de una trayectoria circular
SearchL Bsqueda a lo largo de una trayectoria lineal
Activacin de salidas o interrupciones especficas:
TriggIO Define una condicin de disparo para la activacin de una salida en una posicin
determinada.
TriggInt Define una condicin de disparo para la ejecucin de una rutina de tratamiento de
interrupciones en una posicin determinada
TriggEquip Define una condicin de disparo para la activacin de una salida en una posicin
especfica con la posibilidad de incluir una compensacin de tiempo por el retraso
en el equipo externo.
TriggC Hacer funcionar el robot de forma circular con una condicin de disparo activada
TriggJ Hacer funcionar el robot eje a eje con una condicin de disparo activada
TriggL Hacer funcionar el robot de forma lineal con una condicin de disparo activada
Control del movimiento en caso de error o interrupcin:
StopMove Parar los movimientos del robot
StartMove Rearrancar los movimientos del robot
StorePath Almacenar la ltima trayectoria generada
RestoPath Volver a generar una trayectoria almacenada con anterioridad
Control de los ejes externos:
DeactUnit Desactivar una unidad mecnica externa
ActUnit Activar una unidad mecnica externa
Ejes independientes:
IndAMove Cambiar un eje a modo independiente y mover el eje a una posicin absoluta
IndCMove Cambiar un eje a modo independiente y arrancar un movimiento continuo del eje
IndDMove Cambiar un eje a modo independiente y mover el eje una distancia delta
IndRMove Cambiar un eje a modo independiente y mover el eje a una posicin relativa
IndReset Cambiar un eje a modo dependiente y/o reinicializar el rea de trabajo
IndInpos Comprobar si un eje independiente est en su posicin
IndSpeed Comprobar si un eje independiente ha alcanzado la velocidad programada.
Funciones de posicin
Offs Aadir un offset a una posicin del robot, expresado respecto al objeto de trabajo
RelTool Aadir un offset, expresado en el sistema de coordenadas de la herramienta
CPos Lee la posicin del robot (slo X,Y,Z)
CRobT Lee la posicin del robot (el robtarget completo)
CJointT Lee los ngulos de los ejes
ReadMotor Lee los ngulos del motor
CTool Lee los datos de la herramienta
CWObj Lee los datos del objeto de trabajo
ORobT Eliminar un desplazamiento de programa
MirPos Realizar una copia espejo de una posicin
Manual Bsico de Programacin. Lenguaje RAPID UVA - CARTIF
J.M. Vzquez Pag.: 28
6. ENTRADAS Y SALIDAS
El robot est equipado con una serie de cartas de entradas y salidas. Los nombres de las seales de
estas cartas se declaran en los parmetros de configuracin del sistema, y mediante estos nombres se
pueden utilizan estas seales en el programa.
El valor de una seal analgica o un grupo de seales digitales est especificado como un valor
numrico.
6.1 Instrucciones de E/S ms usuales
6.1.1 Set
Set sal_dig
Sirve para activar (poner a 1) una salida digital.
sal_dig El nombre de la seal a activar signaldo
Ejemplo:
Set do12
6.1.2 Reset
Reset sal_dig
Sirve para desactivar (poner a 0) una salida digital.
sal_dig El nombre de la seal a desactivar signaldo
Ejemplo:
Reset do12
6.1.3 SetAO
SetAO sal_analog valor
Sirve para cambiar el valor de una salida analgica.
sal_analog El nombre de la salida analgica a cambiar signalao
valor El valor deseado de la seal num
6.1.4 SetDO
SetDO [\Sdelay] sal_dig valor
Sirve para cambiar el valor de una salida digital con posible retraso.
[\Sdelay] Retrasa el cambio los segundos especificados (de 0.1 a 32 segundos con
una resolucin de 0.01 seg.). El programa contina con la instruccin
siguiente.
num
sal_dig El nombre de la salida digital a cambiar signaldo
valor El valor deseado de la seal (0,1) dionum
Ejemplo:
SetDO \Sdelay:=0.2 , do15 , 1
La salida digital 15 pasara a 1 al cabo de 0.2 segundos.
6.1.5 SetGO
SetGO grup_sal valor
Sirve para cambiar el valor de un grupo de salidas digitales.
grup_sal El nombre del grupo de salidas digitales que se desea cambiar signalgo
valor El valor deseado de la seal (entero positivo): Depende del nmero de num
UVA - CARTIF Manual Bsico de Programacin. Lenguaje RAPID
J. M. Vzquez Pag.: 29
seales que formen el grupo: de 0 a 2
numero seales grupo - 1
Ejemplo:
SetGO grupo_1 , 12
6.1.6 WaitDI
WaitDI ent_dig valor [\MaxTime] [\TimeFlag]
Espera hasta que se active una seal de entrada digital.
ent_dig Nombre de la seal signaldi
valor El valor deseado de la seal (0,1) dionum
[\MaxTime] Es el intervalo de tiempo de espera mximo en seg. Si transcurrido ese
tiempo la condicin no se ha cumplido, se genera el error
ERR_WAIT_MAXTIME.
num
[\TimeFlag] Es el parmetro de salida que contiene el valor TRUE cuando el tiempo de
espera mximo permitido ha transcurrido sin que se haya cumplido la
condicin. En este caso no se produce error.
bool
Ejemplo:
WaitDI di12 , 1
El programa espera hasta que la entrada digital 12 pase a valer 1.
6.1.7 WaitDO
WaitDO sal_dig valor [\MaxTime] [\TimeFlag]
Espera hasta que se active una seal de salida digital.
sal_dig Nombre de la seal signaldo
valor El valor deseado de la seal (0,1) dionum
[\MaxTime] Es el intervalo de tiempo de espera mximo en seg. Si transcurrido ese
tiempo la condicin no se ha cumplido, se genera el error
ERR_WAIT_MAXTIME.
num
[\TimeFlag] Es el parmetro de salida que contiene el valor TRUE cuando el tiempo de
espera mximo permitido ha transcurrido sin que se haya cumplido la
condicin. En este caso no se produce error.
bool
Ejemplo:
WaitDO do12 , 0
El programa espera hasta que la salida digital 12 pase a valer 0.
6.2 Otras instrucciones y funciones relacionadas
Instrucciones:
InvertDO Invierte el valor de una salida digital
PulseDO Genera un pulso en una seal de salida digital
Doutput Para leer el valor de una salida digital
Goutput Para leer el valor de un grupo de salidas digitales
Funciones:
TestDI Comprueba si se ha activado una entrada digital
Manual Bsico de Programacin. Lenguaje RAPID UVA - CARTIF
J.M. Vzquez Pag.: 30
7. DIALOGO CON EL OPERADOR
Existen cuatro formas distintas de comunicar a travs de los canales serie:
Mostrar mensajes que se pueden en el visualizador del pupitre y que pueden solicitar una
respuesta del usuario.
Leer o escribir en la memoria msica del sistema (archivos de texto).
Transferir informacin binaria entre el robot y un sensor, por ejemplo.
Transferir informacin binaria entre el robot y otro computador, por ejemplo un protocolo de
enlace.
Si se requiere una comunicacin en ambos sentidos de forma simultnea, se necesitar un tipo de
transmisin binaria.
Cada canal serie o archivo deber en primer lugar ser abierto. Al hacerlo, recibir un nombre que se
utilizar posteriormente como referencia en el momento de leer o escribir. La unidad de programacin
est siempre abierta y se puede utilizar en cualquier momento.
7.1 Instrucciones de comunicacin ms usuales
7.1.1 TPWrite
TPWrite texto [\Num] | [\Bool] | [\Pos] | [\Orient]
Escribe un texto en el visualizador del pupitre mvil.
texto Cadena de texto de menos de 80 caracteres string
[\Num] Dato numrico a aadir a la cadena num
[\Bool] Dato lgico a aadir a la cadena bool
[\Pos] Dato de posicin del robot a aadir a la cadena pos
[\Orient] Dato de orientacin del robot a aadir a la cadena orient
El texto empieza siempre en una lnea nueva del visualizador. Cuando ste se llena, el texto se mueve
hacia arriba.
Ejemplo:
TPWrite El N de piezas producidas es \NUM:= num_piezas
7.1.2 TPReadFK
TPReadFK contestacin texto FK1 FK2 FK3 KF4 FK5 [\MaxTime] [\DIBreak]
[\BreakFlag]
Escribe una etiqueta sobre cada tecla de funcin y lee qu tecla ha sido pulsada.
contestacin Variable que contendr 1,2,3,4 o 5 segn la tecla pulsada num
texto Texto informativo que aparecer en el visualizador string
FKx Texto que aparece sobre las teclas de funcin. Mximo 7 caracteres string
[\MaxTime] Intervalo mximo de tiempo (en seg) que la ejecucin del programa espera.
Si no se pulsa ninguna tecla en ese tiempo se genera el error
ERR_TP_MAXTIME
num
[\DIBreak] Entrada digital que podra interrumpir el dilogo. Si no se pulsa ninguna
tecla antes de que esta seal pase a 1 se genera el error
ERR_TP_DIBREAK
signaldi
[\BreakFlag] Variable de salida que contiene el cdigo de error si se utiliza MaxTime o
DIBreak. Si esta variable est presente no se produce el error.
errnum
El texto empieza siempre en una lnea nueva del visualizador. Cuando ste se llena el texto se mueve
hacia arriba. Las teclas de funcin que no tengan indicador sern desactivadas.
Ejemplo:
VAR errnum error;
UVA - CARTIF Manual Bsico de Programacin. Lenguaje RAPID
J. M. Vzquez Pag.: 31
...
TPReadFK reg1 Ir a la posicin de REPLIEGUE?, , , , Si, No
\Maxtime:=600 \DIBreak:=di5 \BreakFlag:=error;
IF reg1=4 or error=ERR_TP_DIBREAK THEN
MoveL repli, v500, fine, tool1;
Stop;
ENDIF
IF error=ERR_TP_MAXTIME EXIT
El robot se mueve a la posicin repli si se pulsa la tecla Si o si se activa la entrada 5. Si no hay
respuesta en 10 minutos, la ejecucin termina.
7.2 Otras instrucciones y funciones relacionadas
Instrucciones:
TPErase Borra la informacin del visualizador de la unidad de programacin
ErrWrite Escribe un texto en el visualizador y lo almacena en el registro de errores
TPReadNum Lee un valor numrico de la unidad de programacin
Open Abrir un canal o archivo para lectura o escritura
Write Escribir texto en un canal o archivo
Close Cerrar un canal o archivo
WriteBin
Escribir en un canal serie binario
Funciones:
ReadNum Lee un valor numrico de un canal o archivo
ReadStr Lee una cadena de texto de un canal o archivo
ReadBin Lee desde un canal serie binario.
Manual Bsico de Programacin. Lenguaje RAPID UVA - CARTIF
J.M. Vzquez Pag.: 32
8. INSTRUCCIONES VARIAS
8.1 Instrucciones de espera
Se puede programar el robot para que espere un cierto tiempo o hasta que se cumpla un acierta
condicin.
Instrucciones:
WaitTime Esperar un cierto tiempo o esperar hasta que el robot se detenga
WaitUntil Esperar hasta que se cumpla una condicin
WaitDI Esperar hasta que se active una entrada digital (Ver cap. entradas y salidas).
WaitDO Esperar hasta que se active una salida digital (Ver cap. entradas y salidas).
8.2 Fecha y hora
Las instrucciones de reloj permiten al usuario contar, controlar y registrar el tiempo, utilizando relojes
(clock) que funcionan como cronmetros. La hora o fecha actual se registra en una cadena. Pero existen
la posibilidad de registrar algunos de los componentes de la hora del sistema como valor numrico. Esto
permite al programa realizar una actividad a una hora o un da determinado.
Instrucciones:
ClkReset Pone a 0 un reloj para cronometraje
ClkStart Arranca un reloj para el cronometraje
ClkStop Parar un reloj para el cronometraje
Funciones:
ClkRead Leer el reloj del cronometraje
CDate Leer la fecha actual como una cadena
CTime Leer la hora actual como una cadena
GetTime Leer la hora actual como un valor numrico
8.3 Matemticas
Las instrucciones y funciones matemticas sirven para calcular y cambiar el valor de los datos. El
resultado de los clculos se suele asignar a un nuevo dato mediante la instruccin de asignacin: := .
Instrucciones:
Clear Poner a 0 un valor
Add Sumar o restar un valor
Incr Incrementar en 1
Decr Decrementar en 1
Funciones:
Abs Calcula el valor absoluto
Round Redondea un valor numrico
Trunc Trunca un valor numrico
Sqrt Calculo la raz cuadrada
Exp Calcula la exponencial de e
Pow Calcula la exponencial con cualquier base
ACos Calcula el arco coseno
ASin Calcula el arco seno
ATan Calcula el arco tangente (entre -90 y 90)
ATan2 Calcula el arco tangente (entre -180 y 180)
UVA - CARTIF Manual Bsico de Programacin. Lenguaje RAPID
J. M. Vzquez Pag.: 33
Cos Calcula el coseno
Sin Calcula el seno
Tan Calcula la tangente
EulerZYX Calcula los ngulos de Euler a partir de una orientacin (cuaternios)
OrientZYX Calcula la orientacin (cuaternios) a partir de los ngulos de Euler
PoseInv Invertir una posicin
PoseMult Multiplicar una posicin
PoseVect Multiplicar una posicin y un vector
8.4 Instrucciones de servicio
El sistema dispone de una serie de instrucciones que sirven para hacer el test del sistema robot. Se
puede direccionar una seal de referencia (por ejemplo la velocidad de un motor) a una salida analgica
del robot
Funciones:
TestSign Definir y activar una seal de test
8.5 Funciones de cadena
Permiten realizar operaciones con cadenas como: copia, concatenacin, comparacin, bsqueda,
conversin, etc.
Operadores:
:= Asignar un valor a una cadena
+ Concatenacin de cadenas
= Comprobar si es igual a
<> Comprobar si no es igual a
Funciones:
StrLen Calcula la longitud de una cadena
StrPart Tomar parte de una cadena
StrMemb Comprobar si un carcter pertenece a una cadena
StrFind Buscar un carcter dentro de una cadena
StrMatch Buscar una estructura de caracteres en una cadena
StrOrder Comprobar si las cadenas estn ordenadas
NumToStr Convertir un valor numrico en cadena
ValToStr Convertir un valor en una cadena
StrToVal Convertir una cadena en un valor
StrMap Realizar un mapa de la cadena
8.6 Funciones varias
OpMode Lee el modo de funcionamiento actual del robot
RunMode Lee el modo de ejecucin de programa que est usando actualmente el robot
Dim Obtiene las dimensiones de una matriz
Present Descubrir si un parmetro opcional estaba presente en la llamada a la rutina
IsPers Comprobar si un parmetro es un dato persistente
IsVar Comprobar si un parmetro es un dato variable
Load Carga un mdulo de programa en la memoria de programa
UnLoad Descarga un mdulo de programa en la memoria de programa

You might also like