Sei sulla pagina 1di 110

Robtica y CIM

Programacin Lenguaje
RAPID
06
Robtica y CIM

Programacin Lenguaje RAPID
3
06
ndice
OBJETIVOS.......................................................................................................... 5
INTRODUCCIN .................................................................................................. 6
6.1. Definicin del lenguaje rapid ..................................................................... 7
6.1.1. Ancdota del lenguaje de programacion............................................... 8
6.2. Estructura de un Programa de Robot ..................................................... 14
6.3. Instrucciones RAPID................................................................................. 15
6.3.1. Tabla de Instrucciones Rapid.............................................................. 15
6.3.2. Definicin de las Instrucciones RAPID................................................ 20
6.4. Instrucciones Lgicas .............................................................................. 22
6.4.1. Instruccin = ..................................................................................... 22
6.4.2. Instruccin AccSet .............................................................................. 23
6.4.3. Instruccin Procall ............................................................................... 24
6.4.4. Instruccin ClkStop Paro de un reloj de cronometraje........................ 25
6.4.5. Instruccin Decr. Disminucin de 1..................................................... 26
6.4.6. Instruccin Exit. Fin de Ejecucin de un Programa............................. 26
6.4.7. Instruccin For. Repeticin de un nmero dado de veces. ................. 27
6.4.8. Instruccin IF. Si se cumple una condicion. ........................................ 29
6.4.9. TEST Dependiendo del valor de una expresin ................................. 30
6.4.10. RETURN Fin de ejecucin de una rutina............................................ 32
6.4.11. Instruccin Stop. Paro de la ejecucin del programa.......................... 33
6.5. Instrucciones de control o cambio de registros.................................... 35
6.5.1. Instruccin Add ................................................................................... 35
6.5.2. Instruccin Clear ................................................................................. 36
6.5.3. Instruccin Incr. Incremento de 1........................................................ 36
6.5.4. Instruccin Decr Disminucin de 1...................................................... 37
6.6. Instrucciones de control o escritura en pantalla ................................... 38
6.6.1. TPErase Borrado del Texto en la Unidad de Programacin ............... 38
6.6.2. TPWrite Escritura en la unidad de programacin................................ 38
6.6.3. TPReadNum Lectura de un nmero en la TPU .................................. 40
6.6.4. TPReadFK Lectura de las teclas de funcin....................................... 41
6.7. Instrucciones de Activacion y desactivacion de Seales..................... 45
6.7.1. Instruccin Set. Activacin de una seal de salida digital................... 45
6.7.2. SetAO Cambio del valor de una seal de salida analgica ................ 45
6.7.3. SetDO Cambio del valor de una seal de salida digital ...................... 46
6.7.4. SetGO Cambio del valor de un grupo de salidas digitales.................. 47
6.7.5. Reset Puesta a cero de una seal de salida digital ............................ 48
6.7.6. PulseDO Generacin de un pulso en una salida digital ...................... 49
Formacin Abierta

Programacin Lenguaje RAPID
4
6.8. Instrucciones de control de Tiempo ....................................................... 50
6.8.1. Instruccin ClkReset ........................................................................... 50
6.8.2. Instruccin ClkStart ............................................................................. 50
6.9. Instrucciones de espera........................................................................... 52
6.9.1. WaitDI Espera la activacin de una seal de entrada digital .............. 52
6.9.2. WaitDO Espera la activacin de una seal de salida digital ............... 53
6.9.3. WHILE Repeticin de una instruccin mientras... ............................... 55
6.9.4. WaitTime Espera durante un tiempo especificado.............................. 55
6.9.5. WaitUntil Esperar hasta el cumplimientode una condicin ................. 56
6.10. Instrucciones de Movimiento................................................................... 59
6.10.1. Instruccin MoveAbsJ. Movimiento de ejes Absolutos ....................... 59
6.10.2. Instruccin MoveC. Movimiento Circular............................................. 63
6.10.3. MoveCDO. Movimiento circular y activacin de una salida ................ 68
6.10.4. MoveJDO. Movimiento eje a eje y activacin de una salida............... 69
6.10.5. Instruccin MoveJ. Movimiento eje a eje ............................................ 71
6.10.6. MoveLDO. Movimiento lineal y activacin de una salida.................... 74
6.10.7. Instruccin MoveL. Movimiento Lineal ................................................ 76
6.10.8. MoveJSync. Movimiento eje a eje y ejecucin de un proceso............ 78
6.10.9. MoveL Sync. Movimiento lineal y ejecucin de un proceso................ 80
6.11. Aplicacin Soldadura Por Arco ............................................................... 85
6.11.1. Programacin de la Soldadura al Arco ............................................... 85
6.11.2. Instrucciones de soldadura al arco ..................................................... 85
6.11.3. Definicin de los datos de soldadura al arco ...................................... 86
6.11.4. Ejemplo de una instruccin de soldadura al arco................................ 87
6.11.5. Funciones manuales cuando la ejecucin del programa ha sido
detenida .......................................................................................... 88
6.11.6. Ajuste de los datos de soldadura........................................................ 89
6.11.7. Funciones manuales durante la ejecucin del programa.................... 89
6.11.8. Ajuste de los datos.............................................................................. 90
6.11.9. Definicin de los sistemas de soldadura al arco................................. 90
6.11.10. ArcL Soldadura al arco con movimiento lineal .................................... 90
6.12. Aplicacin de Pintura ............................................................................... 96
6.12.1. Programacin de la Aplicacin de Pintura .......................................... 96
6.13. Tipos de Datos .......................................................................................... 98
6.13.1. Bool Valores lgicos............................................................................ 99
6.13.2. Clock Medida del tiempo..................................................................... 99
6.13.3. Num Valores numricos (registros)................................................... 100
6.13.4. Robtarget Datos de posicin............................................................. 101
6.13.5. Speeddata Datos de velocidad ......................................................... 104
6.13.6. Tooldata Datos de herramienta......................................................... 105
RESUMEN ........................................................................................................ 109

Robtica y CIM

Programacin Lenguaje RAPID
5
06
Objetivos
Sin duda el principal objetivo de esta unidad es conocer el lenguaje RAPID.
Definiciones y estructuracin de distintas Instrucciones RAPID.
Tener localizadas todas o por lo menos las instrucciones mas usuales en
robtica industrial.
Conocer instrucciones lgicas, de control o cambio de parmetros, controlar la
estructura de un reloj lgico, activar y desactivar seales analgicas digitales o
de grupos.
Estructurar unas instrucciones para ejecutar una trayectoria, para ejecutar un
proceso productivo real.
Controlar mensajes por pantalla.
Realizar distintas operaciones determinando condiciones.
Conocer programacin en distintas e importantes aplicaciones tales como
Soldadura por Arco o Pintura.
Saber distinguir los distintos Tipos de Datos que aparezcan en programacin.

Formacin Abierta

Programacin Lenguaje RAPID
6
Introduccin
El mundo que rodea a los robots industriales es muy complejo. El mayor problema,
como en cualquier otra disciplina, es la falta de familiaridad con los trminos y
conceptos utilizados.
Se tiende a ver a la robtica industrial como una materia muy difcil a la que pocas
personas tienen acceso. Sin embargo, dado el creciente ritmo de implantacin de
los robots en las fbricas de nuestro entorno, la constante renovacin de
conocimientos tcnicos se hace casi imprescindible hoy en da.
As pues, en este captulo daremos a conocer los fundamentos de la robtica
actual, sus antecedentes y sus posibilidades. Estudiaremos en este captulo el
porqu y el cmo de la aparicin de los robots Cundo surgieron, como han
evolucionado, para qu los podemos utilizar y sus principales caractersticas.
Al finalizar el estudio de este primer captulo, usted tendr un excelente punto de
partida para poder empezar a estudiar con mayor profundidad todas las materias
implicadas en el mundo de la robtica, que iremos desarrollando a lo largo del resto
del curso.
El principal problema que surge y la causa de la marginacin en personal para
realizar operaciones dentro de una factora en el sector o en el mundo de la
robtica, es sin duda el tema de Programacin de Robots.
Entenderemos las partes ms importantes de un lenguaje simple y fcil de
comprender, pero a su vez completo para ejecutar cualquier orden al robot con el
entorno.

Robtica y CIM

Programacin Lenguaje RAPID
7
06
6.1. Definicin del lenguaje rapid
Podramos alargar este tema hasta extremos imaginarios, tanto como modelos de
robots nos podemos encontrar en el mercado, pero desgraciadamente no tenemos
margen para operar y rellenar nuestros conocimientos de robtica o de conceptos
de programacin en el campo de la Robtica industrial.

Cada equipo, cada marca, cada fabricante de robots
industriales utiliza o se basan en su propio lenguaje de
programacin, bsicamente comprendiendo en
profundidad un sistema de programacin robotizado,
entenderemos casi al completo como se programa un
robot industrial en la actualidad.
Como se indica, en este tema trataremos una explicacin detallada del lenguaje de
programacin as como de todos los tipos de datos, instrucciones y funciones.

Se recomienda utilizar la documentacin que
adquiriremos al comprar un robot industrial cuando se
desee empezar a programar el robot, hasta haber
adquirido cierta familiaridad con el sistema.
En nuestro caso tendremos especial recordatorio al tema
anterior a esta actividad, donde se conoce el
funcionamiento bsico del sistema robotizado, su panel
de control y muy especialmente el funcionamiento de la
unidad de programacin y sus mens.
En definitiva, RAPID es un lenguaje de programacin de uno de los mas
importantes fabricantes a nivel mundial de robtica, nosotros estudiaremos este
lenguaje, ya que es muy sencillo de comprender y uno de los ms completos a la
hora de trabajar en la industria, el lenguaje RAPID abarca un gran numero de
posibilidades a la hora de realizar un proceso productivo, un proceso repetitivo.

Por qu crees que se crearon los lenguajes de
programacin en Robtica?
Por qu no programamos directamente en el
microprocesador?
Formacin Abierta

Programacin Lenguaje RAPID
8
La respuesta la puedes encontrar en el siguiente texto anecdtico.
6.1.1. Ancdota del lenguaje de programacion
Para salvar la brecha que separa a sus dos lectores, o sea a la mquina y al
programador, el lenguaje de computacin est ideado jerrquicamente. Recurdese
que la unidad procesadora central de una computadora responde a un conjunto de
varios cientos de instrucciones, a las que se llama con toda propiedad lenguaje de
la mquina. En lo fundamental ste es el nico cdigo de mando que la
computadora entiende, un cdigo que ms o menos est dentro de su equipo.
Compuestos de unos y ceros como todo lo dems de la computadora, el lenguaje
de la mquina es extremadamente dificultoso.

De unos y ceros como todo lo dems de la computadora,
el lenguaje de la mquina es extremadamente dificultoso.
Si un programador quiere escribir una instruccin que agregue el contenido de una
palabra de memoria a una segunda, debe entender, por ejemplo, al smbolo de
ocho dgitos de esta instruccin de adicin en una tabla, as como las direcciones
de las dos palabras. El resultado ser una hilera de tal vez 32 dgitos, que el
programador puede equivocar a la hora de copiar. Por ello, un programa que
contenga varias docenas de estas instrucciones ser una pesadilla en cuanto a su
escritura, a su cotejo y a su correccin. A pesar de ello en los primeros aos de la
computacin los ingenieros trabajaron directamente en el lenguaje de la mquina.
Luego empezaron a desarrollar cdigos ms legibles, aprovechndose de recursos
mnemotcnicos. A estos nuevos cdigos se les dio el nombre de lenguajes en
conjunto (assembly languages) y todava se usan.










Robtica y CIM

Programacin Lenguaje RAPID
9
06
El fundamento de los lenguajes en conjunto es que los programadores humanos
recuerdan los nombres ms fcilmente que los nmeros. Nombres cortos y fijos
(tales como AD, SUBS, MUL) se presentan en todas las instrucciones de la
mquina, amn de que los programadores pueden componer sus propios nombres
para indicar sitios de almacenamiento, es decir, variables en el sentido matemtico
(nombres AL, RAPID,SUM). Aunque la computadora ejecuta instrucciones slo en
lenguaje de la mquina, con ayuda de un programa escrito con anterioridad,
traduce automticamente del lenguaje del conjunto al lenguaje de la mquina, y
enseguida ejecuta. Es decir, transforma el programa escrito con nombres en una
larga hilera de dgitos binarios que el procesador entiende. Este programa de
traduccin (llamado conjuntador assembler) evita al programador el trabajo
de buscar cdigos binarios en una tabla y de escribirlos l mismo. En general, los
programadores siguen escribiendo un enunciado en lenguaje de conjunto para cada
instruccin que quieran que ejecute la mquina. Sigue estando muy atado a la
estructura lgica de la mquina que usa, aunque ahora escribe en un lenguaje que
no es el lenguaje de la mquina.

Aunque la computadora ejecuta instrucciones slo en
lenguaje de la mquina, con ayuda de un programa
escrito con anterioridad, traduce automticamente del
lenguaje del conjunto al lenguaje de la mquina, y
enseguida ejecuta. Es decir, transforma el programa
escrito con nombres en una larga hilera de dgitos
binarios que el procesador entiende. Este programa de
traduccin (llamado conjuntador assembler) evita al
programador el trabajo de buscar cdigos binarios en una
tabla y de escribirlos l mismo.
El paso siguiente fue crear cdigos que alejaron todava ms al programador de su
mquina, pues le permitieron escribir en un lenguaje ms matemtico. A estos
cdigos se les llaman lenguajes de alto nivel (high-level languages) y son
traducidos en instrucciones a la mquina no por medio de programas conjuntadores
relativamente simples, sino por medio de programas complejos llamados
compiladores (compilers). El primero de tales lenguajes que se us de un modo
general (a fines de los aos 1950) fue el FORTRAN. A partir de entonces ha habido
docenas de ellos. En FORTRAN, el programador escribe instrucciones que se
parecen mucho al lgebra: por ejemplo, C=A+B. En otros lenguajes los enunciados
pueden parecerse ms a la lgica simblica o inclusive al idioma natural simple.
Cada enunciado FORTRAN pide a la CPU que realice algunas operaciones
elementales, por lo cual todos ellos deben ser convertidos en un nmero de
instrucciones dadas en el lenguaje de la mquina. Un programa compilador tiene
precisamente esta tarea; acepta enunciados FORTRAN como su input, los analiza en
sus partes constitutivas y genera enunciados de la mquina como output. Como
cualquier traductor humano, el compilador escucha en un idioma y habla del otro.
Formacin Abierta

Programacin Lenguaje RAPID
10
Pero a diferencia del humano, que aporta al trabajo de traduccin sus
conocimientos sobre el significado de las palabras y sobre las probables
intenciones del hablante o escritor, el compilador no sabe nada del propsito
general del programa FORTRAN y mucho menos de las intenciones del programador.
Nadie afirmara que entiende francs si todo lo que hace es identificar al sujeto y al
predicado en una frase en francs, en tanto que un compilador entiende FORTRAN
justamente en ese sentido, porque puede analizar la sintaxis de enunciados en
FORTRAN o cualquier otro lenguaje de alto nivel deben ser en lo estructural no
ambiguas. El compilador no puede elegir entre anlisis alternos; por definicin
carece de aptitud de interpretacin del traductor humano.
Lenguaje de alto nivel
(fortran
Lenguaje
conjuntador
(hipottico
Lenguaje de la mquina (16 bits hipotticos)
VEL = 10
LDI 10
STA VEL
0000110000001010
000100010001000
POS=VEL*(TIME+INC
LDA TIME
ADA INC
MUL VEL
STA POS
0000100100010010
0010000100010100
STA POS
0011100100010000
0001000100010110
Aqu se muestran tres niveles del lenguaje electrnico. Una orden en un lenguaje
de alto nivel podra convertirse en dos o tres (o muchas!) en el lenguaje
conjuntador. El lenguaje conjuntador permite adems el uso de nombres (VEL,
POS, TIME, INC) y el uso de mnemotecnias en instrucciones (LDI, LDA, ADA,
MUL y ETA son todos opcodes, es decir, cdigos de instruccin o nombres de
operaciones de la mquina). En el lenguaje de la mquina, inclusive stas deben
ser sustituidas por hileras de nmeros binarios.
He aqu, pues, una cualidad del lenguaje de la computacin: su estructura
jerrquica o en capas. Los cdigos de computacin se clasifican en trminos de su
distancia respecto a su lenguaje binario de las instrucciones de la mquina y de su
proximidad a los lenguajes tradicionales de las matemticas y de la lgica. En el
nivel ms elevado estn lenguajes compiladores de la talla de FORTRAN; abajo se
hallan lenguajes de conjunto; abajo de stos estn las instrucciones de la mquina.
Lo cierto es que en realidad son posibles niveles an ms altos.
Robtica y CIM

Programacin Lenguaje RAPID
11
06

Un programa escrito en PASCAL puede aceptar ms
expresiones en el idioma hablado natural, como
"multiplique distancia por velocidad", y convertirlas en
operaciones de la mquina.
En este caso, el programa PASCAL es en s un compilador del lenguaje natural para
cuyo procesamiento est equipado. Un compilador ocupa una posicin intermedia
entre un nivel alto y uno bajo. Las palabras "alto" y "bajo" tal vez parezcan indicar
prejuicio: el lenguaje de alto nivel est un poco ms cerca del usuario que habla el
lenguaje natural, aun cuando nuestro lenguaje exceda en complejidad y riqueza a
cualquier cosa que la computadora pueda procesar hoy da. Por otra parte, el
lenguaje de la computacin cobra significado nicamente por medio de su
ejecucin. Ejecutar una orden FORTRAN le permite realizar su significado en el
campo de la accin. Como ocurre en cualquier jerarqua, las unidades situadas en
la cima dan las rdenes, las intermedias las pasan y las unidades situadas en el
fondo las ejecutan. Las humildes instrucciones de la mquina son las nicas que en
realidad realizan computacin.
Los programas de compilacin y de conjunto son programas de traduccin: aceptan
como input enunciados en clave en un nivel de la jerarqua electrnica y producen
instrucciones de output en un nivel inferior. El proceso de traduccin, aunque
terriblemente complejo, no tiene nada de misterioso. Se lleva acabo de un
algoritmo; no intervienen intuiciones. Para que el compilador "entienda" un
enunciado en FORTRAN slo necesita procesarlo paso a paso y convertirlo en una
forma ejecutable. Una vez ejecutado, el enunciado no ejerce influencia alguna
sobre el resto del programa. En el idioma hablado el significado de una frase puede
cambiar radicalmente debido a la frase que le sigue, porque la frase permanece
activa y resonante en la memoria mucho despus de haber sido leda o
pronunciada. Todo enunciado escrito en lenguaje de computacin exige, sin
embargo, la total atencin de la mquina a lo largo del fugaz momento de su
ejecucin; en seguida deja de tener significado a menos que (en el caso de
programas looping) se vuelva a presentar nuevamente para su ejecucin.
Adems, como el lenguaje de la computacin slo tiene significado en la accin, no
se puede tolerar la menor ambigedad. Si una orden de FORTRAN tiene dos
interpretaciones posibles, el compilador deber generar dos conjuntos de
instrucciones a la mquina. Sin embargo, el procesador central slo puede ejecutar
una instruccin a la vez; no puede escoger libremente entre los dos conjuntos de
instrucciones. Por esta razn el lenguaje de la computacin es unvoco en todos los
niveles: cada enunciado o es por completo claro o est equivocado para garantizar
su calidad el lenguaje cuenta con una sintaxis rgida de expresiones permisibles.
Formacin Abierta

Programacin Lenguaje RAPID
12
Esta rigidez significa que los programadores que por naturaleza no piensan de un
modo tan consistente, cometen con frecuencia errores tan pequeos, al dejar fuera
puntuacin, parntesis, o bien deletreando mal. Cuando el compilador se encuentra
con un enunciado que no es conforme, tal vez trate de adivinar que fue lo que el
programador quiso escribir; omiti una coma o punto y coma? Esta adivinacin es
de alcance limitado por que el compilador nunca quiere escoger entre significados
operacionalmente diferentes. A final de cuentas, tal vez el compilador pase por alto
el mal enunciado y omita totalmente las instrucciones a la mquina que pudo
generar. Por lo comn el resultado es que el programa no se puede ejecutar. En
pocas palabras, la ambigedad que tan importante es a la comunicacin humana
resulta fatal a la computadora.
En el lenguaje hablado la ambigedad significa en muchos casos la diferencia entre
lenguaje e intencin, ya que respecto a una frase sencilla caben presentarse
muchos significados. En trminos lgicos nuestro lenguaje escrito y hablado suele
fallarnos, porque no revela con claridad nuestras intenciones. Por otra parte, esta
falla es una de las cualidades del lenguaje que hacen posible a la poesa y que, en
general, nos permite grandes economas en cuanto a comunicacin. Hay ocasiones
en que la ambigedad comunica exactamente el sentido correcto. Sin embargo, es
frecuente que el mensaje se refiera a emociones o intuiciones que los lenguajes de
las computadoras no pueden representar. La representacin electrnica como una
serie de smbolos en una tarjeta perforada, en cinta magntica o en disco
magntico, es una representacin sin tacha (dentro de la tolerancia de error del
sistema particular). Sucede que un enunciado FORTRAN no es otra cosa que estos
smbolos. En el lenguaje natural la expresin escrita es slo una parte de todo el
lenguaje, no siempre la ms importante. Cualquier frase escrita en un papel se
puede decir de varios modos, lo cual traduce otros tantos matices de significado
que dan colorido al contexto en que se presentan. En cambio, en una variable
FORTRAN no hay connotaciones, no hay significados sobreentendidos. La
imprecisin en un lenguaje de computacin no producir poesa, ni expresar
emocin, ni agregar colorido, ni har nada de aquello en que el lenguaje natural
sobresale. Slo producir un error, en cuyo caso el programa deber ser rehecho.
Los lenguajes electrnicos han sido ideados por matemticos y lgicos como
instrumentos para resolver problemas tcnicos. Estas personas quiz no aprecien
siempre las ambigedades matices del idioma literario hablado. Pero en caso de
que s las aprecien, no pueden incorporar esos matices en sus compiladores
porque la naturaleza lgica de los circuitos y de los registros de almacenamiento no
permite ambigedades. Los nicos lenguajes apropiados para los sistemas
electrnicos son aquellos que sean precisos y tan estructuralmente simples como
FORTRAN y LISP. La nica definicin que tiene sentido es la definicin operacional:
tradzcase el enunciado en lenguaje de la mquina, ejectese y examnese el
resultado. Finalmente en FORTRAN no hay nada parecido al pensamiento que no se
pueda expresar en un enunciado FORTRAN; en el reino de la computadora,
coinciden pensamiento y lenguaje.
Robtica y CIM

Programacin Lenguaje RAPID
13
06

Los lenguajes electrnicos han sido ideados por
matemticos y lgicos como instrumentos para resolver
problemas tcnicos.


En el reino de la computadora, coinciden pensamiento y
lenguaje.
Formacin Abierta

Programacin Lenguaje RAPID
14
6.2. Estructura de un Programa de Robot
Tal y como nos hemos percatado en temas anteriores, la estructura de un programa
en sencilla y necesaria a la hora de profundizar en programacin.
D
atos U
suario
Datos Usuario
M
ain
M
ain
R1
R1
R2
R2
R3
R3
R4
R4
... ...
Rn
Rn
P
ro
g
1
D
atos U
suario
Datos Usuario
M
ain
M
ain
R1
R1
R2
R2
R3
R3
R4
R4
... ...
Rn
Rn
P
ro
g
1
RAM

Nombre del Programa. Maximo 8
caracteres
Datos creados por el usuario.
Herramientas, posiciones,
Rutina principal. Es definida
automaticamente al crear el programa.
ERs la rutina a partior de la cual se
inicia la ejecucion del programa.
Conjunto de rutinas cerradas por el
usuario. Ejemplo. Abrir_Garra.
Limpieza. Girar_Mesa1,
Figura 6.1. Estructura de Programa.

Como conjunto completo de programa, aparece en un cuadro grande donde se
denomina el nombre de programa, nos indica que como mximo podemos definir el
nombre de programa con 8 caracteres.
Posteriormente y de forma escalonada o de pirmide aparecen los datos
creados por el usuario, las declaraciones de los datos, herramientas empleadas
(TCP), movimientos o las posiciones de los movimientos en el espacio
realizadas automticamente por el robot dependiendo del resultado de sus
operaciones matemticas a la hora de realizar o memorizar una posicin de
movimiento, y dems datos que continuacin y en este tema podremos
observar.
Seguidamente pasamos a la rutina principal o tambin denominada como
MAIN, Es definida automticamente por el sistema del robot al crear el
programa. Es la rutina a partir de la cual se inicia la ejecucin de programa que
nosotros poco a poco vamos creando.
Finalmente en nuestro programa tipo o bsico, nos queda por completar las
rutinas, son pequeos programas que se adjuntan o se llaman desde nuestro
programa principal (MAIN) que el sistema crea desde un inicio. Rutinas tales
como limpieza de til, abrir y cerrar garras, etc.
Robtica y CIM

Programacin Lenguaje RAPID
15
06
6.3. Instrucciones RAPID
Vamos a presentar una lista amplia de las instrucciones que el lenguaje RAPID nos
relata. Como se podr observar son mltiples las instrucciones que podemos
encontrarnos, nosotros veremos un gran numero de instrucciones, las ms
comunes y empleadas para poder realizar programas de un nivel avanzado,
empezaremos poco a poco a complicar los programas hasta alcanzar un nivel
ptimo para poder programar cualquier tipo de robot industrial con tan slo realizar
los cambio pertinentes de conceptos de programacin.
Empecemos presentando todas las instrucciones de programacin RAPID.
6.3.1. Tabla de Instrucciones Rapid
Como podrs ver en la siguiente tabla, en la parte izquierda aparece la Instruccin
Rapid, a la derecha la denominacin de lo que significa dicha instruccin, la
definicin.

La Instruccin est escrita tal y como debemos escribirla
en nuestro programa, si nuestro programa lo editamos o
lo crearemos, en un editor de texto, si te confundes a la
hora de escribir la instruccin, en el editor de texto, el
robot te lanzara por pantalla, un mensaje de error de
sintaxis y te indicar con exactitud donde se ha cometido
el error, lnea y columna de programa.
Si nosotros programamos el Robot mediante la unidad de
programacin, los errores de Sintaxis los eliminaremos,
ya que es el Robot, quien escribe las lneas de programa
automticamente, al elegir nosotros la o las instrucciones
deseadas y necesarias para nuestro proceso de
programacin.
Veamos entonces en las siguientes pginas, todas las instrucciones del lenguaje de
programacin Rapid y la denominacin de cada una de las instrucciones. Despus
de presentar todas las instrucciones, entraremos a fondo en cada una de las
instrucciones ms importantes que emplearemos, para poder empezar a realizar
programas de Robtica, basados en Rapid.



Formacin Abierta

Programacin Lenguaje RAPID
16
INSTRUCCIN DENOMINACIN
:= Asignacin de un valor
AccSet Reduccin de Aceleracin
ActUnit Activacin de una Unidad mecnica
Add Adicin de un valor numrico
AliasIO Definicin de una seal de E/S con un nombre equivalente
Break Interrupcin de la ejecucin del programa
ProcCall Llamada a un procedimiento nuevo
CallByVar Llamada de un procedimiento mediante una variable
Clear Borrado de un valor
ClearIOBuff Inicializar el buffer de entrada de un canal serie
ClkReset Puesta a cero de un reloj para el cronometraje
ClkStart Arranque de un reloj para el cronometraje
ClkStop Paro de un reloj de cronometraje
Close Cerrar un archivo o un canal serie
comment Comentarios
ConfJ Control de la configuracin durante el movimiento eje a eje
ConfL Control de la configuracin durante el movimiento lineal
CONNECT Conexin de una interrupcin a una rutina de tratamiento de interrupciones
ConfL Control de la configuracin durante el movimiento lineal
ConfL Control de la configuracin durante el movimiento lineal
CONNECT Conexin de una interrupcin a una rutina de tratamiento de interrupciones
DeactUnit Desactivacin de una unidad mecnica
Decr Disminucin de 1
EOffsOff Desactivacin de un offset de los ejes externos
EOffsOn Activacin de un offset de los ejes externos
EOffsSet Activacin de un offset de ejes externos utilizando un valor
ErrWrite Escribir un Mensaje de Error
EXIT Fin de ejecucin del programa
ExitCycle Interrupcin del ciclo actual y arranque del siguiente
FOR Repeticin de un nmero dado de veces
GetSysData Coger datos del sistema
GOTO Ir a una instruccin nueva identificada por una etiqueta (label)

Robtica y CIM

Programacin Lenguaje RAPID
17
06

INSTRUCCIN DENOMINACIN
GripLoad Definicin de la carga til del robot
IDelete Anulacin de una interrupcin
IDisable Inhabilitacin de las interrupciones
IEnable Habilitacin de las interrupciones
Compact IF Si se cumple una condicin, entonces... (una instruccin)
IF Si se cumple una condicin, entonces...; si no...
Incr Incremento de 1
InvertDO Inversin del valor de una seal de salida digital
IODisable Inhabilitar la unidad de E/S
IOEnable Habilitar la unidad de E/S
ISignalAI Orden de interrupcin a partir de una seal de entrada analgica
ISignalAO Orden de interrupcin a partir de una seal de salida analgica
ISignalDI Orden de interrupcin a partir de una seal de entrada digital
ISignalDO Orden de interrupcin a partir de una seal de salida digital
ISleep Desactivacin de una interrupcin
ITimer Ordena una interrupcin temporizada
IVarValue Ordena una interrupcin de un valor de variable
IWatch Activacin de una interrupcin
label Nombre de lnea
Load Cargar un mdulo de programa durante la ejecucin
MechUnitLoad Definicin de una carga til para una unidad mecnica
MoveAbsJ Movimiento del robot a una posicin de ejes absoluta
MoveC Movimiento circular del robot
MoveJ Movimiento eje a eje del robot
MoveL Movimiento lineal del robot
MoveCDO Movimiento circular del robot y activacin de una salida digital en la esquina
MoveJDO
Movimiento eje a eje del robot y activacin de una salida digital en la
esquina
MoveLDO Movimiento lineal del robot y activacin de una salida digital en la esquina
MoveCSync Movimiento circular del robot y ejecucin de un proceso RAPID
MoveJSync Movimiento eje a eje del robot y ejecucin de un proceso RAPID
MoveL Sync Movimiento lineal del robot y ejecucin de un proceso RAPID
Formacin Abierta

Programacin Lenguaje RAPID
18

INTRODUCCIN DENOMINACIN
Open Apertura de un archivo o de un canal serie
PathResol Ajuste de la resolucin de trayectoria
PDispOff Desactivacin de un desplazamiento de programa
PDispOn Activacin de un desplazamiento de programa
PDispSet Activacin de un desplazamiento del programa utilizando un valor
PulseDO Generacin de un pulso en una seal de salida digital
RAISE Llamada al gestor de error
ReadAnyBin Lectura de datos a partir de un archivo o de un canal serie binarios
Reset Puesta a cero de una seal de salida digital
RestoPath Restauracin de la trayectoria despus de una interrupcin
RETRY Rearranque despus de un error
RETURN Fin de ejecucin de una rutina
Rewind Reiniciar la posicin del archivo
Rewind Reiniciar la posicin del archivo
Save Guardar un mdulo de programa
SearchC Bsqueda circular utilizando el robot
SearchL Bsqueda lineal utilizando el robot
Set Activacin de una seal de salida digital
SetAO Cambio del valor de una seal de salida analgica
SetDO Cambio del valor de una seal de salida digital
SetGO Cambio del valor de un grupo de seales de salidas digitales
SingArea Definicin de la interpolacin en torno a puntos singulares
SpyStart Iniciar el registro de los datos de tiempo de ejecucin
SpyStop Finalizar el registro de los datos de tiempo de ejecucin
SoftAct Activacin del servo suave
SoftDeact Desactivacin del servo suave
StartMove Rearranque del movimiento del robot
Stop Paro de la ejecucin del programa
StopMove Paro del movimiento del robot
StorePath Almacenamiento de una trayectoria cuando se produce una interrupcin
TEST Dependiendo del valor de una expresin...
TestSign Salida de seales de test
TPErase Borrado del texto impreso en la unidad de programacin
Robtica y CIM

Programacin Lenguaje RAPID
19
06
INSTRUCCIN DENOMINACIN
StopMove Paro del movimiento del robot
StorePath Almacenamiento de una trayectoria cuando se produce una interrupcin
TEST Dependiendo del valor de una expresin...
TestSign Salida de seales de test
TPErase Borrado del texto impreso en la unidad de programacin
TPReadFK Lectura de las teclas de funcin
TPReadNum Lectura de un nmero en la unidad de programacin
TPShow Cambio de ventana de la unidad de programacin
TPWrite Escritura en la unidad de programacin
TriggC Movimiento circular del robot con eventos
TriggEquip Definicin de un evento de E/S de tiempo-posicin fijas
TriggInt Definicin de una interrupcin relativa a una posicin
TriggIO Definicin de un evento de E/S de posicin fija
TriggJ Movimientos de los ejes del robot con eventos
TriggL Movimientos lineales del robot con eventos
TRYNEXT Salto de una instruccin que ha causado un error
TuneReset Reinicializacin del ajuste del servo
TuneServo Ajuste de los servos
UnLoad Descarga de un mdulo de programa durante la ejecucin
WaitDI Espera hasta la activacin de una seal de entrada digital
WaitDO Espera hasta la activacin de una seal de salida digital
VelSet Cambio de la velocidad programada
WHILE Repeticin de una instruccin mientras...
Write Escritura en un archivo basado en caracteres o en un canal serie
WriteAnyBin Escribir datos en un canal serie o en un archivo binarios
WriteBin Escritura en un canal serie binario
WriteStrBin Escritura de una cadena en un canal serie binario
WaitTime Espera durante un tiempo especificado
WaitUntil Esperar hasta el cumplimiento de una condicin
WZBoxDef Definicin de una zona mundo en forma de caja rectangular
WZCylDef Definicin de una zona mundo en forma de cilindro
WZDisable Desactivacin de la supervisin de la zona mundo temporal

Formacin Abierta

Programacin Lenguaje RAPID
20
INSTRUCCIN DENOMINACIN
WZDOSet Activacin de la zona mundo para activar una salida digital
WZEnable Activacin de la supervisin de una zona mundo temporal
WZFree Borrado de la supervisin de la zona mundo temporal
WZLimSup Activacin de la supervisin del lmite de la zona mundo
WZSphDef Definicin de una zona mundo en forma de esfera


No te preocupes por la cantidad de Instrucciones que
aparecen en la tabla de Instrucciones, veremos las mas
importantes y precisas para poder ejecutar o crear un
programa real y de un nivel alto.


Se recomienda copiar en uno o dos folios todas las
instrucciones para que cuando tengas que deducir un
programa tengas todas las instrucciones a mano y
cercanas para realizar tu programa
Entraremos a continuacin en definir con exactitud las instrucciones ms
importantes y elementales.
6.3.2. Definicin de las Instrucciones RAPID

Un concepto bsico en programacin es el campo
denominado Reg, Registro.
Registro es un campo, es un valor bien sea numrico o de otra denominacin. No
es otra cosa que una memoria una parte donde podemos almacenar datos que
pueden ser alterados en el momento que precise de ello.
Robtica y CIM

Programacin Lenguaje RAPID
21
06
Imagina que es un cajn lleno de celdas donde yo puedo meter un valor en cada
una de las celdas, yo puedo aumentar o disminuir ese valor de cada celda, donde
yo puedo consultar ese valor o igualarlo, podemos denominar Reg. Como un
contador numrico de piezas como un contador de puntos de soldadura etc.
4 Contador Piezas Reg1 0 1

Qudate con los denominados tipos de Datos que
aparecen descritos en todas las instrucciones, apuntalas
en una libreta por que mas adelante aparecern sus
definiciones en Tipos de Datos.
Dividiremos las instrucciones por partes o por grupos, empezaremos con
Instrucciones de Movimiento.

Saca todo el fruto que puedas de las instrucciones y no te
quedes solo con el nombre de la instruccin sino con su
composicin completa. Se describirn completamente las
lneas de programacin.

Formacin Abierta

Programacin Lenguaje RAPID
22
6.4. Instrucciones Lgicas
Empecemos por la primera Instruccin de la Tabla, pero las uniremos por
apartados.
6.4.1. Instruccin =
La instruccin := sirve para asignar un valor a un dato.
Este valor puede ser cualquier valor constante contenido en una expresin
aritmtica, por ejemplo, reg1+5*reg3.

reg1 := 5;
reg1 tiene asignado el valor 5.
reg1 := reg2 - reg3;
reg1 tiene asignado el valor resultante del clculo reg2-
reg3.
contador := contador + 1;
contador ha sido incrementado en1
Argumentos
Dato := Valor Dato Tipos de dato: Todos
El dato al que se desea asignar un Valor Tipo de dato:
Igual que Dato El valor deseado.

herram1.tframe.trans.x := herram1.tframe.trans.x + 20;
El TCP del herram1 ser movido de 20 mm en la
direccin X.
palet{5,8} := Abs(valor);
Un elemento de la matriz pallet tiene asignado un valor
igual al valor absoluto de la variable valor.
Robtica y CIM

Programacin Lenguaje RAPID
23
06
Limitaciones
El dato (cuyo valor debe ser cambiado) no debe ser ni:
Una constante
Un tipo de dato sin valor.
Los datos y valores deben tener tipos de datos similares (los mismos o
equivalentes).
6.4.2. Instruccin AccSet
AccSet sirve cuando se manipulan cargas frgiles. Permite aceleraciones y
deceleraciones ms lentas, para la realizacin de movimientos ms suaves del
robot.

AccSet 50, 100;
La aceleracin est limitada al 50% del valor
normal.
AccSet 100, 50;
La rampa de aceleracin est limitada al 50% del
valor normal.

Esta instruccin sirve para alargar la vida til de la
maquina y adems mejora notablemente la visin de los
movimientos del robot a la hora de ejecutar su
trayectoria, evita movimiento tan peculiares de los robots,
movimientos a golpes, como un robot.
Argumentos
AccSet Acc Rampa
Acc Tipo de dato: num
La aceleracin y deceleracin como un porcentaje de los valores normales.
El 100% corresponde a la aceleracin mxima. Valor mximo: 100%.
Un valor de entrada < 20% da el 20% de aceleracin mxima.
Rampa Tipo de dato: num
Formacin Abierta

Programacin Lenguaje RAPID
24
El coeficiente con el que la aceleracin y deceleracin aumenta como porcentaje de
los valores normales. Los impulsos del movimiento podrn reducirse disminuyendo
este valor.
El 100% corresponde al coeficiente mximo. Valor mximo: 100%.
Un valor de entrada < 10% da el 10% de la aceleracin mxima.

Figura 6.2. Accset 100,100, es decir una aceleracin normal.

Figura 6.3. Accset 30,100. Figura 6.4. Accset 100,30.
AccSet 100, 100, es decir, una aceleracin normal
Ejecucin del Programa
La aceleracin se aplica tanto al robot como a los ejes externos hasta que se haya
ejecutado una nueva instruccin AccSet.
Los valores por defecto (100%) se activan automticamente
A la puesta en marcha en fro
Cuando se carga un programa nuevo
Cuando se ejecuta la primera instruccin del programa.
6.4.3. Instruccin Procall
Una llamada procedimiento sirve para transferir la ejecucin del programa a otro
procedimiento.
Cuando el procedimiento ha sido ejecutado completamente, la ejecucin del
programa contina con la instruccin que sigue la llamada de procedimiento.
Robtica y CIM

Programacin Lenguaje RAPID
25
06
Normalmente se puede enviar una serie de argumentos al procedimiento nuevo.
Estos tendrn por misin controlar el comportamiento del procedimiento y hacer
que sea posible utilizar el mismo procedimiento para diferentes utilidades.

weldpipe1;
Llamada del procedimiento weldpipe1.
errormessage;
Set do1;

PROC errormessage()
TPWrite "ERROR";
ENDPROC
El procedimiento errormessage ser llamado. Cuando este procedimiento est
listo, la ejecucin del programa regresar a la instruccin que sigue la llamada de
procedimiento, Set do1.
6.4.4. Instruccin ClkStop Paro de un reloj de
cronometraje
ClkStop sirve para parar un reloj que funciona como cronmetro.

ClkStop reloj1;
El reloj reloj1 ser parado.
Argumentos ClkStop Reloj
Reloj Tipo de dato: reloj
El nombre del reloj que se desea parar.
Ejecucin del programa
Cuando se para un reloj, ste dejar de funcionar.
Si se para un reloj, podr ser ledo, arrancado de nuevo o reinicializado.
Formacin Abierta

Programacin Lenguaje RAPID
26
6.4.5. Instruccin Decr. Disminucin de 1
Decr sirve para restar 1 de una variable o persistente numrica.

Decr reg1;
1 ser restado de reg1, es decir, reg1:=reg1-1.
Argumentos Decr Name
Name Tipo de dato: num
El nombre de la variable o persistente que se desea disminuir.

TPReadNum num_part, "Cuntas piezas deben ser
procesadas? ";
WHILE num_part>0 DO
part_produc;
dec_part;
ENDWHILE
Se pide al operador que introduzca el nmero de piezas que van a ser procesadas.

La variable num_part sirve para contar el nmero que
quedan por procesar.
6.4.6. Instruccin Exit. Fin de Ejecucin de un Programa
EXIT sirve para finalizar la ejecucin del programa. El rearranque del programa se
bloquea, es decir, que el programa slo podr ser rearrancado nicamente a partir
de la primera instruccin de la rutina principal (si el punto de arranque no ha sido
movido manualmente).
Robtica y CIM

Programacin Lenguaje RAPID
27
06
La instruccin EXIT deber utilizarse cuando ocurren errores muy graves o cuando
se desea parar la ejecucin del programa definitivamente. La instruccin Stop se
usa para parar de forma temporal la ejecucin del programa.

ErrWrite "Fatal error", "Illegal state";
EXIT;

La ejecucin del programa se para y no puede ser rearrancada a partir de esta
posicin en el programa.
6.4.7. Instruccin For. Repeticin de un nmero dado de
veces.
FOR se usa cuando una o varias instrucciones deben repetirse un nmero dado de
veces.

En el caso en que las instrucciones deban repetirse
mientras se cumpla una condicin especfica, se deber
usar la instruccin WHILE.

FOR i FROM 1 TO 10 DO
rutina1;
ENDFOR

Repite el procedimiento rutina1, 10 veces.
Argumentos
FOR Contador bucle FROM Valor inicial TO Valor final
[STEP Incremento] DO ... ENDFOR
Contador bucle Identificador
Formacin Abierta

Programacin Lenguaje RAPID
28
El nombre del dato que contendr el valor del contador de bucle actual. El
dato es declarado automticamente y su nombre no podr coincidir con
ningn otro nombre de ningn dato ya existente.
Valor inicial Tipo de dato: Num
El valor inicial deseado del contador de bucle. (suelen ser nmeros enteros).
Valor final Tipo de dato: Num
El valor final deseado del contador de bucle. (suelen ser nmeros enteros).
Incremento Tipo de dato: Num
El valor con el que el contador de bucle deber ser incrementado (o
disminuido). (suelen ser nmeros enteros).
Si este valor no est especificado, el valor de incremento ser automticamente 1
(o -1 si el valor inicial es mayor que el valor final).

FOR Instrucciones Ejemplo
FOR i FROM 10 TO 2 STEP -1 DO
a{i} := a{i-1};
ENDFOR
Los valores de una matriz se ajustan de forma creciente, de la siguiente forma a
{10}:=a{9}, a{9}:=a{8} etc.
Ejecucin del programa
1. Las expresiones correspondientes a los valores iniciales, final y de
incremento sern calculadas.
2. El contador de bucle tendr asignado el valor inicial.
3. El valor del contador de bucle ser comprobado para ver si dicho valor se
encuentra entre el valor inicial y el valor final o si es igual al valor inicial o al
valor final. Si el valor del contador se encuentra fuera de esta gama, el bucle
FOR se para y la ejecucin del programa continua con la instruccin que
sigue ENDFOR.
4. Las instrucciones del bucle FOR se ejecutarn.
5. El contador de bucle ser incrementado (o disminuido) de acuerdo con el
valor de incremento.
6. El bucle FOR se repetir, empezando a partir del punto 3.
Robtica y CIM

Programacin Lenguaje RAPID
29
06
Limitaciones
Slo se podr acceder al contador de bucle (del tipo de dato num) desde dentro del
bucle FOR y por consiguiente esconder los dems datos y rutinas que tengan el
mismo nombre.
Slo podr ser ledo (no actualizado) por las instrucciones contenidas en el bucle
FOR.
No se podrn utilizar valores decimales para los valores iniciales, finales o de paro,
en combinacin con una condicin de terminacin exacta para el bucle FOR (no
definido en el caso en que el ltimo bucle est funcionando o no).
6.4.8. Instruccin IF. Si se cumple una condicion.
IF sirve cuando diferentes instrucciones deben cumplirse segn se cumpla o no una
condicin.

IF reg1 > 5 THEN
Set do1;
Set do2;
ENDIF
Las seales do1 y do2 son activadas nicamente si reg1 es mayor que 5.

IF reg1 > 5 THEN
Set do1;
Set do2;
ELSE
Reset do1;
Reset do2;
ENDIF
Las seales do1 y do2 son activadas o desactivadas dependiendo si reg1 es mayor
que 5 o no.

Formacin Abierta

Programacin Lenguaje RAPID
30
Argumentos
IF Condicin THEN ...
{ELSEIF Condicin THEN ...}
[ELSE ...]
ENDIF
Condicin Tipo de dato: bool
La condicin que debe cumplirse para que las instrucciones entre THEN y
ELSE/ELSEIF puedan ejecutarse.

IF contador > 100 THEN
contador := 100;
ELSEIF contador < 0 THEN
contador := 0;
ELSE

El contador ha sido incrementado en 1. Sin embargo, si el valor del contador est
fuera del lmite 0-100, el contador tendr asignado el valor lmite correspondiente.
Ejecucin del programa
Las condiciones son comprobadas siguiendo un orden secuencial, hasta que una
de ellas se cumpla. La ejecucin del programa contina con las instrucciones
asociadas a esa condicin.
Si no se cumple ninguna de las condiciones, la ejecucin del programa contina
con las instrucciones que siguen ELSE. Si se cumple ms de una condicin, slo se
ejecutarn las instrucciones que estn asociadas con la primera de las condiciones.
6.4.9. TEST Dependiendo del valor de una expresin
TEST sirve cuando diferentes instrucciones deben ser ejecutadas dependiendo del
valor de una expresin o de un dato.
En el caso en que no haya demasiadas alternativas, se podr usar tambin la
instruccin IF..ELSE.
Robtica y CIM

Programacin Lenguaje RAPID
31
06

TEST reg1
CASE 1,2,3 :
rutina1;
CASE 4 :
rutina2;
DEFAULT :
TPWrite "Eleccin ilegal";
Stop;
ENDTEST
Diferentes instrucciones sern ejecutadas dependiendo del valor de reg1. En el
caso en que el valor sea 1-3, la rutina1 ser ejecutada. Si el valor es 4, la rutina2
ser ejecutada. De lo contrario, aparecer un mensaje de error visualizado y la
ejecucin se detendr.
Argumentos
TEST Dato de Test {CASE Valor de Test {, Valor de Test} : ...}
[DEFAULT: ...] ENDTEST
Dato de Test Tipo de dato: Todos
El dato o expresin con el que se desea que el valor test sea comparado.
Valor de Test Tipo de dato: El mismo que el anterior
El valor que el dato test debe tener para que las instrucciones asociadas se
ejecuten.
Ejecucin del programa
El dato test ser comparado con los valores test de la primera condicin CASE. En
el caso en que la comparacin sea verdadera, las instrucciones asociadas se
ejecutarn.
Despus de ello, la ejecucin del programa contina con la instruccin que sigue a
ENDTEST.
Si la primera condicin CASE no se cumple, se comprobarn las otras condiciones
CASE y as, sucesivamente. En el caso en que no se cumpla ninguna de las
condiciones, las instrucciones asociadas con DEFAULT (si existe) sern
ejecutadas.
Formacin Abierta

Programacin Lenguaje RAPID
32
6.4.10. RETURN Fin de ejecucin de una rutina
RETURN sirve para finalizar la ejecucin de una rutina. Si la rutina es una funcin,
el valor de la funcin ser devuelto.

mensajerror;
Set do1;
PROC mensajerror()
TPWrite "ERROR";
RETURN;
ENDPROC
El procedimiento mensajerror ser llamado. Cuando el procedimiento llega a la
instruccin RETURN, la ejecucin del programa contina en la instruccin que
sigue la llamada del procedimiento, Set do1.

FUNC num valor_abs (num valor)
IF valor<0 THEN
RETURN -valor;
ELSE
RETURN valor;
ENDIF
ENDFUNC
La funcin devuelve el valor absoluto de un nmero.
Argumentos
RETURN [ Valor devuelto ]
Valor devuelto Tipo de dato: Segn la declaracin de la funcin
El valor devuelto de una funcin.
El valor devuelto debe ser especificado en una instruccin RETURN presente en la
funcin.
Si la instruccin est en un procedimiento o en una rutina de tratamiento de
interrupciones, puede ocurrir que un valor devuelto no est especificado.
Robtica y CIM

Programacin Lenguaje RAPID
33
06
Ejecucin del programa
El resultado de la instruccin RETURN podr variar, dependiendo del tipo de rutina
en la que est utilizada:
Rutina principal: En el caso en que el arranque del programa haya sido
ordenado al final del ciclo, el programa se para. De lo contrario, la ejecucin
del programa contina con la primera instruccin de la rutina principal.
Procedimiento: La ejecucin del programa contina con la instruccin que
sigue a la llamada del procedimiento.
Funcin: Devuelve el valor de la funcin.
Rutina tratamiento de interrupciones:
La ejecucin del programa contina a partir de donde se ha producido la
interrupcin.
Gestor de errores:
En un procedimiento: la ejecucin del programa contina con la rutina
que llam la rutina con el gestor de error (con la instruccin que sigue la
llamada del procedimiento).
En una funcin: El valor de la funcin es devuelto.
6.4.11. Instruccin Stop. Paro de la ejecucin del programa
Stop sirve para detener temporalmente la ejecucin del programa.
La ejecucin del programa tambin podr ser detenida utilizando la instruccin
EXIT.
Esto, no obstante, slo deber realizarse si se ha terminado una tarea, o si se
produce un error muy grave, ya que la ejecucin del programa no podr ser
rearrancada con EXIT.

TPWrite "La lnea con el computador principal se ha
interrumpido";
Stop;
La ejecucin del programa ser detenida despus de que
aparezca un mensaje en la unidad de programacin.

Formacin Abierta

Programacin Lenguaje RAPID
34
Argumentos Stop [ \NoRegain ]
[\NoRegain ] Tipo de dato: switch
Este argumento especifica para el siguiente arranque del programa en el modo
manual, si el robot y los ejes externos deben o no regresar a la posicin de paro.
En el modo automtico el robot y los ejes externos siempre regresan a la posicin
de paro.
En el caso en que el argumento NoRegain est activado, el robot y los ejes
externos no regresarn a la posicin de paro (si han sido desviados de dicha
posicin).
En el caso en que se omita el argumento y que el robot o los ejes externos hayan
sido desviados de la posicin de paro, el robot visualizar una pregunta en la
unidad de programacin. Entonces, el usuario deber contestar a la pregunta
especificando si desea que el robot regrese a la posicin de paro o no.
Ejecucin del programa
La instruccin detendr la ejecucin del programa en cuanto el robot y los ejes
externos alcancen el punto de destino programado del movimiento que se est
realizando en el momento. La ejecucin del programa podr entonces ser
rearrancada a partir de la siguiente instruccin.
Si hay una instruccin de Paro en alguna rutina de evento, la rutina ser ejecutada
a partir del principio del siguiente evento.

MoveL p1, v500, fine, tool1;
TPWrite "Mover el robot a la posicin para esquina pallet
1";
Stop \NoRegain;
p1_read := CRobT();
MoveL p2, v500, z50, tool1;
La ejecucin del programa se detiene con el robot situado en la posicin p1. El
operador mueve el robot a p1_read. Para el siguiente arranque de programa, el
robot no regresar a p1, ya que la posicin p1_read puede ser almacenada en el
programa.
Limitaciones
La instruccin de movimiento que precede esta instruccin deber terminar con un
punto de paro para que en esta instruccin sea posible realizar un rearranque
despus de un corte de potencia.
Robtica y CIM

Programacin Lenguaje RAPID
35
06
6.5. Instrucciones de control o cambio de
registros
Las siguientes Instrucciones que vemos en este apartado, son instrucciones donde
controlaremos o cambiaremos el valor de valores numricos
6.5.1. Instruccin Add
Add sirve para sumar o restar un valor a o de una variable o persistente numrica.

Add reg1, 3;
3 ha sido aadido a reg1, es decir, reg1:=reg1+3.
Add reg1, -reg2;
El valor de reg2 ha sido restado de reg1,
es decir, reg1:=reg1-reg2.
Add Nombre ValorAadir
Nombre Tipo de dato: num
El nombre de la variable o persistente que se desea cambiar.
ValorAadir Tipo de dato: num El valor que se desea aadir.

Para entender la siguiente Instruccin es necesario definir
o conocer el concepto PROC
Los identificadores sirven para nombrar los mdulos, las rutinas, los datos y las
etiquetas;

Ejemplos de Identificadores:
MODULE nombre_mdulo
PROC nombre_rutina()
VAR pos
nombre_dato;
Nombre _etiqueta :
Formacin Abierta

Programacin Lenguaje RAPID
36
El primer carcter de un identificador deber ser siempre una letra. Los dems
caracteres podrn ser letras, cifras o subrayado _.
La longitud mxima de cualquier identificador es de 16 caracteres, y cada uno de
estos caracteres es significante. Los identificadores que son idnticos excepto que
estn escritos en letras maysculas o viceversa, sern considerados como un
mismo identificador.
Una vez aclarado estos conceptos bsicos continuaremos con las definiciones de
Instrucciones.
6.5.2. Instruccin Clear
Clear sirve para inicializar una variable o persistente numrica, es decir, activarlas
en el valor 0.

Clear reg1;
El valor de Reg1 queda eliminado, es decir que, reg1:=0.
Argumentos Clear Nombre
Nombre Tipo de dato: num
El nombre de la variable o persistente que se desea eliminar.
6.5.3. Instruccin Incr. Incremento de 1
Incr sirve para aadir 1 a una variable o persistente numrica.

Incr reg1;
1 ser aadido a reg1, es decir, reg1:=reg1+1.
Argumentos Incr Nombre
Nombre Tipo de dato: num
El nombre de la variable o persistente que se desea cambiar.
Robtica y CIM

Programacin Lenguaje RAPID
37
06

WHILE DInput(stop_produc)=0 DO
produc_part;
Incr_parts;
TPWrite "N de piezas producidas= "\Num:=parts;
ENDWHILE
En cada ciclo el nmero de piezas producidas ser actualizado en la unidad de
programacin. El proceso de produccin continua su ejecucin mientras no se
active la seal stop_production.
6.5.4. Instruccin Decr Disminucin de 1
Decr sirve para restar 1 de una variable o persistente numrica.

Decr reg1;
1 ser restado de reg1, es decir, reg1:=reg1-1.
Decr Name
Name Tipo de dato: num
El nombre de la variable o persistente que se desea disminuir.

TPReadNum num_part, "Cuntas piezas deben ser
procesadas? ";
WHILE num_part>0 DO
part_produc;
dec_part;
ENDWHILE
Se pide al operador que introduzca el nmero de piezas que van a ser procesadas.
La variable num_part sirve para contar el nmero que quedan por procesar.
Formacin Abierta

Programacin Lenguaje RAPID
38
6.6. Instrucciones de control o escritura
en pantalla
Las siguientes Instrucciones que vamos a ver en este apartado, son instrucciones
donde controlaremos o escribiremos diferentes textos por pantalla.
6.6.1. TPErase Borrado del Texto en la Unidad de
Programacin
TPErase (Teach Pendant Erase) sirve para borrar el contenido del visualizador de
la unidad de programacin.

TPErase;
TPWrite "Ejecucin iniciada";
El contenido del visualizador de la unidad de programacin
ser borrado antes de que aparezca Ejecucin iniciada.
Ejecucin del programa
El visualizador de la unidad de programacin quedar libre de todo texto. La
prxima vez que se introduzca texto, aparecer en la lnea superior del visualizador.
6.6.2. TPWrite Escritura en la unidad de programacin
TPWrite (Teach Pendant Write) sirve para escribir un texto en la unidad de
programacin.
El valor de ciertos datos as como texto podrn ser introducidos.

TPWrite "Ejecucin iniciada";
El texto Ejecucin iniciada aparecer visualizada en la
unidad de programacin.
TPWrite "N de piezas producidas="\Num:=reg1;
Por ejemplo, a la respuesta a N de piezas producidas= 5,
se deber introducir 5 en vez de reg1 en la unidad de
programacin.
Robtica y CIM

Programacin Lenguaje RAPID
39
06
Argumentos
TPWrite Texto [\Num] | [\Bool] | [\Pos] | [\Orient]
Texto Tipo de dato: string
La cadena de texto que se debe escribir (80 caracteres como mximo).
[\Num] (Numeric) Tipo de dato: num
El dato cuyo valor numrico debe ser introducido despus de la cadena de texto.
[\Bool] (Boolean) Tipo de dato: bool
El dato cuyo valor lgico debe ser introducido despus de la cadena de texto.
[\Pos] (Position) Tipo de dato: pos
El dato cuya posicin debe ser introducida despus de la cadena de texto.
[\Orient] (Orientation) Tipo de dato: orient
El dato cuya orientacin debe ser introducida despus de la cadena de texto.
Ejecucin del programa
El texto introducido en la unidad de programacin empieza siempre en una lnea
nueva. Cuando el visualizador est lleno, el texto se mover de una lnea hacia
arriba.
Las cadenas de texto que son ms largas que la anchura de la unidad de
programacin (40 caracteres) se dividirn en dos lneas.
Si se utiliza uno de los argumentos \Num, \Bool, \Pos o \Orient, su valor ser
primero convertido en una cadena de texto antes de ser aadido a la primera
cadena. La conversin del valor en cadena de texto se realiza segn lo siguiente:
Argumento Valor Cadena de texto
\Num 23 "23"
\Num 1.141367 "1.141367"
\Bool VERDADERO "VERDADERO"
\Pos [1817.3,905.17,879.11] "[1817.3,905.17,879.11]"
\Orient [0.96593,0,0.25882,0] "[0.96593,0,0.25882,0]"
El valor ser convertido en una cadena con el formato estndar en RAPID. Esto
significa en principio 6 cifras significantes. Si el nmero decimal es inferior a
0,000005 o mayor que 0,999995, el nmero ser redondeado a un nmero entero.
Formacin Abierta

Programacin Lenguaje RAPID
40
Limitaciones
Los argumentos \Num, \Bool, \Pos y \Orient son mutuamente exclusivos y por lo
tanto no podrn ser utilizados simultneamente en la misma instruccin.
6.6.3. TPReadNum Lectura de un nmero en la TPU
TPReadNum (Teach Pendant Read Numerical) sirve para la lectura de un nmero
en la unidad de programacin.

TPReadNum reg1, Cuntas unidades deben producirse?
;
El texto Cuntas unidades deben producirse? aparece en el visualizador de la
unidad de programacin. La ejecucin del programa espera hasta que se haya
introducido un nmero a partir del teclado numrico de la unidad de programacin.
Este nmero quedar almacenado en reg1.
Argumentos TPReadNum Contestacin Texto [\MaxTime] [DIBreak]
[\BreakFlag]
Contestacin Tipo de dato: num
Es la variable que es devuelta para el nmero introducido en la unidad de
programacin.
Texto Tipo de dato: string
Es el texto de informacin que se desea introducir en la unidad de programacin
(de 80 caracteres como mximo).
[\MaxTime] Tipo de dato: num
Es el intervalo mximo de tiempo que la ejecucin del programa espera. Si no se
introduce ningn nmero durante este tiempo, el programa contina a ejecutarse en
el gestor de errores a menos que se haya utilizado BreakFlag (vase a
continuacin).
La constante ERR_TP_MAXTIME podr ser utilizada para comprobar si el intervalo
mximo de tiempo ha transcurrido o no.
[\DIBreak] (Interrupcin Entrada Digital) Tipo de dato: signaldi
Robtica y CIM

Programacin Lenguaje RAPID
41
06
Es la seal digital que podra interrumpir el dilogo del usuario. Si no se introduce
ningn nmero cuando la seal se activa en 1 (o si ya est activada en 1), el
programa contina ejecutndose en el gestor de errores a menos que se haya
utilizado BreakFlag (vase a continuacin). La constante ERR_TP_DIBREAK podr
ser utilizada para comprobar si ello ha ocurrido o no.
[\BreakFlag] Tipo de dato: errnum
Es una variable que mantiene el cdigo de error si se ha utilizado maxtime o
dibreak. Si se omite esta variable opcional, el gestor de error ser ejecutado. Las
constantes ERR_TP_MAXTIME y ERR_TP_ DIBREAK podrn utilizarse para
seleccionar el motivo.
Ejecucin del programa
El texto de informacin siempre aparece en una lnea nueva. Si el visualizador est
lleno, el texto se mover de una lnea hacia arriba. Las cadenas de caracteres que
son ms largas que la anchura de la unidad de programacin quedarn divididas
(40 caracteres) en dos lneas.
La ejecucin del programa esperar hasta que se teclee un nmero en el teclado
numrico (pulsando luego la tecla Retorno o la tecla OK).
Vase la instruccin TPReadFK referente a la descripcin de una peticin
concurrente TPReadFK o TPReadNum en la unidad de programacin, procedente
de la misma tarea de programa o de otras tareas.

TPReadNum reg1, Cuntas unidades deben
producirse?;
FOR i FROM 1 TO reg1 DO
produc_unid;
ENDFOR
El texto Cuntas unidades deben producirse? aparece escrito en el visualizador
de la unidad de programacin. La rutina produc_unid se repetir entonces el
nmero de veces que se ha indicado a travs de la unidad de produccin.
6.6.4. TPReadFK Lectura de las teclas de funcin
TPReadFK (Teach Pendant Read Function Key) sirve para introducir texto encima
de las teclas de funcin y para descubrir la tecla que ha sido pulsada.
Formacin Abierta

Programacin Lenguaje RAPID
42

TPReadFK reg1, "Ms ?", stEmpty, stEmpty, stEmpty, "S",
"No";
El texto Ms? aparecer en el visualizador de la unidad de programacin y las
teclas de funcin 4 y 5 se activarn mediante las cadenas de texto S y No
respectivamente. La ejecucin del programa esperar hasta que se pulse una de
las teclas de funcin, 4 o 5. En otras palabras, reg1 tendr asignado el 4 o el 5
dependiendo de la tecla que se pulse.

Figura 6.5. Visualizador de pantalla.
Argumentos TPReadFK Contestacin Texto FK1 FK2 FK3 FK4 FK5 [\Max-
Time] [DIBreak] [\BreakFlag]
Contestacin Tipo de dato: num
La variable para la cual, dependiendo de la tecla que se pulse, se obtiene el valor
numrico 1..5. Si se pulsa la tecla de funcin 1, se obtendr 1 y as sucesivamente.
Texto Tipo de dato: string
El texto informativo que se desea introducir en el visualizador (de 80 caracteres
como mximo).
FKx (Texto de la tecla de funcin) Tipo de dato: string
El texto que se desea introducir como indicacin propia de la tecla de funcin (de 7
caracteres como mximo). FK1 es la tecla situada ms a la izquierda.
Las teclas de funcin desprovistas de cualquier indicacin estn especificadas con
la constante de cadena predefinida stEmpty con un valor de cadena vaco ().
[\MaxTime] Tipo de dato: num
Robtica y CIM

Programacin Lenguaje RAPID
43
06
Es el intervalo mximo de tiempo [s] que la ejecucin del programa espera. Si no se
pulsa ninguna tecla de funcin durante este tiempo, el programa continuo a
ejecutarse en el gestor de errores, a menos que se utilice BreakFlag (vase a
continuacin). La constante ERR_TP_MAXTIME podr ser utilizada para comprobar
si el intervalo mximo de tiempo ha transcurrido o no.
[\DIBreak] (Interrupcin Entrada Digital) Tipo de dato: signaldi
Es la seal digital que podra interrumpir el dilogo del usuario. Si no se pulsa
ninguna tecla de funcin cuando la seal se activa en el valor 1 (o si ya est
activada en 1), el programa continuar a ejecutarse en el gestor de errores, a
menos que se utilice BreakFlag (vase a continuacin). La constante
ERR_TP_DIBREAK podr ser utilizada para comprobar si esto ha ocurrido o no.
[\BreakFlag] Tipo de dato: errnum
Es una variable que mantiene el cdigo de error si se utiliza maxtime o dibreak. Si
se omite esta variable opcional, el gestor de errores ser ejecutado. Las constantes
ERR_TP_MAXTIME y ERR_TP_ DIBREAK podrn utilizarse para seleccionar el
motivo.
Ejecucin del programa
El texto de informacin aparece siempre escrito en una nueva lnea. Si el
visualizador est lleno, este texto se mover de una lnea hacia arriba. Las cadenas
de caracteres ms largas que la anchura de la unidad de programacin (40
caracteres) sern divididas en dos lneas.
El texto indicativo estar escrito encima de las teclas de funcin correspondientes.
Las teclas de funcin que no lleven ninguna indicacin sern desactivadas.
La ejecucin del programa esperar hasta que se pulse una de las teclas de funcin
activadas.
Descripcin de la peticin concurrente TPReadFK o TPReadNum en la unidad de
programacin (peticin de la unidad de programacin) a partir de la misma o de
otras tareas de programa:
La peticin nueva de la unidad de programacin procedente de otra tarea de
programa no est acesible en este momento (la peticin nueva queda
retenida en la cola)
La peticin nueva de la unidad de programacin procedente de una rutina
de tratamiento de interrupciones en la misma tarea de programa est
accesible en este momento (la peticin antigua queda retenida en la cola)
El paro de programa est accesible en este momento (el antiguo queda
retenido en la cola)
La peticin nueva de la unidad de programacin en el estado de paro de
programa est accesible en este momento (la antigua queda retenida en la
cola).
Formacin Abierta

Programacin Lenguaje RAPID
44

VAR errnum errvar;
TPReadFK reg1, "Ir a la posicin de servicio?",
stEmpty, stEmpty, stEmpty,
"Yes", "No"
\MaxTime:= 600
DIBreak:= di5\BreakFlag:= errvar;
IF reg1 = 4 or errvar = ERR_TP_DIBREAK THEN
MoveL service, v500, fine, tool1;
Stop;
END IF
IF errvar = ERR_TP_MAXTIME EXIT;
El robot se mueve a la posicin de servicio si la cuarta tecla de funcin ("S") est
pulsada, o si se activa la entrada 5. Si no se da ninguna respuesta en los 10
minutos siguientes, la ejecucin se termina.
Robtica y CIM

Programacin Lenguaje RAPID
45
06
6.7. Instrucciones de Activacion y
desactivacion de Seales
Las siguientes Instrucciones que vamos a ver en este apartado, son instrucciones
donde controlaremos o cambiaremos el estado lgico de seales elctricas.
6.7.1. Instruccin Set. Activacin de una seal de salida
digital
Set sirve para colocar el valor de la seal de salida digital a uno.

Set do15;
La seal do15 se pondr en 1.
Set sold;
Argumentos Set Seal
Seal Tipo de seal: signaldo
El nombre de la seal que se desea poner a 1.
Ejecucin del programa
El valor verdadero depender de la configuracin de la seal. En el caso en que la
seal haya sido invertida en los parmetros del sistema, la instruccin har que el
canal fsico se ponga en cero.
6.7.2. SetAO Cambio del valor de una seal de salida
analgica
SetAO sirve para cambiar el valor de una seal de salida analgica.

SetAO ao2, 5.5;
La seal ao2 se pone a 5,5.

Formacin Abierta

Programacin Lenguaje RAPID
46

Argumentos SetAO Seal Valor
Seal Tipo de dato: signalao
El nombre de la seal de salida analgica que se desea cambiar.
Valor Tipo de dato: num
El valor deseado de la seal.
Ejecucin del programa
El valor programado es escalado (de acuerdo con los parmetros del sistema)
antes de ser enviado a un canal fsico.

SetAO corrsold, sal_corr;
La seal corrsold adoptar con el mismo valor que el
valor utilizado de la variable
sal_corr.
6.7.3. SetDO Cambio del valor de una seal de salida
digital
SetDO sirve para cambiar el valor de una seal de salida digital, con o sin un
retraso.

SetDO do15, 1; La seal do15 se activar en 1.
SetDO sold, off; La seal sold pasar a off.
SetDO \SDelay := 0,2, sold, alto;
La seal sold se activar en alto con un retraso de 0,2 s.
La ejecucin del programa continuar, sin embargo, con
la instruccin siguiente.
Argumentos SetDO [ \SDelay ] Seal Valor
[ \SDelay ] (Retraso de la Seal) Tipo de dato: num
Retrasa el cambio del tiempo especificado en segundos (0,1 - 32 seg.).
La ejecucin del programa contina directamente con la instruccin siguiente.
Robtica y CIM

Programacin Lenguaje RAPID
47
06
Una vez transcurrido el tiempo de retraso, la seal cambia sin afectar por ello el
resto de la ejecucin del programa.
Si se omite el argumento, el valor de la seal cambia directamente.
Seal Tipo de dato: signaldo
El nombre de la seal que se desea cambiar.
Valor Tipo de dato: dionum
El valor deseado de la seal.
El valor se especifica a 0 o a 1.
Ejecucin del programa
El valor verdadero depender de la configuracin de la seal. En el caso en que la
seal haya sido invertida en los parmetros del sistema, el valor del canal fsico
ser el opuesto.
6.7.4. SetGO Cambio del valor de un grupo de salidas
digitales
SetGO sirve para cambiar el valor de un grupo de seales de salidas digitales, con
o sin un retraso de tiempo.

SetGO grup2, 12;
La seal grup2 se activar en 12. Si grup2 comprende 4
seales, por ejemplo, las salidas 6-9, las salidas 6 y 7 se
pondrn a cero, mientras que la 8 y la 9 se activarn en
1.
SetGO \SDelay :=0,4, grup2, 10;
La seal grup2 se activar en 10. Si grup2 comprende 4
seales, por ejemplo, las salidas 6-9, las salidas 6 y 8 se
pondrn a cero, mientras que la 7 y la 9 se activarn en
1, con un retraso de 0,4s. La ejecucin del programa, no
obstante, continuar con la instruccin siguiente.
Argumentos SetGO [\SDelay ] Seal Valor
[\SDelay] (Retraso de la Seal) Tipo de dato: num
Retrasa el cambio del tiempo especificado en segundos (0,1 - 32 seg.).
La ejecucin del programa contina directamente con la instruccin siguiente.
Formacin Abierta

Programacin Lenguaje RAPID
48
Una vez transcurrido el tiempo de retraso, el valor de las seales cambia sin afectar
por ello el resto de la ejecucin del programa.
Si se omite el argumento, el valor de la seal cambia directamente.
Seal Tipo de dato: signalgo
El nombre del grupo de seales que se desea cambiar.
Valor Tipo de dato: num
El valor deseado para el grupo de seales (un nmero entero positivo).
El valor permitido depende del nmero de seales del grupo:
N de seales Valor permitido N de seales Valor permitido
Ejecucin del programa
El valor programado se convertir en un nmero binario sin signo. Este nmero
binario ser enviado al grupo de seales con el resultado que las seales
individuales del grupo se pondrn a 0 o a 1. Debido a retrasos internos, el valor de
la seal puede estar indefinido durante un corto periodo de tiempo.
6.7.5. Reset Puesta a cero de una seal de salida digital
Reset sirve para poner una salida digital a cero.

Reset do15; La seal do15 se pondr a 0.
Reset sold; La seal sold se pondr a 0.
Argumentos Reset Seal
Seal Tipo de dato: signaldo
El nombre de la seal que se desea poner a 0.
Ejecucin del programa
El valor verdadero depende de la configuracin de la seal. Si la seal ha sido
invertida en los parmetros del sistema, la instruccin har que el canal fsico se
ponga en 1.
Robtica y CIM

Programacin Lenguaje RAPID
49
06
6.7.6. PulseDO Generacin de un pulso en una salida
digital
PulseDO sirve para generar un pulso en una seal de salida digital.
Veamos un ejemplo de esta Instruccin.

PulseDO do15;
Se generar un pulso de 0,2 s en la seal de salida do15.
PulseDO \PLength:=1.0, conexin;
Se generar un pulso de 1,0 s en la seal conexin
Argumentos PulseDO [ \PLength ] Seal
[ \PLength ] (Duracin del pulso) Tipo de dato: num
La duracin del pulso en segundos (0,1 - 32 seg.).
Si se omite el argumento, se generar un pulso de 0,2 segundos.
Seal Tipo de dato: signaldo
El nombre de la seal en la que deber generarse un pulso.
Ejecucin del programa
Se generar un pulso con una longitud de pulso especfica.

Figura 6.6. Grafica de Pulso.
La instruccin siguiente se ejecutar despus del inicio del pulso. El pulso podr
entonces ser activado/reinicializado sin afectar el resto de la ejecucin del
programa.
Limitaciones
La duracin del pulso tiene una resolucin de 0,01 segundos. Los valores
programados que difieran de ste sern redondeados.
Formacin Abierta

Programacin Lenguaje RAPID
50
6.8. Instrucciones de control de Tiempo
Las siguientes Instrucciones que vamos a ver en este apartado, presentan
funciones de Tiempo, control de Reloj en pantalla o en sistema interno del Robot.
6.8.1. Instruccin ClkReset
ClkReset sirve para poner a cero un reloj que funciona como un cronmetro.
Esta instruccin puede utilizarse antes de usar un reloj, para asegurarse de que
est a 0.

ClkReset reloj1;
El reloj reloj1 ser puesto a cero.
Argumentos ClkReset Reloj
Reloj Tipo de dato: reloj
El nombre del reloj que se desea reinicializar.
Ejecucin del programa
Cuando se reinicializa un reloj, ste se pondr a 0.
Si el reloj est funcionando, se parar y luego se reinicializar.
6.8.2. Instruccin ClkStart
ClkStart sirve para arrancar un reloj que funciona como un cronmetro.

ClkStart reloj1;
El reloj reloj1 ser arrancado.
Robtica y CIM

Programacin Lenguaje RAPID
51
06

Argumentos ClkStart Reloj
Reloj Tipo de dato: reloj
El nombre del reloj que se desea arrancar.
Ejecucin del programa
Cuando se arranca un reloj, seguir funcionando y contando los segundos hasta
que sea detenido.
Cuando la ejecucin del programa se para, el reloj sigue funcionando. Sin embargo,
el acontecimiento que se deseaba cronometrar puede ya no ser vlido.

Por ejemplo, si el programa estaba cronometrando el
tiempo de espera de una entrada, puede ocurrir que la
entrada haya sido recibida mientras el programa estaba
detenido. En este caso, el programa no ser capaz de
ver el acontecimiento que ocurri mientras el programa
estaba parado.
El reloj seguir funcionando cuando se corte el suministro de potencia siempre y
cuando el sistema de alimentacin de bateras de seguridad mantenga el programa
que contiene la variable del reloj.
Cuando el reloj est funcionando, podr ser ledo, parado o reinicializado.
Veamos un ejemplo de esta Instruccin, para comprender ms su ejecucin.

VAR relojreloj2;
ClkReset reloj2;
ClkStart reloj2;
WaitUntil DInput(di1) = 1;
ClkStop reloj2;
time:=ClkRead(reloj2);
El tiempo de espera que di1 tardar para pasar a 1 est siendo cronometrado.
Formacin Abierta

Programacin Lenguaje RAPID
52
6.9. Instrucciones de espera
Las siguientes Instrucciones que vamos a ver en este apartado, presentan
funciones de espera hasta que se cumpla la activacin de una seal de un tiempo
6.9.1. WaitDI Espera la activacin de una seal de entrada
digital
WaitDI (Wait Digital Input) sirve para esperar hasta que se active una seal de
entrada digital.

WaitDI di4, 1;
La ejecucin del programa continuar slo despus de
que la entrada di4 haya sido activada.

WaitDI grip_status, 0;
La ejecucin del programa continuar slo despus de
que la entrada grip_status haya sido reinicializada.
Argumentos WaitDI Seal Valor [\MaxTime] [\TimeFlag]
Seal Tipo de dato: signaldi
Es el nombre de la seal.
Valor Tipo de dato: dionum
Es el valor deseado de la seal.
[\MaxTime] (Tiempo Mximo) Tipo de dato: num
Es el intervalo mximo de tiempo de espera permitido, expresado en segundos.
En el caso en que este intervalo de tiempo haya transcurrido antes de que la
condicin se haya cumplido, el sistema llamar al gestor de errores, siempre y
cuando disponga de uno, con el cdigo de error ERR_WAIT_MAXTIME. Si el
sistema no dispone de ningn gestor de error, la ejecucin del robot se detendr.
[\TimeFlag] (Bandera Tiempo Excedido) Tipo de dato: bool
Robtica y CIM

Programacin Lenguaje RAPID
53
06
Es el parmetro de salida que contiene el valor TRUE cuando el tiempo mximo de
espera permitido ha transcurrido antes de que la condicin se haya cumplido.
En el caso en que este parmetro est incluido en la instruccin, no se considerar
como un error en el caso en que el tiempo mximo de espera haya transcurrido.
Este argumento ser ignorado si el argumento MaxTime no est incluido en la
instruccin.
Ejecucin del programa
En el caso en que el valor de la seal es correcto cuando la instruccin es
ejecutada, el programa sencillamente continuar con la instruccin siguiente.
En el caso en que el valor de la seal no es correcto, el robot entra en un estado de
espera y cuando la seal adopta el valor correcto, el programa continuar. El
cambio es detectado mediante una interrupcin, que proporciona una respuesta
rpida.
Cuando el robot est esperando, el tiempo ser supervisado, y en el caso en que
exceda el valor mximo de tiempo, el programa continuar siempre y cuando est
especificado TimeFlag, o suscitar un error en el caso en que no lo est. Si se
especifica TimeFlag, se activar en TRUE cuando el tiempo haya sido excedido, de
lo contrario, se activar en FALSE.
6.9.2. WaitDO Espera la activacin de una seal de salida
digital
WaitDO (Wait Digital Output) sirve para esperar hasta que se active una seal de
salida digital.

WaitDO do4, 1;
La ejecucin del programa continuar slo despus de
que la salida do4 haya sido activada

WaitDO grip_status, 0;
La ejecucin del programa continuar slo despus de
que la salida grip_status haya sido reinicializada.

Formacin Abierta

Programacin Lenguaje RAPID
54

Argumentos WaitDO Seal Valor [\MaxTime] [\TimeFlag]
Seal Tipo de dato: signaldo
Es el nombre de la seal.
Valor Tipo de dato: dionum
Es el valor deseado de la seal.
[\MaxTime] (Tiempo Mximo) Tipo de dato: num
Es el intervalo mximo de tiempo de espera permitido, expresado en segundos.
En el caso en que este intervalo de tiempo haya transcurrido antes de que la
condicin se haya cumplido, el sistema llamar al gestor de errores, siempre y
cuando disponga de uno, con el cdigo de error ERR_WAIT_MAXTIME. Si el
sistema no dispone de ningn gestor de error, la ejecucin del robot se detendr.
[\TimeFlag] (Bandera Tiempo Excedido) Tipo de dato: bool
Es el parmetro de salida que contiene el valor TRUE cuando el tiempo mximo de
espera permitido ha transcurrido antes de que la condicin se haya cumplido.
En el caso en que este parmetro est incluido en la instruccin, no se considerar
como un error en el caso en que el tiempo mximo de espera haya transcurrido.
Este argumento ser ignorado si el argumento MaxTime no est incluido en la
instruccin.
Ejecucin del programa
En el caso en que el valor de la seal es correcto cuando la instruccin es
ejecutada, el programa sencillamente continuar con la instruccin siguiente.
En el caso en que el valor de la seal no es correcto, el robot entra en un estado de
espera y cuando la seal adopta el valor correcto, el programa continuar. El
cambio es detectado mediante una interrupcin, que proporciona una respuesta
rpida.
Cuando el robot est esperando, el tiempo ser supervisado, y en el caso en que
exceda el valor mximo de tiempo, el programa continuar siempre y cuando est
especificado TimeFlag, o suscitar un error en el caso en que no lo est. Si se
especifica TimeFlag, se activar en TRUE cuando el tiempo haya sido excedido, de
lo contrario, se activar en FALSE.
Robtica y CIM

Programacin Lenguaje RAPID
55
06
6.9.3. WHILE Repeticin de una instruccin mientras...
WHILE se utiliza cuando una serie de instrucciones deben ser repetidas mientras
una condicin especfica se vaya cumpliendo.
En el caso en que sea posible determinar por adelantado el nmero de
repeticiones, se podr utilizar la instruccin FOR.

WHILE reg1 < reg2 DO
reg1 := reg1 +1;
ENDWHILE
Repite las instrucciones del bucle WHILE mientras reg1 < reg2.
Argumentos WHILE Condicin DO ... ENDWHILE
Condicin Tipo de dato: bool
La condicin que debe ser cumplida para que las instrucciones del bucle WHILE
puedan ejecutarse.
Ejecucin del programa
1. Calcula la condicin. Si la condicin no ha sido cumplida, el bucle WHILE finaliza
y la ejecucin del programa contina con la instruccin que sigue ENDWHILE.
2. Las instrucciones del bucle WHILE son ejecutadas.
3. Se repite el bucle WHILE empezando por el punto 1.
6.9.4. WaitTime Espera durante un tiempo especificado
WaitTime sirve para esperar durante un tiempo especfico. Esta instruccin puede
utilizarse tambin para esperar hasta que el robot y los ejes externos se hayan
inmovilizado.

WaitTime 0.5;
La ejecucin del programa espera 0,5 segundos.
Formacin Abierta

Programacin Lenguaje RAPID
56
Argumentos WaitTime [\InPos] Tiempo
[\InPos] Tipo de dato: switch
En el caso en que se utilice este argumento, tanto el robot como los ejes externos
debern haberse detenido antes de que el tiempo de espera empiece a contar.
Tiempo Tipo de dato: num
El tiempo, expresado en segundos, que la ejecucin del programa debe esperar.
Ejecucin del programa
La ejecucin del programa se detiene temporalmente durante un tiempo
especificado.
Sin embargo, la manipulacin de las interrupciones y otras funciones similares,
siguen estando activas.

WaitTime \InPos,0;
La ejecucin del programa espera hasta que el robot y
los ejes externos se hayan parado.
Limitaciones
En el caso en que se use el argumento \Inpos, la instruccin de movimiento que
precede a esta instruccin deber terminar con un punto de paro para que en esta
instruccin sea posible realizar un rearranque despus de un corte de potencia.
El argumento \Inpos no podr utilizarse junto con SoftServo.
6.9.5. WaitUntil Esperar hasta el cumplimientode una
condicin
WaitUntil sirve para esperar hasta que se cumpla una condicin lgica; por
ejemplo, el sistema podr esperar hasta que se haya activado una o varias
entradas.

WaitUntil di4 = 1;
La ejecucin del programa continuar slo despus de
que la entrada di4 haya sido activada.
Robtica y CIM

Programacin Lenguaje RAPID
57
06
Argumentos WaitUntil [\InPos] Cond [\MaxTime] [\TimeFlag]
[\InPos] Tipo de dato: switch
En el caso en que se utilice este argumento, tanto el robot como los ejes externos
debern haberse detenido antes de que la condicin empiece a ser evaluada.
Cond Tipo de dato: bool
Es la expresin lgica que se debe esperar.
[\MaxTime] Tipo de dato: num
Es el intervalo de tiempo de espera mximo permitido y expresado en segundos.
En el caso en que este tiempo haya transcurrido antes de que se haya cumplido la
condicin, el sistema llamar el gestor de errores, siempre y cuando haya uno, con
el cdigo de error ERR_WAIT_MAXTIME. En el caso en que el sistema no
disponga de gestor de errores la ejecucin del programa se detendr.
[\TimeFlag] Tipo de dato: bool
Es el parmetro de salida que contiene el valor TRUE en el caso en que el tiempo
de espera mximo permitido haya transcurrido antes de que se haya cumplido la
condicin. Si este parmetro est incluido en la instruccin, el hecho de que el
tiempo mximo haya transcurrido, no ser considerado como un error. Este
argumento ser ignorado siempre que el argumento MaxTime no est incluido en la
instruccin.
Ejecucin del programa
Si la condicin programada no se cumple con la ejecucin de la instruccin
WaitUntil, la condicin ser comprobada de nuevo cada 100 ms.
Cuando el robot est esperando, el tiempo ser supervisado, y en el caso en que
exceda el valor mximo de tiempo, el programa continuar siempre y cuando est
especificado TimeFlag, o suscitar un error en el caso en que no lo est. Si se
especifica TimeFlag, se activar en TRUE si el tiempo ha sido excedido, de lo
contrario, se activar en FALSE.
Veamos varios ejemplos de esta Instruccin, para poder comprender mejor su
finalidad.



Formacin Abierta

Programacin Lenguaje RAPID
58

VAR bool tempmax;
WaitUntil DInput(ent_inicio) = 1 AND DInput
(estado_pinza) = 1\MaxTime := 60\TimeFlag := tempmax;
IF tempmax THEN
TPWrite "No se ha recibido orden de arranque en el
tiempo especificado";
ELSE
ciclo_sig;
ENDIF
Si las dos condiciones de entrada no se han cumplido en 60 segundos, aparecer
un mensaje de error en el visualizador de la unidad de programacin.

WaitUntil \Inpos, di4= 1;
La ejecucin del programa esperar hasta que el robot
se haya inmovilizado y que la entrada di4 se haya
activado.


Robtica y CIM

Programacin Lenguaje RAPID
59
06
6.10. Instrucciones de Movimiento
Tratemos de reflejar todas aquellas Instrucciones RAPID que se relacionan de una
forma directa con lo que son movimientos del Robot, Instrucciones que ejecutan un
movimiento.

Un conjunto de movimientos del Robot, se denomina
Trayectoria.

6.10.1. Instruccin MoveAbsJ. Movimiento de ejes
Absolutos
MoveAbsJ (Move Absolute Joint) sirve para mover el robot a una posicin
absoluta, definida en las posiciones de los ejes.
Se deber utilizar esta instruccin nicamente en los siguientes casos:
Cuando el punto final es un punto singular
Para posiciones ambiguas en el IRB 6400C, por ejemplo, para movimientos
realizados con la herramienta por encima del robot.
La posicin final del robot, durante un movimiento realizado con MoveAbsJ, no se
ver afectada por la herramienta ni el objeto de trabajo determinado ni por un
desplazamiento del programa activo.
No obstante, el robot utiliza estos datos para calcular la carga, la velocidad del TCP,
y la trayectoria esquina. Se podrn utilizar las mismas herramientas que las
utilizadas en instrucciones de movimiento adyacentes.

El robot y los ejes externos se mueven a la posicin de
destino siguiendo una trayectoria que no es lineal. Todos
los ejes alcanzan la posicin de destino al mismo tiempo.
Formacin Abierta

Programacin Lenguaje RAPID
60

MoveAbsJ p50, v1000, z50, herram2;
El robot con la herramienta herram2, se mover siguiendo una trayectoria que no
es lineal, a la posicin de eje absoluta p50, con un dato de velocidad de v1000 y un
dato de zona de z50.

MoveAbsJ *, v1000\T:=5, fine, pinza3;
El robot con la herramienta pinza3, se mover siguiendo una trayectoria que no es
lineal, a un punto de paro que es almacenado como una posicin de ejes absoluta
en la instruccin (marcado con un asterisco *). El movimiento completo dura unos 5
s.
Argumentos
MoveAbsJ [ \Conc ] APosEje [\NoEOffs] Velocidad [ \V ] | [ \T ]
Zona [ \Z ] Herramienta [ \WObj ]
[ \Conc ] (Concurrente) Tipo de dato: switch
Las instrucciones siguientes se ejecutarn mientras el robot est en movimiento.
El argumento sirve para acortar el tiempo de ciclo, cuando, por ejemplo, se realiza
una comunicacin con el equipo externo, siempre y cuando no se est utilizando la
sincronizacin.
Al utilizar el argumento \Conc, el nmero de instrucciones de movimiento que se
suceden est limitado a 5. En una seccin de programa que incluye StorePath-
RestoPath, no se permitirn instrucciones de movimiento que contengan el
argumento\Conc.
En el caso de omitir este argumento y que el argumento Al Punto no es un punto de
paro, la siguiente instruccin es ejecutada un poco antes de que el robot haya
alcanzado la zona programada.
APosEje (A Posicin Eje) Tipo de dato: jointtarget
Robtica y CIM

Programacin Lenguaje RAPID
61
06
Es la posicin de ejes absoluta de destino del robot y de los ejes externos. Es
definida como una posicin nombrada o almacenada directamente en la instruccin
(marcada con un asterisco * en la instruccin).
[ \NoEOffs ] (Sin Offsets externos) Tipo de dato: switch
En el caso en que el argumento NoEOffs sea determinado, entonces el movimiento
con MoveAbsJ no se ver afectado por los offsets activos de los ejes externos.
Velocidad Tipo de dato: speeddata
Son los datos de velocidad que se aplican a los movimientos. Los datos de
velocidad definen la velocidad del punto central de la herramienta, la reorientacin
de la herramienta y los ejes externos.
[ \V ] (Velocidad) Tipo de dato: num
Este argumento sirve para especificar la velocidad del TCP en mm/s directamente
en la instruccin. Luego, ser sustituido por la velocidad correspondiente
especificada en los datos de velocidad.
[ \T ] (Tiempo) Tipo de dato: num
Este argumento sirve para especificar el tiempo total expresado en segundos
durante el cual el robot se mueve. Luego ser sustituido por los datos de velocidad
correspondientes.
Zona Tipo de dato: zonedata
Son los datos de zona para el movimiento. Los datos de zona describen el tamao
de la trayectoria esquina generada.
[ \Z ] (Zona) Tipo de dato: num
Este argumento sirve para especificar la precisin de la posicin del TCP del robot
directamente en la instruccin. La longitud de la trayectoria esquina est expresada
en mm., y ser sustituida por la zona correspondiente especificada en los datos de
zona.
Herram Tipo de dato: tooldata
Es la herramienta utilizada durante el movimiento.
La posicin del TCP y la carga en la herramienta estn definidas en los datos de
herramienta. La posicin del TCP sirve para decidir la velocidad y la trayectoria
esquina del movimiento.
[ \WObj] (Objeto de trabajo) Tipo de dato: wobjdata

Formacin Abierta

Programacin Lenguaje RAPID
62
Es el objeto de trabajo utilizado durante el movimiento. Este argumento podr ser
omitido si la herramienta es sujetada por el robot. No obstante, si el robot sujeta el
objeto de trabajo, es decir, si la herramienta es estacionaria, o con ejes externos
coordinados, entonces se deber especificar este argumento.
En el caso de una herramienta estacionaria o de ejes externos coordinados, los
datos utilizados por el sistema para decidir la velocidad y la trayectoria esquina del
movimiento, se encuentran definidos en el objeto de trabajo.
Ejecucin del programa
Un movimiento realizado con la instruccin MoveAbsJ no se ver afectado por un
desplazamiento de programa activo y si es ejecutado con la opcin \NoEOffs no
habr offset para los ejes externos.
Sin la opcin \NoEOffs los ejes externos en su punto de destino se vern afectados
por el offset de ejes externos activado.
La herramienta se mover a la posicin eje absoluta de destino, con una
interpolacin de los ngulos de los ejes. Esto significa que cada eje se mueve a una
velocidad de ejes constante y que todos los ejes alcanzan la posicin eje de destino
al mismo tiempo, lo que resulta en una trayectoria que no es lineal.
De forma general, el TCP se mueve a la velocidad programada aproximada. La
herramienta es reorientada y los ejes externos se mueven al mismo tiempo que el
TCP. En el caso en que el sistema no sea capaz de alcanzar la velocidad
programada para la reorientacin o para los ejes externos, la velocidad del TCP
ser reducida.
Una trayectoria esquina suele ser generada cuando un movimiento es transferido a
la siguiente seccin de la trayectoria. En el caso en que se haya especificado un
punto de paro en los datos de zona, la ejecucin del programa slo continuar
cuando el robot y los ejes externos hayan alcanzado la posicin de ejes
aproximada.

MoveAbsJ *, v2000\V:=2200, z40 \Z:=45, pinza3;
La herramienta, pinza3, se mover siguiendo una trayectoria que no es lineal a una
posicin de ejes absoluta almacenada en la instruccin. El movimiento se llevar a
cabo con los datos activos en v2000 y z40, la velocidad y el tamao de zona del
TCP son de 2200 mm/s y 45 mm respectivamente.
Robtica y CIM

Programacin Lenguaje RAPID
63
06

MoveAbsJ \Conc, *, v2000, z40, pinza3;

La herramienta, pinza3, se mover siguiendo una trayectoria que no es lineal a una
posicin de ejes absoluta almacenada en la instruccin. Las instrucciones lgicas
siguientes son ejecutadas mientras el robot se est moviendo.

MoveAbsJ \Conc, * \NoEOffs, v2000, z40, grip3;
El mismo movimiento que en el punto anterior, pero el movimiento no se ver
afectado por los offsets activos de los ejes externos.
GripLoad obj_mass;

MoveAbsJ start, v2000, z40, grip3 \WObj:= obj;
El robot mueve el objeto de trabajo obj, respecto a la herramienta fija pinza3
siguiendo una trayectoria que no es lineal, a una posicin de ejes absoluta de
arranque (start).
6.10.2. Instruccin MoveC. Movimiento Circular.
MoveC (Move Circular) sirve para mover el punto central de la herramienta (TCP)
de forma circular a un destino especfico. Durante el movimiento, la orientacin
suele permanecer constante respecto al crculo.
Formacin Abierta

Programacin Lenguaje RAPID
64

MoveC p1, p2, v500, z30, herram2;
El TCP de la herramienta, herram2, se mover de forma circular a la posicin p2,
con un dato de velocidad de v500 y un dato de zona de z30. El crculo se define a
partir de la posicin de arranque, el punto de crculo p1 y el punto de destino p2.

MoveC *, *, v500 \T:=5, fine, pinza3;
El TCP de la herramienta, pinza3, se mover de forma circular a un punto fino
almacenado en la instruccin (marcado por el segundo asterisco *). El punto de
crculo tambin est almacenado en la instruccin (marcado por el primer asterisco
*). El movimiento completo tarda 5 segundos en realizarse.

MoveL p1, v500, fine, herram1;
MoveC p2, p3, v500, z20, herram1;
MoveC p4, p1, v500, fine, herram1;
Argumentos
MoveC [ \Conc ] PuntoCirculo AlPunto Velocidad [ \V ] | [ \T ]
Zona [ \Z] Herramienta [ \WObj ] [ \Corr ]
[ \Conc ] (Concurrente) Tipo de dato: switch
Las instrucciones siguientes se ejecutarn inmediatamente. Este argumento sirve
para acortar el tiempo de ciclo cuando, por ejemplo, se est comunicando con el
equipo externo, si no se requiere ninguna sincronizacin.
Utilizando el argumento \Conc, el nmero de instrucciones de movimiento que se
suceden est limitado a 5. En una seccin de programa que incluye StorePath-
RestoPath, no se permitir la presencia de instrucciones de movimiento con el
argumento \Conc.
Robtica y CIM

Programacin Lenguaje RAPID
65
06
Si se omite este argumento y que AlPunto no es un punto de paro, la instruccin
siguiente se ejecutar poco tiempo antes de que el robot haya alcanzado la zona
programada.
PuntoCrculo Tipo de dato: robtarget
Es el punto de crculo del robot. El punto de crculo es una posicin en el crculo,
entre el punto de arranque y el punto de destino. Para obtener una mayor precisin,
deber estar situado aproximadamente a mitad de camino entre el punto de
arranque y el punto de destino. Si est situado demasiado cerca del punto de
arranque o del punto de destino, el robot puede generar un aviso. El punto de
crculo est definido como una posicin nombrada o es almacenado directamente
en la instruccin (marcado con un asterisco * en la instruccin). Las posiciones de
los ejes externos no son utilizadas.
AlPunto Tipo de dato: robtarget
Es el punto de destino del robot y de los ejes externos. Est definido como una
posicin nombrada o es almacenado directamente en la instruccin (marcado con
un asterisco * en la instruccin).
Velocidad Tipo de dato: speeddata
Son los datos de velocidad que se aplican a los movimientos. Los datos de
velocidad definen la velocidad del TCP, la reorientacin de la herramienta y los ejes
externos.
[ \V ] (Velocidad) Tipo de dato: num
Este argumento sirve para especificar la velocidad del TCP en mm/s directamente
en la instruccin. Luego, ser substituido por la velocidad correspondiente
especificada en los datos de velocidad.
[ \T ] (Tiempo) Tipo de dato: num
Este argumento sirve para especificar el tiempo total en segundos durante el cual el
robot y los ejes externos se mueven. Luego, ser substituido por los datos de
velocidad correspondientes.
Zona Tipo de dato: zonedata
Son los datos de zona para el movimiento. Los datos de zona describen el tamao
de la trayectoria esquina generada.
[ \Z ] (Zona) Tipo de dato: num
Este argumento sirve para especificar la precisin de la posicin del TCP del robot
directamente en la instruccin. La longitud de la trayectoria esquina est
especificada en mm, y ser sustituida por la zona correspondiente especificada en
los datos de zona.
Formacin Abierta

Programacin Lenguaje RAPID
66
Herramienta Tipo de dato: tooldata
Es la herramienta en uso cuando el robot se mueve. El TCP es el punto que se
mueve al punto de destino especfico.
[ \WObj] (Objeto de trabajo) Tipo de dato: wobjdata
Es el objeto de trabajo (sistema de coordenadas del objeto) al que se refiere la
posicin del robot en la instruccin.
Este argumento puede ser omitido, y en el caso en que se omita, la posicin se
referir al sistema de coordenadas mundo. Si, por otra parte, se utiliza un TCP
estacionario o ejes externos coordinados, este argumento deber ser especificado
para que un crculo pueda ejecutarse respecto a un objeto de trabajo.
[ \Corr] (Correccin) Tipo de dato: switch
Si este argumento est presente, los datos de correccin introducidos en una
entrada de correccin mediante la instruccin CorrWrite sern aadidos a la
trayectoria y a la posicin de destino.
Ejecucin del programa
El robot y las unidades externas se movern al punto de destino de la siguiente
manera:
El TCP de la herramienta se mover de forma circular a la velocidad constante
programada.
La herramienta es reorientada a una velocidad constante desde la
orientacin de la posicin de arranque a la orientacin del punto de destino.
La reorientacin se lleva a cabo respecto a la trayectoria circular. As, si la
orientacin respecto a la trayectoria es la misma en el punto de arranque y
en el punto de destino, la respectiva orientacin permanecer constante
durante el movimiento.
La orientacin en el punto de crculo no es crtica; sirve nicamente para
distinguir entre dos direcciones posibles de reorientacin. La precisin de la
reorientacin sobre la trayectoria depender nicamente de la orientacin en
el punto de arranque y en el punto de destino.
Los ejes externos no coordinados se ejecutan a una velocidad constante
para que puedan llegar al punto de destino al mismo tiempo que los ejes del
robot. La posicin en el crculo no es utilizada.
En el caso en que la reorientacin o los ejes externos no puedan alcanzar la
velocidad programada, la velocidad del TCP ser reducida.

Robtica y CIM

Programacin Lenguaje RAPID
67
06
Una trayectoria esquina suele ser generada cuando el movimiento es transferido a
la seccin siguiente de una trayectoria. Si se especifica un punto de paro en los
datos de zona, la ejecucin del programa nicamente continuar cuando el robot y
los ejes externos hayan alcanzado la posicin adecuada.

MoveC *, *, v500 \V:=550, z40 \Z:=45, pinza3;
El TCP de la herramienta, pinza3, se mover de forma circular a una posicin
almacenada en la instruccin. El movimiento se llevar a cabo con unos datos de
v500 y z40; la velocidad y el tamao de la zona del TCP son de 550 mm/s y de 45
mm respectivamente.

MoveC \Conc, *, *, v500, z40, pinza3;
El TCP de la herramienta, pinza3, se mover de forma circular a una posicin
almacenada en la instruccin. El punto de crculo est tambin almacenado en la
instruccin. Las instrucciones lgicas siguientes se ejecutarn mientras el robot se
mueve.

MoveC cir1, p15, v500, z40, pinza3 \WObj:=fijacin;
El TCP de la herramienta, pinza3, se mover de forma circular a la posicin, p15,
pasando por el punto de crculo cir1. Estas posiciones estn especificadas en el
sistema de coordenadas del objeto en la fijacin.
Formacin Abierta

Programacin Lenguaje RAPID
68
6.10.3. MoveCDO. Movimiento circular y activacin de una
salida
MoveCDO (Move Circular Digital Output) sirve para mover el punto central de la
herramienta (TCP) de forma circular hasta un destino especfico. La salida digital
especificada ser activada/reinicializada en el medio de la trayectoria esquina en el
punto de destino. Durante el movimiento, la orientacin suele permanecer la misma
respecto al crculo.

MoveCDO p1, p2, v500, z30, herram2, do1,1;
El TCP de la herramienta, herram2, se mover de forma circular a la posicin p2,
con un dato de velocidad de v500 y un dato de zona de z30. El crculo es definido a
partir de la posicin de inicio, del punto de crculo p1 y del punto de destino p2. La
salida do1 se activar en el medio de la trayectoria esquina en p2.
Argumentos
MoveCDO PuntoCir AlPunto Veloc [ \T ] Zona Herram [\WObj]
PuntoCir Tipo de dato: robtarget
Es el punto circular del robot. El punto circular es una posicin situada en el crculo
entre el punto de inicio y el punto de destino. Para obtener la mejor precisin,
deber estar situado aproximadamente a medio camino entre el punto de inicio y el
punto de destino. Si se encuentra demasiado cerca del punto de inicio o del punto
de destino, puede ocurrir que el robot produzca un mensaje de aviso.
El punto circular est definido como una posicin nombrada o es almacenado
directamente en la instruccin (aparece marcado con un asterisco * en la
instruccin).
La posicin de los ejes externos no es utilizada.
AlPunto Tipo de dato: robtarget
Es el punto de destino del robot y de los ejes externos. Est definido como una
posicin nombrada o es almacenado directamente en la instruccin (aparece
marcado con un asterisco * en la instruccin).
Veloc Tipo de dato: speeddata
Robtica y CIM

Programacin Lenguaje RAPID
69
06
Es el dato de velocidad que se aplica a los movimientos. El dato de velocidad define
la velocidad para el punto central de la herramienta, para la reorientacin de la
herramienta y para los ejes externos.
[ \T ] (Tiempo) Tipo de dato: num
Este argumento sirve para especificar el tiempo total en segundos durante el cual el
robot y los ejes externos se estn moviendo. Luego ser sustituido por el dato de
velocidad correspondiente.
Zona Tipo de dato: zonedata
Es el dato de zona que se aplica al movimiento. El dato de zona describe el tamao
de la trayectoria esquina generada.
Herram Tipo de dato: tooldata
Es la herramienta en uso cuando el robot se est moviendo. El punto central de la
herramienta es el punto que se mueve a la posicin de destino especfica.
[ \WObj] (Objeto de trabajo) Tipo de dato: wobjdata
Es el objeto de trabajo (sistema de coordenadas del objeto) al que se refiere la
posicin del robot en la instruccin.
Este argumento puede ser omitido, y en tal caso, la posicin se referir al sistema
de coordenadas mundo. Si, por otro lado, se usa un TCP estacionario o ejes
externos coordinados, este argumento deber ser especificado para que el crculo
pueda ser ejecutado respecto al objeto de trabajo.
Seal Tipo de dato: signaldo
Es el nombre de la seal de salida digital que se debe cambiar.
Valor Tipo de dato: dionum
Es el valor deseado de la seal (0 o 1).
6.10.4. MoveJDO. Movimiento eje a eje y activacin de una
salida
MoveJDO (Move Joint Digital Output) sirve para mover el robot rpidamente de
un punto a otro cuando dicho movimiento no tiene que ser en lnea recta. La seal
de salida digital especificada es activada/reinicializada en el medio de la trayectoria
esquina.
El robot y los ejes externos se mueven al punto de destino siguiendo una trayectoria
que no es lineal. Todos los ejes alcanzan la posicin de destino al mismo tiempo.
Formacin Abierta

Programacin Lenguaje RAPID
70

MoveJDO p1, vmax, z30, herram2, do1, 1;
El punto central de la herramienta (TCP), herram2, se mueve siguiendo una
trayectoria que no es lineal hasta la posicin, p1, con un dato de velocidad vmax y
un dato de zona de z30. La salida do1 se activa en el medio de la trayectoria
esquina en la posicin p1.
Argumentos
MoveJDO AlPunto Veloc [ \T ] Zona Herram
[ \WObj ] Seal Valor
AlPunto Tipo de dato: robtarget
Es el punto de destino del robot y de los ejes externos. Est definido como una
posicin nombrada o es almacenado directamente en la instruccin (aparece
marcado con un asterisco * en la instruccin).
Veloc Tipo de dato: speeddata
Es el dato de velocidad que se aplica a los movimientos. El dato de velocidad define
la velocidad para el punto central de la herramienta, para la reorientacin de la
herramienta y para los ejes externos.
[ \T ] (Tiempo) Tipo de dato: num
Este argumento sirve para especificar el tiempo total en segundos durante el cual el
robot se est moviendo. Luego ser sustituido por el dato de velocidad
correspondiente.
Zona Tipo de dato: zonedata
Es el dato de zona que se aplica al movimiento. El dato de zona describe el tamao
de la trayectoria esquina generada.
Herram Tipo de dato: tooldata
Es la herramienta en uso cuando el robot se est moviendo. El punto central de la
herramienta es el punto que se mueve a la posicin de destino especificada.
[ \WObj] (Objeto de trabajo) Tipo de dato: wobjdata
Es el objeto de trabajo (sistema de coordenadas) al que se refiere la posicin del
robot en la instruccin.
Robtica y CIM

Programacin Lenguaje RAPID
71
06
Este argumento puede ser omitido, y en tal caso, la posicin se referir al sistema
de coordenadas mundo. Si, por otro lado, se usa un TCP estacionario o ejes
externos coordinados, este argumento deber ser especificado.
Seal Tipo de dato: signaldo
Es el nombre de la seal de salida digital que se debe cambiar.
Valor Tipo de dato: dionum
Es el valor deseado de la seal (0 o 1).
6.10.5. Instruccin MoveJ. Movimiento eje a eje
MoveJ (Move Joint) sirve para mover el robot rpidamente desde un punto a otro
punto cuando este movimiento no tiene que seguir una lnea recta.
El robot y los ejes externos se movern a la posicin de destino siguiendo una
trayectoria que no es lineal. Todos los ejes alcanzarn la posicin de destino al
mismo tiempo.

MoveJ p1, vmax, z30, herram2;
El punto central de la herramienta (TCP), herram2, se mover siguiendo una
trayectoria que no es lineal para alcanzar la posicin, p1, con el dato de velocidad
vmax y el dato de zona z30.

MoveJ *, vmax \T:=5, fine, pinza3;
El TCP de la herramienta, pinza3, se mover siguiendo una trayectoria no lineal a
un punto de paro almacenado en la instruccin (marcado con un asterisco *).
El movimiento entero tardar 5 segundos en realizarse.

Formacin Abierta

Programacin Lenguaje RAPID
72
Argumentos
MoveJ [ \Conc ] AlPunto Velocidad [ \V ] | [ \T ] Zona [ \Z ]
Herramienta [ \WObj ]
[ \Conc ] (Concurrente) Tipo de dato: switch
Las instrucciones siguientes se ejecutarn mientras el robot est en movimiento.
Este argumento sirve para acortar el tiempo de ciclo cuando, por ejemplo, se est
comunicando con el equipo externo, si no se requiere ninguna sincronizacin.
Utilizando el argumento \Conc, el nmero de instrucciones de movimiento que se
suceden est limitado a 5. En una seccin de programa que incluye StorePath-
RestoPath, no se permitir la presencia de instrucciones de movimiento con el
argumento \Conc.
Si se omite este argumento y que el argumento AlPunto no es un punto de paro, la
instruccin siguiente se ejecutar poco tiempo antes de que el robot haya
alcanzado la zona programada.
AlPunto Tipo de dato: robtarget
Es el punto de destino del robot y de los ejes externos. Est definido como una
posicin nombrada o es almacenado directamente en la instruccin (marcado con
un asterisco * en la instruccin).
Velocidad Tipo de dato: speeddata
Son los datos de velocidad que se aplican a los movimientos. Los datos de
velocidad definen la velocidad del TCP, la reorientacin de la herramienta y los ejes
externos.
[ \V ] (Velocidad) Tipo de dato: num
Este argumento sirve para especificar la velocidad del TCP en mm/s directamente
en la instruccin. Luego, ser sustituido por la velocidad correspondiente
especificada en los datos de velocidad.
[ \T ] (Tiempo) Tipo de dato: num
Este argumento sirve para especificar el tiempo total en segundos durante el cual el
robot se mueve. Luego, ser sustituido por los datos de velocidad correspondientes.
Zona Tipo de dato: zonedata
Son los datos de zona para el movimiento. Los datos de zona describen el tamao
de la trayectoria esquina generada.
[ \Z ] (Zona) Tipo de dato: num
Robtica y CIM

Programacin Lenguaje RAPID
73
06
Este argumento sirve para especificar la precisin de la posicin del TCP del robot
directamente en la instruccin. La longitud de la trayectoria esquina est
especificada en mm, y ser sustituida por la zona correspondiente especificada en
los datos de zona.
Herramienta Tipo de dato: tooldata
Es la herramienta en uso cuando el robot se mueve. El TCP es el punto que se
mueve al punto de destino especfico.
[ \WObj] (Objeto de trabajo) Tipo de dato: wobjdata
Es el objeto de trabajo (sistema de coordenadas) al que se refiere la posicin del
robot en la instruccin.
Este argumento puede omitirse, y en el caso en que se omita, la posicin se referir
al sistema de coordenadas mundo. Si, por otra parte, se utiliza un TCP estacionario
o ejes externos coordinados, este argumento deber ser especificado.
Ejecucin del programa
El punto central de la herramienta se mover al punto de destino con una
interpolacin de los ngulos de los ejes. Ello significa que cada eje se mover a una
velocidad de eje constante y que todos los ejes alcanzarn el punto de destino al
mismo tiempo, lo cual originar una trayectoria que no es lineal.
Una trayectoria esquina suele ser generada cuando el movimiento es transferido a
la seccin siguiente de una trayectoria. Si se especifica un punto de paro en los
datos de zona, la ejecucin del programa nicamente continuar cuando el robot y
los ejes externos hayan alcanzado la posicin adecuada.

MoveJ *, v2000\V:=2200, z40 \Z:=45, pinza3;
El TCP de la herramienta, pinza3, se mover siguiendo una trayectoria que no es
lineal, a una posicin almacenada en la instruccin. El movimiento se llevar a cabo
con los datos de v2000 y z40; la velocidad y el tamao de la zona del TCP son de
2200 mm/s y de 45 mm respectivamente.
Formacin Abierta

Programacin Lenguaje RAPID
74

MoveJ \Conc, *, v2000, z40, pinza3;
El TCP de la herramienta, pinza3, se mover siguiendo una trayectoria que no es
lineal, a una posicin almacenada en la instruccin. Las instrucciones lgicas
siguientes se ejecutarn mientras el robot se mueve.

MoveJ arranque, v2000, z40, pinza3 \WObj:=fijacin;
El TCP de la herramienta, pinza3, se mover siguiendo una trayectoria que no es
lineal, a una posicin, arranque. Esta posicin est especificada en el sistema de
coordenadas del objeto, en la fijacin.
6.10.6. MoveLDO. Movimiento lineal y activacin de una
salida
MoveLDO (Move Linearly Digital Output) sirve para mover el punto central de la
herramienta (TCP) de forma lineal hasta un destino especfico. La seal de salida
digital especificada ser activada/reinicializada en el medio de la trayectoria
esquina.
Cuando el TCP debe permanecer estacionario, esta instruccin podr utilizarse
tambin para realizar la reorientacin de la herramienta.

MoveLDO p1, v1000, z30, herram2, do1,1;
El TCP de la herramienta, herram2, se mover de forma lineal a la posicin p1, con
un dato de velocidad de v1000 y un dato de zona de z30. La salida do1 se activar
en el medio de la trayectoria esquina en p1.
Robtica y CIM

Programacin Lenguaje RAPID
75
06
Argumentos
MoveLDO AlPunto Veloc [ \T ] Zona Herram
[ \WObj ] Seal Valor
AlPunto Tipo de dato: robtarget
Es el punto de destino del robot y de los ejes externos. Est definido como una
posicin nombrada o es almacenado directamente en la instruccin (aparece
marcado con un asterisco * en la instruccin).
Veloc Tipo de dato: speeddata
Es el dato de velocidad que se aplica a los movimientos. El dato de velocidad define
la velocidad para el punto central de la herramienta, para la reorientacin de la
herramienta y para los ejes externos.
[ \T ] (Tiempo) Tipo de dato: num
Este argumento sirve para especificar el tiempo total en segundos durante el cual el
robot se est moviendo. Luego ser sustituido por el dato de velocidad
correspondiente.
Zona Tipo de dato: zonedata
Es el dato de zona que se aplica al movimiento. El dato de zona describe el tamao
de la trayectoria esquina generada.
Herram Tipo de dato: tooldata
Es la herramienta en uso cuando el robot se est moviendo. El punto central de la
herramienta es el punto que se mueve a la posicin de destino especificada.
[ \WObj] (Objeto de trabajo) Tipo de dato: wobjdata
Es el objeto de trabajo (sistema de coordenadas) al que se refiere la posicin del
robot en la instruccin.
Este argumento puede ser omitido, y en tal caso, la posicin se referir al sistema
de coordenadas mundo. Si, por otro lado, se usa un TCP estacionario o ejes
externos coordinados, este argumento deber ser especificado.
Seal Tipo de dato: signaldo
Es el nombre de la seal de salida digital que se debe cambiar.
Valor Tipo de dato: dionum
Es el valor deseado de la seal (0 o 1).
Formacin Abierta

Programacin Lenguaje RAPID
76
6.10.7. Instruccin MoveL. Movimiento Lineal
MoveL sirve para mover el punto central de la herramienta (TCP) de forma lineal a
una posicin de destino determinada. Cuando el TCP debe permanecer
estacionario, esta instruccin podr ser utilizada tambin para reorientar la
herramienta.

MoveL p1, v1000, z30, herram2;
El TCP de la herramienta, herram2, se mover de forma
lineal a la posicin p1,con un dato de velocidad de v1000
y un dato de zona de z30.
MoveL *, v1000\T:=5, fine, pinza3;
El TCP de la herramienta, pinza3, se mover de forma lineal a un punto fino
almacenado en la instruccin (marcado con un asterisco *). El movimiento completo
tardar 5 segundos en llevarse a cabo.
Argumentos
MoveL [ \Conc ] AlPunto Velocidad [ \V ] | [ \T ] Zona [ \Z ]
Herram [ \WObj ] [ \Corr ]
[ \Conc ] (Concurrente) Tipo de dato: switch
Las instrucciones siguientes se ejecutarn inmediatamente. Este argumento sirve
para acortar el tiempo de ciclo cuando, por ejemplo, se est comunicando con el
equipo externo, si no se requiere ninguna sincronizacin.
Utilizando el argumento \Conc, el nmero de instrucciones de movimiento que se
suceden est limitado a 5. En una seccin de programa que incluye StorePath-
RestoPath, no se permitir la presencia de instrucciones de movimiento con el
argumento \Conc.
Si se omite este argumento y que AlPunto no es un punto de paro, la instruccin
siguiente se ejecutar poco tiempo antes de que el robot haya alcanzado la zona
especfica.
AlPunto Tipo de dato: robtarget
Es el punto de destino del robot y de los ejes externos. Est definido como una
posicin nombrada o es almacenado directamente en la instruccin (marcado con
un asterisco * en la instruccin).
Velocidad Tipo de dato: speeddata
Robtica y CIM

Programacin Lenguaje RAPID
77
06
Son los datos de velocidad que se aplican a los movimientos. Los datos de
velocidad definen la velocidad del TCP, la reorientacin de la herramienta y los ejes
externos.
[ \V ] (Velocidad) Tipo de dato: num
Este argumento sirve para especificar la velocidad del TCP en mm/s directamente
en la instruccin. Luego, ser sustituido por la velocidad correspondiente
especificada en los datos de velocidad.
[ \T ] (Tiempo) Tipo de dato: num
Este argumento sirve para especificar el tiempo total en segundos durante el cual el
robot se mueve. Luego, ser sustituido por los datos de velocidad correspondientes.
Zona Tipo de dato: zonedata
Son los datos de zona para el movimiento. Los datos de zona describen el tamao
de la trayectoria esquina generada.
[ \Z ] (Zona) Tipo de dato: num
Este argumento sirve para especificar la precisin de la posicin del TCP del robot
directamente en la instruccin. La longitud de la trayectoria esquina est
especificada en mm, y ser sustituida por la zona correspondiente especificada en
los datos de zona.
Herramienta Tipo de dato: tooldata
Es la herramienta en uso cuando el robot se mueve. El TCP es el punto que se
mueve al punto de destino especfico.
[ \WObj] (Objeto de trabajo) Tipo de dato: wobjdata
El objeto de trabajo (sistema de coordenadas) al que se refiere la posicin del robot
en la instruccin.
Este argumento puede omitirse, y en el caso en que se omita, la posicin se referir
al sistema de coordenadas mundo. Si, por otra parte, se utiliza un TCP estacionario
o ejes externos coordinados, este argumento deber ser especificado para poder
realizar un movimiento lineal respecto al objeto de trabajo.
[ \Corr] (Correccin) Tipo de dato: switch
Si este argumento est presente, los datos de correccin introducidos en una
entrada de correccin mediante la instruccin CorrWrite sern aadidos a la
trayectoria y a la posicin de destino.
Formacin Abierta

Programacin Lenguaje RAPID
78

MoveL *, v2000 \V:=2200, z40 \Z:=45, pinza3;
El TCP de la herramienta, pinza3, se mover siguiendo una trayectoria lineal, a una
posicin almacenada en la instruccin. El movimiento se llevar a cabo con los
datos de v2000 y z40; la velocidad y el tamao de la zona del TCP son de 2200
mm/s y de 45 mm respectivamente.

MoveJ \Conc, *, v2000, z40, pinza3;
El TCP de la herramienta, pinza3, se mover siguiendo una trayectoria lineal, a una
posicin almacenada en la instruccin. Las instrucciones lgicas siguientes se
ejecutarn mientras el robot se mueve.

MoveJ arranque, v2000, z40, pinza3 \WObj:=fijacin;
El TCP de la herramienta, pinza3, se mover siguiendo una trayectoria lineal, a una
posicin, arranque. Esta posicin est especificada en el sistema de coordenadas
del objeto, en la fijacin.
6.10.8. MoveJSync. Movimiento eje a eje y ejecucin de un
proceso
MoveJSync (Move Joint Synchronously) sirve para mover el robot rpidamente
de un punto a otro cuando dicho movimiento no tiene que ser en lnea recta. El
proceso RAPID especificado se ejecuta en el medio de la trayectoria esquina en el
punto de destino.
Robtica y CIM

Programacin Lenguaje RAPID
79
06
El robot y los ejes externos se mueven al punto de destino siguiendo una trayectoria
que no es lineal.

Todos los ejes alcanzan la posicin de destino al mismo
tiempo.


MoveJSync p1, vmax, z30, herram2, proc1;
El punto central de la herramienta (TCP), herram2, se mueve siguiendo una
trayectoria que no es lineal hasta la posicin p1, con un dato de velocidad de vmax
y un dato de zona de z30. El proceso proc1 se ejecuta en el medio de la trayectoria
en p1.
Argumentos
MoveJSync AlPunto Veloc [ \T ] Zona Herram [ \WObj ]
NombreProc
AlPunto Tipo de dato: robtarget
Es el punto de destino del robot y de los ejes externos. Est definido como una
posicin nombrada o es almacenado directamente en la instruccin (aparece
marcado con un asterisco * en la instruccin).
Veloc Tipo de dato: speeddata
Es el dato de velocidad que se aplica a los movimientos. El dato de velocidad define
la velocidad para el punto central de la herramienta, para la reorientacin de la
herramienta y para los ejes externos.
[ \T ] (Time) Tipo de dato: num
Este argumento sirve para especificar el tiempo total en segundos durante el cual el
robot se est moviendo. Luego ser sustituido por el dato de velocidad
correspondiente.
Formacin Abierta

Programacin Lenguaje RAPID
80
Zona Tipo de dato: zonedata
Es el dato de zona que se aplica al movimiento. El dato de zona describe el tamao
de la trayectoria esquina generada.
Herram Tipo de dato: tooldata
Es la herramienta en uso cuando el robot se est moviendo. El punto central de la
herramienta es el punto que se mueve a la posicin de destino especificada.
[ \WObj] (Objeto de trabajo) Tipo de dato: wobjdata
Es el objeto de trabajo (sistema de coordenadas) al que se refiere la posicin del
robot en la instruccin.
Este argumento puede ser omitido, y en tal caso, la posicin se referir al sistema
de coordenadas mundo. Si, por otro lado, se usa un TCP estacionario o ejes
externos coordinados, este argumento deber ser especificado.
NombreProc (Nombre del Proceso) Tipo de dato: string
Es el nombre del proceso RAPID que se debe ejecutar en medio de la trayectoria
esquina en el punto de destino.
6.10.9. MoveL Sync. Movimiento lineal y ejecucin de un
proceso
MoveLSync (Move Lineary Synchronously) sirve para mover el punto central de
la herramienta (TCP) de forma lineal hasta un destino especfico. El proceso RAPID
especificado se ejecuta en el medio de la trayectoria esquina en el punto de
destino.
Cuando el TCP debe permanecer estacionario, esta instruccin puede servir
tambin para reorientar la herramienta.

MoveLSync p1, v1000, z30, herram2, proc1;
El TCP de la herramienta, herram2, se mueve de forma lineal a la posicin p1, con
un dato de velocidad de v1000 y un dato de zona z30. El proceso proc1 se
ejecutar en el medio de la trayectoria esquina en p1.
Robtica y CIM

Programacin Lenguaje RAPID
81
06
Argumentos
MoveLSync AlPunto Veloc [ \T ] Zona Herram
[ \WObj ] NombreProc
AlPunto Tipo de dato: robtarget
Es el punto de destino del robot y de los ejes externos. Est definido como una
posicin nombrada o es almacenado directamente en la instruccin (aparece
marcado con un asterisco * en la instruccin).
Veloc Tipo de dato: speeddata
Es el dato de velocidad que se aplica a los movimientos. El dato de velocidad define
la velocidad para el punto central de la herramienta, para la reorientacin de la
herramienta y para los ejes externos.
[ \T ] (Tiempo) Tipo de dato: num
Este argumento sirve para especificar el tiempo total en segundos durante el cual el
robot se est moviendo. Luego ser sustituido por el dato de velocidad
correspondiente.
Zona Tipo de dato: zonedata
Es el dato de zona que se aplica al movimiento. El dato de zona describe el tamao
de la trayectoria esquina generada.
Herramienta Tipo de dato: tooldata
Es la herramienta en uso cuando el robot se est moviendo. El punto central de la
herramienta es el punto que se mueve a la posicin de destino especificada.
[ \WObj] (Objeto de trabajo) Tipo de dato: wobjdata
Es el objeto de trabajo (sistema de coordenadas) al que se refiere la posicin del
robot en la instruccin.
Este argumento puede ser omitido, y en tal caso, la posicin se referir al sistema
de coordenadas mundo. Si, por otro lado, se usa un TCP estacionario o ejes
externos coordinados, este argumento deber ser especificado.
NombreProc (Nombre del proceso) Tipo de dato: string
Es el nombre del proceso RAPID que debe ser ejecutado en el medio de la
trayectoria esquina en el punto de destino.
Formacin Abierta

Programacin Lenguaje RAPID
82

Realicemos un pequeo resumen, un resumen ms
grfico para comprender mejor y ms fcil alguna de las
instrucciones, reljate y no dejes que te agobien tanta
instruccin junta, realizaremos programas cortos, sencillos
para empezar a coger ritmo.
Es esencial que aprendas las instrucciones de movimiento y sobre todo su
estructura.
Pasemos a desarrollar de una forma ms sencilla y grfica las instrucciones de
movimiento y su estructura.
MoveL p30,v30,z10,tool10
Figura 6.7. Estructura de Instruccin
P30: Punto de destino. Dato
Robtarger.
V30: Velocidad de ejecucin
(mm/s) Dato SpeedData
Z10:Zona de precision. (mm).
Dato zoneData
Tool10:TCP con el que se realiza
la trayectoria. Dato ToolData

Efecto de las zonas de precisin en el enlace de
trayectorias.

Como puedes ver en la figura 1.1. aparece la Instruccin MoveL que es la ms
empleada en movimiento conjuntamente con la Instruccin MoveJ.
Robtica y CIM

Programacin Lenguaje RAPID
83
06
La instruccin MoveL
Como hemos podido observar en pasos anteriores, significa movimiento Lineal, es
decir, provocar obligar al robot a ejecutar un movimiento Lineal, un movimiento
lineal es el camino ms corto entre dos puntos.
P30
Su composicin o estructura sigue acompaada de un (*) un nombre de punto al
que se ha ido denominando Robtarger y que ms adelante profundizaremos en el
apartado de Tipos de Datos, en el caso de la figura P30.
V30
Despus del tipo de Dato Robtarger P30 viene el datos SpeedData, la velocidad
medida en mm/seg.
Tool10
Por ltimo en este caso o ejemplo es la Herramienta, a la que se denomina como
Tool10.

Recuerda que el Tool10 es la herramienta y
es un punto clave o el centro del material a
manipular la pinza, la antorcha, la garra...
Tambin debes conocer que en la
Instruccin MoveL y MoveJ puedes aadir
varias opciones argumntales

Realiza una tabla donde puedas colocar a un lado la
Instruccin y al otro todas las posibles Opciones
argumntales que contenga dicha instruccin
Veamos ahora la diferencia fsica de movimientos que realiza el Robot, cuando
elegimos una u otra opcin determinada con las instrucciones de movimiento.
MoveL p30, v30, z10, tool10
p30
tool10
30 mm/s
MoveL p30, v30, z10, tool10
p30
tool10
30 mm/s p30
tool10
30 mm/s

30 mm/s
p30
tool10
MoveJ p30, v30, z10, tool10
30 mm/s
p30
tool10
MoveJ p30, v30, z10, tool10

Figura 6.8. Trayectoria MoveL. Figura 6.9. Trayectoria MoveJ.
Formacin Abierta

Programacin Lenguaje RAPID
84
MoveC p20 , p30, v30, z10, tool10
tool10
p20
p30

Figura 6.10. Trayectoria MoveC.


Con estas Opciones, o con todas estas Instrucciones que
ya hemos presentado y conocido, ya podemos realizar
una gran cantidad de programas de Robtica.
Adems tienes que tener conciencia de que dichos
programas que ya podemos realizar pueden ser
perfectamente cualquier programa que esta funcionando
en la actualidad.
Por ultimo faltara por conocer dos apartados dentro de
este tema:
Las instrucciones de algunas de las aplicaciones mas
comunes utilizadas en los distintos procesos
productivos presentados en anteriores Unidades de
esta asignatura, Soldadura arco, aplicaciones de
Pintura
Los diferentes tipos de datos que nos han ido
apareciendo en las diversas Instrucciones
Presentadas.
Entremos entonces a presentar las instrucciones y sus pequeas variaciones o
particularidades de varias aplicaciones de un proceso Productivo.
Empezaremos por el Proceso Productivo de Soldadura Por Arco.
Robtica y CIM

Programacin Lenguaje RAPID
85
06
6.11. Aplicacin Soldadura Por Arco
En esta apartado haremos referencia a muchas cuestiones presentadas y
solucionadas en la Unidad 4 de esta asignatura, por lo que es muy importante que
recuerdes el apartado Soldadura Por Arco de dicha Unidad.

En esta apartado haremos referencia a muchas cuestiones
presentadas y solucionadas en la Unidad 4 de esta
asignatura, por lo que es muy importante que recuerdes el
apartado Soldadura Por Arco de dicha Unidad.
6.11.1. Programacin de la Soldadura al Arco
Estructura del programa
Cuando se deben soldar varias costuras en un mismo objeto, la secuencia de
soldadura ser de una importancia fundamental para la obtencin de una buena
calidad del trabajo realizado en el objeto.
El riesgo de deformacin debido a variaciones trmicas podr ser reducido
seleccionando la secuencia de soldadura correcta. Esta es la razn por la cual a
menudo se recomienda crear una rutina especfica para ello, rutina_objeto, con
todas las costuras especificadas en el orden correcto. Cuando se coloca el objeto
en un posicionador, se podr tambin especificar en la rutina su orientacin.
La rutina objeto podr a su vez, llamar a una rutina de soldadura para cada costura
que se deba soldar.
6.11.2. Instrucciones de soldadura al arco
Una instruccin de soldadura al arco bsicamente contiene los mismos tipos de
informacin que una instruccin de posicionamiento. No obstante, cada instruccin
de soldadura al arco incluye tres argumentos adicionales, costura (seam),
soldadura (weld) y oscilacin (weave), que sirven de datos para el proceso de
soldadura (tipos de datos: seamdata, welddata y weavedata).
Formacin Abierta

Programacin Lenguaje RAPID
86

Presentemos un cuadro descriptivo para poder
comprender con un solo golpe de vista la estructura
completa de una instruccin de Soldadura Por Puntos

Figura 6.11. Instruccin ArcL, Soldadura.
El argumento de velocidad, v100, de la instruccin es vlido nicamente cuando se
ejecuta el programa instruccin por instruccin (hacia adelante o hacia atrs) y el
proceso de soldadura ser en este caso automticamente inhabilitado. De lo
contrario, durante la ejecucin normal, la velocidad del proceso en las diferentes
fases del proceso est incluida como un componente de los datos seam y weld.
6.11.3. Definicin de los datos de soldadura al arco
Antes de iniciar la programacin de las instrucciones de soldadura al arco, el
usuario deber definir los datos de soldadura al arco que se van a utilizar. Estos
datos se dividirn en tres tipos:
seamdata; describen como debe empezar y acabar la soldadura,
welddata; describen la fase actual de soldadura,
weavedata; describen como debe llevarse a cabo la oscilacin.
Los componentes exactos de los datos anteriores dependern de la configuracin
del robot en el momento.
Normalmente, los datos son almacenados como una parte del programa. Sin
embargo, cuando los datos deben permanecer en la memoria, independientemente
del programa cargado, stos sern almacenados en un mdulo del sistema.

Robtica y CIM

Programacin Lenguaje RAPID
87
06
Abrir la ventana de Tipos de Datos del Programa apretando la tecla de
funcin Ver: Tipos de Datos.
Seleccionar el tipo seamdata, welddata o weavedata y apretar la tecla
Retorno .
Apretar la tecla de funcin Nuevo.

Figura 6.12. Ventana de dialogo.
Aparece una ventana de dilogo, en
el que se visualizar el nombre de los
datos (vase la siguiente Figura).

6.11.4. Ejemplo de una instruccin de soldadura al arco
La costura ilustrada en la prxima Figura debe ser soldada. La lnea de la costura
est representada por la lnea gruesa de color negro indicada en la figura.
Los caracteres xxxxx situados entre los puntos p10 y p20 designan un arranque
sobre la marcha. En otras palabras, la fase de preparacin (por ejemplo, el preflujo
del gas)
de la soldadura se lleva a cabo en el camino hacia el punto de arranque, p20. La
soldadura se termina en el punto p80.
Los datos de soldadura, wd1, se aplican hasta que se alcanza la posicin p50,
donde ocurre la transicin a wd2.
Formacin Abierta

Programacin Lenguaje RAPID
88


Figura 6.13. Ejecucin de Cordn soldadura.
La secuencia de programacin correspondiente a esta soldadura podra expresarse
de la siguiente forma:

MoveJ p10, v100, z10, torch;
ArcL\On, p20, v100, sm1, wd1, wv1, fine, torch;
ArcC p30, p40, v100, sm1, wd1, wv1, z10, torch;
ArcL p50, v100, sm1, wd1, wv1, z10, torch;
ArcC p60, p70, v100, sm1, wd2, wv1, z10, torch;
ArcL\Off, p80, v100, sm1, wd2, wv1, fine, torch;
MoveJ p90, v100, z10, torch;
En el caso en que se deba coordinar la costura con un eje externo, se deber incluir
un argumento del tipo workobject (objeto de trabajo) en todas las instrucciones
de soldadura al arco excepto en la instruccin de arranque.
6.11.5. Funciones manuales cuando la ejecucin del
programa ha sido detenida
Funciones de soldadura al arco en la Ventana de Programa:
Ajuste de los datos de soldadura
Ajuste de los datos de oscilacin
Comunicacin con el sensor de seguimiento de costura
Bloqueo del proceso
Alimentacin de hilo manual
Robtica y CIM

Programacin Lenguaje RAPID
89
06
Activar/desactivar gas manual
Seleccionar el sistema de soldadura al arco
Cambio de los incrementos de ajuste
Funciones de soldadura al arco en la Ventana de Produccin:
Alimentacin de hilo manual
Activar/desactivar gas manual
Seleccionar el sistema de soldadura al arco
Cambio de los incrementos de ajuste
6.11.6. Ajuste de los datos de soldadura
Ciertos componentes de los datos de soldadura (vel_sold, alim hilo_sold y
tensin_sold) pueden ser ajustados mediante la funcin de ajuste de los datos de
soldadura.
Existen dos valores almacenados para los datos ajustables, que son: el valor
presente y el valor llamado valor de origen. Esto permite al usuario comprobar
cuanto ha cambiado el valor y poder restablecer el valor de origen.
Cuando se realiza un ajuste, es siempre el valor presente el que es cambiado.
El valor de origen tambin podr ser actualizado (es decir, que podr ser activado
en el mismo valor que el valor presente).
Los mismos cambios podrn tambin ser realizados en la ventana Datos del
Programa.
Seleccionar Soldadura Arco: Ajuste Soldadura.
6.11.7. Funciones manuales durante la ejecucin del
programa
Funciones de soldadura al arco en la Ventana de Programa:
Ajuste de los datos de soldadura
Ajuste de los datos de oscilacin
Visualizacin del valor medido
Funciones de soldadura al arco en la Ventana de Produccin:
Ajuste de los datos de soldadura
Ajuste de los datos de oscilacin
Formacin Abierta

Programacin Lenguaje RAPID
90
Visualizacin del valor medido
Cuando arranca la ejecucin del programa, se visualizar la ltima funcin utilizada.
6.11.8. Ajuste de los datos
Ciertos datos pueden ser ajustados mientras estn activados, es decir, cuando el
programa se est ejecutando. Sin embargo, slo los valores presentes podrn ser
ajustados.
Los valores de origen podrn ser ajustados nicamente cuando la ejecucin del
programa haya terminado.
Apretar la tecla Inicio para arrancar el programa.
6.11.9. Definicin de los sistemas de soldadura al arco
Se podrn activar hasta 5 sistemas de soldadura al arco simultneamente en la
misma instalacin de robot. Tal puede ser el caso cuando, por ejemplo:
est conectado ms de un equipo de proceso;
se utilizan dos dimensiones diferentes de electrodos (para que ocurra esto,
se debern usar diferentes sistemas de alimentacin); se utiliza ms de un
proceso, por ejemplo, TIG y MIG/MAG.
En el caso en que se haya definido ms de un sistema de soldadura al arco, se
activar un conjunto nuevo de instrucciones y de tipos de datos para cada sistema.
El primer sistema adicional (que est definido por la secuencia del sistema definido
en un archivo de configuracin) est conectado a las instrucciones y tipos de datos
con el sufijo 1, el segundo, con el sufijo 2, y as sucesivamente. En otras palabras,
ArcL1 y ArcC1 estarn conectadas a seamdata1, welddata1, weavedata1.
Seleccionar Temas: Soldadura al arco.
Seleccionar Tipos: Sistema de Soldadura al Arco.
6.11.10. ArcL Soldadura al arco con movimiento lineal
ArcL1 ArcL2
ArcL (Arc Linear) sirve para soldar en una trayectoria recta. La instruccin controla y
monitoriza el proceso completo de soldadura segn lo siguiente:
El punto central de la herramienta se mueve de forma lineal a la posicin de
destino especificada.
Robtica y CIM

Programacin Lenguaje RAPID
91
06
Todas las fases, como las fases de inicio y finales del proceso de soldadura,
estn controladas.
El proceso de soldadura est monitorizado continuamente.

La nica diferencia entre ArcL, ArcL1 y ArcL2 radica en
que estn conectadas a sistemas de proceso diferentes
segn la configuracin de los Parmetros del Sistema.
Aunque ArcL haya sido utilizado en los ejemplos, ArcL1 o
ArcL2 podrn utilizarse tambin del mismo modo.

MoveJ . . . .
ArcL \On, p1, v100, cordn1, sold5, nooscil, fine, pistola1;
ArcL \Off, p2, v100, cordn1, sold5, nooscil, fine, pistola1;
MoveJ . . . .
Este ejemplo suelda un cordn recto entre los puntos p1 y p2, segn se indica en la
siguiente Figura.

Figura 6.14. Ejecucin de soldadura Arco.
En la trayectoria hasta p1, se llevan a cabo los preparativos para el inicio de la
soldadura, como el preflujo del gas.
El proceso y el movimiento de soldadura actual empezarn entonces en la posicin
p1 y acabarn en p3. El proceso de inicio y de final est determinado por cordn1 y
el proceso de soldadura por sold5. Los datos de oscilacin se llevarn a cabo de
acuerdo con nooscil. (Sin oscilacin, si el valor del componente forma_osc es igual
a cero.) V100 especifica la velocidad alcanzada durante el arranque sobre la
marcha hasta p1.
Formacin Abierta

Programacin Lenguaje RAPID
92
Arguments
ArcL [\On] | [\Off] AlPunto Veloc [\T ] Cordn Sold Oscil Zona [\Z] Herram
[\WObj][\SeamName]
[\On] Tipo de dato: switch
El argumento \On sirve para obtener un arranque sobre la marcha (vase la
siguiente Figura) que, a su vez, producir tiempos de ciclo ms cortos.
El argumento \On slo podr utilizarse en la primera instruccin de soldadura al
arco para obtener un cordn. Como que las instrucciones finales no pueden incluir
el argumento \On, la soldadura con arranque sobre la marcha deber incluir por lo
menos dos instrucciones.
Los preparativos de inicio de un arranque sobre la marcha, por ejemplo, la purga
del gas, se llevarn a cabo en la trayectoria hacia la posicin de inicio de la
soldadura.
Cuando no se utiliza el argumento \On, la soldadura empieza en la posicin anterior
a la instruccin ArcL y el robot permanecer estacionario en la posicin anterior
mientras todas las actividades de inicio de soldadura se estn llevando a cabo.
Tanto si se utiliza como si no se utiliza un arranque sobre la marcha, la posicin de
inicio de la soldadura ser siempre un punto de paro - independientemente de lo
que est especificado en el argumento Zona para esta posicin.

Figura 6.15. Ejecucin de soldadura Arco.
[\Off] Tipo de dato: switch
Si se utiliza el argumento \Off , la soldadura acaba cuando el robot alcance la
posicin de destino. Independientemente de lo que est especificado en el
argumento Zona, la posicin de destino ser un punto de paro.
Si a una instruccin ArcL sin el argumento \Off le sigue una instruccin MoveJ, por
ejemplo, la soldadura acabar, pero de una forma incontrolada. Las instrucciones
lgicas, como Set do1, sin embargo, podrn utilizarse entre dos instrucciones de
soldadura al arco sin terminar el proceso de soldadura.
AlPunto Tipo de dato: robtarget
Robtica y CIM

Programacin Lenguaje RAPID
93
06
Es la posicin de destino del robot y de los ejes externos. Suele estar definida
como una posicin con nombre o es almacenada directamente en la instruccin
(indicada por un asterisco * en la instruccin).
Veloc Tipo de dato: speeddata
La velocidad del TCP est controlada por el argumento Veloc en los siguientes
casos:
Cuando se utiliza el argumento \On (preparativos del inicio de la soldadura
en un arranque sobre la marcha).
Cuando el programa es ejecutado instruccin por instruccin (sin soldadura).
La velocidad del TCP durante la soldadura es la misma que la utilizada para los
argumentos Cordn y Sold.
Los datos de velocidad describen tambin la velocidad de la reorientacin de la
herramienta y la velocidad de cualquier eje externo no coordinado.

Figura 6.16. Ejecucin Instruccin Pintura.
[ \T] (Tiempo) Tipo de dato: num
El argumento \T sirve para especificar el tiempo total del movimiento determinado
en segundos directamente en la instruccin. El tiempo ser as sustituido por la
velocidad especificada en los argumentos Veloc, Cordn y Sold.
Este argumento puede utilizarse cuando, por ejemplo, uno o ms ejes externos no
coordinados participan en el movimiento. Los ejes externos no coordinados
debern, no obstante, evitarse ya que, cuando se utilizan, el programa ser ms
difcil de ajustar. En vez de ello, utilcense ejes externos coordinados. La oscilacin
es desactivada durante la ejecucin de las instrucciones ArcX con argumentos \T.
Cordn Tipo de dato: seamdata
Los datos iniciales y finales de soldadura describen las fases de inicio y finales de
un proceso de soldadura.
Formacin Abierta

Programacin Lenguaje RAPID
94
El argumento Cordn est incluido en todas las instrucciones de soldadura al arco,
de forma que, independientemente de la posicin del robot cuando se interrumpe el
proceso, se produce un final y un rearranque de soldadura adecuados.
Normalmente los mismos datos iniciales y finales de soldadura se utilizan en todas
las instrucciones de un cordn.
Sold Tipo de dato: welddata
Los datos de soldadura describen la fase de soldadura de un proceso de soldadura.
Los datos de soldadura a menudo son cambiados de una instruccin a la siguiente
durante una soldadura de un cordn.
Oscil Tipo de dato: weavedata
Los datos de oscilacin describen la oscilacin que debe tener lugar durante las
fases de calentamiento y de soldadura. La soldadura sin oscilacin se obtiene
especificando por ejemplo, el dato de oscilacin nooscil. (Sin oscilacin si el valor
del componente forma_osc es igual a cero.)
Zona Tipo de dato: zonedata
Los datos de zona definen la distancia a la que deben estar los ejes, de la posicin
programada antes de poder empezar el movimiento hacia la posicin siguiente.
En el caso de un punto de paso, se genera una trayectoria esquina ms all que
esta posicin. En el caso de un punto de paro (punto fino), el movimiento es
interrumpido hasta que todos los ejes hayan alcanzado el punto programado.
Un punto de paro se genera siempre automticamente en la posicin de inicio de
una soldadura (incluso en el caso de un arranque sobre la marcha) y en la posicin
final de soldadura controlada. Los puntos de paso, como z10, debern utilizarse
para todas las dems posiciones de soldadura.
Los datos de soldadura cambian a la siguiente instruccin de soldadura al arco en
el punto central de una trayectoria esquina. (a menos que est retrasado por el
componente retraso_distancia del argumento Sold).
[ \Z ] (Zona) Tipo de dato: num
Este argumento sirve para especificar la precisin de posicionamiento del TCP del
robot directamente en la instruccin. El tamao de la zona est especificada en mm
y es sustituida en la zona correspondiente determinada en los datos de zona. El
argumento \Z es muy til tambin cuando se trata de ajustar trayectorias esquina
individuales.
Herram Tipo de dato: tooldata
Robtica y CIM

Programacin Lenguaje RAPID
95
06
Es la herramienta utilizada en el movimiento. El TCP de la herramienta es el punto
que se mueve a la posicin de destino especificada. El eje z de la herramienta
deber ser paralelo al elemento final.
[ \WObj] (Objeto de trabajo) Tipo de dato: wobjdata
Es el objeto de trabajo (sistema de coordenadas) al que se refiere la posicin del
robot en la instruccin.
Cuando se omite este argumento, la posicin del robot se referir al sistema de
coordenadas mundo. No obstante, deber especificarse, si se utiliza un TCP
estacionario o ejes externos coordinados.
\WObj podr utilizarse si se ha definido un sistema de coordenadas para el objeto
correspondiente o para el cordn de soldadura.
[ \SeamName] (Nombre del cordn) Tipo de dato: string
El nombre del cordn es una cadena que ser aadida al registro de error si se
produce un error durante la secuencia de soldadura.
\SeamName slo es aplicable a la primera instruccin de una secuencia de
soldadura, es decir, junto con el argumento \On.
Formacin Abierta

Programacin Lenguaje RAPID
96
6.12. Aplicacin de Pintura
En esta apartado haremos referencia a muchas cuestiones presentadas y
solucionadas en la Unidad 4 de esta asignatura, por lo que es muy importante que
recuerdes el apartado Aplicacin de Pintura de dicha Unidad.

En esta apartado haremos referencia a muchas cuestiones
presentadas y solucionadas en la Unidad 4 de esta
asignatura, por lo que es muy importante que recuerdes el
apartado Aplicacin de Pintura de dicha Unidad.
6.12.1. Programacin de la Aplicacin de Pintura
Existen varias versiones o sistemas dentro de la aplicacin de Pintura, lo podemos
denominar como varias Opciones dentro de dicha aplicacin, Nosotros entraremos
a enunciar una de las aplicaciones ms comunes o usadas en la Industria del
Automvil, Dispensador
Instrucciones de dispensador
Una instruccin de dispensador de producto incluye movimiento y proceso.
Bsicamente contiene los mismos tipos de informacin que una instruccin de
posicionamiento. No obstante, cada instruccin de dispensador tambin incluye
argumentos adicionales para el proceso de dispensador de producto.

Presentemos un cuadro descriptivo para poder
comprender con un solo golpe de vista la estructura
completa de una instruccin de Pintura Dispensador

Robtica y CIM

Programacin Lenguaje RAPID
97
06

Figura 6.17. Ejemplo Programacin Pintura.

Veamos un ejemplo de Programacin de la Aplicacin de
Pintura Dispensador.

Figura 6.18. Pintura Dispensador.
Secuencia de cdigos RAPID:

MoveL p1, v600, fine, tool1;
DispL \On, p2, v400, bead5, z10, tool1;
DispL p3, v400, bead2, z10, tool1;
DispL p4, v500, bead2, z10, tool1;
DispL \Off, p5, v500, bead2 \D:=10, z10, tool1;
MoveL p6, v600, fine, tool1;
En el siguiente apartado que vamos a ver, son los diferentes Tipos de Datos que ya
nos han ido saliendo en las diferentes Instrucciones que hemos conocido y
estudiado.
Formacin Abierta

Programacin Lenguaje RAPID
98
6.13. Tipos de Datos
Para empezar como podrs ver en la siguiente tabla, en la parte izquierda aparece
el tipo de Dato, a la derecha la denominacin de lo que significa dicho Tipo de Dato,
la definicin.
Tipo de Dato Definicin
bool Valores lgicos
byte Valores decimales 0 - 255
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
jointtarget Datos de posicin de los ejes
loaddata Datos de carga
num orient Orientacin Valores numricos (registros)
o_jointtarget Dato de posicin original de un eje
o_ robtarget Datos de posicin original
pos Posiciones (slo X, Y y Z)
robjoint Posicin de los ejes del robot
robtarget Datos de posicin
shapedata Datos de forma de una zona mundo
signalxx Seales digitales y analgicas
speeddata Datos de velocidad
string Cadenas de Caracteres
symnum Nmero simblico
testsignal Seal de test
tooldata Datos de herramienta
tpnum Nmero de ventana de la Unidad de Programacin
wobjdata Datos del objeto de trabajo
wzstationary Datos de zona mundo estacionaria
wztemporary Datos de zona mundo temporal
zonedata Datos de zona
Robtica y CIM

Programacin Lenguaje RAPID
99
06
6.13.1. Bool Valores lgicos

Bool se usa para los valores lgicos true/false
(verdadero/falso).
Descripcin
El valor del tipo de dato bool puede ser true (verdadero) o false falso).

flag1 := TRUE;
Flag tiene asignado el valor TRUE.
VAR bool valor1;
VAR num reg1;
valor1:= reg1 > 100;
Valor1 tiene asignado el valor TRUE si reg1 es mayor
que 100; de lo contrario, le ser asignado FALSE.
IF valor1 Set do1;
La seal do1 ser activada si valor1 es TRUE.
valor1 := reg1 > 100;
valor2 := reg1 > 20 AND NOT valor1;
Valor2 tiene asignado el valor TRUE si reg1 se encuentra
entre 20 y 100.
6.13.2. Clock Medida del tiempo

Clock se usa para la medida del tiempo. Las funciones
clock se utilizan como un cronmetro.
Formacin Abierta

Programacin Lenguaje RAPID
100
Descripcin
Los datos del tipo clock almacenan una medida del tiempo en segundos y tienen
una resolucin de 0,01 segundos.

VAR clock reloj1;
ClkReset reloj1;
El reloj, reloj1, es declarado y puesto a cero. Antes de
utilizar ClkReset, ClkStart, Clk-Stop y ClkRead, se
deber declarar una variable de tipo de dato clock en el
programa.
6.13.3. Num Valores numricos (registros)

Num se usa para los valores numricos; por ejemplo,
para los contadores.
Descripcin
El valor de un tipo de dato num puede ser
un nmero entero; por ejemplo, -5,
un nmero decimal; por ejemplo, 3,45.
Tambin puede estar escrito de forma exponencial; por ejemplo, 2E3 (= 2*103 =
2000), 2,5E-2 (= 0,025).
Los nmeros enteros entre -8388607 y +8388608 son siempre almacenados como
nmeros enteros exactos.
Los nmeros decimales no son ms que nmeros aproximados y no debern, por
ello, ser utilizados en comparaciones del tipo es igual a o no es igual a. En el caso
de divisiones y operaciones que utilizan nmeros decimales, el resultado ser
tambin un nmero decimal; es decir, no un nmero entero exacto.
E.g. a := 10;
b := 5;
Robtica y CIM

Programacin Lenguaje RAPID
101
06
IF a/b=2 THEN Dado que el resultado de a/b no es un nmero entero, esta
condicin no ser ... necesariamente satisfecha.

VAR num reg1;
reg1 := 3;
reg1 tiene asignado el valor 3.
a := 10 DIV 3;
b := 10 MOD 3;
Divisin entera donde a tiene asignado un nmero entero
(=3) y b tiene asignado al resto (=1).
6.13.4. Robtarget Datos de posicin

Robtarget sirve para definir la posicin del robot y de los
ejes externos.
Descripcin
Los datos de posicin sirven para definir la posicin en las instrucciones de
posicionamiento a las que el robot y los ejes externos deben moverse.
Dado que el robot es capaz de alcanzar una misma posicin de varias formas
diferentes, se deber especificar la configuracin de los ejes. Esto servir para
definir los valores de los ejes en el caso de que sean ambiguos, por ejemplo:
si el robot est en una posicin hacia adelante o hacia atrs,
si el eje 4 apunta hacia abajo o hacia arriba,
si el eje 6 tiene una vuelta positiva o negativa.



Formacin Abierta

Programacin Lenguaje RAPID
102

La posicin ser definida basndose en el sistema de
coordenadas del objeto de trabajo, incluyendo cualquier
desplazamiento de programa.
Si la posicin es programada con cualquier otro objeto
de trabajo que el utilizado en la instruccin, el robot no se
mover de la forma esperada.
Asegurarse de que se est utilizando el mismo objeto de
trabajo que el que se ha utilizado al programar las
instrucciones de posicionamiento.
Una utilizacin incorrecta puede provocar daos al
personal o al equipo.
Componentes
trans (traslacin) Tipo de dato: pos
La posicin (x, y, z) del punto central de la herramienta expresada en mm.
La posicin se especifica respecto al sistema de coordenadas del objeto utilizado,
incluyendo el desplazamiento del programa. Si no se especifica ningn objeto de
trabajo, se usar el sistema de coordenadas mundo.
rot (rotacin) Tipo de dato: orient
La orientacin de la herramienta expresada bajo la forma de un quaternion (q1, q2,
q3 y q4).
La orientacin se especifica respecto al sistema de coordenadas del objeto
utilizado, incluyendo el desplazamiento del programa. Si no se especifica ningn
objeto de trabajo, se usar el sistema de coordenadas mundo.
1-robtarget-66 Tipos de Datos del Sistema y Rutinas
robconf (configuracin del robot) Tipo de dato: confdata
La configuracin de los ejes del robot (cf1, cf4, cf6 y cfx). Esto se define bajo la
forma del cuarto utilizado del eje 1, del eje 4 y del eje 6. El primer cuarto positivo 0-
90 o est definido como 0. El componente cfx se utiliza nicamente para el modelo
de robot IRB5400.
extax (ejes externos) Tipo de dato: extjoint
La posicin de los ejes externos.
Robtica y CIM

Programacin Lenguaje RAPID
103
06
La posicin ser definida como se indica a continuacin para cada eje individual
(eax_a, eax_b ... eax_f):
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.
Los ejes externos eax_a ... son ejes lgicos. La forma en que el nmero de los ejes
lgicos y el nmero de los ejes fsicos estn relacionados entre s se encuentra
definida en los parmetros del sistema.
El valor 9E9 ser definido para los ejes que no estn conectados. Si los ejes
definidos en los datos de posicin difieren de los ejes que estn conectados en
realidad para la ejecucin del programa, se aplicar lo siguiente:
- Si la posicin no est definida en los datos de posicin (el valor 9E9) no se
tendr en cuenta el valor, si el eje est conectado y no est activado. Pero si
el eje est activado, el sistema producir un error.
- Si la posicin est definida en los datos de posicin y que el eje todava no
est conectado, no se tendr en cuenta el valor.

CONST robtarget p15 := [ [600, 500, 225,3], [1, 0, 0, 0], [1,
1, 0, 0], [ 11, 12.3, 9E9, 9E9, 9E9, 9E9] ];
Una posicin p15 ser definida de la siguiente manera:
La posicin del robot: x = 600, y = 500, z = 225,3 mm en el sistema de
coordenadas del objeto.
La orientacin de la herramienta en la misma direccin que el sistema de
coordenadas del objeto.
La configuracin del eje del robot: eje 1 y 4 en la posicin 90-180, el eje 6
en la posicin 0-90.
La posicin de los ejes externos lgicos, a y b, expresada en grados o en
mm. (dependiendo del tipo de ejes). Los ejes c y f no estn definidos.
Formacin Abierta

Programacin Lenguaje RAPID
104

VAR robtarget p20;
p20 := CRobT();
p20 := Offs(p20,10,0,0);
La posicin p20 ser activada en la misma posicin que la posicin actual del robot
llamando la funcin CRobT. La posicin se mover entonces de 10 mm en la
direccin x-.
6.13.5. Speeddata Datos de velocidad

Speeddata sirve para especificar la velocidad a la que se
movern tanto los ejes externos como el robot.
Descripcin
Los datos de velocidad que definen la velocidad:
a la que se mueve el punto central de la herramienta,
de la reorientacin de la herramienta,
a la que se mueven los ejes externos rotativos o lineales.
Cuando se combinan diferentes tipos de movimiento, a menudo hay una de las
velocidades que limita todos los movimientos. La velocidad de los dems
movimientos ser reducida de tal manera que todos los movimientos acabarn su
ejecucin al mismo tiempo.
La velocidad ser tambin restringida por la capacidad del robot. Esto difiere segn
el tipo de robot y la trayectoria utilizada.
Componentes
v_tcp (velocidad del tcp) Tipo de dato: num
La velocidad del punto central de la herramienta (TCP) en mm/s.
Si se utilizan ejes externos coordinados o una herramienta estacionaria, la
velocidad ser especificada respecto al objeto de trabajo.
Robtica y CIM

Programacin Lenguaje RAPID
105
06
v_ori (velocidad de orientacin) Tipo de dato: num
La velocidad de reorientacin del TCP expresado en grados/s.
Si se utilizan ejes externos coordinados o una herramienta estacionaria, la
velocidad ser especificada respecto al objeto de trabajo.
v_leax (velocidad de los ejes externos lineales) Tipo de dato: num
La velocidad de los ejes externos lineales en mm/s.
v_reax (velocidad de los ejes externos rotativos) Tipo de dato: num
La velocidad de los ejes externos rotativos en grados/s.

VAR speeddata vmedia := [ 1000, 30, 200, 15 ];
El dato de velocidad vmedia ser definido con las siguientes velocidades:
1000 mm/s para el TCP.
30 grados/s para la reorientacin de la herramienta.
200 mm/s para los ejes externos lineales.
15 grados/s para los ejes externos rotativos.
vmedia.v_tcp := 900;
La velocidad del TCP ser cambiada a 900 mm/s.
Tipos de Datos del Sistema y Rutinas 1-tooldata-87
6.13.6. Tooldata Datos de herramienta

Tooldata sirve para describir las caractersticas de una
herramienta, como por ejemplo, una boquilla de
soldadura o una pinza.
Si la herramienta est fija en el espacio (si se trata de una
herramienta estacionaria), se definirn los datos de
herramienta normales correspondientes as como la pinza
que sujeta el objeto de trabajo.
Formacin Abierta

Programacin Lenguaje RAPID
106
Descripcin
Los datos de herramienta afectarn a los movimientos del robot en la siguiente
medida:
El punto central de la herramienta (TCP) se refiere a un punto que cumplir
con la trayectoria especificada y con la exigencia de velocidad. En el caso
en que se reoriente la herramienta o si se usan ejes externos coordinados,
solamente este punto seguir la trayectoria deseada a la velocidad
programada.
En el caso en que se use una herramienta estacionaria, tanto la velocidad
como la trayectoria programadas se referirn al objeto de trabajo.
Las posiciones programadas se refieren a la posicin del TCP utilizado y a
la orientacin respecto al sistema de coordenadas de la herramienta. Ello
significa que si, por ejemplo, se ha reemplazado una herramienta porque
est daada, se podr todava utilizar el programa antiguo si se vuelve a
definir el sistema de coordenadas de la herramienta.
Los datos de herramienta tambin se usan al mover el robot para:
Definir el TCP que no debe moverse cuando se reorienta la mueca.
Definir el sistema de coordenadas de la herramienta con vistas a facilitar el
movimiento o rotacin de las direcciones de la herramienta.

Es muy importante definir siempre la carga utilizada de la
herramienta, y cuando procede, tambin la carga til
utilizada. Tener en cuenta que definiciones incorrectas de
los datos de carga pueden provocar una sobrecarga de la
estructura mecnica del robot.
Cuando se especifican datos incorrectos de carga de la herramienta, se pueden
originar las siguientes consecuencias:
Si el valor de la carga especificada es mayor que la del valor real de la
carga:
El robot no ser utilizado a su capacidad mxima
La precisin de trayectoria es incorrecta incluyendo el riesgo de
vibraciones.
Robtica y CIM

Programacin Lenguaje RAPID
107
06
Si el valor de los datos de carga especificados es menor que el valor real de
la carga:
La precisin de trayectoria es incorrecta incluyendo el riesgo de
vibraciones.
Existe un riesgo de sobrecarga de la estructura mecnica
Componentes
robhold (en el robot) Tipo de datos: bool
Define si el robot est sujetando o no la herramienta:
TRUE -> El robot est sujetando la herramienta.
FALSE -> El robot no est sujetando la herramienta, es decir, se trata de
una herramienta estacionaria.
tframe (coordenadas de la herramienta) Tipo de dato: pose
El sistema de coordenadas de la herramienta, es decir:
La posicin del TCP (x, y, z) en mm, expresada en el sistema de
coordenadas de la mueca
La orientacin del sistema de coordenadas de la herramienta, expresada en
el sistema de coordenadas de la mueca bajo la forma de un cuaternio (q1,
q2, q3 y q4)
Si se desea utilizar una herramienta estacionaria, la definicin se realizar respecto
al sistema de coordenadas del mundo.
Si la direccin de la herramienta no est especificada, el sistema de coordenadas
de la herramienta y el sistema de coordenadas de la mueca coincidirn.

Figura 6.19. Indicacin de TCP.
tooload (carga de la herramienta) Tipo de dato: loaddata
Formacin Abierta

Programacin Lenguaje RAPID
108
La carga de la herramienta, es decir:
El peso de la herramienta en kg.
El centro de gravedad de la herramienta (x, y, z) en mm, expresado en el
sistema de coordenadas de la mueca.
La orientacin del sistema de coordenadas de la carga de la herramienta,
expresada en el sistema de coordenadas de la mueca, para la definicin de
los ejes de inercia de la herramienta. La orientacin del sistema de
coordenadas de la carga de la herramienta deber coincidir con la
orientacin del sistema de coordenadas de la mueca. Deber estar
siempre activado en 1, 0, 0, 0.
Los momentos de inercia de la herramienta respecto a su centro de masa en
torno a los ejes de coordenadas de la carga de la herramienta, expresado
en kgm2.
Si todos los componentes de inercia han sido definidos como 0 kgm2, la
herramienta ser considerada como si se tratara de una carga puntual.

Presta especial atencin al siguiente ejemplo:
PERS tooldata pinza := [ TRUE, [[97.4, 0, 223.1], [0.924,
0, 0.383 ,0]], [5, [23, 0, 75], [1, 0, 0, 0], 0, 0, 0]];
El robot est sujetando la herramienta.
El TCP est situado en el punto 223,1 mm en lnea recta a partir del eje 6 y
97,4 mm a lo largo del eje X del sistema de coordenadas de la mueca.
Las direcciones X y Z de la herramienta debern ser giradas de 45 respecto
al sistema de coordenadas de la mueca.
La herramienta pesa 5 kg.
El centro de gravedad est situado en el punto 75 mm en lnea recta a partir
del eje 6 y 23 mm a lo largo del eje X del sistema de coordenadas de la
mueca.
La carga puede ser considerada como una carga puntual, es decir, sin
ningn momento de inercia.
pinza.tframe.trans.z := 225.2;
El TCP de la herramienta, gripper, est ajustado a 225,2 en la direccin z.

Robtica y CIM

Programacin Lenguaje RAPID
109
06
Resumen
Estructura de Programacin:
Posteriormente y de forma escalonada o de pirmide aparecen los datos
creados por el usuario, las declaraciones de los datos, herramientas
empleadas (TCP), movimientos o las posiciones de los movimientos en el
espacio realizadas automticamente por el robot dependiendo del resultado
de sus operaciones matemticas a la hora de realizar o memorizar una
posicin de movimiento, y dems datos que continuacin y en este tema
podremos observar.
Seguidamente pasamos a la rutina principal o tambin denominada como
MAIN, Es definida automticamente por el sistema del robot al crear el
programa. Es la rutina a partir de la cual se inicia la ejecucin de programa
que nosotros poco a poco vamos creando.
Finalmente en nuestro programa tipo o bsico, nos queda por completar las
rutinas, son pequeos programas que se adjuntan o se llaman desde
nuestro programa principal (MAIN) que el sistema crea desde un inicio.
Rutinas tales como limpieza de til, abrir y cerrar garras, etc..
La Instruccin est escrita tal y como debemos escribirla en nuestro programa,
si nuestro programa lo editamos o lo crearemos, en un editor de texto, si te
confundes a la hora de escribir la instruccin, en el editor de texto, el robot te
lanzara por pantalla, un mensaje de error de sintaxis y te indicar con exactitud
donde se ha cometido el error, lnea y columna de programa.
Si nosotros programamos el Robot mediante la unidad de programacin, los
errores de Sintaxis los eliminaremos, ya que es el Robot, quien escribe las
lneas de programa automticamente, al elegir nosotros la o las instrucciones
deseadas y necesarias para nuestro proceso de programacin
Tabla de Instrucciones RAPID.
Instrucciones Logicas.
Instrucciones de control o cambio de registros.
Instrucciones de control o escritura en pantalla.
Instrucciones de activacion y desactivacion de seales.
Instrucciones de control de Tiempo. Instrucciones de Espera.
Instrucciones de Movimiento.
Formacin Abierta

Programacin Lenguaje RAPID
110
En esta apartado haremos referencia a muchas cuestiones presentadas y
solucionadas en la Unidad 4 de esta asignatura, por lo que es muy importante
que recuerdes el apartado Soldadura Por Arco de dicha Unidad.
Instrucciones basicas en programacion de soldadura ArcL\ON, y todos sus
tipos de Datos descritos y necesarios para concebir una aplicacin con unos
minimos conceptos o seguridad de calidad en el proceso.

Potrebbero piacerti anche