Está en la página 1de 214

Manual de referencia de RAPID

BaseWare
Descripcin general de RAPID

RobotWare-OS 4.0
Manual de referencia de RAPID
3HAC 7787-1
La revisin A

BaseWare
Descripcin general de RAPID ndice
RobotWare-OS 4.0

Introduccin

Resumen sobre RAPID

Caractersticas bsicas

Principios de movimiento y E/S

Programacin fuera de lnea

Datos y programas predefinidos

Glosario

ndice alfabtico

Descripcin general de RAPID


La informacin de este manual puede cambiar sin previo aviso y no puede entenderse como un compromiso por
parte de ABB. ABB no se hace responsable de ningn error que pueda aparecer en este manual.

Excepto en los casos en que se indica expresamente en este manual, ninguna parte del mismo debe entenderse
como ninguna garanta por parte de ABB por las prdidas, lesiones, daos materiales, idoneidad para un fin
determinado ni garantas similares.

Se prohibe la reproduccin o la copia de este manual o cualquiera de sus partes si no se cuenta con una
autorizacin escrita de ABB. Ninguna parte de este manual debe ser entregada a terceros ni utilizada para fines
no autorizados. Cualquier incumplimiento de esta norma ser perseguida legalmente.

Usted puede obtener copias adicionales de este manual a travs de ABB, con el coste aplicable en el momento
de su solicitud.

2003 ABB Reservados todos los derechos.

ABB Automation Technology Products AB


Robotics
SE-721 68 Vsters
Suecia

Descripcin general de RAPID


ndice

1 Introduccin............................................................................................................................... 1
1.1 Otros manuales ................................................................................................................. 1
1.2 Cmo leer este manual ..................................................................................................... 1
Convenciones tipogrficas ............................................................................................... 2
Reglas de sintaxis............................................................................................................. 2
Sintaxis simplificada ........................................................................................................ 3
Sintaxis formal ................................................................................................................. 3
2 La estructura del lenguaje........................................................................................................ 5
3 Control del flujo del programa ................................................................................................ 7
3.1 Principios de programacin .............................................................................................. 7
3.2 Llamada a otra rutina........................................................................................................ 7
3.3 Control del programa dentro de la rutina.......................................................................... 7
3.4 Detencin de la ejecucin del programa........................................................................... 8
3.5 Detencin del ciclo actual................................................................................................. 8
4 Otras instrucciones.................................................................................................................... 9
4.1 Asignacin de un valor a un dato ..................................................................................... 9
4.2 Espera ............................................................................................................................... 9
4.3 Comentarios...................................................................................................................... 9
4.4 Carga de mdulos de programa ...................................................................................... 10
4.5 Otras funciones ............................................................................................................... 10
4.6 Datos bsicos .................................................................................................................. 11
4.7 Funciones de conversin ................................................................................................ 11
5 Parmetros de movimiento..................................................................................................... 13
5.1 Principios de programacin ............................................................................................ 13
5.2 Velocidad mxima de TCP ............................................................................................. 13
5.3 Definicin de la velocidad.............................................................................................. 14
5.4 Definicin de la aceleracin ........................................................................................... 14
5.5 Definicin del control de configuracin......................................................................... 14
5.6 Definicin de la carga til .............................................................................................. 15
5.7 Definicin del comportamiento cerca de puntos singulares........................................... 15
5.8 Desplazamiento de programa ......................................................................................... 15
5.9 Servo suave..................................................................................................................... 16
5.10 Modificacin de los valores de ajuste del robot ........................................................... 16
5.11 Zonas mundo ................................................................................................................ 17
5.12 Datos para parmetros de movimiento ......................................................................... 17
6 Movimiento .............................................................................................................................. 19
6.1 Principios de programacin ............................................................................................ 19
6.2 Instrucciones de posicionamiento................................................................................... 20

Descripcin general de RAPID I


ndice

6.3 Bsqueda ........................................................................................................................ 20


6.4 Activacin de salidas o interrupciones en posiciones concretas .................................... 20
6.5 Control de una seal analgica de salida de forma proporcional al TCP real................ 21
6.6 Control del movimiento si se produce un error o una interrupcin................................ 22
6.7 Control de ejes externos ................................................................................................. 22
6.8 Ejes independientes ........................................................................................................ 22
6.9 Correccin de trayectoria ............................................................................................... 23
6.10 Conveyor tracking (Control de transportadores).......................................................... 23
6.11 Sincronizacin de sensores........................................................................................... 24
6.12 Identificacin de carga y deteccin de colisiones ........................................................ 24
6.13 Funciones de posicin .................................................................................................. 25
6.14 Comprobacin de la interrupcin de una trayectoria despus de una cada de aliment-
acin............................................................................................................................... 25
6.15 Funciones de estado...................................................................................................... 25
6.16 Datos de movimiento.................................................................................................... 26
6.17 Datos bsicos de los movimientos................................................................................ 26
7 Seales de entrada y salida..................................................................................................... 27
7.1 Principios de programacin............................................................................................ 27
7.2 Modificacin del valor de una seal............................................................................... 27
7.3 Lectura del valor de una seal de entrada ...................................................................... 27
7.4 Lectura del valor de una seal de salida......................................................................... 28
7.5 Comprobacin de la entrada en las seales de salida ..................................................... 28
7.6 Seales de E/S y cadas de alimentacin........................................................................ 28
7.7 Desactivacin y activacin de mdulos de E/S.............................................................. 29
7.8 Obtencin y establecimiento de atributos de las unidades de E/S ................................. 29
7.9 Definicin de seales de entrada y salida....................................................................... 29
8 Comunicacin .......................................................................................................................... 31
8.1 Principios de programacin............................................................................................ 31
8.2 Comunicacin mediante la unidad de programacin ..................................................... 31
8.3 Lectura o escritura a travs de un canal serie o un archivo alfanumrico...................... 32
8.4 Comunicacin a travs de canales serie o archivos binarios.......................................... 32
8.5 Datos para canales serie ................................................................................................. 32
9 Interrupciones ......................................................................................................................... 33
9.1 Principios de programacin............................................................................................ 33
9.2 Conexin de interrupciones a rutinas TRAP .................................................................. 33
9.3 Peticin de interrupciones .............................................................................................. 34
9.4 Cancelacin de interrupciones........................................................................................ 34
9.5 Activacin y desactivacin de interrupciones ................................................................ 34

II Descripcin general de RAPID


ndice

9.6 Datos de interrupcin...................................................................................................... 34


9.7 Tipos de datos de las interrupciones............................................................................... 35
10 Recuperacin en caso de error............................................................................................. 37
10.1 Principios de programacin .......................................................................................... 37
10.2 Creacin de una situacin de error desde el propio programa ..................................... 37
10.3 Registro de un nmero de error .................................................................................... 37
10.4 Reinicio y retorno desde el gestor de errores ............................................................... 38
10.5 Datos para la gestin de errores.................................................................................... 38
11 Sistema y tiempo.................................................................................................................... 39
11.1 Principios de programacin .......................................................................................... 39
11.2 Utilizacin de un reloj para temporizar un evento........................................................ 39
11.3 Lectura de la hora y la fecha actuales ........................................................................... 39
11.4 Obtencin de informacin de hora de un archivo......................................................... 40
12 Operaciones matemticas..................................................................................................... 41
12.1 Principios de programacin .......................................................................................... 41
12.2 Clculos sencillos con datos numricos ....................................................................... 41
12.3 Clculos ms avanzados ............................................................................................... 41
12.4 Funciones aritmticas ................................................................................................... 41
12.5 Funciones de bits .......................................................................................................... 42
13 Comunicacin con un ordenador externo........................................................................... 45
13.1 Principios de programacin .......................................................................................... 45
13.2 Envo de un mensaje controlado por el programa del robot a un ordenador................ 45
14 Funciones para operaciones con archivos........................................................................... 47
15 Instrucciones de soporte de RAPID..................................................................................... 49
15.1 Obtencin de datos del sistema .................................................................................... 49
15.2 Lectura de datos de configuracin .............................................................................. 49
15.3 Escritura de datos de configuracin............................................................................ 50
15.4 Reinicio del controlador ............................................................................................... 50
15.5 Funciones de disparo .................................................................................................... 50
15.6 Instrucciones para tablas de texto................................................................................. 50
15.7 Obtencin de nombres de objetos................................................................................. 51
15.8 Obtencin de nombres de tareas................................................................................... 51
15.9 Bsqueda de smbolos .................................................................................................. 51
16 Instrucciones de servicio tcnico y calibracin................................................................... 53
16.1 Calibracin de la herramienta....................................................................................... 53
16.2 Distintos mtodos de calibracin.................................................................................. 53
16.3 Envo de un valor a la seal de test del robot ............................................................... 53
16.4 Registro de una ejecucin............................................................................................. 54

Descripcin general de RAPID III


ndice

17 Funciones para cadenas de caracteres ................................................................................ 55


17.1 Operaciones bsicas ..................................................................................................... 55
17.2 Comparacin y bsqueda ............................................................................................. 55
17.3 Conversin.................................................................................................................... 56
18 Multitarea .............................................................................................................................. 57
18.1 Conceptos bsicos ........................................................................................................ 57
18.2 Proteccin del acceso a los recursos............................................................................. 57
19 Resumen de la sintaxis.......................................................................................................... 59
19.1 Instrucciones................................................................................................................. 59
19.2 Functions ...................................................................................................................... 69
20 Elementos bsicos.................................................................................................................. 75
20.1 Identificadores .............................................................................................................. 75
Palabras reservadas ........................................................................................................ 75
20.2 Espacios y caracteres de salto de lnea ......................................................................... 76
20.3 Valores numricos ........................................................................................................ 76
20.4 Valores lgicos ............................................................................................................. 76
20.5 Valores de cadena de caracteres ................................................................................... 76
20.6 Comentarios.................................................................................................................. 77
20.7 Marcadores de sustitucin ............................................................................................ 77
20.8 Encabezado del archivo................................................................................................ 78
20.9 Sintaxis ......................................................................................................................... 78
Identificadores................................................................................................................ 78
Valores numricos.......................................................................................................... 78
Valores lgicos ............................................................................................................... 78
Valores de cadena de caracteres ..................................................................................... 79
Comentarios ................................................................................................................... 79
Caracteres....................................................................................................................... 79
21 Mdulos.................................................................................................................................. 81
21.1 Mdulos de programa................................................................................................... 81
21.2 Mdulos de sistema ...................................................................................................... 82
21.3 Declaracin de mdulos ............................................................................................... 82
21.4 Sintaxis ......................................................................................................................... 83
Declaracin de mdulos................................................................................................. 83
22 Rutinas ................................................................................................................................... 85
22.1 mbito de una rutina .................................................................................................... 85
22.2 Parmetros .................................................................................................................... 86
22.3 Finalizacin de una rutina ............................................................................................ 87
22.4 Declaraciones de rutinas............................................................................................... 87

IV Descripcin general de RAPID


ndice

Declaracin de procedimientos ...................................................................................... 88


Declaracin de funciones ............................................................................................... 88
Declaracin de rutina TRAP .......................................................................................... 88
22.5 Llamada a procedimientos............................................................................................ 89
22.6 Sintaxis ......................................................................................................................... 90
Declaracin de rutina ..................................................................................................... 90
Parmetros...................................................................................................................... 90
Declaracin de procedimiento ....................................................................................... 90
Declaracin de funcin .................................................................................................. 91
Declaracin de rutina TRAP .......................................................................................... 91
Llamada a procedimiento............................................................................................... 91
23 Tipos de datos ........................................................................................................................ 93
23.1 Tipos de datos sin valores............................................................................................. 93
23.2 Tipos de datos de igualdad (alias) ................................................................................ 94
23.3 Sintaxis ......................................................................................................................... 94
24 Datos ....................................................................................................................................... 95
24.1 mbito de un dato ........................................................................................................ 95
24.2 Declaracin de variables............................................................................................... 96
24.3 Declaracin de variables persistentes ........................................................................... 97
24.4 Declaracin de constantes ............................................................................................ 97
24.5 Inicializacin de datos .................................................................................................. 98
24.6 Clase de almacenamiento ............................................................................................. 99
24.7 Sintaxis ......................................................................................................................... 99
Declaracin de datos ...................................................................................................... 99
Declaracin de variables ................................................................................................ 99
Declaracin de variables persistentes .......................................................................... 100
Declaracin de constantes ............................................................................................ 100
25 Instrucciones........................................................................................................................ 101
25.1 Sintaxis ....................................................................................................................... 101
26 Expresiones .......................................................................................................................... 103
26.1 Expresiones aritmticas .............................................................................................. 103
26.2 Expresiones lgicas .................................................................................................... 104
26.3 Expresiones de cadena de caracteres .......................................................................... 105
26.4 Utilizacin de datos en expresiones............................................................................ 105
Matrices........................................................................................................................ 105
Registros....................................................................................................................... 105
26.5 Utilizacin de agregados en expresiones.................................................................... 106
26.6 Utilizacin de llamadas a funciones en las expresiones ............................................. 106

Descripcin general de RAPID V


ndice

26.7 Prioridad entre operadores.......................................................................................... 107


Ejemplo ........................................................................................................................ 108
26.8 Sintaxis ....................................................................................................................... 108
Expresiones .................................................................................................................. 108
Operadores ................................................................................................................... 108
Valores constantes........................................................................................................ 108
Datos ............................................................................................................................ 109
Agregados .................................................................................................................... 109
Llamadas a funciones................................................................................................... 109
Expresiones especiales................................................................................................. 110
Parmetros.................................................................................................................... 110
27 Recuperacin en caso de error............................................................................................111
27.1 Gestores de errores ......................................................................................................111
28 Interrupciones ......................................................................................................................113
28.1 Manipulacin de interrupciones ................................................................................. 113
28.2 Rutinas TRAP............................................................................................................. 114
29 Ejecucin hacia atrs ...........................................................................................................117
29.1 Gestores de ejecucin hacia atrs ............................................................................... 117
29.2 ..Limitacin de las instrucciones de movimiento del gestor de ejecucin hacia atrs118
30 Multitarea ............................................................................................................................ 121
30.1 Sincronizacin de tareas ............................................................................................. 122
Sincronizacin mediante consulta................................................................................ 122
Sincronizacin mediante una interrupcin................................................................... 123
30.2 Comunicacin entre tareas ......................................................................................... 123
30.3 Tipo de tarea ............................................................................................................... 124
30.4 Prioridades.................................................................................................................. 125
30.5 Nivel de confianza...................................................................................................... 126
30.6 Tamaos de tareas....................................................................................................... 126
30.7 Una consideracin a tener en cuenta .......................................................................... 126
30.8 Esquema de programacin ......................................................................................... 127
Primera vez .................................................................................................................. 127
Fase de iteracin .......................................................................................................... 127
Fase de finalizacin...................................................................................................... 127
31 Sistemas de coordenadas .................................................................................................... 129
31.1 El punto central de la herramienta del robot (TCP) ................................................... 129
31.2 Sistemas de coordenadas utilizados para determinar la posicin del TCP................. 129
Sistema de coordenadas de la base .............................................................................. 129
Sistema de coordenadas mundo ................................................................................... 130

VI Descripcin general de RAPID


ndice

Sistema de coordenadas del usuario............................................................................. 131


Sistema de coordenadas del objeto .............................................................................. 131
Sistema de coordenadas de desplazamiento................................................................. 132
Ejes externos coordinados............................................................................................ 133
31.3 .Sistemas de coordenadas utilizados para determinar la direccin de la herramienta135
Sistema de coordenadas de la mueca ......................................................................... 135
Sistema de coordenadas de la herramienta .................................................................. 135
TCPs estacionarios ....................................................................................................... 136
31.4 Informacin relacionada ............................................................................................. 138
32 Posicionamiento durante la ejecucin del programa ....................................................... 139
32.1 Generalidades ............................................................................................................. 139
32.2 Interpolacin de la posicin y la orientacin de la herramienta ................................. 139
Interpolacin de ejes .................................................................................................... 139
Interpolacin lineal ...................................................................................................... 140
Interpolacin circular ................................................................................................... 141
SingArea\Wrist............................................................................................................. 142
32.3 Interpolacin de trayectorias de esquina .................................................................... 143
Interpolacin de ejes en trayectorias de esquina .......................................................... 144
Interpolacin lineal de una posicin en trayectorias de esquina .................................. 144
Interpolacin lineal de la orientacin en trayectorias de esquina ................................ 145
Interpolacin de ejes externos en trayectorias de esquina ........................................... 146
Trayectorias de esquina al cambiar de mtodo de interpolacin ................................. 146
Interpolacin al cambiar de sistema de coordenadas ................................................... 146
Trayectorias de esquina con zonas superpuestas.......................................................... 147
Planificacin de tiempo para los puntos de paso ......................................................... 148
32.4 Ejes independientes .................................................................................................... 148
Ejecucin de programas ............................................................................................... 148
Ejecucin paso a paso .................................................................................................. 149
Movimiento.................................................................................................................. 149
Rango de trabajo .......................................................................................................... 149
Velocidad y aceleracin ............................................................................................... 150
Ejes del robot ............................................................................................................... 150
32.5 Servo suave................................................................................................................. 151
32.6 Paro y reanudacin ..................................................................................................... 151
32.7 Informacin relacionada ............................................................................................. 152
33 Sincronizacin con instrucciones lgicas .......................................................................... 153
33.1 Ejecucin secuencial del programa en puntos de paro ............................................... 153
33.2 Ejecucin secuencial de programas en puntos de paso .............................................. 153

Descripcin general de RAPID VII


ndice

33.3 Ejecucin simultnea de programas ........................................................................... 155


33.4 Sincronizacin de trayectorias.................................................................................... 158
33.5 Informacin relacionada............................................................................................. 158
34 Configuracin del robot...................................................................................................... 159
34.1 Distintos tipos de configuraciones de robot ............................................................... 159
34.2 Especificacin de la configuracin del robot ............................................................. 161
34.3 Comprobacin de la configuracin ............................................................................ 161
34.4 Informacin relacionada............................................................................................. 162
35 Modelos cinemticos del robot........................................................................................... 163
35.1 Cinemtica del robot .................................................................................................. 163
Robot principal............................................................................................................. 163
Robot externo............................................................................................................... 164
35.2 Cinemtica general ..................................................................................................... 165
35.3 Informacin relacionada............................................................................................. 167
36 Supervisin del movimiento y deteccin de colisiones..................................................... 169
36.1 Introduccin................................................................................................................ 169
36.2 Ajuste de los niveles de deteccin de colisiones ........................................................ 169
36.3 Ventana de dilogo Supervisin del Movimiento....................................................... 171
36.4 Salidas digitales .......................................................................................................... 171
36.5 Limitaciones ............................................................................................................... 171
36.6 Informacin relacionada............................................................................................. 172
37 Singularidades ..................................................................................................................... 173
Puntos de singularidad del robot IRB140 .................................................................... 174
37.1 Ejecucin del programa a travs de singularidades.................................................... 174
37.2 Movimiento a travs de singularidades ...................................................................... 175
37.3 Informacin relacionada............................................................................................. 175
38 Limitacin optimizada de la aceleracin .......................................................................... 177
39 Zonas mundo ....................................................................................................................... 179
39.1 Utilizacin de zonas globales ..................................................................................... 179
39.2 Utilizacin de zonas mundo ....................................................................................... 179
39.3 Definicin de zonas mundo en el sistema de coordenadas mundo ............................ 179
39.4 Supervisin del TCP del robot ................................................................................... 180
TCPs estacionarios....................................................................................................... 180
39.5 Acciones ..................................................................................................................... 181
Activar una salida digital cuando el TCP se encuentra dentro de una zona mundo. ... 181
Activar una salida digital antes de que el TCP alcance una zona mundo.................... 181
Detener el robot antes de que el TCP alcance una zona mundo. ................................. 181
39.6 Tamao mnimo de las zonas mundo ......................................................................... 182

VIII Descripcin general de RAPID


ndice

39.7 Nmero mximo de zonas mundo .............................................................................. 182


39.8 Cadas de alimentacin, reinicio y reanudacin ......................................................... 182
39.9 Informacin relacionada ............................................................................................. 183
40 Principios de E/S ................................................................................................................. 185
40.1 Caractersticas de las seales...................................................................................... 185
40.2 Seales conectadas a interrupciones........................................................................... 186
40.3 Seales del sistema ..................................................................................................... 187
40.4 Conexiones cruzadas .................................................................................................. 187
40.5 Limitaciones ............................................................................................................... 188
40.6 Informacin relacionada ............................................................................................. 188
41 Programacin fuera de lnea .............................................................................................. 189
41.1 Formato de archivo..................................................................................................... 189
41.2 Edicin........................................................................................................................ 189
41.3 Comprobacin de la sintaxis....................................................................................... 189
41.4 Ejemplos ..................................................................................................................... 190
41.5 Creacin de instrucciones propias .............................................................................. 191
42 Mdulo de sistema User...................................................................................................... 193
42.1 Contenido.................................................................................................................... 193
42.2 Creacin de nuevos datos en este mdulo .................................................................. 193
42.3 Eliminacin de esta informacin ................................................................................ 194
Para eliminar toda la informacin (es decir, todo el mdulo)...................................... 194
Para modificar o eliminar datos concretos ................................................................... 194
43 Glosario ................................................................................................................................ 195

Descripcin general de RAPID IX


ndice

X Descripcin general de RAPID


Introduccin

1 Introduccin
ste es un manual de referencia que contiene una explicacin detallada del lenguaje de
programacin, as como de los tipos de datos, las instrucciones y las funciones. Si
prev realizar la programacin fuera de lnea, este manual le resultar especialmente
til a la hora de hacerlo.
Al empezar a programar el robot, suele ser ms adecuado empezar con la Gua del
usuario, hasta familiarizarse con el sistema.

1.1 Otros manuales


Antes de usar el robot por primera vez, debe leer Uso bsico. En este captulo
encontrar los conceptos bsicos acerca del uso del robot.
La Gua del usuario contiene instrucciones detalladas acerca de cmo realizar distintas
tareas, por ejemplo, cmo mover manualmente el robot, cmo realizar la programacin
o como iniciar un programa en la produccin real.
El Manual del producto describe cmo instalar el robot, as como los procedimientos
de mantenimiento y la bsqueda de averas. Este manual tambin contiene una
Especificacin del producto, en la que encontrar un resumen de las caractersticas y
del rendimiento del robot.

1.2 Cmo leer este manual


Para obtener respuestas a preguntas como qu instruccin debo usar? o qu
significa esta instruccin?, consulte el Captulo 3: Resumen sobre RAPID de la
Descripcin general de RAPID. Este captulo describe brevemente todas las
instrucciones, funciones y tipos de datos, agrupados por las listas de seleccin de
instrucciones que se usan durante la programacin. Tambin incluye un resumen de la
sintaxis, lo que resulta especialmente til a la hora de programar fuera de lnea.
El Captulo 4: Caractersticas bsicas de la Descripcin general de RAPID explica los
detalles internos del lenguaje. Normalmente, no leer este captulo si no es un
programador experto.
El Captulo 5: Principios de movimiento y E/S de la Descripcin general de RAPID
describe los distintos sistemas de coordenadas del robot, su velocidad y otras
caractersticas de movimiento durante los distintos tipos de ejecucin.
Los Captulos del 1 al 3 del manual Tipos de datos y rutinas del sistema describen
todos los tipos de datos, las instrucciones y las funciones. Se describen en orden
alfabtico para mayor comodidad.
Este manual describe todos los datos y programas que se incluyen con el robot en el
momento de la entrega. Adems de stos, existe un conjunto de datos y programas
predefinidos que se entregan junto con el robot, ya sea en disquete o, como en algunas
ocasiones, ya cargados.

Descripcin general de RAPID 1


Introduccin

El Captulo 7: Datos y programas predefinidos de la Descripcin general de RAPID


describe qu ocurre al cargar estos elementos en el robot.

Si programa fuera de lnea, encontrar algunas sugerencias en el Captulo 6:


Programacin fuera de lnea de la Descripcin general de RAPID.

Para facilitarle la bsqueda y la comprensin de la informacin, el Captulo 8 de la


Descripcin general de RAPID contiene un ndice, un glosario. Por otro lado, el
Captulo 4 del manual Tipos de datos y rutinas del sistema contiene un ndice.

Convenciones tipogrficas

Los comandos situados en cualquiera de las cinco teclas de men de la parte superior
de cada pantalla de la unidad de programacin aparecen con el formato Men:
Comando. Por ejemplo, para activar el comando Imprimir del men Archivo, debe
seleccionar Archivo: Imprimir.

Los nombres de las teclas de funcin y de los campos de introduccin se especifican en


cursiva y negrita, por ejemplo Modpos.

Las palabras que pertenecen al propio lenguaje de programacin, como por ejemplo,
los nombres de las instrucciones, aparecen en cursiva, como en MoveL.

Los programas de ejemplo se muestran siempre con el mismo formato en que se


almacenan en un disquete o se imprimen. Esto difiere de lo que aparece en la unidad de
programacin en lo siguiente:

- Determinadas palabras de control que aparecen con una mscara en la pantalla


de la unidad de programacin se imprimen, por ejemplo, las palabras que
indican el principio y el final de una rutina.
- Las declaraciones de datos y rutinas se imprimen con el formato formal,
por ejemplo VAR num reg1;.

Reglas de sintaxis

Las instrucciones y funciones se describen utilizando tanto una sintaxis simplificada


como una sintaxis formal. Si utiliza la unidad de programacin para programar,
normalmente slo necesita conocer la sintaxis simplificada, dado que el robot se
asegura automticamente de que se utilice la sintaxis correcta.

2 Descripcin general de RAPID


Introduccin

Sintaxis simplificada

Ejemplo:

TPWrite String [\Num] | [\Bool] | [\Pos] | [\Orient]

Instruccin Argumento Argumento Argumentos


obligatorio opcional excluyentes
entre s

- Los argumentos opcionales aparecen entre corchetes [ ]. Puede omitir estos


argumentos.
- Los argumentos excluyentes entre s, es decir, que no pueden existir a la vez en
una misma instruccin, aparecen separados por una barra vertical |.
- Los argumentos que pueden repetirse un nmero arbitrario de veces aparecen
entre llaves { }.

Sintaxis formal

Ejemplo: TPWrite
[String:=] <expresin (IN) de string>
[\Num:= <expresin (IN) de num> ] |
[\Bool:= <expresin (IN) de bool> ] |
[\Pos:= <expresin (IN) de pos> ] |
[\Orient:= <expresin (IN) de orient> ];
- Puede omitir el texto que aparece entre corchetes [ ].
- Los argumentos excluyentes entre s, es decir, que no pueden existir a la vez en
una misma instruccin, aparecen separados por una barra vertical |.
- Los argumentos que pueden repetirse un nmero arbitrario de veces aparecen
entre llaves { }.
- Los smbolos que se escriben para conseguir la sintaxis correcta aparecen entre
comillas sencillas (apstrofos) .
- El tipo de datos del argumento (en cursiva) y otras caractersticas aparecen
entre smbolos de mayor y menor que < >. Consulte la descripcin de los
parmetros de una rutina para obtener informacin ms detallada.
Los elementos bsicos del lenguaje y determinadas instrucciones se escriben mediante
una sintaxis especial, EBNF. Esta sintaxis se basa en las mismas reglas, pero con
algunos elementos adicionales.
Ejemplo: GOTO <identificador>;
<identificador> ::= <ident>
| <ID>

Descripcin general de RAPID 3


Introduccin

<ident> ::= <letra> {<letra> | <dgito> | _}


- El smbolo ::= significa se define como.
- El texto encerrado entre smbolos de mayor y menor que < > se definen en una
lnea separada.

4 Descripcin general de RAPID


La estructura del lenguaje

2 La estructura del lenguaje


El programa est compuesto por un conjunto de instrucciones que describen la
actividad del robot. Por tanto, existen instrucciones especficas para los distintos
comandos, por ejemplo una para mover el robot, otra para seleccionar una salida, etc.

Por lo general, las instrucciones llevan asociado un conjunto de argumentos que


definen qu debe ocurrir con una instruccin concreta. Por ejemplo, la instruccin
utilizada para restablecer una salida contiene un argumento que define qu salida debe
restablecerse, por ejemplo Reset do5. Estos argumentos pueden especificarse mediante
uno de los mtodos siguientes:

- Como un valor numrico, por ejemplo 5 4.6


- Como una referencia a un dato, por ejemplo reg1
- Como una expresin, por ejemplo 5+reg1*2
- Como una llamada a una funcin, por ejemplo Abs(reg1)
- Como un valor de cadena de caracteres, por ejemplo "Produccin de la pieza A"

Existen tres tipos de rutinas: procedimientos, funciones y rutinas TRAP.

- Los procedimientos se utilizan como subprogramas.


- Las funciones devuelven un valor de un tipo concreto y se utilizan como
argumento de una instruccin.
- Las rutinas TRAP proporcionan una forma de responder a las interrupciones.
Las rutinas TRAP pueden asociarse con una interrupcin determinada. Por
ejemplo, al establecer una entrada, se ejecuta automticamente si se produce
dicha interrupcin en concreto.

La informacin tambin puede almacenarse en datos, por ejemplo los datos de las
herramientas (que contienen informacin sobre las herramientas, como su TCP y su
peso) y datos numricos (que pueden usarse por ejemplo para contar el nmero de
piezas que deben procesarse). Los datos se agrupan en distintos tipos de datos que
describen los distintos tipos de informacin, como herramientas, posiciones y cargas.
Dado que es posible crear estos datos y asignarles nombres arbitrarios, no existe
ningn lmite en el nmero de datos (excepto el lmite impuesto por la memoria
disponible). Estos datos pueden existir de forma global en el programa o slo
localmente dentro de una rutina.

Existen tres tipos de datos: constantes, variables y persistentes.

- Las constantes representan valores fijos y la nica forma de asignarles un nuevo


valor es manualmente.
- Las asignacin de nuevos valores a las variables puede realizarse durante la
ejecucin del programa.
- Un valor persistente puede describirse como una variable persistente.
Cuando se guarda un programa, el valor de inicializacin corresponde al valor
actual del valor persistente.

Descripcin general de RAPID 5


La estructura del lenguaje

Otras caractersticas del lenguaje son:

- Parmetros de rutinas
- Expresiones aritmticas y lgicas
- Gestin automtica de errores
- Programas modulares
- Multitarea

6 Descripcin general de RAPID


Control del flujo del programa

3 Control del flujo del programa


El programa se ejecuta secuencialmente como una regla, es decir, una instruccin tras
otra. En ocasiones, se requieren instrucciones que interrumpen esta ejecucin
secuencial y que llaman a otra instruccin, para enfrentarse a las distintas situaciones
que pueden darse durante la ejecucin.

3.1 Principios de programacin


El flujo del programa puede controlarse acorde con cinco principios diferentes:

- Llamar a otra rutina (procedimiento) y, una vez ejecutada dicha rutina,


continuar la ejecucin con la instruccin que sigue a la llamada a la rutina.
- Ejecutar instrucciones diferentes en funcin de si se cumple o no una condicin
determinada.
- Repetir una secuencia de instrucciones un nmero determinado de veces o hasta
que se cumple una condicin determinada.
- Ir a una etiqueta dentro de la misma rutina.
- Detener la ejecucin del programa.

3.2 Llamada a otra rutina


Instruccin Finalidad:
ProcCall Llamar (saltar a) otra rutina
CallByVar Llamar a procedimientos que tienen nombres concretos
RETURN Volver a la rutina original

3.3 Control del programa dentro de la rutina


Instruccin Finalidad:
Compact IF (IF compacto) Ejecutar una instruccin slo si se cumple una condicin
IF Ejecutar una secuencia de instrucciones diferentes en
funcin de si se cumple una condicin
FOR Repetir una seccin del programa un nmero de veces
WHILE Repetir una secuencia de instrucciones diferentes
mientras siga cumplindose una condicin
TEST Ejecutar instrucciones diferentes en funcin del valor de
una expresin
GOTO Saltar a una etiqueta
etiqueta Especificar una etiqueta (un nombre de lnea)

Descripcin general de RAPID 7


Control del flujo del programa

3.4 Detencin de la ejecucin del programa


Instruccin Finalidad:
Stop Detener la ejecucin del programa
EXIT Detener la ejecucin del programa de forma que no se permita
reiniciarlo
Break Detener temporalmente la ejecucin del programa con fines de
depuracin

3.5 Detencin del ciclo actual


Instruccin Finalidad:
ExitCycle Detener el ciclo actual y trasladar el puntero del programa a la
primera instruccin de la rutina principal. Cuando se selecciona
el modo de ejecucin CONT, la ejecucin contina en el
siguiente ciclo de programa.

8 Descripcin general de RAPID


Otras instrucciones

4 Otras instrucciones
Existe un conjunto de instrucciones adicionales que se utilizan para:

- Asignar valores a los datos


- Esperar una determinada cantidad de tiempo o esperar hasta que se cumpla una
condicin
- Insertar un comentario en el programa
- Cargar mdulos de programa

4.1 Asignacin de un valor a un dato


Es posible asignar cualquier valor a un dato determinado. Por ejemplo, el valor puede
ser inicializado con un valor constante, por ejemplo 5, o actualizado mediante una
expresin aritmtica, por ejemplo reg1+5*reg3.

Instruccin Finalidad:
:= Asignar un valor a un dato

4.2 Espera
Es posible programar el robot de forma que espere un tiempo determinado o que espere
hasta que se cumpla la condicin que desee, por ejemplo, esperar hasta que se active
una entrada.

Instruccin Finalidad:
WaitTime Esperar una cantidad determinada de tiempo o esperar hasta
que el robot deje de moverse
WaitUntil Esperar hasta que se cumpla una condicin
WaitDI Esperar hasta que se active una entrada digital
WaitDO Esperar hasta que se active una salida digital

4.3 Comentarios
La nica finalidad de insertar comentarios en el programa es facilitar su lectura. Los
comentarios no afectan a la ejecucin del programa.

Instruccin Finalidad:
comentario Comentario sobre el programa

Descripcin general de RAPID 9


Otras instrucciones

4.4 Carga de mdulos de programa


Los programas de mdulo pueden cargarse desde la memoria de almacenamiento o
eliminarse de la memoria de programas. Esto permite manejar programas grandes con
slo una memoria pequea.

Instruccin Finalidad:
Load Cargar un mdulo de programa en la memoria de programas
UnLoad Descargar un mdulo de programa de la memoria de programas
StartLoad Cargar un mdulo de programa en la memoria de programas
durante la ejecucin
WaitLoad Conectar el mdulo, si se ha cargado con StartLoad, a la tarea
de programa
CancelLoad Cancelar la carga de un mdulo que se est cargando o que se
ha cargado con la instruccin StartLoad
Save Guardar un mdulo de programa

Tipo de datos Finalidad:


loadsession Programar una sesin de carga

4.5 Otras funciones


Funcin Finalidad:
OpMode Leer el modo actual de funcionamiento del robot
RunMode Leer el modo actual de ejecucin de programas del robot
Dim Obtener las dimensiones de una matriz
Present Determinar si est presente un parmetro opcional cuando se
hace una llamada a una rutina
IsPers Comprobar si un parmetro es de tipo persistente
IsVar Comprobar si un parmetro es una variable

10 Descripcin general de RAPID


Otras instrucciones

4.6 Datos bsicos


Tipo de dato Para definir:
bool Datos lgicos (con los valores verdadero o falso)
num Valores numricos (decimales o enteros)
symnum Datos numricos con valor simblico
string Cadenas de caracteres
switch Parmetros de rutina sin valor

4.7 Funciones de conversin


Funcin Finalidad:
StrToByte Convertir un byte en un dato de cadena de caracteres con un
formato definido de datos de byte.
ByteToStr Convertir una cadena de caracteres con un formato definido de
datos de byte a un dato de byte.

Descripcin general de RAPID 11


Otras instrucciones

12 Descripcin general de RAPID


Parmetros de movimiento

5 Parmetros de movimiento
Algunas de las caractersticas de movimiento del robot se determinan mediante
instrucciones lgicas que se aplican a todos los movimientos:

- Velocidad mxima de TCP


- Velocidad mxima y ajuste de velocidad
- Aceleracin
- Gestin de distintas configuraciones de robot
- Carga til
- Comportamiento cerca de puntos singulares
- Desplazamiento del programa
- Servo suave
- Valores de ajuste

5.1 Principios de programacin


Las caractersticas bsicas del movimiento del robot dependen de los datos
especificados con cada instruccin de posicionamiento. Sin embargo, algunos datos se
especifican en instrucciones separadas que se aplican a todos los movimientos hasta
que cambia dicha informacin.

Los parmetros generales de movimiento se especifican utilizando varias


instrucciones, pero tambin pueden leerse a travs de la variable de sistema
C_MOTSET o C_PROGDISP.

Los valores predeterminados se establecen automticamente (mediante la ejecucin de


la rutina SYS_RESET del mdulo BASE del sistema) en los casos siguientes:

- En los arranques en fro


- Cuando se carga un nuevo programa
- Cuando se inicia el programa desde el principio

5.2 Velocidad mxima de TCP


Funcin Finalidad:

MaxRobSpeed Obtener la velocidad de TCP mxima del tipo de robot


utilizado

Descripcin general de RAPID 13


Parmetros de movimiento

5.3 Definicin de la velocidad


La velocidad absoluta se programa como un argumento de la instruccin de
posicionamiento. Adems, es posible definir la velocidad mxima y el ajuste de
velocidad (un porcentaje de la velocidad programada).

Instruccin Para definir:


VelSet La velocidad mxima y el ajuste de velocidad

5.4 Definicin de la aceleracin


En algunos casos, por ejemplo cuando se manejan piezas frgiles, es posible reducir la
aceleracin en una parte del programa.

Instruccin Finalidad:
AccSet Definir la aceleracin mxima
WorldAccLim Limitar la aceleracin/deceleracin de la herramienta (y la
carga de la pinza) dentro del sistema de coordenadas mundo.
PathAccLim Establecer o restablecer limitaciones de aceleracin y/o
deceleracin de TCP a lo largo de la trayectoria de movimiento.

5.5 Definicin del control de configuracin


Normalmente, la configuracin del robot se comprueba durante los movimientos. Si se
utiliza el movimiento de ejes (eje por eje), se conseguir la configuracin correcta. Si
se utiliza un movimiento lineal o circular, el robot siempre se desplaza hacia la
configuracin ms cercana, pero se realiza una comprobacin si es la misma que la
programada. Sin embargo, es posible cambiar este comportamiento.

Instruccin Para definir:


ConfJ Control de configuracin activado/desactivado durante el
movimiento de ejes
ConfL Control de configuracin activado/desactivado durante el
movimiento lineal

14 Descripcin general de RAPID


Parmetros de movimiento

5.6 Definicin de la carga til


Para alcanzar el rendimiento ptimo del robot, es necesario definir la carga til
correcta.

Instruccin Para definir:


GripLoad La carga til de la pinza

5.7 Definicin del comportamiento cerca de puntos singulares


Es posible programar el robot para evitar puntos singulares, mediante la modificacin
automtica de la orientacin de la herramienta.

Instruccin Para definir:


SingArea El mtodo de interpolacin utilizado al pasar por puntos
singulares

5.8 Desplazamiento de programa


Cuando es necesario desplazar una parte del programa, por ejemplo a continuacin de
una bsqueda, es posible aadir un desplazamiento de programa.

Instruccin Finalidad:
PDispOn Activar el desplazamiento de programa
PDispSet Activar el desplazamiento de programa mediante la
especificacin de un valor
PDispOff Desactivar el desplazamiento de programa
EOffsOn Activar un offset del eje externo
EOffsSet Activar un offset de eje externo mediante la especificacin de
un valor
EOffsOff Desactivar un offset de eje externo

Funcin Finalidad:
DefDFrame Calcular un desplazamiento de programa desde tres posiciones
DefFrame Calcular un desplazamiento de programa desde seis posiciones
ORobT Eliminar el desplazamiento de programa desde una posicin
DefAccFrame Definir una base de coordenadas desde las posiciones
originales y las desplazadas

Descripcin general de RAPID 15


Parmetros de movimiento

5.9 Servo suave


Uno o varios de los ejes del robot pueden funcionar en el modo suave. Con esta funcin,
el robot puede adaptarse a nuevas situaciones y puede sustituir, por ejemplo, a una
herramienta con resorte.

Instruccin Finalidad:
SoftAct Activar el servo suave para uno o varios ejes
SoftDeact Desactivar el servo suave
DitherAct1 Permite aplicar una funcin de oscilacin al servo suave
DitherDeact1 Desactiva la funcin de oscilacin del servo suave

5.10 Modificacin de los valores de ajuste del robot


En general, el funcionamiento del robot incorpora una optimizacin automtica. Sin
embargo, en casos extremos pueden producirse situaciones como rebasamientos. Puede
modificar los valores de ajuste del robot para conseguir el funcionamiento requerido.

Instruccin Finalidad:
TuneServo Modificar los valores de ajuste del robot
TuneReset Restablecer el ajuste al modo normal
PathResol Ajustar la resolucin de trayectorias geomtricas
CirPathMode Seleccionar la forma en que la herramienta cambia de
orientacin durante una interpolacin circular

Tipo de dato Finalidad:


tunetype Representar el tipo de ajuste como una constante simblica

1. Slo en el sistema IRB 7600

16 Descripcin general de RAPID


Parmetros de movimiento

5.11 Zonas mundo


Es posible definir hasta 10 volmenes diferentes dentro del rea de trabajo del robot.
Puede usarlos para:

- Indicar que el TCP del robot es una parte definida del rea de trabajo.
- Delimitar el rea de trabajo del robot e impedir colisiones con la herramienta.
- Crear un rea de trabajo comn para dos robots. En este caso, el rea de trabajo
est disponible slo para un robot cada vez.

Instruccin Finalidad:
1
WZBoxDef Definir una zona global cuadrada
1
WZCylDef Definir una zona global cilndrica
WZSphDef Definir una zona global esfrica
WZHomeJointDef Definir una zona global en coordenadas de ejes
WZLimJointDef Definir una zona global en coordenadas de ejes para la
delimitacin del rea de trabajo
WZLimSup1 Activar la supervisin de lmites de una zona global
WZDOSet1 Activar la zona global para el establecimiento de salidas
digitales
WZDisable1 Desactivar la supervisin de una zona global temporal
WZEnable1 Activar la supervisin de una zona global temporal
WZFree1 Borrar la supervisin de una zona global temporal

Tipo de datos Finalidad:


wztemporary Identificar una zona global temporal
wzstationary1 Identificar una zona global estacionaria
1
shapedata Describir la geometra de una zona global

5.12 Datos para parmetros de movimiento


Tipo de dato Para definir:
motsetdata Parmetros de movimiento, excepto desplazamiento de
programa
progdisp Desplazamiento de programa

1. Slo si el robot est equipado con la opcin Advanced functions (Funciones avanzadas)

Descripcin general de RAPID 17


Parmetros de movimiento

18 Descripcin general de RAPID


Movimiento

6 Movimiento
Los movimientos del robot se programan como movimientos de posicin a posicin,
es decir, moverse de la posicin actual a una nueva posicin. La trayectoria entre
estas dos posiciones es calculada automticamente por el robot.

6.1 Principios de programacin


Las caractersticas bsicas del movimiento, como el tipo de trayectoria, se especifican
mediante la seleccin de la instruccin de posicionamiento adecuada.

Las dems caractersticas de movimiento se especifican mediante la definicin de


datos que se usan como argumentos de la instruccin:

- Datos de posicin (posicin final del robot y los ejes externos)


- Datos de velocidad (velocidad deseada)
- Datos de zona (exactitud de la posicin)
- Datos de la herramienta (por ejemplo, la posicin del TCP)
- Datos de objeto tratado (por ejemplo, el sistema de coordenadas actual)

Algunas de las caractersticas de movimiento del robot se determinan mediante


instrucciones lgicas que se aplican a todos los movimientos (consulte Parmetros de
movimiento en la pgina 13):

- Velocidad mxima y ajuste de velocidad


- Aceleracin
- Gestin de distintas configuraciones de robot
- Carga til
- Comportamiento cerca de puntos singulares
- Desplazamiento del programa
- Servo suave
- Valores de ajuste

Para el posicionamiento tanto del robot como de los ejes externos se usan las mismas
instrucciones. Los ejes externos se mueven a una velocidad constante y alcanzan la
posicin final al mismo tiempo que el robot.

Descripcin general de RAPID 19


Movimiento

6.2 Instrucciones de posicionamiento


Instruccin Tipo de movimiento:
MoveC El TCP se mueve a lo largo de una trayectoria circular
MoveJ Movimiento de ejes
MoveL El TCP se mueve a lo largo de una trayectoria lineal
MoveAbsJ Movimiento absoluto de ejes
MoveCDO Mover el robot en una trayectoria circular y establecer una
salida digital a medio camino de la trayectoria de esquina
MoveJDO Mover el robot con un movimiento de ejes y establecer una
salida digital a medio camino de la trayectoria de esquina
MoveLDO Mover el robot en una trayectoria lineal y establecer una salida
digital a medio camino de la trayectoria de esquina
MoveCSync1 Mover el robot en una trayectoria circular y ejecutar un
procedimiento de RAPID
MoveJSync1 Mover el robot con un movimiento de ejes y ejecutar un
procedimiento de RAPID
MoveLSync1 Mover el robot de forma lineal y ejecutar un procedimiento de
RAPID

6.3 Bsqueda
Durante el movimiento, el robot puede buscar la posicin del objeto de trabajo, por
ejemplo. La posicin buscada (indicada por una seal de sensor) se almacena y puede
usarse ms tarde para posicionar el robot o para calcular un desplazamiento de
programa.

Instruccin Tipo de movimiento:


SearchC TCP a lo largo de una trayectoria circular
SearchL TCP a lo largo de una trayectoria lineal

6.4 Activacin de salidas o interrupciones en posiciones concretas


Normalmente, las instrucciones lgicas se ejecutan en la transicin de una instruccin
de posicionamiento a otra. Sin embargo, si se utilizan instrucciones especiales de
movimiento, podran ejecutarse stas en su lugar cuando el robot se encuentra en una
posicin determinada.

1. Slo si el robot est equipado con la opcin Advanced Functions (Funciones avanzadas).

20 Descripcin general de RAPID


Movimiento

Instruccin Finalidad:
TriggIO1 Definir una condicin de disparo para establecer una salida en
una posicin determinada
TriggInt1 Definir una condicin de disparo para ejecutar una rutina
TRAP en una posicin determinada
TriggCheckIO1 Definir una comprobacin de E/S en una posicin determinada
1
TriggEquip Definir una condicin de disparo para establecer una salida en
una posicin determinada, con la posibilidad de incluir una
compensacin de tiempo por el retardo de los equipos externos
TriggC1 Mover el robot (el TCP) en crculo con una condicin de
disparo activada
TriggJ1 Mover el robot eje por eje con una condicin de disparo
activada
TriggL1 Mover el robot (el TCP) linealmente con una condicin de
disparo activada
StepBwdPath1 Retroceder en su trayectoria en una rutina de evento RESTART
TriggStopProc2 Crear un proceso interno de supervisin en el sistema para la
puesta a cero de las seales de proceso especificadas y la
generacin de datos de reinicio en una variable persistente
especificada, cada vez que se detiene el programa (STOP) o se
produce un paro de emergencia (QSTOP) en el sistema.

Tipo de dato Para definir:


triggdata Condiciones de disparo
aiotrigg1 Condiciones de disparo con E/S analgica
restartdata Datos para TriggStopProc

6.5 Control de una seal analgica de salida de forma proporcional al TCP real
Instruccin Finalidad:
TriggSpeed2 Definir condiciones y acciones para el control de una seal
analgica de salida cuyo valor de salida es proporcional a la
velocidad real del TCP.

1. Slo si el robot est equipado con la opcin Advanced Functions (Funciones avanzadas).
2. Slo si el robot est equipado con la opcin Developers Functions (Funciones para desarrolladores).

Descripcin general de RAPID 21


Movimiento

6.6 Control del movimiento si se produce un error o una interrupcin


Para poder corregir un error o una interrupcin, es posible detener temporalmente el
movimiento y reiniciarlo posteriormente.

Instruccin Finalidad:
StopMove Detener los movimientos del robot
StartMove Reiniciar los movimientos del robot
StorePath1 Almacenar la ltima trayectoria generada
1
RestoPath Restaurar una trayectoria almacenada anteriormente
ClearPath Eliminar toda la trayectoria de movimiento del nivel actual de
trayectorias de movimiento

6.7 Control de ejes externos


Para el posicionamiento del robot y de los ejes externos se usan las mismas
instrucciones. Sin embargo, algunas instrucciones slo afectan a los movimientos de
los ejes externos.

Instruccin Finalidad:
DeactUnit Desactivar una unidad mecnica externa
ActUnit Activar una unidad mecnica externa
MechUnitLoad Define una carga til para una unidad mecnica

Funcin Finalidad:
GetNextMechUnit Obtener el nombre de las unidades mecnicas del sistema del
robot
IsMechUnitActive Comprobar si una unidad mecnica est activada o no

6.8 Ejes independientes


El eje 6 del robot (o el 4 en el caso del sistema IRB 2400 /4400) o un eje externo pueden
moverse independientemente del resto de movimientos. Tambin es posible restablecer
el rea de trabajo de un eje, con lo que se reducen los tiempos de ciclo.

1. Slo si el robot est equipado con la opcin Advanced Functions (Funciones avanzadas).

22 Descripcin general de RAPID


Movimiento

Funcin Finalidad:
IndAMove1 Poner un eje en el modo independiente y mover el eje hasta una
posicin absoluta
IndCMove1 Poner un eje en el modo independiente e iniciar un movimiento
continuo del eje
IndDMove1 Poner un eje en el modo independiente y mover el eje una
distancia delta
IndRMove1 Poner un eje en el modo independiente y mover el eje hasta una
posicin relativa (dentro de la revolucin del eje)
IndReset1 Poner un eje en el modo dependiente o/y restablecer el rea de
trabajo
IndInpos1 Comprobar si un eje independiente est en posicin
1
IndSpeed Comprobar si un eje independiente ha alcanzado la velocidad
programada

Instruccin Finalidad:
HollowWristReset2 Restablecer la posicin de los ejes de mueca en los
manipuladores de mueca huecos, por ejemplo, en los sistemas
IRB 5402 y IRB 5403.

6.9 Correccin de trayectoria


Instruccin Finalidad:
CorrCon3 Conectarse con un generador de correccin
CorrWrite1 Escribir offsets del sistema de coordenadas de trayectoria en
un generador de correccin
CorrDiscon1 Desconectarse de un generador de conexin con el que se ha
conectado anteriormente
CorrClear1 Eliminar todos los generadores de correccin conectados

Funcin Finalidad:
CorrRead1 Leer todas las correcciones entregadas por todos los
generadores de correccin conectados

Tipo de datos Finalidad:


Corrdescr1 Aadir offsets geomtricos al sistema de coordenadas de
trayectoria

6.10 Conveyor tracking (Control de transportadores)


1. Slo si el robot est equipado con la opcin Advanced Motion (Movimiento avanzado).
2. La instruccin HollowWristReset slo puede usarse en los robots IRB 5402 y IRB 5403.
3. Slo si el robot est equipado con la opcin Advanced Motion (Movimiento avanzado).

Descripcin general de RAPID 23


Movimiento

Instruccin Finalidad:
1
WaitWObj Esperar a que exista un objeto de trabajo en el transportador
2
DropWObj Soltar el objeto de trabajo sobre el transportador

6.11 Sincronizacin de sensores


La sincronizacin de sensores es la funcin por la cual la velocidad del robot depende
de un sensor que puede montarse sobre un transportador mvil o el eje de un motor de
empuje.

Instruccin Finalidad:
2
WaitSensor Conectarse con un objeto de la ventana inicial de una unidad
mecnica con sensor.
SyncToSensor2 Iniciar o detener la sincronizacin de los movimientos del
robot con el movimiento de los sensores.
DropSensor2 Desconectarse del objeto actual

6.12 Identificacin de carga y deteccin de colisiones


Instruccin Finalidad:
MotionSup3 Desactiva/activa la supervisin del movimiento
ParIdPosValid1 Posicin de robot vlida para la identificacin de parmetros
ParIdRobValid1 Tipo de robot vlido para la identificacin de parmetros
LoadId1 Identificacin de carga de la herramienta o la carga til
ManLoadId1 Identificacin de carga del manipulador externo

Tipo de datos Finalidad:


1
loadidnum Representar un entero con una constante simblica
paridnum1 Representar un entero con una constante simblica
paridvalidnum1 Representar un entero con una constante simblica

1. Slo si el robot est equipado con la opcin Conveyor tracking (Control de transportadores).
2. Slo si el robot est equipado con la opcin Sensor synchronization (Sincronizacin de sensores).
3. Slo si el robot est equipado con la opcin LoadId & CollDetect (Identificacin de carga y deteccin de
colisiones).

24 Descripcin general de RAPID


Movimiento

6.13 Funciones de posicin


Funcin Finalidad:
Offs Aadir un offset a una posicin del robot, expresada en
relacin con el objeto de trabajo
RelTool Aadir un offset, expresado en el sistema de coordenadas de la
herramienta
CalcRobT Calcular el valor de robtarget a partir del valor de jointtarget
CPos Leer la posicin actual (slo los valores x, y, z del robot)
CRobT Leer la posicin actual (robtarget completo)
CJointT Leer los ngulos actuales de las articulaciones
ReadMotor Leer los ngulos actuales de los motores
CTool Leer el valor actual de tooldata
CWObj Leer el valor actual de wobjdata
ORobT Eliminar un desplazamiento de programa de una posicin
determinada
MirPos Obtener la posicin espejo de otra posicin
CalcJointT Calcular los ngulos de las articulaciones a partir del valor de
robtarget
Distance La distancia entre dos posiciones

6.14 Comprobacin de la interrupcin de una trayectoria despus de una cada


de alimentacin
Funcin Finalidad:

PFRestart1 Comprobar si la trayectoria fue interrumpida como


consecuencia de la cada de alimentacin

6.15 Funciones de estado


Funcin Finalidad:
CSpeedOverride Leer el ajuste de velocidad establecido por el usuario en las
ventanas de programa o produccin.

1. Slo si el robot est equipado con la opcin Developers Functions (Funciones para desarrolladores).

Descripcin general de RAPID 25


Movimiento

6.16 Datos de movimiento


Los datos de movimiento se utilizan como argumentos de las instrucciones de
posicionamiento.

Tipo de dato Para definir:


robtarget La posicin final
jointtarget La posicin final de una instruccin MoveAbsJ
speeddata La velocidad
zonedata La exactitud de la posicin (punto de paro o punto de paso)
tooldata El sistema de coordenadas de la herramienta y la carga de la
herramienta
wobjdata El sistema de coordenadas del objeto de trabajo

6.17 Datos bsicos de los movimientos


Tipo de dato Para definir:
pos Una posicin (x, y, z)
orient Una orientacin
pose Un sistema de coordenadas (posicin y orientacin)
confdata La configuracin de los ejes del robot
extjoint La posicin de los ejes externos
robjoint La posicin de los ejes del robot
o_robtarget Posicin original del robot cuando se utiliza Limit ModPos
o_jointtarget Posicin original del robot cuando se usa Limit ModPos para
MoveAbsJ
loaddata Una carga
mecunit Una unidad mecnica externa

26 Descripcin general de RAPID


Seales de entrada y salida

7 Seales de entrada y salida


El robot puede contar con varias seales de usuario digitales y analgicas que pueden
leerse y modificarse desde el propio programa.

7.1 Principios de programacin


Los nombres de las seales se definen en los parmetros del sistema. Estos nombres
estn siempre disponibles en el programa para la lectura o el establecimiento de
operaciones de E/S.

El valor de una seal analgica o de un grupo de seales digitales se especifica como


un valor numrico.

7.2 Modificacin del valor de una seal


Instruccin Finalidad:
InvertDO Invertir el valor de una seal digital de salida
PulseDO Generar un pulso en una seal digital de salida
Reset Restablecer una seal digital de salida (ponerla a 0)
Set Activar una seal digital de salida (cambiarla a 1)
SetAO Cambiar el valor de una seal analgica de salida
SetDO Cambiar el valor de una seal digital de salida (su valor
simblico, por ejemplo alta/baja)
SetGO Cambiar el valor de un grupo de seales digitales de salida

7.3 Lectura del valor de una seal de entrada


El valor de una seal de entrada puede leerse directamente desde el programa, como
en los ejemplos siguientes:

! Entrada digital
IF di1 = 1 THEN ...
! Entrada de grupo digital
IF gi1 = 5 THEN ...
! Entrada analgica
IF ai1 > 5.2 THEN ...

Descripcin general de RAPID 27


Seales de entrada y salida

7.4 Lectura del valor de una seal de salida


Funcin Finalidad:
AOutput Leer el valor actual de una seal analgica de salida
DOutput Leer el valor actual de una seal digital de salida
GOutput Leer el valor actual de un grupo de seales digitales de salida

7.5 Comprobacin de la entrada en las seales de salida


Instruccin Finalidad:
WaitDI Esperar hasta que se activa o se pone a cero una entrada digital
WaitDO Esperar hasta que se activa o se pone a cero una salida digital

Funcin Finalidad:
TestDI Comprobar si una entrada digital est activada

7.6 Seales de E/S y cadas de alimentacin


Instruccin Finalidad:
PFIOResto1 Devolver los valores de todas las seales digitales de salida,
incluido el grupo de seales digitales de salida, a los valores
que tenan en el tiempo de la cada de alimentacin.

Funcin Finalidad:
PFDOVal1 Obtener el valor que tena la seal digital de salida especificada
en el momento de la cada de alimentacin
PFGOVal1 Obtener el valor que tena el grupo especificado de seales
digitales de salida en el momento de la cada de alimentacin.

1. Slo si el robot est equipado con la opcin Developers Functions (Funciones para desarrolladores).

28 Descripcin general de RAPID


Seales de entrada y salida

7.7 Desactivacin y activacin de mdulos de E/S


Los mdulos de E/S estn activados automticamente en el momento de la puesta en
marcha del sistema, pero pueden desactivarse durante la ejecucin del programa y
reactivarse ms tarde.

Instruccin Finalidad:
IODisable Desactivar un mdulo de E/S
IOEnable Activar un mdulo de E/S

7.8 Obtencin y establecimiento de atributos de las unidades de E/S


Instruccin Finalidad:
IODNGetAttr Obtener los atributos de una unidad de E/S de la red de
dispositivos
IODNSetAttr Establecer los atributos de una unidad de E/S de la red de
dispositivos

7.9 Definicin de seales de entrada y salida


Tipo de dato Para definir:
dionum El valor simblico de una seal digital
signalai El nombre de una seal analgica de entrada*
signalao El nombre de una seal analgica de salida*
signaldi El nombre de una seal digital de entrada*
signaldo El nombre de una seal digital de salida*
signalgi El nombre de un grupo de seales digitales de entrada*
signalgo El nombre de un grupo de seales digitales de salida*

Instruccin Finalidad:
AliasIO1 Definir una seal con un nombre de alias

* Slo para su definicin mediante parmetros de sistema.

1. Slo si el robot est equipado con la opcin Developers Functions (Funciones para desarrolladores).

Descripcin general de RAPID 29


Seales de entrada y salida

30 Descripcin general de RAPID


Comunicacin

8 Comunicacin
Existen cuatro formas posibles de comunicarse a travs de canales serie:
- Es posible enviar mensajes a la pantalla de la unidad de programacin y el
usuario puede responder a las preguntas, por ejemplo, sobre el nmero de
piezas a procesar.
- Es posible almacenar informacin alfanumrica en archivos de texto de la
memoria de almacenamiento o leerse de stos. Por ejemplo, es posible
almacenar de esta forma las estadsticas de produccin y procesarlas ms
adelante en un PC. Tambin es posible enviar directamente la informacin a
una impresora conectada al robot.
- Es posible transferir informacin binaria entre el robot y un sensor, por ejemplo.
- Tambin es posible transferir informacin binaria entre el robot y otro
ordenador, por ejemplo, a travs de un protocolo de comunicaciones.

8.1 Principios de programacin


La decisin de utilizar informacin alfanumrica o binaria depende de cmo manejan
esta informacin los equipos con los que se comunica el robot. Por ejemplo, un archivo
puede contener datos almacenados en formato alfanumrico o binario.
Si se requiere una comunicacin en ambos sentidos de forma simultnea, debe
utilizarse la transmisin binaria.
En primer lugar es necesario abrir el canal serie o el archivo. Al hacerlo, se asigna al canal
o archivo un descriptor que se utiliza posteriormente como referencia al leer o escribir.
La unidad de programacin est disponible en todo momento y no es necesario abrirla.
Es posible imprimir tanto textos como los valores de determinados tipos de datos.

8.2 Comunicacin mediante la unidad de programacin


Instruccin Finalidad:
TPErase Vaciar la pantalla de usuario de la unidad de programacin
TPWrite Escribir un texto en la pantalla de usuario de la unidad de
programacin
ErrWrite Escribir un texto en la pantalla de la unidad de programacin y
almacenarlo a la vez en el registro de errores del programa.
TPReadFK Asignar etiquetas a las teclas de funcin y leer qu tecla se ha
pulsado
TPReadNum Leer un valor numrico de la unidad de programacin
TPShow Seleccionar una ventana de la unidad de programacin desde
RAPID

Descripcin general de RAPID 31


Comunicacin

Tipo de dato Finalidad:


tpnum Representar la ventana de la unidad de programacin con una
constante simblica

8.3 Lectura o escritura a travs de un canal serie o un archivo alfanumrico


Instruccin Finalidad:
Open1 Abrir un canal o un archivo para lectura o escritura
Write1 Escribir un texto en el canal o el archivo
Close1 Cerrar el canal o el archivo
Funcin Finalidad:
1
ReadNum Leer un valor numrico
ReadStr1 Leer una cadena de caracteres

8.4 Comunicacin a travs de canales serie o archivos binarios


Instruccin Finalidad:
Open1 Abrir un canal serie o un archivo para una transferencia binaria
de datos
WriteBin1 Escribir en un canal serie o un archivo binario
WriteAnyBin1 Escribir en cualquier canal serie o archivo binario
WriteStrBin1 Escribir una cadena de caracteres en cualquier canal serie o
archivo binario
Rewind1 Seleccionar el principio del archivo como posicin actual
Close1 Cerrar el canal o el archivo
ClearIOBuff1 Vaciar el bfer de entrada de un canal serie
ReadAnyBin1 Leer de cualquier canal serie binario
Funcin Finalidad:
ReadBin1 Leer de un canal serie binario
ReadStrBin1 Leer una cadena de caracteres de un canal serie o un archivo
binario

8.5 Datos para canales serie


Tipo de dato Para definir:
iodev Una referencia a un canal serie o un archivo, para usarla
posteriormente en operaciones de lectura y escritura

1. Slo si el robot est equipado con la opcin Advanced functions (Funciones avanzadas).

32 Descripcin general de RAPID


Interrupciones

9 Interrupciones
El programa utiliza las interrupciones para tener la posibilidad de tratar directamente
un evento, independientemente de qu instruccin se est ejecutando en cada
momento.

Por ejemplo, el programa se interrumpe cuando se cambia a uno el valor de una entrada
determinada. Cuando esto se produce, se interrumpe el programa normal y se ejecuta
una rutina TRAP especial. Una vez ejecutada completamente la rutina, la ejecucin del
programa se reanuda en el punto en que se interrumpi.

9.1 Principios de programacin


Cada interrupcin tiene asignada una identidad de interrupcin. Obtiene su identidad
mediante la creacin de una variable (del tipo de datos intnum) y conectndola a una
rutina TRAP.

A partir de ese momento, la identidad de interrupcin (variable) se utiliza para solicitar


una interrupcin, es decir, para especificar el motivo de la interrupcin. Puede tratarse
de uno de los eventos siguientes:

- Cambio del valor de una entrada o una salida a uno o a cero.


- Transcurre un intervalo determinado despus de la peticin de una interrupcin.
- Se alcanza una posicin determinada.

Cuando se solicita una interrupcin, sta queda activada automticamente, pero es


posible desactivarla temporalmente. Esto puede realizarse de dos formas:

- Es posible desactivar todas las interrupciones. Todas las interrupciones que se


produzcan durante este intervalo se sitan en una cola y se generan
automticamente cuando se activen de nuevo las interrupciones.
- Es posible desactivar interrupciones concretas. Las interrupciones que se
produzcan durante este intervalo se descartan.

9.2 Conexin de interrupciones a rutinas TRAP


Instruccin Finalidad:
CONNECT Conectar una variable (una identidad de interrupcin) a una
rutina TRAP

Descripcin general de RAPID 33


Interrupciones

9.3 Peticin de interrupciones


Instruccin Para solicitar:
ISignalDI Una interrupcin desde una seal digital de entrada
ISignalDO Una interrupcin desde una seal digital de salida
1
ISignalAI Una interrupcin desde una seal analgica de entrada
ISignalAO1 Una interrupcin a partir de una seal digital de salida
ITimer Una interrupcin temporizada
1
TriggInt Una interrupcin relacionada con una posicin (de la lista de
seleccin de movimientos)

9.4 Cancelacin de interrupciones


Instruccin Finalidad:
IDelete Cancelar (eliminar) una interrupcin

9.5 Activacin y desactivacin de interrupciones


Instruccin Finalidad:
ISleep Desactivar una interrupcin concreta
IWatch Activar una interrupcin concreta
IDisable Desactivar todas las interrupciones
IEnable Activar todas las interrupciones
1
IError Pedir y activar una interrupcin cuando se produce un error

9.6 Datos de interrupcin


Instruccin Casos en que se usa:
GetTrapData1 En rutinas TRAP, para obtener todos los datos sobre la
interrupcin que caus la ejecucin de la rutina TRAP.
ReadErrData1 En rutinas TRAP, para obtener informacin numrica
(dominio, tipo y nmero) sobre un error, un cambio de estado
o una advertencia que provocaron la ejecucin de la rutina
TRAP.

1. Slo si el robot est equipado con la opcin Advanced Functions (Funciones avanzadas).

34 Descripcin general de RAPID


Interrupciones

9.7 Tipos de datos de las interrupciones


Tipo de datos Finalidad:
intnum Definir la identidad de una interrupcin
trapdata1 Contener los datos de interrupcin que causaron la ejecucin
de la rutina TRAP actual
errtype1 Especificar un tipo de error (gravedad).
1
errdomain Especificar un dominio de error

1. Slo si el robot est equipado con la opcin Advanced Functions (Funciones avanzadas).

Descripcin general de RAPID 35


Interrupciones

36 Descripcin general de RAPID


Recuperacin en caso de error

10 Recuperacin en caso de error


Muchos de los errores que se producen cuando se est ejecutando un programa pueden
gestionarse desde el programa, lo que significa que no es necesario interrumpir la
ejecucin. Estos errores son de un tipo detectado por el robot, como por ejemplo la
divisin por cero, o de un tipo detectado por el programa, por ejemplo el error que se
produce cuando el lector de cdigos de barras lee un valor incorrecto.

10.1 Principios de programacin


Cuando se produce un error, se realiza una llamada al gestor de la rutina (si lo hay).
Tambin es posible crear un error desde el propio programa y saltar a continuacin
hacia el gestor de errores.

En los gestores de errores, es posible manejar los errores mediante instrucciones


convencionales. El dato de sistema ERRNO puede usarse para determinar el tipo de
error que se ha producido. Posteriormente, el retorno desde el gestor de errores puede
realizarse de varias formas (RETURN, RETRY, TRYNEXT y RAISE).

Si la rutina actual no contiene un gestor de errores, el gestor de errores interno del robot
toma directamente el control. El gestor de errores interno genera un mensaje de error
y detiene la ejecucin del programa, dejando el puntero del programa en la instruccin
que provoca el problema.

10.2 Creacin de una situacin de error desde el propio programa


Instruccin Finalidad:
RAISE Crear un error y llamar al gestor de errores

10.3 Registro de un nmero de error


Instruccin Finalidad:

BookErrNo1 Registrar un nuevo nmero de error de sistema de RAPID

1. Slo si el robot est equipado con la opcin Developers Function (Funciones para desarrolladores).

Descripcin general de RAPID 37


Recuperacin en caso de error

10.4 Reinicio y retorno desde el gestor de errores


Instruccin Finalidad:
EXIT Detener la ejecucin del programa en caso de un error no
recuperable
RAISE Llamar al gestor de errores de la rutina que llam a la rutina
actual
RETRY Ejecutar de nuevo la instruccin que caus el error
TRYNEXT Ejecutar la instruccin siguiente a la instruccin que caus el
error
RETURN Volver a la rutina que llam a la rutina actual
SkipWarn Omitir el ltimo mensaje de advertencia pedido

10.5 Datos para la gestin de errores


Tipo de dato Para definir:

errnum El motivo del error

38 Descripcin general de RAPID


Sistema y tiempo

11 Sistema y tiempo
Las instrucciones de sistema y tiempo permiten al usuario medir, inspeccionar y
registrar tiempos.

11.1 Principios de programacin


Las instrucciones de reloj permiten utilizar relojes que funcionan en forma de
cronmetros. De esta forma, es posible utilizar el programa del robot para temporizar
cualquier evento que se desee.

Es posible obtener la hora o la fecha actuales en forma de una cadena de caracteres.


A continuacin, es posible mostrar esta cadena de caracteres al usuario en la pantalla
de la unidad de programacin o utilizarla para almacenar la fecha y la hora junto con
archivos de registro.

Tambin es posible obtener componentes de la hora actual del sistema en forma de


valores numricos. Esto permite al programa del robot realizar una accin a una hora
determinada o en un da determinado de la semana.

11.2 Utilizacin de un reloj para temporizar un evento


Instruccin Finalidad:
ClkReset Poner a cero un reloj utilizado para la temporizacin
ClkStart Poner en marcha un reloj utilizado para la temporizacin
ClkStop Detener un reloj utilizado para la temporizacin

Funcin Finalidad:
ClkRead Leer un reloj utilizado para la temporizacin

Tipo de dato Finalidad:


clock Temporizacin: almacena una medicin de tiempo, en
segundos

11.3 Lectura de la hora y la fecha actuales


Funcin Finalidad:
CDate Obtener la fecha actual en forma de cadena de caracteres
CTime Obtener la hora actual en forma de cadena de caracteres
GetTime Obtener la hora actual en forma de valor numrico

Descripcin general de RAPID 39


Sistema y tiempo

11.4 Obtencin de informacin de hora de un archivo


Funcin Finalidad:
FileTime Obtener la ltima hora de modificacin de un archivo
ModTime Obtener la hora de carga de un mdulo determinado

40 Descripcin general de RAPID


Operaciones matemticas

12 Operaciones matemticas
Las instrucciones y funciones matemticas se utilizan para calcular y cambiar el valor
de la informacin.

12.1 Principios de programacin


Los clculos suelen realizarse mediante la instruccin de asignacin, por ejemplo
reg1:= reg2 + reg3 / 5. Tambin existen algunas instrucciones que se utilizan para
clculos simples, como eliminar el valor de una variable numrica.

12.2 Clculos sencillos con datos numricos


Instruccin Finalidad:
Clear Eliminar el valor
Add Sumar o restar un valor
Incr Aumentar en 1
Decr Reducir en 1

12.3 Clculos ms avanzados


Instruccin Finalidad:
:= Realizar clculos con cualquier tipo de dato

12.4 Funciones aritmticas


Funcin Finalidad:
Abs Calcular el valor absoluto
Round Redondear un valor numrico
Trunc Truncar un valor numrico
Sqrt Calcular la raz cuadrada
Exp Calcular el valor exponencial en base e
Pow Calcular el valor exponencial en la base deseada
ACos Calcular el arco coseno
ASin Calcular el arco seno
ATan Calcular el arco tangente en el rango [-90,90]

Descripcin general de RAPID 41


Operaciones matemticas

ATan2 Calcular el arco tangente en el rango [-180,180]


Cos Calcular el coseno
Sin Calcular el valor del seno
Tan Calcular la tangente
EulerZYX Calcular ngulos de Euler a partir de una orientacin
OrientZYX Calcular la orientacin a partir de ngulos de Euler
PoseInv Invertir una pose
PoseMult Multiplicar una pose
PoseVect Multiplicar una pose y un vector
Vectmagn Calcular la magnitud de un vector pos.
DotProd Calcular el producto escalar de dos vectores pos.
NOrient Normalizar una orientacin no normalizada (quarternion)

12.5 Funciones de bits


Instruccin Finalidad:
BitClear1 Eliminar un bit especificado en un dato de byte definido.

BitSet1 Cambiar 1 un bit especificado en un dato de byte definido.

Funcin Finalidad:

BitCheck1 Comprobar si un bit especificado de un dato de byte definido


tiene el valor 1.

BitAnd1 Ejecutar una operacin lgica bit a bit AND en tipos de datos
byte.
BitNeg1 Ejecutar una operacin lgica de NEGACIN en tipos de datos
byte.
BitOr1 Ejecutar una operacin lgica bit a bit OR en tipos de datos
byte.
BitXOr1 Ejecutar una operacin lgica bit a bit XOR en tipos de datos
byte.

1. Slo si el robot est equipado con la opcin Developers Functions (Funciones para desarrolladores).

42 Descripcin general de RAPID


Operaciones matemticas

BitLSh1 Ejecutar una operacin lgica bit a bit DESPLAZAMIENTO A


LA IZQUIERDA en tipos de datos byte.
BitrSh1 Ejecutar una operacin lgica bit a bit DESPLAZAMIENTO A
LA DERECHA en tipos de datos byte.

Tipo de datos Finalidad:


byte Se utiliza junto con instrucciones y funciones de manipulacin
de bits.

Descripcin general de RAPID 43


Operaciones matemticas

44 Descripcin general de RAPID


Comunicacin con un ordenador externo

13 Comunicacin con un ordenador externo


Es posible controlar el robot desde un ordenador supervisor. En este caso, se utiliza un
protocolo de comunicaciones especial para transferir la informacin.

13.1 Principios de programacin


Dado que se utiliza un protocolo de comunicaciones convencional para transferir la
informacin entre el robot y el ordenador, stos pueden comprenderse mutuamente y
no se requiere programacin adicional. Por ejemplo, el ordenador puede cambiar
valores de los datos del programa sin necesidad de programacin (excepto a la hora de
definir esta informacin). Slo se requiere programacin si es necesario enviar
informacin controlada por el programa desde el robot al ordenador supervisor.

13.2 Envo de un mensaje controlado por el programa del robot a un ordenador


Instruccin Finalidad:
SCWrite1 Enviar un mensaje al ordenador supervisor

1. Slo si el robot est equipado con la opcin RAP Serial Link (Enlace serie RAP).

Descripcin general de RAPID 45


Comunicacin con un ordenador externo

46 Descripcin general de RAPID


Funciones para operaciones con archivos

14 Funciones para operaciones con archivos


Instruccin Finalidad:
1
MakeDir Crear un nuevo directorio
1
RemoveDir Eliminar un directorio
OpenDir1 Abrir un directorio para su examen posterior
CloseDir1 Cerrar un directorio como operacin opuesta de OpenDir
1
RemoveFile Eliminar un archivo
1
RenameFile Cambiar el nombre de un archivo
CopyFile1 Copiar un archivo

Funcin Finalidad:
ISFile1 Comprobar el tipo de un archivo
FSSize1 Obtener el tamao de un sistema de archivos
FileSize1 Obtener el tamao de un archivo determinado
ReadDir1 Obtener el elemento siguiente de un directorio

Tipo de datos Finalidad:


dir1 Recorrer estructuras de directorios

1. Slo si el robot est equipado con la opcin Developers Function (Funciones para desarrolladores).

Descripcin general de RAPID 47


Funciones para operaciones con archivos

48 Descripcin general de RAPID


Instrucciones de soporte de RAPID

15 Instrucciones de soporte de RAPID


Existen varias funciones que soportan el lenguaje RAPID:

- Obtener datos del sistema


- Leer datos de configuracin
- Escribir datos de configuracin
- Reiniciar el controlador
- Comprobar datos del sistema
- Obtener nombres de objetos
- Obtener nombres de tareas
- Buscar smbolos

15.1 Obtencin de datos del sistema


Instrucciones para capturar el valor y (opcionalmente) el nombre del smbolo del dato
de sistema actual del tipo especificado.

Instruccin Finalidad:
GetSysData Obtener los datos y el nombre de la herramienta o del objeto de
trabajo actuales
SetSysData Activar un nombre de dato de sistema especificado para un
tipo de datos especificado.

Funcin Finalidad:
IsSysID Comprobar la identidad del sistema
IsStopStateEvent1 Obtener informacin acerca del movimiento del puntero de
programa
RobOS Comprobar si la ejecucin se realiza en el controlador de robot
RC o en el controlador virtual VC.

15.2 Lectura de datos de configuracin


Instrucciones para leer un atributo de un parmetro de sistema cuyo nombre se indica.

Instruccin Finalidad:

ReadCfgData1 Leer un atributo de un parmetro de sistema cuyo nombre


se indica

1. Slo si el robot est equipado con la opcin Developers Function (Funciones para desarrolladores).

Descripcin general de RAPID 49


Instrucciones de soporte de RAPID

15.3 Escritura de datos de configuracin


Instrucciones para escribir un atributo de un parmetro de sistema cuyo nombre se
indica.

Instruccin Finalidad:
1
WriteCfgData Escribir un atributo de un parmetro de sistema cuyo nombre
se indica

15.4 Reinicio del controlador


Instruccin Finalidad:
WarmStart1 Reiniciar el controlador, por ejemplo despus de cambiar los
parmetros de sistema desde RAPID.

15.5 Funciones de disparo


Instrucciones para establecer seales de salida y/o ejecutar rutinas de interrupcin en
posiciones fijas al mismo tiempo que se mueve el robot.

Instruccin Finalidad:
TriggC Definir movimientos y eventos del robot a lo largo de una
trayectoria circular
TriggJ Definir movimientos y eventos del robot a lo largo de un
movimiento lineal de un punto a otro
TriggL Definir movimientos y eventos del robot en un movimiento
lineal

15.6 Instrucciones para tablas de texto


Instrucciones para administrar las tablas de texto del sistema

Instruccin Finalidad:
TextTabInstall1 Instalar una tabla de textos en el sistema

Funcin Finalidad:
TextTabGet1 Obtener el nmero de tabla de textos de una tabla de textos
definida por el usuario
TextGet1 Obtener una cadena de caracteres de las tablas de texto del
sistema
TextTabFreeToUse1 Comprobar si el nombre de la tabla de textos (cadena de
caracteres de recursos de texto) est disponible para su uso

1. Slo si el robot est equipado con la opcin Developers Functions (Funciones para desarrolladores).

50 Descripcin general de RAPID


Instrucciones de soporte de RAPID

15.7 Obtencin de nombres de objetos


Una instruccin para obtener el nombre de un objeto de datos original para un
argumento actual o un dato actual.

Funcin Finalidad:
1
ArgName Obtener el nombre del objeto de datos original

15.8 Obtencin de nombres de tareas


Funcin Finalidad:
GetTaskName Obtener la identidad de la tarea de programa actual, con su
nombre y nmero

15.9 Bsqueda de smbolos


Instrucciones para buscar objetos de datos en el sistema

Instruccin Finalidad:
SetAllDataVal Establecer un nuevo valor en todos los objetos de datos de un
tipo determinado y que coincidan con una gramtica
determinada.
SetDataSearch1 Junto con GetNextSym, permite obtener objetos de datos del
sistema
GetDataVal1 Obtener un valor de un objeto de datos que se especifica
mediante una variable de cadena de caracteres
SetDataVal1 Establecer un valor para un objeto de datos que se especifica
mediante una variable de cadena de caracteres

Funcin Finalidad:
GetNextSym1 Junto con SetDataSearch, permite obtener objetos de datos del
sistema

Tipo de datos Finalidad:


datapos Contiene informacin acerca de dnde est definido un objeto
determinado dentro del sistema

1. Slo si el robot est equipado con la opcin Developers Functions (Funciones para desarrolladores).

Descripcin general de RAPID 51


Instrucciones de soporte de RAPID

52 Descripcin general de RAPID


Instrucciones de servicio tcnico y calibracin

16 Instrucciones de servicio tcnico y calibracin


Existen varias instrucciones destinadas a la calibracin y la comprobacin del sistema
de robot. Para obtener ms informacin, consulte el captulo de herramientas de
deteccin de averas en el manual del producto.

16.1 Calibracin de la herramienta


Instrucciones Finalidad:
4MToolRotCalib Calibrar la rotacin de una herramienta mvil
MToolTCPCalib Calibrar el TCP (punto central de la herramienta) de una
herramienta mvil
SToolRotCalib Calibrar el TCP y la rotacin de una herramienta estacionaria
SToolTCPCalib Calibrar el TCP (punto central de la herramienta) de una
herramienta estacionaria

16.2 Distintos mtodos de calibracin


Funciones Finalidad:
CalcRotAxisFrame Calcular el sistema de coordenadas de usuario de un tipo de eje
giratorio
DefAccFrame Definir una base de coordenadas desde las posiciones
originales y las desplazadas.

16.3 Envo de un valor a la seal de test del robot


Es posible enviar una seal de referencia, por ejemplo la velocidad de un motor, a una
seal analgica de salida situada en la tarjeta de bus del robot.

Instrucciones Finalidad:
TestSignDefine Definir una seal de test
TestSignReset Restablecer todas las definiciones de seales de test

Funcin Finalidad:
TestSignRead Obtener el valor de una seal de test

Tipo de dato Finalidad:


testsignal Para la instruccin de programacin TestSignDefine

Descripcin general de RAPID 53


Instrucciones de servicio tcnico y calibracin

16.4 Registro de una ejecucin


La informacin registrada se almacena en un archivo para su anlisis posterior y se
utiliza en labores de depuracin de programas de RAPID, especficamente en sistemas
multitarea.

Instrucciones Finalidad:
SpyStart Iniciar la grabacin de instrucciones y datos de tiempo durante
la ejecucin
SpyStop Detener la grabacin de datos de tiempo durante la ejecucin

54 Descripcin general de RAPID


Funciones para cadenas de caracteres

17 Funciones para cadenas de caracteres


Las funciones para cadenas de caracteres se utilizan en operaciones con cadenas de
caracteres, como copia, concatenacin, comparacin, bsqueda, conversin, etc.

17.1 Operaciones bsicas


Tipo de dato Para definir:
string Cadena de caracteres. Constantes predefinidas STR_DIGIT,
STR_UPPER, STR_LOWER y STR_WHITE

Instruccin/OperadorFinalidad:
:= Asignar un valor (una copia de la cadena de caracteres)
+ Concatenacin de cadenas de caracteres

Funcin Finalidad:
StrLen Determinar la longitud de una cadena de caracteres
StrPart Obtener parte de una cadena de caracteres

17.2 Comparacin y bsqueda


Operador Finalidad:
= Comprobar si un valor es igual a otro
<> Comprobar si un valor es distinto de otro

Funcin Finalidad:
StrMemb Comprobar si un carcter aparece dentro de un conjunto de
caracteres
StrFind Buscar un carcter en una cadena de caracteres
StrMatch Buscar un patrn dentro de una cadena de caracteres
StrOrder Comprobar si varias cadenas de caracteres estn ordenadas

Descripcin general de RAPID 55


Funciones para cadenas de caracteres

17.3 Conversin
Funcin Finalidad:
NumToStr Convertir un valor numrico en una cadena de caracteres
ValToStr Convertir un valor en una cadena de caracteres
StrToVal Convertir una cadena de caracteres en un valor
StrMap Mapear una cadena de caracteres
StrToByte Convertir una cadena de caracteres en un byte
ByteToStr Convertir un byte en una cadena de caracteres

56 Descripcin general de RAPID


Multitarea

18 Multitarea
RAPID en modo multitarea es una forma de ejecutar los programas en
(seudo)paralelo con la ejecucin normal. Un programa en paralelo puede situarse en
segundo plano o en primer plano respecto de otro programa. Tambin puede situarse
en el mismo nivel que otro programa. (Consulte la seccin Caractersticas bsicas -
Multitarea.)

18.1 Conceptos bsicos


Para usar esta funcin, es necesario configurar el robot con una TAREA adicional para
cada programa en segundo plano.

Es posible ejecutar hasta 10 tareas diferentes en seudoparalelo. Cada tarea se compone


de un conjunto de mdulos, de forma muy parecida al programa normal. Todos los
mdulos se consideran locales dentro de cada tarea.

Las variables y constantes se consideran locales dentro de cada tarea, al contrario de lo


que ocurre con las variables persistentes. Las variables persistentes que tienen el
mismo nombre y tipo pueden utilizarse en todas las tareas. Si existen dos variables
persistentes con el mismo nombre pero tienen un tipo o un tamao (un nmero de
elementos de matriz) diferente, se produce un error de tiempo de ejecucin.

Las tareas tienen su propia gestin de traps y las rutinas de eventos slo se disparan si
lo indica el propio sistema de tarea (por ejemplo, iniciar, detener, reiniciar....).

18.2 Proteccin del acceso a los recursos


Funcin Finalidad:
TestAndSet Obtener el derecho de uso exclusivo de reas de cdigo
concretas de RAPID o recursos del sistema.

Descripcin general de RAPID 57


Multitarea

58 Descripcin general de RAPID


Resumen de la sintaxis

19 Resumen de la sintaxis

19.1 Instrucciones

Dato := Valor

AccSet Acc Ramp

ActUnit MecUnit

Add Name AddValue

AliasIO FromSignal ToSignal

BitClear BitData BitPos

BitSet BitData BitPos

BookErrNo ErrorName

Break

CallByVar Name Number

CancelLoad LoadNo

CirPathMode [\PathFrame] | [\ObjectFrame] | [\CirPointOri]

Clear Name

ClearIOBuff IODevice

ClearPath

ClkReset Clock

ClkStart Clock

ClkStop Clock

Close IODevice

CloseDir Dev

Descripcin general de RAPID 59


Resumen de la sintaxis

! Comment

ConfJ [\On] | [\Off]

ConfL [\On] | [\Off]

CONNECT Interrupt WITH Trap routine

CopyFile OldPath NewPath

CorrClear

CorrCon Descr

CorrDiscon Descr

CorrWrite

CorrWrite Descr Data

CorrClear

DeactUnit MecUnit

Decr Name

DitherAct [\MechUnit] Axis [\Level]

DitherDeact

DropSensor Mecunt

DropWObj WObj

EOffsOff

EOffsOn [\ExeP] ProgPoint

EOffsSet EAxOffs

ErrWrite [\W] Header Reason [\RL2] [\RL3] [\RL4]

Exit

ExitCycle

60 Descripcin general de RAPID


Resumen de la sintaxis

FOR Loop counter FROM Start value TO End value


[STEP Step value] DO ... ENDFOR

GetDataVal Object [\Block] Value

GetSysData DestObject [\ObjectName]

GetTrapData TrapEvent

GOTO Label

GripLoad Load

IDelete Interrupt

IDisable

IEnable

IError ErrorDomain [\ErrorId] ErrorType Interrupt

IF Condition ...

IF Condition THEN ... {ELSEIF Condition THEN ...}[ELSE ...]


ENDIF

Incr Name

IndAMove MecUnit Axis [\ToAbsPos] | [\ToAbsNum] Speed


[\Ramp]

IndCMove MecUnit Axis Speed [\Ramp]

IndDMove MecUnit Axis Delta Speed [\Ramp]

IndReset MecUnit Axis


[\RefPos] | [\RefNum] | [\Short] | [\Fwd] | [\Bwd] | [\Old]

Descripcin general de RAPID 61


Resumen de la sintaxis

IndRMove MecUnitAxis [\ToRelPos] | [\ToRelNum] | [\Short] | [\Fwd


] | [\Bwd] Speed [\Ramp]

InvertDO Signal

IODisable UnitName MaxTime

IODNGetAttr UnitName Path GetValue [\Timeout]

IODNSetAttr UnitName Path SetValue [\Timeout]

IOEnable UnitName MaxTime

ISignalAI [\Single] Signal Condition HighValue LowValue


DeltaValue [\DPos] | [\DNeg] Interrupt

ISignalAO [\Single] Signal Condition HighValue LowValue


DeltaValue [\DPos] | [\DNeg] Interrupt

ISignalDI [\Single] Signal TriggValue Interrupt

ISignalDO [\Single] Signal TriggValue Interrupt

ISleep Interrupt

ITimer [\Single] Time Interrupt

IVarValue VarNo Value Interrupt

IWatch Interrupt ParIdType LoadIdType Tool [\PayLoad]


[\WObj] [\ConfAngle] [\SlowTest] [\Accuracy]

Load [\Dynamic] FilePath [\File]

LoadId ParIdType LoadIdType Tool [\PayLoad] [\WObj]


[\ConfAngle] [\SlowTest] [\Accuracy]

MakeDir Path

MechUnitLoad MechUnit AxisNo Load

MotionSup [\On] | [\Off] [\TuneValue]

MoveAbsJ [\Conc] ToJointPos Speed [\V] | [\T] Zone [\Z] Tool


[\WObj]

62 Descripcin general de RAPID


Resumen de la sintaxis

MoveC [\Conc] CirPoint ToPoint Speed [\V] | [\T] Zone [\Z]


Tool [\WObj]

MoveCDO CirPoint ToPoint Speed [\T] Zone Tool [\WObj]


Signal Value

MoveCSync CirPoint ToPoint Speed [\T] Zone Tool [\WObj]


ProcName

MoveJ [\Conc] ToPoint Speed [\V] | [\T] Zone [\Z] Tool


[\WObj]

MoveJDO ToPoint Speed [\T] Zone Tool [\WObj] Signal


Value

MoveJSync ToPoint Speed [\T] Zone Tool [\WObj] ProcName

MoveL [\Conc] ToPoint Speed [\V] | [\T] Zone [\Z] Tool


[\WObj]

MoveLDO ToPoint Speed [\T] Zone Tool [\WObj] Signal


Value

MoveLSync ToPoint Speed [\T] Zone Tool [\WObj] ProcName

MToolRotCalib RefTip ZPos [\XPos] Tool

MToolTCPCalib Pos1 Pos2 Pos3 Pos4 Tool MaxErr MeanErr

Open Object [\File] IODevice


[\Read] | [\Write] | [\Append] | [\Bin]

OpenDir Dev Path

PathAccLim AccLim [\AccMax] DecelLim [\DecelMax]

PathResol Value

PDispOff

PDispOn [\Rot] [\ExeP] ProgPoint Tool [\WObj]

PDispSet DispFrame

PFIOResto

Descripcin general de RAPID 63


Resumen de la sintaxis

Procedure { Argument }

PulseDO [\PLength] Signal

RAISE [ Error no ]

ReadAnyBin IODevice Data [\Time])

ReadCfgData InstancePath Attribute CfgData

ReadErrData TrapEvent ErrorDomain ErrorId ErrorType [\Str1]


[\Str2] [\Str3] [\Str4] [\Str5]

RemoveDir Path

RemoveFile Path

RenameFile OldPath NewPath

Reset Signal

RestoPath

RETURN [ Return value ]

Rewind IODevice

Save [\Task] ModuleName [\FilePath] [\File]

SearchC [\Stop] | [\PStop] | [\Sup] Signal SearchPoint CirPoint


ToPoint Speed [\V] | [\T] Tool [\WObj]

SearchL [\Stop] | [\PStop] | [\Sup] Signal SearchPoint ToPoint


Speed [\V] | [\T] Tool [\WObj]

Set Signal

SetAllDataVal Type [\TypeMod] [\Object] [\Hidden] Value

SetAO Signal Value

64 Descripcin general de RAPID


Resumen de la sintaxis

SetDataSearch Type [\TypeMod] [\Object] [\PersSym] [\VarSym]


[\ConstSym] [\InTask] | [\InMod] [\InRout]
[\GlobalSym] | [\LocalSym]

SetDataVal Object [\Block] Value

SetDO [\SDelay] Signal Value

SetGO Signal Value

SetSysData SourceObject [\ObjectName]

SingArea [\Wrist] | [\Arm] | [\Off]

SoftAct Axis Softness [\Ramp]

SoftDeact [\Ramp]

SpcCon Descr Status [\GrpSize] [\Teach] [\Strict] [\Header]


[\BackupFile]

SpcDiscon Descr

SpcDump

SpcRead

SpcStat

SpyStart File

SpyStop

StartLoad [\Dynamic] FilePath [\File] LoadNo

StartMove

StepBwdPath StepLength StepTime

SToolRotCalib RefTip ZPos XPos Tool

Descripcin general de RAPID 65


Resumen de la sintaxis

SToolTCPCalib Pos1 Pos2 Pos3 Pos4 Tool MaxErr MeanErr

Stop [\NoRegain]

StopMove [\Quick]

StorePath

SyncToSensor Mecunt [On/Off]

TEST Test data {CASE Test value {, Test value} : ...}


[DEFAULT: ...]
ENDTEST

TestSignDefine Channel SignalId MechUnit Axis SampleTime

TestSignReset

TextTabInstall File

TPReadFK Answer String FK1 FK2 FK3 FK4 FK5


[\MaxTime] [\DIBreak] [\BreakFlag]

TPReadNum Answer String [\MaxTime] [\DIBreak] [\BreakFlag]

TPShow Window

TPWrite String [\Num] | [\Bool] | [\Pos] | [\Orient]

TriggC CirPoint ToPoint Speed [\T] Trigg_1 [\T2] [\T3] [\T4]


Zone Tool [\WObj]

TriggCheckIO TriggData Distance [\Start] | [\Time] Signal


Relation CheckValue [\StopMove] Interrupt

TriggEqip

TriggInt TriggData Distance [\Start] | [\Time] Interrupt

TriggIO TriggData Distance


[\Start] | [\Time] [\DOp] | [\GOp] | [\AOp] SetValue
[\DODelay] | [\AORamp]

66 Descripcin general de RAPID


Resumen de la sintaxis

TriggJ ToPoint Speed [\T] Trigg_1 [\T2] [\T3] [\T4] Zone


Tool [\WObj]

TriggL ToPoint Speed [\T] Trigg_1 [\T2] [\T3] [\T4] Zone


Tool [\WObj]

TriggSpeed TriggData Distance [\Start] ScaleLag AO


ScaleValue [\DipLag] [\ErrDO] [\Inhib]

TriggStopProc RestartRef [\DO1] [\GO1] [\GO2] [\GO3] [\GO4]


ShadowDO

TuneReset

TuneServo MecUnit Axis TuneValue [\Type]

UnLoad FilePath [\File]

VelSet Override Max

WaitDI Signal Value [\MaxTime] [\TimeFlag]

WaitDO Signal Value [\MaxTime] [\TimeFlag]

WaitLoad [\UnloadPath] [\UnloadFile] LoadNo

WaitSensor Mecunt[ \RelDist ] [ \PredTime] [\MaxTime]


[\TimeFlag]

WaitTime [\InPos] Time

WaitUntil [\InPos] Cond [\MaxTime] [\TimeFlag]

WaitWObj WObj [\RelDist]

WarmStart

WHILE Condition DO ...


ENDWHILE

WorldAccLim [\On] | [\Off]

Descripcin general de RAPID 67


Resumen de la sintaxis

Write IODeviceString [\Num] | [\Bool] | [\Pos] | [\Orient]


[\NoNewLine]

WriteAnyBin IODevice Data

WriteBin IODevice Buffer NChar

WriteCfgData InstancePath Attribute CfgData

WriteStrBin IODevice Str

WZBoxDef [\Inside] | [\Outside] Shape LowPoint HighPoint

WZCylDef [\Inside] | [\Outside] Shape CentrePoint Radius Height

WZDisable WorldZone

WZDOSet [\Temp] | [\Stat] WorldZone [\Inside] | [\Before] Shape


Signal SetValue

WZEnable WorldZone

WZFree WorldZone

WZHomeJointDef [\Inside] | [\Outside] Shape MiddleJointVal


DeltaJointVal

WZLimJointDef [\Inside] | [\Outside] Shape LowJointVal


HighJointVal

WZLimSup [\Temp] | [\Stat] WorldZone Shape

WZSphDef [\Inside] | [\Outside] Shape CentrePoint Radius

68 Descripcin general de RAPID


Resumen de la sintaxis

19.2 Functions

Abs (Input)

ACos (Value)

AOutput (Signal)

ArgName (Parameter)

ASin (Value)

ATan (Value)

ATan2 (Y X)

BitAnd (BitData1 BitData2)

BitCheck (BitData BitPos)

BitLSh (BitData ShiftSteps)

BitNeg (BitData1)

BitOr (BitData1 BitData2)

BitRSh (BitData1 ShiftSteps)

BitXOr (BitData1 BitData2)

ByteToStr (ByteData [\Hex] | [\Okt] | [\Bin] | [\Char])

CalcJointT (Rob_target Tool [\WObj])

CalcRobT (Joint_target Tool [\WObj])

CalcRotAxisFrame (MechUnit [\AxisNo] TargetList TargetsInList


MaxErr MeanErr)

CDate

CJointT

ClkRead (Clock)

CorrRead

Descripcin general de RAPID 69


Resumen de la sintaxis

Cos (Angle)

CPos ([\Tool] [\WObj])

CRobT ([\Tool] [\WObj])

CSpeedOverride

CTime

CTool

CWObj

DefAccFrame (TargetListOne TargetListTwo TargetsInList


MaxErr MeanErr)

DefDFrame (OldP1 OldP2 OldP3 NewP1 NewP2 NewP3)

DefFrame (NewP1 NewP2 NewP3 [\Origin])

Dim (ArrPar DimNo)

Distance (Point1 Point2)

DOutput (Signal)

DotProd (Vector1 Vector2)

EulerZYX ([\X] | [\Y] | [\Z] Rotation)

Exp (Exponent)

FileSize (Path)

FileTime (Path [\ModifyTime] | [\AccessTime] | [\StatCTime])

FSSize (Name [\Total] | [\Free])

GetNextMechUnit (ListNumber UnitName)

GetNextSym (Object Block [\Recursive])

GetTaskName ([\TaskNo])

GetTime ([\WDay] | [\Hour] | [\Min] | [\Sec])

70 Descripcin general de RAPID


Resumen de la sintaxis

GOutput (Signal)

IndInpos (MecUnit Axis)

IndSpeed (MecUnit Axis [\InSpeed] | [\ZeroSpeed])

IsFile (Path [\Directory] [\Fifo] [\RegFile] [\BlockSpec]


[\CharSpec])

IsMechUnitActive (MechUnit)

IsPers (DatObj)

IsStopStateEvent ([\PPMoved] | [\PPToMain])

IsSysId (SystemId)

IsVar (DatObj)

MaxRobSpeed

MirPos (Point MirPlane [\WObj] [\MirY])

ModTime (Object)

NOrient (Rotation)

NumToStr (Val Dec [\Exp])

Offs (Point XOffset YOffset ZOffset)

OrientZYX (ZAngle YAngle XAngle)

OpMode

ORobT (OrgPoint [\InPDisp] | [\InEOffs])

ParIdPosValid (ParIdType Pos AxValid [\ConfAngle])

ParIdRobValid (ParIdType)

PFDOVal (Signal)

PFGOVal (Signal)

PFRestart ([\Base] | [\Irpt])

Descripcin general de RAPID 71


Resumen de la sintaxis

PoseInv (Pose)

PoseMult (Pose1 Pose2)

PoseVect (Pose Pos)

Pow (Base Exponent)

Present (OptPar)

ReadBin (IODevice [\Time])

ReadDir (Dev FileName)

ReadMotor ([\MecUnit] Axis)

ReadNum (IODevice [\Time])

ReadStr (IODevice [\Time])

ReadStrBin (IODevice NoOfChars [\Time])

RelTool (Point Dx Dy Dz [\Rx] [\Ry] [\Rz])

RobOS

Round (Val [\Dec])

RunMode ([\Main])

Sin (Angle)

Sqrt (Value)

StrFind (Str ChPos Set [\NotInSet])

StrLen (Str)

StrMap (Str FromMap ToMap)

StrMatch (Str ChPos Pattern)

StrMemb (Str ChPos Set)

StrOrder (Str1 Str2 Order)

StrPart (Str ChPos Len)

72 Descripcin general de RAPID


Resumen de la sintaxis

StrToByte (ConStr [\Hex] | [\Okt] | [\Bin] | [\Char])

StrToVal (Str Val)

Tan (Angle)

TestAndSet (Object)

TestDI (Signal)

TestSignRead (Channel)

TextGet (Table Index)

TextTabFreeToUse (TableName)

TextTabGet (TableName)
Trunc (Val [\Dec])

ValToStr (Val)

VectMagn (Vector)

Descripcin general de RAPID 73


Resumen de la sintaxis

74 Descripcin general de RAPID


Elementos bsicos

20 Elementos bsicos

20.1 Identificadores
Los identificadores se utilizan para asignar nombres a mdulos, rutinas, datos y
etiquetas.

Por ejemplo MODULE nombre_de_mdulo


PROC nombre_de_rutina()
VAR pos nombre_de_dato;
nombre_de_etiqueta:

El primer carcter de cualquier identificador debe ser una letra. Los dems caracteres
pueden ser letras, dgitos o caracteres de subrayado _.

La longitud mxima de cualquier identificador es de 16 caracteres, cada uno de los


cuales es significativo. Se considera iguales a dos identificadores que se llaman igual
pero que estn escritos con distintas maysculas o minsculas.

Palabras reservadas

Las palabras enumeradas a continuacin estn reservadas. Tienen un significado


especial en el lenguaje RAPID y por tanto no pueden utilizarse como identificadores.

Tambin existen varios nombres predefinidos para tipos de datos, datos de sistema,
instrucciones y funciones, que tampoco pueden usarse como identificadores. Consulte
los Captulos 7, 8, 9, 10, 13, 14 y 15 de este manual.

ALIAS AND BACKWARD CASE


CONNECT CONST DEFAULT DIV
DO ELSE ELSEIF ENDFOR
ENDFUNC ENDIF ENDMODULE ENDPROC
ENDRECORD ENDTEST ENDTRAP ENDWHILE
ERROR EXIT FALSE FOR
FROM FUNC GOTO IF
INOUT LOCAL MOD MODULE
NOSTEPIN NOT NOVIEW OR
PERS PROC RAISE READONLY
RECORD RETRY RETURN STEP
SYSMODULE TEST THEN TO
TRAP TRUE TRYNEXT VAR
VIEWONLY WHILE WITH XOR

Descripcin general de RAPID 75


Elementos bsicos

20.2 Espacios y caracteres de salto de lnea


El lenguaje de programacin RAPID es un lenguaje con formato libre, lo que significa
que es posible utilizar espacios en cualquier lugar del cdigo, excepto dentro de:

- Identificadores
- Palabras reservadas
- Valores numricos
- Marcadores de sustitucin

Es posible utilizar caracteres de salto de lnea, tabulador y salto de formulario en todos


los lugares donde se permite el uso de espacios, excepto dentro de los comentarios.

Los identificadores, las palabras reservadas y los valores numricos deben aparecer
separados entre s por un espacio, un carcter de salto de lnea, un tabulador o un
carcter de salto de formulario.

Los espacios y caracteres de salto de lnea innecesarios se eliminan automticamente


de un programa al cargarlo en la memoria de programas. Por tanto, es posible que un
programa cargado desde un disquete y almacenado de nuevo en el disquete presente
cambios.

20.3 Valores numricos


Los valores numricos pueden expresarse como:

- Un entero, por ejemplo 3, -100, 3E2


- Un nmero con decimales, por ejemplo 3,5, -0,345, -245E-2

Los valores deben estar dentro del rango especificado por el estndar de coma flotante
ANSI IEEE 754-1985 (precisin simple).

20.4 Valores lgicos


Los valores lgicos pueden expresarse como TRUE o FALSE.

20.5 Valores de cadena de caracteres


Los valores de cadena de caracteres son secuencias de caracteres (ISO 8859-1) y
caracteres de control (caracteres no ISO 8859-1 en el rango de cdigos numricos de 0
a 255). Es posible incluir cdigos de caracteres, lo que permite incluir tambin
caracteres no imprimibles (datos binarios) en las cadenas de caracteres. La longitud
mxima de las cadenas es de 80 caracteres.

76 Descripcin general de RAPID


Elementos bsicos

Ejemplo: "Esto es una cadena de caracteres"


"Esta cadena de caracteres termina con el carcter de control
BEL \07"

Si se desea incluir una barra invertida (que se usa para indicar cdigos de carcter) o
un carcter de comillas, es necesario escribirlos dos veces.

Ejemplo: "Esta cadena de caracteres contiene un carcter de comillas "" "


"Esta cadena de caracteres contiene un carcter de barra
invertida \\"

20.6 Comentarios
Los comentarios se utilizan para facilitar la comprensin del programa. No afectan de
ninguna forma al significado del programa.

Los comentarios comienzan con el signo de exclamacin ! y terminan con un


carcter de salto de lnea. Ocupan toda una lnea y no puede aparecer entre dos
mdulos.

Ejemplo ! Comentario
IF reg1 > 5 THEN
! Comentario
reg2 := 0;
ENDIF

20.7 Marcadores de sustitucin


Los marcadores de sustitucin pueden usarse temporalmente para representar a partes
del programa que no estn definidas an. Los programas que contienen marcadores de
sustitucin son correctos sintcticamente y pueden cargarse en la memoria de
programas.

Marcador de sustitucinRepresenta:
<TDN> Definicin de tipo de datos
<DDN> Declaracin de dato
<RDN> Declaracin de rutina
<PAR> Parmetro alternativo opcional formal

Descripcin general de RAPID 77


Elementos bsicos

<ALT> Parmetro opcional formal


<DIM> Dimensin de matriz formal (conformada)
<SMT> Instruccin
<VAR> Referencia a un objeto de datos (variable, variable persistente
o parmetro)
<EIT> Clusula Else IF de una instruccin IF
<CSE> Clusula Case de una instruccin de test
<EXP> Expresin
<ARG> Argumento de llamada a procedimiento
<ID> Identificador

20.8 Encabezado del archivo


Los archivos de programa comienzan con el encabezado de archivo siguiente:

%%%
VERSION:1 (Versin de programa M94 o M94A)
LANGUAGE:ENGLISH (ingls u otro idioma:
%%% GERMAN o FRENCH)

20.9 Sintaxis

Identificadores

<identificador> ::=
<ident>
| <ID>
<ident> ::= <letra> {<letra> | <dgito> | _}

Valores numricos

<literal numrico> ::=


<entero> [ <exponente> ]
| <entero> . [ <entero> ] [ <exponente> ]
| [ <entero> ] . <entero> [ <exponente> ]
<entero> ::= <dgito> {<dgito>}
<Exponente> ::= (E | e) [+ | -] <entero>

Valores lgicos

<literal booleano> ::= TRUE | FALSE

78 Descripcin general de RAPID


Elementos bsicos

Valores de cadena de caracteres

<literal de cadena de caracteres> ::= " {<carcter> | <cdigo de carcter> } "


<cdigo de carcter> ::= \ <dgito hexadecimal> <dgito hexadecimal>
<dgito hexadecimal> ::= <dgito> | A | B | C | D | E | F | a | b | c | d | e | f

Comentarios

<comentario> ::=
! {<carcter> | <tabulador>} <salto de lnea>

Caracteres

<carcter> ::= -- ISO 8859-1 --


<salto de lnea> ::= -- carcter de control de salto de lnea --
<dgito> ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
<letra> ::=
<letra mayscula>
| <letra minscula>
<letra mayscula> ::=
A|B|C|D|E|F|G|H|I|J
|K|L|M|N|O|P|Q|R|S|T
|U|V|W|X|Y|Z||||
||||||||||
| | | 1) | | | | | | |
| | | | | 2) | 3) |
<Letra minscula> ::=
a|b|c|d|e|f|g|h|i|j 1) Letra eth islandesa
|k|l|m|n|o|p|q|r|s|t 2) Letra Y con acento agudo
|u|v|w|x|y|z|||| 3) Letra thorn islandesa
| | | | | | | | | |
| | | | 1) | | | | | |
| | | | | | 2) | 3) |

Descripcin general de RAPID 79


Elementos bsicos

80 Descripcin general de RAPID


Mdulos

21 Mdulos
Los programas se dividen en programa y mdulos de sistema. Tambin es posible
dividir un programa en distintos mdulos (consulte la Figura 1).

Memoria de programas
Programa
Datos de programa

Rutina principal
Mdulo principal
Rutina1
Mdulo1
Rutina2
Mdulo2
Rutina3
Mdulo3
Mdulo4
Datos de programa
Rutina4
Rutina5

Mdulo de sistema1
Datos de programa

Mdulo de sistema2 Rutina6

Rutina7

Figura 1 Es posible dividir un programa en distintos mdulos.

21.1 Mdulos de programa


Un mdulo de programa puede estar compuesto por datos y rutinas diferentes. Es
posible copiar cada mdulo, o el programa en su totalidad, a un disquete, a un disco en
RAM, etc., y viceversa.
Uno de los mdulos contiene el procedimiento de entrada, un procedimiento global
denominado main. De hecho, la ejecucin del programa implica la ejecucin del
procedimiento main. El programa puede contener muchos mdulos, pero slo uno de
ellos puede contener el procedimiento main.
Por ejemplo, un mdulo puede definir la interaccin con equipos externos o contener
datos geomtricos que se generan desde sistemas de CAD o se crean en lnea mediante
digitalizacin (programacin con la unidad de programacin).
Si bien las instalaciones pequeas se suelen reflejar en un solo mdulo, las
instalaciones de mayor tamao pueden tener un mdulo main que hace referencia a
rutinas y/o datos almacenados en uno o varios mdulos adicionales.

Descripcin general de RAPID 81


Mdulos

21.2 Mdulos de sistema


Los mdulos de sistema se utilizan para definir datos y rutinas comunes y especficos
del sistema, como por ejemplo, herramientas. No se incluyen cuando se guarda un
programa, lo que significa que cualquier cambio que se haga en un mdulo de sistema
afectar a todos los programas almacenados actualmente en la memoria de programas
o que se carguen posteriormente en ella.

21.3 Declaracin de mdulos


La declaracin de un mdulo especifica el nombre y los atributos del mdulo. Estos
atributos slo pueden aadirse fuera de lnea, no a travs de la unidad de programacin.
A continuacin aparecen algunos ejemplos de los atributos de un mdulo:

Atributo Si se especifica, el mdulo:


SYSMODULE Se trata de un mdulo de sistema (si no se indica, es un mdulo
de programa)
NOSTEPIN No se permite su activacin durante la ejecucin paso a paso
VIEWONLY No se permite su modificacin
READONLY No se permite su modificacin, pero s la eliminacin de este
atributo
NOVIEW No se permite su visualizacin, slo su ejecucin Las rutinas
globales pueden utilizarse desde otros mdulos y se ejecutan
siempre con el atributo NOSTEPIN. Los valores de los datos
globales en cada momento pueden usarse desde otros mdulos
o desde la ventana de datos de la unidad de programacin. No
es posible guardar los mdulos o programas que contengan un
mdulo de programa con el atributo NOVIEW. Por tanto,
NOVIEW debe ser utilizado principalmente por los mdulos de
sistema. El atributo NOVIEW slo puede definirse fuera de
lnea desde un PC.
por ejemplo MODULE nombre_mdulo (SYSMODULE, VIEWONLY)
!Definicin de tipo de datos
!Declaraciones de datos
!Declaraciones de rutinas
ENDMODULE

No se permite que un mdulo tenga el mismo nombre que otro mdulo o una rutina o
un dato globales.

82 Descripcin general de RAPID


Mdulos

21.4 Sintaxis

Declaracin de mdulos

<declaracin de mdulo> ::=


MODULE <nombre de mdulo> [ <lista de atributos de mdulo> ]
<lista de definiciones de tipos>
<lista de declaraciones de datos>
<lista de declaraciones de rutinas>
ENDMODULE
<nombre de mdulo> ::= <identificador>
<lista de atributos de mdulo> ::= ( <atributo de mdulo> { , <atributo de mdulo>
} )
<atributo de mdulo> ::=
SYSMODULE
| NOVIEW
| NOSTEPIN
| VIEWONLY
| READONLY

(Nota: Si se utilizan dos o ms atributos, deben aparecer en el orden indicado


anteriormente. El atributo NOVIEW slo puede especificarse por s solo o junto con
el atributo SYSMODULE.)

<lista de definiciones de tipos> ::= { <definicin de tipo> }


<lista de declaraciones de datos> ::= { <declaracin de datos> }
<lista de declaraciones de rutinas> ::= { <declaracin de rutina> }

Descripcin general de RAPID 83


Mdulos

84 Descripcin general de RAPID


Rutinas

22 Rutinas
Existen tres tipos de rutinas (subprogramas): procedimientos, funciones y rutinas TRAP.

- Los procedimientos no devuelven ningn valor y se utilizan en el contexto de


las instrucciones.
- Las funciones devuelven un valor de un tipo concreto y se utilizan en el
contexto de las expresiones.
- Las rutinas TRAP proporcionan una forma de responder a las interrupciones.
Las rutinas TRAP pueden asociarse con una interrupcin determinada. Cuando
posteriormente se produce una interrupcin concreta, se ejecuta la rutina TRAP
correspondiente. Las rutinas TRAP no pueden ejecutarse explcitamente desde
el programa.

22.1 mbito de una rutina


El mbito de una rutina es el rea dentro de la cual es visible la rutina. La inclusin de
la directiva opcional local en una declaracin de rutina hace que sta sea local
(dentro del mdulo). De lo contrario, la rutina se considera global.

Ejemplo: LOCAL PROC rutina_local (...


PROC rutina_global (...

Las reglas de mbito siguientes slo se aplican a las rutinas (consulte el ejemplo de
la Figura 2):

- El mbito de una rutina global puede incluir cualquier mdulo.


- El mbito de una rutina local comprende el mdulo al que pertenece.
- Dentro de su mbito, las rutinas locales suponen la ocultacin de rutinas
globales o datos que tengan el mismo nombre.
- Dentro de su mbito, las rutinas suponen la ocultacin de instrucciones, rutinas
predefinidas y datos que tengan el mismo nombre.

Mdulo1 Mdulo2

Rutina local a Rutina local a


Rutina local b Rutina local e
Rutina c Rutina f

Rutina d Rutina g
Rutina e Rutina h

Figura 2 Ejemplo: Las rutinas siguientes estn disponibles desde la rutina h:


Mdulo1 - Rutina c, d.
Mdulo2 - Todas las rutinas.

Descripcin general de RAPID 85


Rutinas

No se permite que una rutina tenga el mismo nombre que otra rutina o que un dato del
mismo mdulo. No se permite que una rutina global tenga el mismo nombre que un
mdulo o que una rutina o un dato global de otro mdulo.

22.2 Parmetros
La lista de parmetros de la declaracin de una rutina especifica los argumentos (los
parmetros reales) que deben/pueden entregarse al llamar a la rutina.

Existen cuatro tipos de parmetros (en el modo de acceso):

- Normalmente, los parmetros se usan slo como datos de entrada y se tratan


como variables de la rutina. Cuando se modifica el contenido de esta variable,
no cambia el argumento correspondiente.
- El parmetro INOUT especifica que el argumento correspondiente debe ser una
variable (un entero, un elemento o un componente) o una variable persistente
entera cuyo valor puede ser modificado por la rutina.
- El parmetro VAR especifica que el argumento correspondiente debe ser una
variable (un entero, un elemento o un componente) cuyo valor puede ser
modificado por la rutina.
- El parmetro PERS especifica que el argumento correspondiente debe ser una
variable persistente entera cuyo valor puede ser modificado por la rutina.

Si se actualiza un parmetro de tipo INOUT, VAR o PERS, significa que, en realidad,


se actualiza el argumento en s, lo que posibilita el uso de argumentos para devolver
valores a la rutina desde la que se hace la llamada.

Ejemplo: PROC routine1 (num in_par, INOUT num inout_par,


VAR num var_par, PERS num pers_par)

Un parmetro puede ser opcional y puede ser omitido de la lista de argumentos de la


llamada a una rutina. Los parmetros opcionales se indican mediante una barra
invertida \ precediendo al parmetro.

Ejemplo: PROC routine2 (num required_par \num optional_par)

No se permiten las referencias al valor de un parmetro opcional omitido en la llamada


a una rutina. Esto significa que es necesario comprobar las llamadas a las rutinas, para
determinar la existencia de parmetros opcionales antes de utilizarlos.

Dos o ms parmetros opcionales pueden ser excluyentes entre s (es decir, que la
declaracin de uno de ellos excluye al otro), lo que significa que slo uno de ellos
puede estar presente en la llamada a una rutina. Esto se indica mediante una barra
vertical | entre los parmetros afectados.

Ejemplo: PROC routine3 (\num exclude1 | num exclude2)

86 Descripcin general de RAPID


Rutinas

El tipo especial switch (slo) puede ser asignado a parmetros opcionales y


proporciona una forma de usar argumentos modificadores, es decir, argumentos que
slo se especifican por nombre (no por valor). No es posible transferir un valor a un
parmetro modificador. La nica forma de usar un parmetro modificador es
comprobar su presencia mediante la funcin predefinida Present.

Ejemplo: PROC routine4 (\switch on | switch off)


...
IF Present (off) THEN
...
ENDPROC

Es posible entregar matrices como argumentos. El grado de un argumento de matriz


debe coincidir con el grado del parmetro formal correspondiente. La dimensin de un
parmetro de matriz est conformada (marcada con *). Por tanto, la dimensin real
depende de la dimensin del argumento correspondiente de la llamada a una rutina. Las
rutinas pueden determinar la dimensin actual de un parmetro mediante la funcin
predefinida Dim.

Ejemplo: PROC rutina5 (VAR num palet{*,*})

22.3 Finalizacin de una rutina


La ejecucin de un procedimiento finaliza explcitamente con una instruccin
RETURN o implcitamente cuando se alcanza el final (ENDPROC, BACKWARD o
ERROR) del procedimiento.

La evaluacin de una funcin debe finalizar con una instruccin RETURN.

La ejecucin de una rutina TRAP finaliza explcitamente con la instruccin RETURN


o implcitamente cuando se alcanza el final (ENDTRAP o ERROR) de la rutina TRAP.
La ejecucin contina en el punto en el que se produjo la interrupcin.

22.4 Declaraciones de rutinas


Las rutinas pueden contener declaraciones de rutinas (con sus parmetros), datos, un
cuerpo principal, un gestor de ejecucin hacia atrs (slo en el caso de los
procedimientos) y un gestor de errores (consulte la Figura 3). No se permite el
anidamiento de las declaraciones de rutinas, es decir, no se permite declarar una rutina
dentro de una rutina.

Descripcin general de RAPID 87


Rutinas

Mdulo

Declaraciones de datos

Rutina a
Declaracin de rutina
Rutina b
Declaraciones de datos
Rutina c
Cuerpo (instrucciones)
Rutina d
Gestor de ejecucin hacia atrs
Rutina e
Gestor de errores

Figura 3 Las rutinas pueden contener declaraciones, datos, un cuerpo principal, un gestor de
ejecucin hacia atrs y un gestor de errores.

Declaracin de procedimientos

Ejemplo: Multiplicar por un factor todos los elementos una matriz de nmeros.

PROC arrmul( VAR num array{*}, num factor)


FOR index FROM 1 TO dim( array, 1 ) DO
array{index} := array{index} * factor;
ENDFOR
ENDPROC

Declaracin de funciones

Las funciones pueden devolver valores de cualquier tipos de datos, excepto matrices.

Ejemplo: Devolver la longitud de un vector.

FUNC num veclen (pos vector)


RETURN Sqrt(Pow(vector.x,2)+Pow(vector.y,2)+Pow(vector.z,2));
ENDFUNC

Declaracin de rutina TRAP

Ejemplo: Responder a la interrupcin de alimentador vaco.

TRAP feeder_empty
wait_feeder;
RETURN;
ENDTRAP

88 Descripcin general de RAPID


Rutinas

22.5 Llamada a procedimientos


Cuando se realiza una llamada a un procedimiento, se utilizarn los argumentos que
corresponden a los parmetros del procedimiento:

- Es necesario especificar los parmetros obligatorios. Adems, es necesario


especificarlos en el orden correcto.
- Puede omitir los argumentos opcionales.
- Es posible usar argumentos opcionales para transferir parmetros de una rutina
a otra.

Consulte el Captulo Utilizacin de llamadas a funciones en las expresiones en la


pgina 106 para obtener ms detalles.

El nombre del procedimiento puede especificarse de forma esttica mediante un


identificador (enlazamiento en tiempo de compilacin) o especificarse en tiempo de
ejecucin a partir de una expresin de cadena de caracteres (enlazamiento en tiempo
de ejecucin). Si bien el enlazamiento en tiempo de compilacin debe considerarse la
forma normal de llamar a procedimientos, hay ocasiones en las que el enlazamiento
en tiempo de ejecucin permite crear un cdigo muy eficiente y compacto. El
enlazamiento en tiempo de ejecucin se define mediante la inclusin de signos de
porcentaje antes y despus de la cadena de caracteres que se usa como nombre del
procedimiento.

Ejemplo: ! Enlazamiento en tiempo de compilacin


TEST products_id
CASE 1:
proc1 x, y, z;
CASE 2:
proc2 x, y, z;
CASE 3:
...
! El mismo ejemplo con enlazamiento en tiempo de ejecucin
% proc + NumToStr(product_id, 0) % x, y, z;
...
! Otra vez el mismo ejemplo, pero con otra variante de enlazamiento en
tiempo de ejecucin
VAR string procname {3} :=[proc1, proc2, proc3];
...
% procname{product_id} % x, y, z;
...

Tenga en cuenta que el enlazamiento en tiempo de ejecucin slo est disponible para
llamadas a procedimientos, no para llamadas a funciones. Si se hace referencia a un
procedimiento desconocido mediante enlazamiento en tiempo de ejecucin, la variable
de sistema ERRNO cambia al valor ERR_REFUNKPRC. Si se hace referencia a un
error de llamada de procedimiento (de sintaxis, no de procedimiento) mediante
enlazamiento en tiempo de ejecucin, la variable ERRNO cambia al valor
ERR_CALLPROC.

Descripcin general de RAPID 89


Rutinas

22.6 Sintaxis

Declaracin de rutina

<declaracin de rutina> ::=


[LOCAL] ( <declaracin de procedimiento>
| <declaracin de funcin>
| <declaracin de rutina TRAP> )
| <comentario>
| <RDN>

Parmetros

<lista de parmetros> ::=


<primera declaracin de parmetro> { <siguiente declaracin de
parmetro> }
<primera declaracin de parmetro> ::=
<declaracin de parmetro>
| <declaracin de parmetro opcional>
| <PAR>
<siguiente declaracin de parmetro> ::=
, <declaracin de parmetro>
| <declaracin de parmetro opcional>
| ,<declaracin de parmetro opcional>
| , <PAR>
<declaracin de parmetro opcional> ::=
\ ( <declaracin de parmetro> | <ALT> )
{ | ( <declaracin de parmetro> | <ALT> ) }
<declaracin de parmetro> ::=
[ VAR | PERS | INOUT] <tipo de dato>
<identificador> [ { ( * { , * } ) | <DIM>] }
| switch <identificador>

Declaracin de procedimiento

<declaracin de procedimiento> ::=


PROC <nombre de procedimiento>
( [ <lista de parmetros> ] )
<lista de declaraciones de datos>
<lista de instrucciones>
[ BACKWARD <lista de instrucciones> ]
[ ERROR <lista de instrucciones> ]
ENDPROC
<nombre de procedimiento> ::= <identificador>
<lista de declaraciones de datos> ::= { <declaracin de datos> }

90 Descripcin general de RAPID


Rutinas

Declaracin de funcin
<declaracin de funcin> ::=
FUNC <tipo de dato de valor>
<nombre de funcin>
( [ <lista de parmetros> ] )
<lista de declaraciones de datos>
<lista de instrucciones>
[ ERROR <lista de instrucciones> ]
ENDFUNC
<nombre de funcin> ::= <identificador>

Declaracin de rutina TRAP


<declaracin de rutina TRAP> ::=
TRAP <nombre de rutina TRAP>
<lista de declaraciones de datos>
<lista de instrucciones>
[ ERROR <lista de instrucciones> ]
ENDTRAP
<nombre de rutina TRAP> ::= <identificador>

Llamada a procedimiento
<llamada a procedimiento> ::= <procedimiento> [ <lista de argumentos de
procedimiento> ] ;
<procedimiento> ::=
<identificador>
| % <expresin> %
<lista de argumentos de procedimiento> ::= <primer argumento de procedimiento>
{ <argumento de procedimiento> }
<primer argumento de procedimiento> ::=
<argumento obligatorio de procedimiento>
| <argumento opcional de procedimiento>
| <argumento condicional de procedimiento>
| <ARG>
<argumento de procedimiento> ::=
, <argumento obligatorio de procedimiento>
| <argumento opcional de procedimiento>
| , <argumento opcional de procedimiento>
| <argumento condicional de procedimiento>
| , <argumento condicional de procedimiento>
| , <ARG>
<argumento obligatorio de procedimiento> ::= [ <identificador> := ] <expresin>
<argumento opcional de procedimiento> ::= \ <identificador> [ := <expresin> ]
<argumento condicional de procedimiento> ::= \ <identificador> ? ( <parmetro> |
<VAR> )

Descripcin general de RAPID 91


Rutinas

92 Descripcin general de RAPID


Tipos de datos

23 Tipos de datos
Existen dos clases diferentes de tipos de datos:

- Los tipos atmicos son atmicos en cuanto a que no estn definidos partiendo
de ningn otro tipo y que no pueden ser divididos en distintas partes o distintos
componentes. Un ejemplo es el tipo num.
- Los tipos de datos de registro son tipos compuestos con componentes con
nombre y ordenados. Un ejemplo es pos. Los componentes pueden ser de tipo
atmico o de registro.

Los valores de registro pueden expresarse usando una representacin agregada.

Por ejemplo: [ 300, 500, profundidad ] Valor agregado de registro pos.

El acceso a un componente concreto de un dato de registro puede realizarse a travs


del nombre del componente.

Por ejemplo: pos1.x := 300; Asignacin del componente x de pos1.

23.1 Tipos de datos sin valores


Cada tipo de datos disponible es un tipo de datos con valor o un tipo de datosin valor.
En otras palabras, un tipo de dato con valor representa alguna forma de valor. Los
datos sin valor no pueden usarse en operaciones basadas en valores:

- Inicializacin
- Asignacin (:=)
- Comprobaciones de igualdad (=) y de diferencia (<>)
- Instrucciones TEST
- Parmetros IN (modo de acceso) en llamadas a rutinas
- Tipos de datos de funcin (return)

Los tipos de datos de entrada (signalai, signaldi, signalgi) son del tipo de datos de
semivalor. Estos datos pueden usarse en operaciones basadas en valores, excepto la
inicializacin y la asignacin:

En la descripcin de un tipo de datos, slo se especifica cuando es un tipo de datos de


semivalor o sin valor.

Descripcin general de RAPID 93


Tipos de datos

23.2 Tipos de datos de igualdad (alias)


Un tipo de dato de alias se define como equivalente a otro tipo de dato. Los datos con
los mismos tipos de datos pueden usarse unos en sustitucin de otros.

Ejemplo: VAR dionum high:=1;


VAR num level; Esto es correcto dado que dionum es
un alias
level:= high; Tipo de dato de num

23.3 Sintaxis
<definicin de tipo>::=
[LOCAL] ( <definicin de registro>
| <definicin de alias> )
| <comentario>
| <TDN>
<definicin de registro>::=
RECORD <identificador>
<lista de componentes de registro> ;
ENDRECORD
<lista de componentes de registro> ::=
<definicin de componente de registro> |
<definicin de componente de registro> <lista de componentes
de registro>
<definicin de componente de registro> ::=
<tipo de dato> <nombre de componente de registro>
<definicin de alias> ::=
ALIAS <tipo de dato> <identificador> ;
<tipo de dato> ::= <identificador>

94 Descripcin general de RAPID


Datos

24 Datos
Existen tres tipos de datos: variables, variables persistentes y constantes.

- Las asignacin de nuevos valores a las variables puede realizarse durante la


ejecucin del programa.
- Un valor persistente puede describirse como una variable persistente. Esto se
consigue haciendo que una actualizacin del valor de una variable persistente
provoque automticamente la actualizacin del valor de inicializacin de la
declaracin de la variable persistente (cuando se guarda un programa, el valor
de inicializacin de cualquier declaracin de variable persistente refleja el valor
actual de la variable persistente).
- Las constantes representan valores fijos y no es posible asignarles nuevos
valores.

Las declaraciones de datos introducen los datos mediante la asociacin de un nombre


(un identificador) a un tipo de dato. Excepto en el caso de los datos predefinidos y las
variables de bucle, es necesario declarar todos los datos utilizados.

24.1 mbito de un dato


El mbito de un dato es el rea dentro de la cual es visible el dato. La inclusin de la
directiva opcional local en una declaracin de dato hace que ste sea local (dentro
del mdulo). De lo contrario, el dato se considera global. Recuerde que la directiva
local slo puede usarse en el nivel de mdulo, no dentro de una rutina.

Ejemplo: LOCAL VAR num variable_local;


VAR num variable_global;

Los datos declarados fuera de una rutina se conocen como datos de programa. A los
datos de programa se les aplican las siguientes reglas de mbito:

- El mbito de un dato de programa predefinido o global puede incluir cualquier


mdulo.
- El mbito de un dato de programa local comprende el mdulo al que pertenece.
- Dentro de su mbito, los datos de programa locales suponen la ocultacin de
cualquier dato o rutina globales que tengan el mismo nombre (incluidas las
instrucciones, las rutinas predefinidas y los datos).

No se permite que los datos de programa tengan el mismo nombre que otros datos o
rutinas del mismo mdulo. No se permite que los datos de programa globales tengan
el mismo nombre que otros datos globales o rutinas de otros mdulos. No se permite
que una variable persistente tenga el mismo nombre que otra variable persistente del
mismo programa.

Descripcin general de RAPID 95


Datos

Los datos declarados dentro de una rutina se conocen como datos de rutina. Recuerde
que los parmetros de una rutina tambin se manejan como datos de rutina. A los datos
de rutina se les aplican las siguientes reglas de mbito:

- El mbito de un dato de rutina comprende la rutina a la que pertenece.


- Dentro de su mbito, los datos de rutina suponen la ocultacin de las rutinas o
los datos que tengan el mismo nombre.

Consulte el ejemplo de la Figura 4.

Mdulo1 Mdulo2

Dato local a Dato local a


Dato local b Dato local f
Dato c Dato g
Dato d Rutina local e
Dato e1
Dato e
Rutina h
Dato h1
Dato c

Figura 4 Ejemplo: Los datos siguientes estn disponibles desde la rutina e:


Mdulo1: Datos c, d.
Mdulo2: Datos a, f, g, e1.
Los datos siguientes estn disponibles desde la rutina h:
Mdulo1: Dato d.
Mdulo2: Datos a, f, g, h1, c.

No se permite que los datos de rutina tengan el mismo nombre que otros datos o
etiquetas de la misma rutina.

24.2 Declaracin de variables


Las variables se introducen mediante declaraciones de variable.

Ejemplo: VAR num x;

Es posible asignar un formato de matriz (de grado 1, 2 3) a variables de cualquier tipo,


mediante la especificacin de informacin de dimensiones en la declaracin. Las
dimensiones son valores enteros mayores que 0.

Ejemplo: VAR pos pallet{14, 18};

Es posible inicializar las variables con tipos de valores (es decir, indicar su valor
inicial). La expresin utilizada para inicializar una variable de programa debe ser
constante. Recuerde que se permite utilizar el valor de una variable no inicializada,
pero sta no est definida, es decir, tiene el valor cero.

96 Descripcin general de RAPID


Datos

Ejemplo: VAR string author_name := Juan Bueno;


VAR pos start := [100, 100, 50];
VAR num maxno{10} := [1, 2, 3, 9, 8, 7, 6, 5, 4, 3];

El valor de inicializacin se establece en las situaciones siguientes:

- Al abrir el programa
- Cuando se ejecuta el programa desde el principio

24.3 Declaracin de variables persistentes


Las variables persistentes slo pueden declararse en el nivel de mdulo, no dentro de
una rutina. Adems, siempre deben tener un valor inicial. El valor de inicializacin
debe ser un solo valor (sin datos ni operandos) o un solo agregado con miembros que,
a su vez, sean valores simples o agregados simples.

Ejemplo: PERS pos refpnt := [100.23, 778.55, 1183.98];

Es posible asignar un formato de matriz (de grado 1, 2 3) a variables persistentes de


cualquier tipo, mediante la especificacin de informacin de dimensiones en la
declaracin. Las dimensiones son valores enteros mayores que 0.

Ejemplo: PERS pos pallet{14, 18} := [...];

Recuerde que si se actualiza el valor de una variable persistente, el hacerlo provoca


automticamente la actualizacin del valor de inicializacin de la declaracin de la
variable persistente.

Ejemplo: PERS num reg1 := 0;


...
reg1 := 5;
Despus de la ejecucin, el programa tiene el aspecto siguiente:
PERS num reg1 := 5;
...
reg1 := 5;

Es posible declarar dos variables persistentes con el mismo nombre en mdulos


diferentes, si son locales dentro de sus mdulos (PERS LOCAL), sin que ello genere
ningn error en el sistema (se aplican diferentes mbitos de datos). Sin embargo,
recuerde la limitacin que supone que dos variables persistentes tengan siempre el
mismo valor actual (utilizan el mismo espacio de almacenamiento en la memoria).

24.4 Declaracin de constantes


Las constantes se introducen mediante declaraciones de constante. No es posible
modificar el valor de las constantes.
Ejemplo: CONST num pi := 3.141592654;

Descripcin general de RAPID 97


Datos

Es posible asignar un formato de matriz (de grado 1, 2 3) a constantes de cualquier


tipo, mediante la especificacin de informacin de dimensiones en la declaracin. Las
dimensiones son valores enteros mayores que 0.

Ejemplo: CONST pos seq{3} := [[614, 778, 1020],


[914, 998, 1021],
[814, 998, 1022]];

24.5 Inicializacin de datos


El valor de inicializacin de una constante o una variable puede ser una expresin
constante.
El valor de inicializacin de una variable persistente slo puede ser una expresin
literal.

Ejemplo: CONST num a := 2;


CONST num b := 3;
! Sintaxis correcta
CONST num ab := a + b;
VAR num a_b := a + b;
PERS num a__b := 5;
! Sintaxis incorrecta
PERS num a__b := a + b;

En la tabla siguiente puede ver qu ocurre durante distintas actividades, como el


arranque en caliente, un nuevo programa, inicio del programa, etc.

Iniciar Iniciar Iniciar


Iniciar Iniciar Iniciar
Evento de Encendido Abrir, cerrar o programa programa programa
programa programa programa
sistema (arranque en nuevo (mover (mover (mover
(llamada a (despus de (despus de
Afecta a caliente) programa puntero a puntero a puntero a
rutina) ciclo) paro)
main) rutina) cursor)
Constante Sin cambios Inicializacin Inicializacin Inicializacin Sin cambios Sin cambios Sin cambios Sin cambios
Variable Sin cambios Inicializacin Inicializacin Inicializacin Sin cambios Sin cambios Sin cambios Sin cambios
Persistente Sin cambios Inicializacin Inicializacin Inicializacin Sin cambios Sin cambios Sin cambios Sin cambios
Interrupciones Pedidas de Desaparecen Desaparecen Desaparecen Sin cambios Sin cambios Sin cambios Sin cambios
con comando nuevo
Rutina de No se ejecuta Se ejecuta* Se ejecuta No se ejecuta No se ejecuta No se ejecuta No se ejecuta No se ejecuta
puesta en
marcha
SYS_RESET
(con
parmetros de
movimiento)
Archivos Se cierran Se cierran Se cierran Se cierran Sin cambios Sin cambios Sin cambios Sin cambios
Trayectoria Creada de Desaparece Desaparece Desaparece Desaparece Sin cambios Sin cambios Sin cambios
nuevo al
arrancar

* Genera un error cuando hay un error semntico en el programa de la tarea actual.

98 Descripcin general de RAPID


Datos

24.6 Clase de almacenamiento


La clase de almacenamiento de un objeto de datos determina cundo asigna y libera el
sistema la memoria del objeto de datos. La clase de almacenamiento de un objeto de
datos se determina por el tipo de objeto de datos y el contexto de su declaracin. Puede
ser esttica o voltil.

Las constantes, las variables persistentes y las variables de mdulo son estticas, es
decir, que tienen el mismo tipo de almacenamiento durante toda la vida de una tarea.
Esto significa que cualquier valor asignado a una variable persistente o a una variable
de mdulo permanece siempre sin cambios hasta la siguiente asignacin.

Las variables de rutina son voltiles. La memoria necesaria para almacenar el valor de
una variable voltil se asigna en primer lugar con una llamada a la rutina que alberga
la declaracin en la que se encuentra la variable. Ms tarde, la memoria se libera en el
punto de retorno al lugar del programa desde el que se llama a la rutina. Esto significa
que el valor de una variable de rutina est siempre sin definir antes de la llamada a la
rutina y siempre se pierde (queda sin definicin) al final de la ejecucin de la rutina.

En una cadena de llamadas recursivas a rutinas (una rutina que se llama a s misma de
forma directa o indirecta), cada instancia de la rutina recibe una posicin propia en la
memoria para la misma variable de rutina (se crean varias instancias de la misma
variable).

24.7 Sintaxis

Declaracin de datos

<declaracin de dato> ::=


[LOCAL] ( <declaracin de variable>
| <declaracin de variable persistente>
| <declaracin de constante> )
| <comentario>
| <DDN>

Declaracin de variables

<declaracin de variable> ::=


VAR <tipo de dato> <definicin de variable> ;
<definicin de variable> ::=
<identificador> [ { <dim> { , <dim> } } ]
[ := <expresin de constante> ]
<dim> ::= <expresin de constante>

Descripcin general de RAPID 99


Datos

Declaracin de variables persistentes

<declaracin de variable persistente> ::=


PERS <tipo de dato> <definicin de variable persistente> ;
<definicin de variable persistente> ::=
<identificador> [ { <dim> { , <dim> } } ]
:= <expresin literal>

Declaracin de constantes

<declaracin de constante> ::=


CONST <tipo de dato> <definicin de constante> ;
<definicin de constante> ::=
<identificador> [ { <dim> { , <dim> } } ]
:= <expresin de constante>
<dim> ::= <expresin de constante>

100 Descripcin general de RAPID


Instrucciones

25 Instrucciones
Las instrucciones se ejecutan una tras otra a no ser que una instruccin de flujo del
programa, una interrupcin o un error hagan que la ejecucin contine en algn otro
lugar.

La mayora de las instrucciones terminan en punto y coma ;. Las etiquetas terminan


en dos puntos :. Algunas instrucciones pueden contener otras instrucciones y
terminan con palabras clave determinadas:

Instruccin Palabra de terminacin


IF ENDIF
FOR ENDFOR
WHILE ENDWHILE
TEST ENDTEST

Ejemplo: WHILE index < 100 DO


.
index := index + 1;
ENDWHILE

25.1 Sintaxis
<lista de instrucciones> ::= { <instruccin> }
<instruccin> ::=
[<instruccin acorde con el captulo dedicado a las instrucciones en
este manual>
| <SMT>

Descripcin general de RAPID 101


Instrucciones

102 Descripcin general de RAPID


Expresiones

26 Expresiones
Una expresin especifica la evaluacin de un valor. Por ejemplo, puede usarla en las
situaciones siguientes:

- En instrucciones de asignacin, por ejemplo a:=3*b/c;


- Como una condicin de una instruccin IF, por ejemplo IF a>=3 THEN ...
- Como argumento de una instruccin, por ejemplo, WaitTime tiempo;
- Como argumento de una llamada a una funcin, por ejemplo a:=Abs(3*b);

26.1 Expresiones aritmticas


Las expresiones aritmticas se utilizan para evaluar valores numricos.

Ejemplo: 2*pi*radio
Tabla 1: Muestra los distintos tipos de operaciones posibles.

Operador Operacin Tipos de operandos Tipo de resultado

+ suma num + num num3)

+ suma unitaria; conservar el signo +num o +pos igual1)3)

+ suma de vectores pos + pos pos

- resta num - num num3)

- resta unitaria; cambio de signo -num o -pos igual1)3)

- resta de vectores pos - pos pos

* multiplicacin num * num num3)

* multiplicacin de vectores escalares num * pos o pos * num pos

* producto de vectores pos * pos pos

* vinculacin de rotaciones orient * orient orient

/ divisin num / num num

DIV 2) divisin entera num DIV num num

MOD 2) mdulo de entero; resto num MOD num num

1. El resultado recibe el mismo tipo que el operando. Si el operando tiene un tipo de


datos de alias, el resultado recibe el tipo bsico del alias (num o pos).

2. Operaciones enteras, por ejemplo 14 DIV 4=3, 14 MOD 4=2.


(No se permite el uso de operandos no enteros.)

3. Conserva la representacin de entero (exacto) siempre y cuando los operandos y


el resultado se mantengan dentro del subdominio de enteros del tipo num.

Descripcin general de RAPID 103


Expresiones

26.2 Expresiones lgicas


Las expresiones lgicas se utilizan para evaluar valores lgicos (TRUE/FALSE).

Ejemplo: a>5 AND b=3

Tabla 2: Muestra los distintos tipos de operaciones posibles

Operador Operacin Tipos de operandos Tipo de resultado

< menor que num < num booleano

<= menor que o igual a num <= num booleano

= igual a cualquiera 1)= cualquiera 1) booleano


>= mayor que o igual a num >= num booleano

> mayor que num > num booleano

<> distinto de cualquiera 1) <> cualquiera 1) booleano

AND y lgico booleano AND booleano booleano

XOR OR exclusivo booleano XOR booleano booleano

OR o lgico booleano OR booleano booleano

NOT no unitario; negacin NOT booleano booleano

1) Slo tipos de datos con valor. Los operandos deben ser del mismo tipo.

a AND b a XOR b
a Verdadero Falso a Verdadero Falso
b b
Verdadero Verdadero Falso Verdadero Falso Verdadero
Falso Falso Falso Falso Verdadero Falso

a OR b NOT b
a Verdadero Falso
b b
Verdadero Verdadero Verdadero Verdadero Falso
Falso Verdadero Falso Falso Verdadero

104 Descripcin general de RAPID


Expresiones

26.3 Expresiones de cadena de caracteres


Las expresiones de cadena de caracteres se utilizan para realizar operaciones con
cadenas de caracteres.

Ejemplo: IN + PUT da como resultado INPUT


.

Tabla 3: Muestra la nica operacin posible

Tipo de
Operador Operacin Tipos de operandos
resultado

+ concatenacin de cadenas de cadena de caracteres + cadena de


caracteres cadena de caracteres caracteres

26.4 Utilizacin de datos en expresiones


Es posible usar variables enteras, variables persistentes o constantes como parte de
una expresin.

Ejemplo: 2*pi*radio

Matrices

Es posible hacer referencia a una variable, una variable persistente o una constante
declarada como matriz, ya sea como un todo o en sus distintos elementos.

Para hacer referencia a un elemento de matriz se utiliza el nmero de ndice del


elemento. El ndice es un valor entero mayor que 0 y no debe ir ms all de la
dimensin declarada. El valor de ndice 1 se utiliza para seleccionar el primer
elemento. El nmero de elementos de la lista de ndices debe corresponder al grado
declarado (1, 2 3) de la matriz.

Ejemplo: VAR num row{3};


VAR num column{3};
VAR num value;
.
value := column{3}; Slo un elemento de la matriz
row := column; Todos los elementos de la matriz

Registros

Es posible hacer referencia a una variable, una variable persistente o una constante
declarada como registro, ya sea como un todo o en sus distintos componentes.

Para hacer referencia a un componente de un registro, se utiliza el nombre del


componente.

Descripcin general de RAPID 105


Expresiones

Ejemplo: VAR pos home;


VAR pos pos1;
VAR num yvalue;
..
yvalue := home.y; Slo el componente Y
pos1 := home; Toda la posicin

26.5 Utilizacin de agregados en expresiones


Los agregados se utilizan con valores de registro o de matriz.

Ejemplo: pos := [x, y, 2*x]; Agregado de registros pos


posarr := [[0, 0, 100], [0,0,z]]; Agregado de matrices pos

Debe ser posible determinar el tipo de dato de un agregado por su contexto. El tipo de
dato de cada miembro del agregado debe ser igual al tipo del miembro correspondiente
del tipo determinado.

Ejemplo VAR pos pl;


p1 :=[1, -100, 12]; Tipo de agregado pos - determinado
por p1
IF [1, -100, 12] = [a,b,b,] THEN Ilegal ya que no es posible determinar
el tipo de dato de ninguno de los
agregados por su contexto.

26.6 Utilizacin de llamadas a funciones en las expresiones


La llamada a una funcin inicia la evaluacin de una funcin determinada y recibe el
valor devuelto por la funcin.

Ejemplo: Sin(angle)

Los argumentos de la llamada a una funcin se utilizan para transferir datos a


(y posiblemente de) la funcin a la que se llama. El tipo de dato de un argumento debe
ser igual al tipo del parmetro correspondiente de la funcin. Se permite la omisin de
los argumentos opcionales pero el orden de los argumentos (presentes) deben ser el
mismo que el orden de los parmetros formales. Adems, es posible declarar dos o ms
argumentos opcionales que se excluyen entre s, en cuyo caso slo puede estar presente
uno de ellos en la lista de argumentos.

Los argumentos obligatorios se separan entre s mediante una coma ,. El nombre


formal del parmetro puede incluirse u omitirse.

Ejemplo: Polar(3.937, 0.785398) Dos argumentos obligatorios


Polar(Dist:=3.937, Angle:=0.785398) ... con sus nombres

Los argumentos opcionales deben ir precedidos por una barra invertida \ y el nombre
formal del parmetro. Los argumentos de parmetro modificador son un caso algo
especial. No pueden incluir expresiones de argumento. En su lugar, estos argumentos
slo pueden estar presentes o ausentes.
106 Descripcin general de RAPID
Expresiones

Ejemplo: Cosine(45) Un argumento obligatorio


Cosine(0.785398\Rad) ... y un modificador
Dist(p2) Un argumento obligatorio
Dist(\distance:=pos1, p2) ... y uno opcional
Los argumentos condicionales se utilizan para la propagacin sin problemas de los
argumentos opcionales a travs de cadenas de llamadas a rutinas. Se considera que un
argumento condicional est presente si el parmetro opcional especificado (de la
funcin desde la que se hace la llamada) est presente. De lo contrario, se considera
sencillamente como omitido. Recuerde que el parmetro especificado debe ser
opcional.
Ejemplo: PROC Read_from_file (iodev File \num Maxtime)
..
character:=ReadBin (File \Time?Maxtime);
! El tiempo mximo slo se usa si se especifica durante la llamada
a la rutina
! Leer_de_archivo
..
ENDPROC
La lista de parmetros de una funcin asigna un modo de acceso a cada parmetro.
El modo de acceso puede ser in, inout, var o pers:
- Los parmetros IN (los predeterminados) permiten usar cualquier expresin
como argumento. La funcin a la que se llama considera el parmetro como una
constante.
- Los parmetros INOUT requieren que el argumento correspondiente sea una
variable (un elemento, un elemento de una matriz o un componente de un
registro) o una variable persistente. La funcin a la que se llama obtiene un
acceso completo (lectura y escritura) al argumento.
- Los parmetros VAR requieren que el argumento correspondiente sea una
variable (un elemento, un elemento de una matriz o un componente de un
registro). La funcin a la que se llama obtiene un acceso completo (lectura y
escritura) al argumento.
- Los parmetros PERS exigen que el argumento correspondiente sea una
variable persistente entera. La funcin a la que se llama obtiene un acceso
completo (lectura y actualizacin) al argumento.

26.7 Prioridad entre operadores


La prioridad relativa de los operadores determina el orden en el que se evalan.
Los parntesis proporcionan una forma de redefinir la prioridad de los operadores.
Las reglas siguientes implican la siguiente prioridad de los operadores:
* / DIV MOD- Mxima
+-
< > <> <= >= =
AND
XOR OR NOT - Mnima

Descripcin general de RAPID 107


Expresiones

Los operadores con alta prioridad se evalan antes que los operadores con prioridad
baja. Los operadores con la misma prioridad se evalan de izquierda a derecha.

Ejemplo
Expresin Orden de evaluacin Comentario
a+b+c (a + b) + c Regla de izquierda a derecha
a+b*c a + (b * c) * mayor que +
a OR b OR c (a OR b) OR c Regla de izquierda a derecha
a AND b OR c AND d (a AND b) OR (c AND d) AND con ms prioridad que OR
a < b AND c < d (a < b) AND (c < d) < con ms prioridad que AND

26.8 Sintaxis

Expresiones
<expresin> ::=
<expr>
| <EXP>
<expr> ::= [ NOT ] <trmino lgico> { ( OR | XOR ) <trmino lgico> }
<trmino lgico> ::= <relacin> { AND <relacin> }
<relacin> ::= <expresin simple> [ <operador relacional> <expresin simple> ]
<expresin simple> ::= [ <operador de suma> ] <trmino> { <operador de
suma> <trmino> }
<trmino> ::= <principal> { <operador de multiplicacin> <principal> }
<principal> ::=
<literal>
| <variable>
| <variable persistente>
| <constante>
| <parmetro>
| <llamada a funcin>
| <agregado>
| ( <expr> )

Operadores
<operador relacional> ::= < | <= | = | > | >= | <>
<operador de suma> ::= + | -
<operador de multiplicacin> ::= * | / | DIV | MOD

Valores constantes
<literal> ::= <literal numrico>
| <literal de cadena de caracteres>
| <literal booleano>

108 Descripcin general de RAPID


Expresiones

Datos
<variable> ::=
<variable completa>
| <elemento de variable>
| <componente de variable>
<variable completa> ::= <identificador>
<elemento de variable> ::= <variable completa> { <lista de ndices> }
<lista de ndices> ::= <expr> { , <expr> }
<componente de variable> ::= <variable> . <nombre de componente>
<nombre de componente> ::= <identificador>
<variable persistente> ::=
<variable persistente completa>
| <elemento de variable persistente>
| <componente de variable persistente>
<constante> ::=
<constante completa>
| <elemento de constante>
| <componente de constante>

Agregados
<agregado> ::= [ <expr> { , <expr> } ]

Llamadas a funciones
<llamada a funcin> ::= <funcin> ( [ <lista de argumentos de funcin> ] )
<funcin> ::= <identificador>
<lista de argumentos de funcin> ::= <primer argumento de funcin> { <argumento de
funcin> }
<primer argumento de funcin> ::=
<argumento obligatorio de funcin>
| <argumento opcional de funcin>
| <argumento condicional de funcin>
<argumento de funcin> ::=
, <argumento obligatorio de funcin>
| <argumento opcional de funcin>
| , <argumento opcional de funcin>
| <argumento condicional de funcin>
| , <argumento condicional de funcin>
<argumento obligatorio de funcin> ::= [ <identificador> := ] <expr>
<argumento opcional de funcin> ::= \ <identificador> [ := <expr> ]
<argumento condicional de funcin> ::= \ <identificador> ? <parmetro>

Descripcin general de RAPID 109


Expresiones

Expresiones especiales

<expresin constante> ::= <expresin>


<expresin literal> ::= <expresin>
<expresin condicional> ::= <expresin>

Parmetros

<parmetro> ::=
<parmetro completo>
| <elemento de parmetro>
| <componente de parmetro>

110 Descripcin general de RAPID


Recuperacin en caso de error

27 Recuperacin en caso de error


Los errores de ejecucin son situaciones anormales relacionadas con la ejecucin de
un fragmento determinado de un programa. Los errores impiden que la ejecucin
contine (o que esta resulte peligrosa). Algunos de los errores posibles son el
desbordamiento de memoria y la divisin entre cero. Los errores se identifican por
un nmero de error exclusivo y son siempre detectados por el robot. La aparicin de
un error provoca la suspensin de la ejecucin normal del programa y su control se
entrega a un gestor de errores. El concepto de los gestores de errores es que sea posible
responder a los errores que se producen durante la ejecucin y, si es posible,
recuperarse tras el error. Si no es posible continuar con la ejecucin, al menos el gestor
de errores puede hacer que el programa se detenga de la forma ms correcta posible.

27.1 Gestores de errores


Cualquier rutina puede contener un gestor de errores. El gestor de errores es en realidad
parte de la rutina, y el mbito de los datos de la rutina incluye tambin el gestor de
errores de la propia rutina. Si se produce un error durante la ejecucin de la rutina, el
control se transfiere a su gestor de errores.

Ejemplo: FUNC num safediv( num x, num y)


RETURN x / y;
ERROR
IF ERRNO = ERR_DIVZERO THEN
TPWrite "El nmero no puede ser igual a 0";
RETURN x;
ENDIF
ENDFUNC

La variable de sistema ERRNO contiene el nmero del error (ms reciente) y puede
usarse en el gestor de errores para identificador el error. Despus de tomar todas las
acciones oportunas, el gestor de errores puede:

- Reanudar la ejecucin, comenzando por la instruccin en la que se produjo el


error. Esto se hace mediante la instruccin RETRY. Si esta instruccin causa de
nuevo el mismo error, se realizarn un mximo de cuatro recuperaciones, tras
lo cual se detiene la ejecucin.
- Reanudar la ejecucin, comenzando por la instruccin siguiente a la instruccin
en la que se produjo el error. Esto se hace mediante la instruccin TRYNEXT.
- Devolver el control a la rutina desde la que se llam a la rutina actual. Para ello
se utiliza la instruccin RETURN. Si la rutina es una funcin, la instruccin
RETURN debe especificar un valor de retorno adecuado.
- Propagar el error a la rutina desde la que se llam a la rutina actual. Para ello se
utiliza la instruccin RAISE.

Descripcin general de RAPID 111


Recuperacin en caso de error

Cuando se produce un error en una rutina que no contiene ningn gestor de errores o
cuando se alcanza el final del gestor de errores (ENDFUNC, ENDPROC o
ENDTRAP), se llama al gestor de errores del sistema. El gestor de errores del sistema
slo informa del error y detiene la ejecucin.

En una cadena de llamadas a rutinas, cada una de ellas puede tener su propio gestor de
errores. Si se produce un error en una rutina que tiene gestor de errores y el error se
propaga explcitamente mediante la instruccin RAISE, el mismo error se eleva de
nuevo en el punto de la llamada a la rutina (el error se propaga). Cuando se alcanza la
parte superior de la cadena de llamadas (la rutina de entrada de la tarea) sin que se
encuentre ningn gestor de errores o cuando se alcanza el final de cualquiera de los
gestores de errores pertenecientes a la cadena de llamadas, se llama al gestor de errores
del sistema. El gestor de errores del sistema slo informa del error y detiene la
ejecucin. Dado que las llamadas a las rutinas TRAP slo pueden hacerse desde el
sistema (como respuesta a una interrupcin), cualquier propagacin de las rutinas
TRAP se realiza al gestor de errores del sistema.

La recuperacin de errores no est disponible en el caso de las instrucciones del gestor


de ejecucin hacia atrs. Este tipo de errores se propagan siempre hacia el gestor de
errores del sistema.

Adems de los errores detectados y elevados por el robot, los programas pueden elevar
explcitamente los errores mediante la instruccin RAISE. Esta posibilidad puede
usarse para recuperar la ejecucin en situaciones complejas. Por ejemplo, puede usarse
para escapar de posiciones de cdigo anidadas a gran profundidad. Es posible usar los
nmeros de error del 1 al 90 junto con la instruccin RAISE. Los errores elevados
explcitamente de esta forma se tratan exactamente igual que los errores elevados por
el sistema.

Recuerde que no es posible recuperar la ejecucin tras los errores que se producen
dentro de una clusula de error Este tipo de errores se propagan siempre hacia el gestor
de errores del sistema.

112 Descripcin general de RAPID


Interrupciones

28 Interrupciones
Las interrupciones son eventos definidos por el programa e identificados por nmeros
de interrupcin. Las interrupciones se producen siempre que una condicin de
interrupcin resulta verdadera. Al contrario que los errores, el punto en el que se
produce una interrupcin no est relacionado directamente (sincronizado con) ninguna
posicin especfica del cdigo. La aparicin de una interrupcin provoca la suspensin
de la ejecucin normal del programa y su control se entrega a una rutina TRAP.

A pesar de que el robot detecta inmediatamente la aparicin de una interrupcin (slo


retrasada por la velocidad del hardware), su respuesta (mediante una llamada a la rutina
TRAP correspondiente) slo puede tener lugar en posiciones concretas del programa.
Se trata de las siguientes:

- Cuando se entra en la siguiente instruccin


- En cualquier momento durante la ejecucin de una instruccin de espera,
es decir WaitUntil
- En cualquier momento durante la ejecucin de una instruccin de movimiento,
es decir MoveL

Normalmente, esto tiene como resultado un retardo de entre 5 y 120 ms entre la


deteccin de la interrupcin y la respuesta, en funcin del tipo de movimiento que se
est realizando en el momento de la interrupcin.

La elevacin de interrupciones puede estar desactivada o activada. Si las


interrupciones estn desactivadas, las interrupciones que se produzcan se almacenan
en una cola y no se elevan hasta que se activen de nuevo las interrupciones. Recuerde
que la cola de interrupciones puede contener ms de una interrupcin en espera. Las
interrupciones de la cola se elevan en orden FIFO. Las interrupciones siempre estn
desactivadas durante la ejecucin de una rutina TRAP.

Las interrupciones no se manejan si el programa est en el modo paso a paso o si est


detenido. Las interrupciones generadas en estas situaciones no se tratan en absoluto.

El nmero mximo de definiciones de interrupcin en un momento dado est limitado


a 70 por cada tarea de programa. El lmite total establecido por la CPU de E/S es
de 100 interrupciones.

28.1 Manipulacin de interrupciones


La definicin de una interrupcin hace que el robot la conozca. En la definicin se
especifica la condicin de la interrupcin, adems de activar y habilitar la interrupcin.

Ejemplo: VAR intnum sig1int;


.
ISignalDI di1, high, sig1int;

Descripcin general de RAPID 113


Interrupciones

Es posible desactivar una interrupcin que est activada (y viceversa). Durante el


periodo en que una interrupcin est desactivada, su aparicin no se detecta y se
desecha, sin ejecutar ninguna rutina TRAP.

Ejemplo: ISleep sig1int; Desactivar


.
IWatch sig1int; Activar

Es posible deshabilitar una interrupcin que est habilitada (y viceversa). Durante el


periodo en que una interrupcin est deshabilitada, las interrupciones generadas del
tipo especificado se almacenan en una cola y se elevan tan pronto como las
interrupciones se habilitan de nuevo.

Ejemplo: IDisable sig1int; Deshabilitar


.
IEnable sig1int; Habilitar

La eliminacin de una interrupcin supone tambin la eliminacin de su definicin. No


es necesario eliminar explcitamente la definicin de una interrupcin, pero no es
posible definir una interrupcin para una variable de interrupcin hasta que se elimina
la definicin anterior.

Ejemplo: IDelete sig1int;

28.2 Rutinas TRAP


Las rutinas TRAP proporcionan una forma de responder a las interrupciones. Para
conectar una rutina TRAP a una interrupcin determinada, se utiliza la instruccin
CONNECT. Cuando se produce una interrupcin, el control se transfiere
inmediatamente a la rutina TRAP asociada (si la hay). Si se produce una interrupcin
que no tiene ninguna rutina TRAP conectada, el evento se trata como un error no
recuperable, es decir, que causa la finalizacin inmediata de la ejecucin del programa.

Ejemplo: VAR intnum empty;


VAR intnum full;

.PROC main()

CONNECT empty WITH etrap; Conectar rutinas TRAP


CONNECT full WITH ftrap;
ISignalDI di1, high, empty; Definir interrupciones de
alimentador
ISignalDI di3, high, full;
.
IDelete empty;
IDelete full;
ENDPROC

114 Descripcin general de RAPID


Interrupciones

TRAP etrap Responde a la interrupcin


open_valve; alimentador vaco
RETURN;
ENDTRAP

TRAP deteclleno Responde a la interrupcin


close_valve; alimentador lleno
RETURN;
ENDTRAP

Es posible conectar varias interrupciones a una misma rutina TRAP. La variable de


sistema INTNO contiene el nmero de la interrupcin y puede usarse para identificar
una interrupcin desde una rutina TRAP. Una vez tomadas las acciones necesarias, es
posible finalizar la rutina TRAP mediante la instruccin RETURN o cuando se alcanza
el final (ENDTRAP o ERROR) de la rutina TRAP. La ejecucin contina en el punto
en el que se produjo la interrupcin.

Descripcin general de RAPID 115


Interrupciones

116 Descripcin general de RAPID


Ejecucin hacia atrs

29 Ejecucin hacia atrs


Los programas pueden ejecutarse hacia atrs, una instruccin cada vez. La ejecucin
hacia atrs est sujeta a las restricciones generales siguientes:

- Las instrucciones IF, FOR, WHILE y TEST no pueden ejecutarse hacia atrs.
- No es posible retroceder para salir de una rutina cuando se alcanza el comienzo
de la rutina.

29.1 Gestores de ejecucin hacia atrs


Los procedimientos pueden contener gestores de ejecucin hacia atrs en los que se
define la ejecucin hacia atrs de una llamada a un procedimiento.

El gestor de ejecucin hacia atrs es en realidad parte del procedimiento, y el mbito


de los datos de cualquier rutina tambin incluye el gestor de ejecucin hacia atrs del
propio procedimiento.

Ejemplo: PROC MoveTo ()


MoveL p1,v500,z10,tool1;
MoveC p2,p3,v500,z10,tool1;
MoveL p4,v500,z10,tool1;
BACKWARD
MoveL p4,v500,z10,tool1;
MoveC p2,p3,v500,z10,tool1;
MoveL p1,v500,z10,tool1;
ENDPROC

Cuando se llama al procedimiento durante una ejecucin en avance, se produce


lo siguiente:

PROC MoveTo ()

.. MoveL p1,v500,z10,tool1;

MoveTo; MoveC p2,p3,v500,z10,tool1;

.. MoveL p4,v500,z10,tool1;

BACKWARD

MoveL p4,v500,z10,tool1;

MoveC p2,p3,v500,z10,tool1;

MoveL p1,v500,z10,tool1;

ENDPROC

Descripcin general de RAPID 117


Ejecucin hacia atrs

Cuando se llama al procedimiento durante una ejecucin hacia atrs, se produce


lo siguiente:

PROC MoveTo ()

.. MoveL p1,v500,z10,tool1;

MoveTo; MoveC p2,p3,v500,z10,tool1;

.. MoveL p4,v500,z10,tool1;

BACKWARD

MoveL p4,v500,z10,tool1;

MoveC p2,p3,v500,z10,tool1;

MoveL p1,v500,z10,tool1;

ENDPROC

Ni las instrucciones del gestor de ejecucin hacia atrs o ni las del gestor de errores de
una rutina pueden ejecutarse hacia atrs. La ejecucin hacia atrs no puede estar
anidada, es decir, no es posible ejecutar simultneamente hacia atrs dos instrucciones
de una cadena de llamadas.
No es posible ejecutar hacia atrs los procedimientos que no disponen de un gestor de
ejecucin hacia atrs. Los procedimientos cuyos gestores de ejecucin hacia atrs estn
vacos se ejecutan como sin operaciones.

29.2 Limitacin de las instrucciones de movimiento del gestor de ejecucin


hacia atrs
El tipo y la secuencia de instrucciones de movimiento del gestor de ejecucin hacia
atrs deben corresponder al espejo del tipo y la secuencia de instrucciones de la
ejecucin en avance de la misma rutina.

PROC MoveTo ()
MoveL p1,v500,z10,tool1;
MoveC p2,p3,v500,z10,tool1; Plano espejo
MoveL p4,v500,z10,tool1;
BACKWARD
MoveL p4,v500,z10,tool1;
MoveC p2,p3,v500,z10,tool1;
MoveL p1,v500,z10,tool1;
ENDPROC
Recuerde que el orden de CirPoint p2 y ToPoint p3 de MoveC deben ser iguales.
Las instrucciones de movimiento afectadas son todas aquellas instrucciones que
produzcan cualquier movimiento en el robot o en los ejes externos, como por ejemplo
MoveL, SearchC, TriggJ, ArcC, PaintL ...

118 Descripcin general de RAPID


Ejecucin hacia atrs

Cualquier mtodo de programacin que no tenga en cuenta esta limitacin en la


programacin del gestor de ejecucin hacia atrs puede dar lugar a un ejecucin
hacia atrs defectuosa. El movimiento lineal puede dar lugar a un movimiento
circular y viceversa en alguna parte de la trayectoria de ejecucin hacia atrs.

Descripcin general de RAPID 119


Ejecucin hacia atrs

120 Descripcin general de RAPID


Multitarea

30 Multitarea
Los eventos de una clula de robot suelen producirse en paralelo. Entonces, por qu
los programas no funcionan en paralelo?
RAPID en modo multitarea es una forma de ejecutar los programas en (seudo)
paralelo con la ejecucin normal. La ejecucin se inicia en el momento del arranque y
contina de forma indefinida, a no ser que se produzcan errores en el programa. Un
programa en paralelo puede situarse en segundo plano o en primer plano respecto de
otro programa. Tambin puede situarse en el mismo nivel que otro programa.
Para usar esta funcin, es necesario configurar el robot con una TAREA adicional para
cada programa en segundo plano.
Es posible ejecutar hasta 10 tareas diferentes en seudoparalelo. Cada tarea se compone
de un conjunto de mdulos, de forma muy parecida al programa normal. Todos los
mdulos se consideran locales dentro de cada tarea.
Las variables y constantes se consideran locales dentro de cada tarea, al contrario de lo
que ocurre con las variables persistentes. Las variables persistentes que tienen el
mismo nombre y tipo pueden utilizarse en todas las tareas. Si existen dos variables
persistentes con el mismo nombre pero tienen un tipo o un tamao (un nmero de
elementos de matriz) diferente, se produce un error de tiempo de ejecucin.
Las tareas tienen su propia gestin de traps y las rutinas de eventos slo se disparan si
lo indica el propio sistema de tarea (por ejemplo, iniciar, detener, reiniciar....).
Existen determinadas restricciones en el uso de RAPID en multitarea.
- No combine programas en paralelo con un PLC. El tiempo de respuesta es el
mismo que el tiempo de respuesta a interrupciones de una tarea. Obviamente,
esto es cierto cuando la tarea no se encuentra en segundo plano de otro
programa ocupado.
- Slo existe una unidad de programacin, de modo que tenga cuidado para que
las peticiones TPWrite no se mezclen en la ventana del usuario de otras tareas.
- Cuando se ejecuta una instruccin Wait en el modo manual, aparece un cuadro
de simulacin despus de 3 segundos. Esto slo se produce en la tarea principal.
- Las instrucciones de movimiento slo pueden ejecutarse en la tarea principal
(la tarea enlazada con la instancia 0 de programa, consulte el captulo
Parmetros del sistema de la Gua del usuario).
- La ejecucin de una tarea se detiene durante el tiempo en el que otras tareas
estn utilizando el sistema de archivos, es decir, cuando el usuario decide
guardar o abrir un programa o si el programa de una tarea utiliza las
instrucciones load/erase/read/write.
- La unidad de programacin no tiene acceso a tareas distintas de la tarea
principal. Por ello, el desarrollo de programas de RAPID para otras tareas slo
se permite si se carga el cdigo en la tarea principal, o bien fuera de lnea.
Para conocer todos los parmetros, consulte el captulo Parmetros del sistema de la
Gua del usuario.

Descripcin general de RAPID 121


Multitarea

30.1 Sincronizacin de tareas


En muchas aplicaciones, una tarea en paralelo slo supervisa alguna unidad de clula,
de una forma bastante independiente de las dems tareas que se estn ejecutando. En
estos casos, no se necesita ningn mecanismo de sincronizacin. Sin embargo, existen
otras aplicaciones que necesitan saber qu est ocurriendo en la tarea principal, por
ejemplo.

Sincronizacin mediante consulta

Esta forma es la ms sencilla, pero la que presenta un peor rendimiento.

En este caso, se utilizan variables persistentes con las instrucciones WaitUntil, IF,
WHILE o GOTO.

Si se utiliza la instruccin WaitUntil, sta realiza una consulta interna cada 100 ms.
No realice consultas con frecuencias mayores en otras aplicaciones.

Ejemplo

TASK 0

MODULE module1
PERS bool startsync:=FALSE;
PROC main()

startsync:= TRUE;
.

ENDPROC
ENDMODULE

TASK 1

MODULE module2
PERS bool startsync:=FALSE;
PROC main()

WaitUntil startsync;
.

ENDPROC
ENDMODULE

122 Descripcin general de RAPID


Multitarea

Sincronizacin mediante una interrupcin

Se utilizan las instrucciones SetDO y ISignalDO.

Ejemplo

TASK 0

MODULE module1
PROC main()

SetDO do1,1;
.

ENDPROC
ENDMODULE

TASK 1

MODULE module2
VAR intnum isiint1;
PROC main()

CONNECT isiint1 WITH isi_trap;


ISignalDO do1, 1, isiint1;

WHILE TRUE DO
WaitTime 200;
ENDWHILE

IDelete isiint1;

ENDPROC

TRAP isi_trap

ENDTRAP
ENDMODULE

30.2 Comunicacin entre tareas


Es posible utilizar variables persistentes para enviar cualquier tipo de datos entre dos
(o ms) tareas.

Las variables persistentes se consideran globales en todas las tareas. La variable


persistente debe ser del mismo tipo y tamao (las mismas dimensiones de matriz) en
todas las tareas en las que se declare. De lo contrario, se producirn errores de tiempo
de ejecucin.

Descripcin general de RAPID 123


Multitarea

Todas las declaraciones deben especificar un valor inicial para la variable persistente,
pero slo se utiliza con el primer mdulo cargado con la declaracin.

Ejemplo

TASK 0

MODULE module1
PERS bool startsync:=FALSE;
PERS string stringtosend:=;
PROC main()

stringtosend:=Esto es una prueba;

startsync:= TRUE

ENDPROC
ENDMODULE

TASK 1

MODULE module2
PERS bool startsync:=FALSE;
PERS string stringtosend:=;
PROC main()

WaitUntil startsync;

! Leer la cadena de caracteres


IF stringtosend = Esto es una prueba THEN

ENDPROC
ENDMODULE

30.3 Tipo de tarea


Cada tarea adicional (distinta de 0) se pone en marcha con la secuencia de arranque del
sistema. Si la tarea es de tipo STATIC, se reiniciar en la posicin actual (en la que se
encontraba el puntero de programa al apagar el sistema). Si, por el contrario, su tipo es
SEMISTATIC, se reiniciar desde el principio cada vez que se enciende el sistema.
Las tareas de tipo SEMISTATIC tambin inician la recarga de mdulos de la secuencia
de arranque, especificados en los parmetros de sistema, si el archivo del mdulo es
ms reciente que el mdulo cargado.

Tambin es posible utilizar NORMAL como tipo de la tarea, en cuyo caso sta se
comportar de la misma forma que la tarea 0 (la tarea principal que controla el
movimiento del programa). La unidad de programacin slo puede usarse para iniciar
la tarea 0, de manera que la nica forma de iniciar otras tareas de tipo NORMAL es
usar CommunicationWare.

124 Descripcin general de RAPID


Multitarea

30.4 Prioridades
La forma predeterminada de ejecutar las tareas es ejecutar todas ellas en el mismo nivel
y por turnos (un paso bsico en cada instancia). Sin embargo, es posible cambiar la
prioridad de una tarea, ponindola en segundo plano de otra. En este caso, la tarea en
segundo plano slo se ejecuta cuando la tarea en primer plano est esperando
determinados eventos o cuando se haya detenido su ejecucin (en espera). Los
programas de robot que contienen instrucciones de movimiento estn en espera la
mayor parte del tiempo.
El ejemplo siguiente describe algunas situaciones en las que el sistema tiene 10 tareas
(consulte la Figura 5)
Cadena de ciclo 1: Tareas 0, 1 y 8 ocupadas
Cadena de ciclo 2: Tareas 0, 3, 4, 5 y 8 ocupadas
Tareas 1 y 2 en espera
Cadena de ciclo 3: Tareas 2, 4 y 5 ocupadas
Tareas 0, 1, 8 y 9 en espera
Cadena de ciclo 4: Tareas 6 y 7 ocupadas
Tareas 0, 1, 2, 3, 4, 5, 8 y 9 en espera

Cadena 1
Cadena 2
Tarea 0

Tarea 1 Tarea 2 Tarea 3

Tarea 4

Tarea 5 Tarea 6

Tarea 7
Cadena 4
Cadena 3

Tarea 8 Tarea 9

Figura 5 Las tareas pueden tener prioridades diferentes.

Descripcin general de RAPID 125


Multitarea

30.5 Nivel de confianza


El nivel de confianza controla el comportamiento del sistema cuando se detiene una
tarea de tipo SEMISTATIC o STATIC por algn motivo o cuando no es posible
ejecutarla.

SysFail: ste es el comportamiento predeterminado. Todas las dems tareas de tipo


NORMAL (por ejemplo la tarea MAIN) se detienen tambin y el sistema pasa al
estado SYS_FAIL. Se rechazan todas las peticiones de movimiento y de inicio de
programas. Slo un nuevo arranque en caliente permite restablecer el sistema. Esto
debe utilizarse cuando la tarea tiene determinadas supervisiones de seguridad.

SysHalt: Todas las tareas de tipo NORMAL se detienen (normalmente, slo la tarea
principal). El sistema pasa forzosamente al modo de motores desactivados. Cuando se
cambia el sistema al modo de motores activados, es posible mover el motor, pero se
rechazan los nuevos intentos de iniciar el programa. Un nuevo arranque en caliente
permite restablecer el sistema.

SysStop: Se detienen todas las tareas de tipo NORMAL (por ejemplo la tarea
principal), pero es posible ponerlas en marcha de nuevo. Tambin se permite hacer
movimientos.

NoSafety: Slo se detiene la tarea actual.

Consulte Parmetros del sistema - Controlador/tarea.

30.6 Tamaos de tareas


En funcin de su tamao, el sistema incorpora un rea de memoria en el momento de
la instalacin. Esta rea es compartida por todas las tareas.

El valor de la variable persistente se almacena en una parte separada del sistema y no


afecta al rea de memoria mencionada. Consulte AveragePers en Parmetros del
sistema.

30.7 Una consideracin a tener en cuenta


Cuando especifique prioridades para las tareas, debe tener en cuenta lo siguiente:

- Utilice siempre el mecanismo de interrupcin o bucles con retardo en las tareas


de supervisin. De lo contrario, la unidad de programacin no tendr nunca
tiempo suficiente para interactuar con el usuario. Adems, si la tarea de
supervisin se ejecuta en primer plano, nunca permitir la ejecucin de otras
tareas en segundo plano.

126 Descripcin general de RAPID


Multitarea

30.8 Esquema de programacin

Primera vez

1. Defina la nueva tarea dentro de los parmetros del sistema (controlador/tarea).


Cambie el valor de type a NORMAL y el valor de TrustLevel a NoSafety.
2. Especifique todos los mdulos que deben cargarse previamente con esta nueva
tarea, tambin dentro de los parmetros del sistema (controlador/mdulos de
la tarea).
3. Cree con la unidad de programacin los mdulos que deben encontrarse en la
tarea (en la tarea MAIN) o crelos fuera de lnea.
4. Pruebe y depure los mdulos en la tarea MAIN hasta que la funcionalidad sea la
adecuada. Nota: esto slo puede hacerse en el modo con motores activados.
5. Cambie el valor de type de la tarea a SEMISTATIC (o STATIC).
6. Reinicie el sistema.

Fase de iteracin

En muchos casos, es suficiente con una iteracin acorde con los puntos 3 y
5 siguientes. Slo si es necesario probar el programa en la tarea MAIN y ejecutar el
cdigo de RAPID en dos tareas simultneas, lo cual podra confundir al usuario, deben
usarse todos los puntos. Nota: Si se utiliza una tarea STATIC, es necesario forzar a la
tarea a recargar el nuevo mdulo cambiado y reiniciarlo desde el principio. Si se siguen
todos los puntos siguientes, esto ocurrir automticamente.

1. Cambie el tipo de la tarea a NORMAL para inhibir la tarea. Las tareas de tipo
NORMAL no se inician al reiniciar el sistema y, si no son la tarea MAIN, no se
ven afectadas por el botn de inicio de la unidad de programacin.
2. Reinicie el sistema.
3. Cargue los mdulos en la tarea MAIN, pruebe, cambie y guarde los mdulos.
Nota: No guarde la tarea, pero guarde los distintos mdulos acorde con los
parmetros del sistema.
4. Devuelva el valor de type de la tarea a SEMISTATIC (o STATIC).
5. Reinicie el sistema.

Fase de finalizacin

1. Cambie el valor de TrustLevel al nivel deseado, por ejemplo SysFail.


2. Reinicie el sistema.

Descripcin general de RAPID 127


Multitarea

128 Descripcin general de RAPID


Sistemas de coordenadas

31 Sistemas de coordenadas

31.1 El punto central de la herramienta del robot (TCP)


La posicin del robot y sus movimientos estn relacionados en todo momento con el
punto central de la herramienta. Este punto suele definirse como una parte determinada
de la herramienta, por ejemplo, la boquilla de una pistola de adhesivo, el centro de una
pinza o el extremo de una herramienta rectificadora.

Es posible definir varios TCPs (varias herramientas), pero slo una est activa en cada
momento. Cuando se registra una posicin, la informacin registrada corresponde al
TCP. ste es tambin el punto que se desplaza a lo largo de una trayectoria determinada
y a una velocidad especificada.

Si el robot est sosteniendo un objeto de trabajo y trabajando con una herramienta


estacionaria, se utiliza un TCP fijo. Si dicha herramienta est activa, la trayectoria
programada y la velocidad son las del objeto de trabajo. Consulte TCPs estacionarios
en la pgina 136.

31.2 Sistemas de coordenadas utilizados para determinar la posicin del TCP


La posicin del (TCP) puede especificarse con distintos sistemas de coordenadas para
facilitar la programacin y el reajuste de los programas.

El sistema de coordenadas definido depende de lo que se espera que haga el robot. Si


no hay ningn sistema de coordenadas definido, las posiciones del robot se definen con
el sistema de coordenadas de la base.

Sistema de coordenadas de la base

En una aplicacin sencilla, la programacin puede realizarse a partir del sistema de


coordenadas de la base, en la que el eje z coincide con el eje 1 del robot (consulte la
Figura 6).

Z
Y

Figura 6 El sistema de coordenadas de la base.

Descripcin general de RAPID 129


Sistemas de coordenadas

El sistema de coordenadas de la base se encuentra en la base del robot:

- El origen est situado en la interseccin del eje 1 con la superficie de la montura


de la base.
- El plano xy coincide con el de la superficie de la montura de la base.
- El eje x apunta hacia delante.
- El eje y apunta hacia la izquierda (desde la perspectiva del robot).
- El eje z apunta hacia arriba.

Sistema de coordenadas mundo

Si el robot est montado en el suelo, la programacin con el sistema de coordenadas de


la base resulta sencillo. Sin embargo, si est montado en posicin invertida
(suspendido), la programacin con el sistema de coordenadas de la base resulta ms
difcil porque las direcciones de los ejes no son las mismas que las direcciones
principales del espacio de trabajo. En estos casos, resulta til definir un sistema de
coordenadas mundo. Si no se define especficamente un sistema de coordenadas
mundo, ste coincide con el sistema de coordenadas de la base.

En ocasiones, varios robots trabajan dentro de un mismo espacio de trabajo de un


centro de produccin. En este caso, se utiliza un mismo sistema de coordenadas mundo
para que los programas de los robots puedan comunicarse unos con otros. Tambin
puede resultar ventajoso utilizar este tipo de sistemas si las posiciones parten de un
punto fijo del taller. Consulte el ejemplo de la Figura 7.

Sistema de coordenadas de la base del robot 2

Y
Z
Z
Y

X
Sistema de coordenadas de
la base del robot 1

Sistema de coordenadas mundo

x
Figura 7 Dos robots (uno de los cuales est suspendido) con un mismo sistema de
coordenadas mundo.

130 Descripcin general de RAPID


Sistemas de coordenadas

Sistema de coordenadas del usuario


Un mismo robot puede trabajar con distintos tiles o superficies de trabajo que pueden
tener posiciones y orientaciones diferentes. Es posible definir un sistema de
coordenadas del usuario para cada til. Si se almacenan todas las posiciones en
coordenadas de objetos, deja de ser necesario reprogramar el robot si necesita mover o
girar un til. Al mover o girar el sistema de coordenadas del usuario en la misma
magnitud que el til, todas las posiciones programadas siguen al accesorio y no es
necesario modificar la programacin.
La definicin del sistema de coordenadas del usuario se basa en el sistema de
coordenadas mundo (consulte la Figura 3).
Z
Sistema de coordenadas del usuario 1

X
Z
Sistema de coordenadas del usuario 2

Z
Y z

X
Sistema de coordenadas de la base
y

Sistema de coordenadas mundo

x
Figura 8 Dos sistemas de coordenadas de usuario describen la posicin de dos tiles diferentes.

Sistema de coordenadas del objeto


El sistema de coordenadas del usuario se utiliza para conseguir distintos sistemas de
coordenadas para distintos tiles o superficies de trabajo. Sin embargo, cada til puede
tener varios objetos de trabajo que deben ser procesados o manipulados por el robot.
Por tanto, con frecuencia resulta til definir un sistema de coordenadas para cada
objeto con el fin de facilitar el ajuste del programa si se mueve el objeto o si es
necesario programar en otra posicin un objeto nuevo idntico al anterior. El sistema
de coordenadas que se refiere a un objeto se conoce como sistema de coordenadas de
objeto. Este sistema de coordenadas tambin resulta muy adecuado durante la
programacin fuera de lnea, dado que suele ser posible tomar directamente las
posiciones de un plano del objeto de trabajo. El sistema de coordenadas del usuario
tambin puede usarse al mover el robot.

Descripcin general de RAPID 131


Sistemas de coordenadas

El sistema de coordenadas de objeto se define a partir del sistema de coordenadas del


usuario (consulte la Figura 9).

z
z
z Sistema de coordenadas de objeto 1

y
Sistema de coordenadas y x
del usuario y
x
x Sistema de coordenadas de
objeto 2

Sistema de coordenadas mundo

x
Figura 9 Dos sistemas de coordenadas de objeto describen la posicin de dos objetos de trabajo
diferentes situados en el mismo til.

Las posiciones programadas se definen en todo caso de forma relativa a un sistema de


coordenadas de objeto. Si se mueve o gira un til, este cambio puede compensarse
mediante el movimiento o el giro del sistema de coordenadas del usuario. No es
necesario modificar las posiciones programadas ni los sistemas de coordenadas de
objetos que se hayan definido. Si se mueve o gira el objeto de trabajo, este cambio
puede compensarse mediante el movimiento o el giro del sistema de coordenadas del
objeto.

Si el sistema de coordenadas del usuario es mvil, es decir, que se utilizan ejes externos
coordinados, el sistema de coordenadas de objeto se mueve junto con el sistema de
coordenadas del usuario. Esto hace posible mover el robot en relacin con el objeto
aunque se est manipulando el til de trabajo.

Sistema de coordenadas de desplazamiento

En ocasiones, es necesario realizar una misma trayectoria en varias partes de un mismo


objeto. Para evitar tener que reprogramar todas las posiciones cada vez, se define un
sistema de coordenadas conocido como el sistema de coordenadas de desplazamiento.
Este sistema de coordenadas tambin puede usarse junto con las bsquedas, para
compensar las diferencias existentes entre las posiciones de las distintas piezas.

El sistema de coordenadas de desplazamiento se define a partir del sistema de


coordenadas de objeto (consulte la Figura 10).

132 Descripcin general de RAPID


Sistemas de coordenadas

y Nueva posicin

y
Posicin original
x

Sistema de coordenadas de desplazamiento

x
Sistema de coordenadas de objeto

Figura 10 Si est activado el desplazamiento del programa, se desplazan todas las posiciones.

Ejes externos coordinados

Coordinacin del sistema de coordenadas del usuario

Si se sita un objeto de trabajo sobre una unidad mecnica externa que se mueve
mientras el robot est siguiendo la trayectoria definida con el sistema de coordenadas
de objeto, es posible definir un sistema mvil de coordenadas del usuario. En este caso,
la posicin y la orientacin del sistema de coordenadas del usuario depender de la
rotacin de los ejes de la unidad externos. Por tanto, la trayectoria y la velocidad
programadas dependern del objeto de trabajo (consulte la Figura 11) y no es necesario
tener en cuenta el hecho de que el objeto sea movido por la unidad externa.

z
Sistema de coordenadas
del usuario
y
x
Eje 2 Eje 3

Eje 1

y
Sistema de coordenadas
mundo

x
Figura 11 Un sistema de coordenadas del usuario, definido de forma que siga los movimientos
de una unidad mecnica externa con 3 ejes.

Descripcin general de RAPID 133


Sistemas de coordenadas

Coordinacin del sistema de coordenadas de la base

Tambin es posible definir un sistema mvil de coordenadas para la base del robot. Esto
resulta interesante en la instalacin, por ejemplo si el robot se monta sobre un track o
un prtico. Al igual que el sistema mvil de coordenadas del usuario, la posicin y la
orientacin del sistema de coordenadas de la base dependern de los movimientos de
la unidad externa. La trayectoria y la velocidad programadas dependern del sistema
de coordenadas de objeto (Figura 12) y no es necesario tener en cuenta el hecho de que
la base del robot es movida por una unidad externa. Es posible tener definidos
simultneamente un sistema coordinado de coordenadas del usuario y un sistema
coordinado de coordenadas de la base.

Sistema de coordenadas
del usuario Sistema de coordenadas
de objeto

Sistema de
coordenadas mundo

Ral

Sistema de coordenadas de la base

Figura 12 Interpolacin de coordenadas con un track por el que se mueve el sistema de


coordenadas de la base del robot.

Para poder calcular los sistemas de coordenadas del usuario y de la base cuando las
unidades utilizadas estn en movimiento, el robot debe tener en cuenta lo siguiente:

- Las posiciones de calibracin de los sistemas de coordenadas del usuario y de


la base
- Las relaciones existentes entre los ngulos de los ejes externos y la traslacin/
rotacin de los sistemas de coordenadas del usuario y de la base.

Estas relaciones se definen a travs de parmetros del sistema.

134 Descripcin general de RAPID


Sistemas de coordenadas

31.3 Sistemas de coordenadas utilizados para determinar la direccin de


la herramienta
La orientacin de una herramienta en una posicin programada depende de la
orientacin del sistema de coordenadas de la herramienta. El sistema de coordenadas
de la herramienta depende del sistema de coordenadas de la mueca, definido en la
brida de montaje de la mueca del robot.

Sistema de coordenadas de la mueca

En una aplicacin sencilla, el sistema de coordenadas de la mueca puede usarse para


definir la orientacin de la herramienta. En este caso, el eje z coincide con el eje 6 del
robot (consulte la Figura 13).

z
x
Figura 13 El sistema de coordenadas de la mueca.

El sistema de coordenadas de la mueca no puede cambiarse y es siempre el mismo


que el de la brida del robot en los aspectos siguientes:

- El origen est situado en el centro de la brida de montaje (en la superficie de


montaje).
- El eje x apunta en el sentido opuesto, hacia el orificio de control de la brida de
montaje.
- El eje z apunta hacia fuera, en ngulo recto respecto de la brida de montaje.

Sistema de coordenadas de la herramienta

La herramienta montada en la brida de montaje del robot requiere con frecuencia su


propio sistema de coordenadas para la definicin de su TCP, que es el origen del
sistema de coordenadas de la herramienta. El sistema de coordenadas de la herramienta
tambin puede usarse para obtener los sentidos de movimiento adecuados durante los
desplazamientos del robot.

Descripcin general de RAPID 135


Sistemas de coordenadas

Si se daa o sustituye una herramienta, lo nico que es necesario hacer es redefinir el


sistema de coordenadas de la herramienta. Normalmente, no es necesario sustituir el
programa.

El TCP (origen) se selecciona como el punto de la herramienta que debe posicionarse


correctamente, por ejemplo, la boquilla de una pistola de adhesivo. Los ejes de
coordenadas de la herramienta se definen como los naturales para la herramienta
correspondiente.

Parte superior
x

x Parte superior
z

Figura 14 Sistema de coordenadas de la herramienta definido habitualmente para una pistola


de soldadura al arco (izquierda) y una pistola de soldadura por puntos (derecha).

El sistema de coordenadas de la herramienta se define a partir del sistema de


coordenadas de la mueca (consulte la Figura 15).

Sistema de coordenadas de la herramienta

x z
Figura 15 El sistema de coordenadas de la herramienta se define a partir del sistema de
coordenadas de la mueca. En este caso corresponde a una pinza.

TCPs estacionarios

Si el robot est sosteniendo un objeto de trabajo y trabajando con una herramienta


estacionaria, se utiliza un TCP fijo. Si dicha herramienta est activa, la trayectoria
programada y la velocidad son las del objeto de trabajo sostenido por el robot.

Esto significa que los sistemas de coordenadas se invierten, como en la Figura 16.

136 Descripcin general de RAPID


Sistemas de coordenadas

Z
Sistema de coordenadas de objeto

Y Z
X
Y

X
Sistema de coordenadas de
la herramienta

Z
Y z
X

Sistema de coordenadas de y
la base

Sistema de coordenadas mundo

x
Figura 16 Si se utiliza un TCP estacionario, el sistema de coordenadas de objeto suele basarse
en el sistema de coordenadas de la mueca.

En el ejemplo de la Figura 16, no se utiliza ni el sistema de coordenadas del usuario ni


el desplazamiento de programa. Sin embargo, es posible utilizarlos y, si se usan,
dependern el uno del otro como se muestra en la Figura 17.

y
z Sistema de coordenadas
de objeto z

x
y
y
z Sistema de coordenadas del usuario Sistema de coordenadas de
desplazamiento
x
x
y

Sistema de coordenadas de la mueca

Figura 17 El desplazamiento del programa tambin puede usarse con TCPs estacionarios.

Descripcin general de RAPID 137


Sistemas de coordenadas

31.4 Informacin relacionada


Descrito en:
Definicin del sistema de coordenadas mundo Gua del usuario - Parmetros
del sistema
Definicin del sistema de coordenadas del usuario Gua del usuario - Calibracin
Tipos de datos - wobjdata
Definicin del sistema de coordenadas de objeto Gua del usuario - Calibracin
Tipos de datos - wobjdata
Definicin del sistema de coordenadas de Gua del usuario - Calibracin
la herramienta
Tipos de datos - tooldata
Definicin de un punto central de herramienta (TCP)Gua del usuario - Calibracin
Tipos de datos - tooldata
Definicin de la base de coordenadas de Gua del usuario - Calibracin
desplazamiento
Resumen sobre RAPID -
Parmetros de movimiento
Movimiento en sistemas de coordenadas distintos Gua del usuario - Movimiento

138 Descripcin general de RAPID


Posicionamiento durante la
ejecucin del programa

32 Posicionamiento durante la ejecucin del programa

32.1 Generalidades
Durante la ejecucin del programa, las instrucciones de posicionamiento del programa
del robot controlan todos los movimientos. La tarea principal de las instrucciones de
posicionamiento es ofrecer la informacin siguiente acerca de cmo realizar los
movimientos:

- El punto de destino del movimiento (definido como la posicin del punto


central de la herramienta, la orientacin de la herramienta, la configuracin del
robot y la posicin de los ejes externos)
- El mtodo de interpolacin utilizado para llegar al punto de destino, por
ejemplo, la interpolacin de los ejes, la interpolacin lineal o la interpolacin
circular.
- La velocidad de los ejes del robot y de los ejes externos
- Los datos de zona (definen cmo deben atravesar el punto de destino tanto el
robot como los ejes externos)
- Los sistemas de coordenadas (herramienta, usuario y objeto) utilizados para el
movimiento.

Como alternativa para la definicin de la velocidad del robot y de los ejes externos, es
posible programar el tiempo del movimiento. Sin embargo, debe evitarlo si utiliza la
funcin de oscilacin. En su lugar, debe utilizar las velocidades de los ejes de
orientacin y los ejes externos para limitar la velocidad cuando se hacen movimientos
pequeos del TCP o ste no se mueve.

En aplicaciones de manipulacin de materiales y pals con movimientos intensivos y


frecuentes, la supervisin del sistema de accionamiento puede saltar y detener el robot
para impedir el sobrecalentamiento de las unidades de accionamiento o los motores. Si
esto se produce, es necesario aumentar ligeramente el tiempo de ciclo mediante la
reduccin de la velocidad o la aceleracin programadas.

32.2 Interpolacin de la posicin y la orientacin de la herramienta

Interpolacin de ejes

Si la exactitud de la trayectoria no es primordial, este tipo de movimiento se utiliza para


mover rpidamente la herramienta de una posicin a otra. La interpolacin de ejes
tambin permite el movimiento de un eje desde cualquier posicin hasta otra dentro de
su mismo espacio de trabajo con un solo movimiento.

Todos los ejes se mueven desde el punto de partida hasta el punto de destino con una
velocidad constante de los ejes (consulte la Figura 18).

Descripcin general de RAPID 139


Posicionamiento durante la
ejecucin del programa

Punto de destino
Trayectoria con interpolacin
Punto de inicio de ejes

Figura 18 La interpolacin suele ser la forma ms rpida de trasladarse de un punto a otro,


debido a que los ejes del robot siguen la trayectoria ms prxima entre el punto de inicio y el
punto de destino (desde la perspectiva de los ngulos de los ejes).

La velocidad del punto central de la herramienta se expresa en mm/seg (en el sistema


de coordenadas de objeto). Dado que la interpolacin se realiza eje por eje, la velocidad
no ser exactamente el valor programado.

Durante la interpolacin, se determina la velocidad del eje delimitador, es decir, el eje


que se desplaza con mayor rapidez respecto de su velocidad mxima para conseguir el
movimiento. A continuacin, se calculan las velocidades de los dems ejes de forma
que todos ellos alcancen el punto de destino al mismo tiempo.

Todos los ejes estn coordinados, con el fin de conseguir una trayectoria independiente
de la velocidad. La aceleracin se optimiza automticamente para conseguir el mximo
rendimiento del robot.

Interpolacin lineal

Durante la interpolacin lineal el TCP se desplaza a lo largo de una lnea recta entre los
puntos de inicio y destino (consulte la Figura 19).
e

Punto de inicio

Figura 19 Interpolacin lineal sin reorientar la herramienta.

Para obtener una trayectoria en el sistema de coordenadas de objeto, los ejes del robot
deben seguir una trayectoria no lineal en el espacio del eje. Cuanto menos lineal es la
configuracin del robot, mayores son las aceleraciones y deceleraciones que se
requieren para hacer que la herramienta se mueva en una lnea recta y consiga la
orientacin deseada para la herramienta. Si la configuracin es extremadamente no
lineal (por ejemplo, cerca de singularidades de la mueca y del brazo), uno o varios de
los ejes requerirn ms par del que pueden generar los motores. En este caso, se reduce
automticamente la velocidad de todos los ejes.

140 Descripcin general de RAPID


Posicionamiento durante la
ejecucin del programa
La orientacin de la herramienta permanece constante durante todo el movimiento, a
no ser que se haya programado una reorientacin. Si se reorienta la herramienta, sta
gira a una velocidad constante.
Es posible especificar una velocidad mxima de rotacin (en grados por segundo)
durante la rotacin de la herramienta. Si se utiliza en este caso un valor bajo, la
reorientacin resultar suave, independientemente de la velocidad definida para el
punto central de la herramienta. Si se utiliza un valor elevado, la velocidad de
reorientacin slo est limitada por las velocidades mximas de los motores. Siempre
y cuando ninguno de los motores supere el lmite de par, se mantiene la velocidad
definida. Por otro lado, si uno de los motores supera el lmite actual, se reduce la
velocidad de todo el movimiento (tanto respecto de la posicin como respecto de la
orientacin).
Todos los ejes estn coordinados, con el fin de conseguir una trayectoria independiente
de la velocidad. La aceleracin se optimiza automticamente.

Interpolacin circular
Las trayectorias circulares se definen mediante tres posiciones programadas que
definen un segmento de crculo. El primer punto que debe programarse es el inicio del
segmento de crculo. El punto siguiente es un punto de apoyo (un punto de crculo)
utilizado para definir la curvatura del crculo. El tercer punto indica el final del crculo
(consulte la Figura 20).
Los tres puntos programados deben estar repartidos en intervalos regulares a lo largo
del arco del crculo, para conseguir que ste sea lo ms exacto posible.
La orientacin definida para el punto de apoyo se utiliza para elegir entre un giro corto
y largo para la orientacin, desde el punto de inicio hasta el punto de destino.
Si la orientacin programada es la misma respecto del crculo en los puntos de inicio
y de destino y la orientacin del punto de apoyo se acerca a la misma orientacin
respecto del crculo, la orientacin de la herramienta permanece constante respecto de
la trayectoria.

Punto de crculo

Punto de destino

Punto de inicio

Figura 20 Interpolacin circular con un breve giro para parte de un crculo (segmento de
crculo), con un punto de inicio, un punto de crculo y un punto de destino.

Sin embargo, si se programa para el punto de apoyo una orientacin ms cercana a la


orientacin girada 180, se selecciona el giro alternativo (consulte la Figura 21).

Descripcin general de RAPID 141


Posicionamiento durante la
ejecucin del programa

Punto de crculo

Punto de destino

Punto de inicio
Figura 21 La interpolacin circular con un giro largo para la orientacin se consigue definiendo
la orientacin en el punto de crculo en el sentido opuesto respecto del punto de inicio.

Siempre y cuando los pares de los motores no sobrepasen los valores permitidos, la
herramienta se mueve a la velocidad programada a lo largo del arco del crculo. Si el
par de cualquiera de los motores es insuficiente, la velocidad se reduce
automticamente en las partes de la trayectoria circular en las que el rendimiento del
motor no es suficiente.
Todos los ejes estn coordinados, con el fin de conseguir una trayectoria independiente
de la velocidad. La aceleracin se optimiza automticamente.

SingArea\Wrist
Durante la ejecucin en las proximidades de un punto singular, la interpolacin lineal o
circular pueden ser problemticas. En este caso, la mejor opcin es utilizar la
interpolacin modificada, lo que significa que los ejes de la mueca se interpolan eje por
eje, con el TCP siguiendo una trayectoria lineal o circular. Sin embargo, la orientacin
de la herramienta ser algo diferente de la orientacin programada. La orientacin
resultante en el punto programado tambin puede ser distinta de la orientacin
programada, debido a dos singularidades (consulte la informacin siguiente).
a2
z1 TCP
movimiento

ABB

WCP

La primera singularidad se produce cuando el TCP est justo delante en lnea recta del
eje 2 (a2 en la figura anterior). El TCP no puede pasar al otro lado del eje 2. En su lugar,
los ejes 2 y 3 se doblan un poco ms para mantener el TCP en el mismo lado y en la
orientacin final del movimiento. A continuacin, se alejan de la orientacin
programada con el mismo tamao.

142 Descripcin general de RAPID


Posicionamiento durante la
ejecucin del programa
La segunda singularidad se produce cuando se prev que el TCP pase cerca del eje z
del eje 1 (z1 en la figura anterior). En este caso, el eje 1 se da la vuelta a la mxima
velocidad y la reorientacin de la herramienta se realiza a continuacin de la misma
forma. El sentido de giro depende de hacia qu lado se dirige el TCP. Se recomienda
cambiar a la interpolacin de ejes (MoveJ) cerca del eje z. Recuerde que el elemento
que causa la singularidad es el TCP, no el WCP como cuando se usan los parmetros
SingArea\Off.
En el caso de SingArea\Wrist, la orientacin en el punto de apoyo del crculo ser la
misma que la programada. Sin embargo, la herramienta no tendr una direccin
constante respecto del plano de crculo como en el caso de la interpolacin circular
normal. Si la trayectoria circular atraviesa una singularidad, la orientacin de las
posiciones programadas requiere en ocasiones una modificacin para evitar los
grandes movimientos de la mueca que pueden producirse si se genera una
reconfiguracin total de la mueca cuando se ejecuta el crculo (los ejes 4 y 6 se
mueven 180 grados cada uno).

32.3 Interpolacin de trayectorias de esquina


El punto de destino se define como un punto de paro para conseguir el movimiento de
un punto a otro. Esto significa que el robot y todos los ejes externos se detienen y que
no ser posible continuar con el posicionamiento hasta que las velocidades de todos los
ejes sean cero y los ejes estn cerca de sus destinos.
Se utilizan puntos de paso para conseguir un movimiento continuo ms all de las
posiciones programadas. De esta forma, es posible atravesar las posiciones a alta
velocidad sin necesidad de reducir innecesariamente la velocidad. Los puntos de paso
generan una trayectoria de esquina (trayectoria de parbola) ms all de la posicin
programada, lo que suele implicar que la posicin programada nunca se alcanza
realmente. El inicio y el final de esta trayectoria de esquina se definen mediante una
zona alrededor de la posicin programada (consulte la Figura 22).

La zona para la trayectoria


del TCP Posicin
programada

Trayectoria de esquina

Figura 22 Los puntos de paso generan una trayectoria de esquina para pasar la posicin
programada.

Todos los ejes estn coordinados, con el fin de conseguir una trayectoria independiente
de la velocidad. La aceleracin se optimiza automticamente.

Descripcin general de RAPID 143


Posicionamiento durante la
ejecucin del programa
Interpolacin de ejes en trayectorias de esquina

El tamao de las trayectorias de esquina (zonas) del movimiento del TCP se expresan
en mm (consulte la Figura 23). Dado que la interpolacin se realiza eje por eje, el
tamao de las zonas (en mm) debe recalcularse en ngulos de eje (radianes). Este
clculo tiene un factor de error (normalmente un 10% como mximo), lo que significa
que la zona real se desviar hasta cierto punto de la programada.

Si se han programado distintas velocidades antes o despus de la posicin, la transicin


de una velocidad a otra ser suave y se realizar dentro de la trayectoria de esquina sin
afectar a la trayectoria real.

Posicin de esquina Zona


punto de paso

Punto de inicio

Trayectoria de esquina
Figura 23 Durante la interpolacin de ejes, se genera una trayectoria de esquina para atravesar
un punto de paso.

Interpolacin lineal de una posicin en trayectorias de esquina

El tamao de las trayectorias de esquina (zonas) del movimiento del TCP se expresan
en mm (consulte la Figura 24).

Posicin de esquina Zona


programada

Punto de inicio
Trayectoria de esquina

Figura 24 Durante la interpolacin lineal, se genera una trayectoria de esquina para atravesar
un punto de paso.

144 Descripcin general de RAPID


Posicionamiento durante la
ejecucin del programa
Si se han programado velocidades distintas antes o despus de la posicin de la
esquina, la transicin ser suave y se realiza dentro de la trayectoria de la esquina sin
afectar a la trayectoria real.

Si la herramienta debe realizar un proceso (como soldar por arco, aplicar adhesivo o
cortar con agua) a lo largo de la trayectoria de esquina, es posible ajustar el tamao de
la zona para conseguir la trayectoria deseada. Si la forma de la trayectoria parablica
de esquina no se corresponde con la geometra del objeto, es posible situar las
posiciones programadas ms cerca unas de otras, lo que permite aproximarse a la
trayectoria deseada mediante dos o ms trayectorias parablicas ms pequeas.

Interpolacin lineal de la orientacin en trayectorias de esquina

Es posible definir zonas para las orientaciones de las herramientas, del mismo modo
que es posible definir zonas para las posiciones de las herramientas. La zona de
orientacin suele definirse con un tamao mayor que la zona de posicin. En este caso,
la reorientacin empezar la interpolacin hacia la orientacin de la siguiente posicin
antes de que comience la trayectoria de la esquina. En este caso, la reorientacin ser
ms suave y lo ms probable es que no sea necesario reducir la velocidad para realizar
la reorientacin.

La herramienta se reorienta de forma que la orientacin al final de la zona sea la misma


que si se hubiera programado un punto de paro (consulte la Figura 25-c).

Figura 25 Forma de programar tres posiciones con diferentes orientaciones de herramienta.

Figura 26 Si todas las posiciones fueran puntos de paro, la ejecucin del programa tendra el
aspecto siguiente.

Tamao de la zona de operaciones


Figura 27 Si el punto intermedio fuera un punto de paso, la ejecucin del programa tendra el
aspecto siguiente.

La zona de orientacin del movimiento de la herramienta suele expresarse en mm. De


esta forma, es posible determinar directamente en qu parte de la trayectoria comienza
y termina la zona de orientacin. Si la herramienta no se mueve, el tamao de la zona
se expresa con grados de ngulo de rotacin en lugar de mm del TCP.

Descripcin general de RAPID 145


Posicionamiento durante la
ejecucin del programa
Si se programan distintas velocidades de reorientacin antes y despus del punto de
paso y si las velocidades de reorientacin limitan el movimiento, la transicin de una
velocidad a otra se realizar suavemente dentro de la trayectoria de esquina.

Interpolacin de ejes externos en trayectorias de esquina

Tambin es posible definir zonas para los ejes externos, de la misma forma que para la
orientacin. Si la zona del eje externo definida es ms grande que la zona del TCP, la
interpolacin de los ejes externos hacia el destino de la siguiente posicin programada
comenzar antes de que comience la trayectoria de la esquina del TCP. Esto puede
usarse para suavizar los movimientos de los ejes externos, del mismo modo que la zona
de orientacin se utiliza para suavizar los movimientos de la mueca.

Trayectorias de esquina al cambiar de mtodo de interpolacin

Las trayectorias de esquina tambin se generan cuando se sustituye un mtodo de


interpolacin por otro. El mtodo de interpolacin utilizado en las trayectorias de
esquina reales se elige de tal forma que la transicin de un mtodo a otro sea lo ms
suave posible. Si las zonas de orientacin y posicin de la trayectoria de esquina no son
del mismo tamao, es posible utilizar ms de un mtodo de interpolacin en la
trayectoria de esquina (consulte la Figura 28).

Interpolacin Sing Area\Wrist


lineal interpolacin p4
p1
Interpolacin de ejes

p2 p3

Sing Area\Wrist
interpolacin
Zona de posicin Zona de orientacin
Figura 28 Interpolacin al cambiar de un mtodo de interpolacin a otro. La interpolacin se
ha programado entre p1 y p2; interpolacin de ejes entre p2 y p3; e interpolacin de rea
singular y mueca entre p3 y p4.

Si se cambia la interpolacin de un movimiento normal de TCP a una reorientacin sin


movimiento de TCP o viceversa, no se genera ninguna zona de esquina. Lo mismo se
produce si se cambia la interpolacin a o de un movimiento de ejes externos sin
movimiento de TCP.

Interpolacin al cambiar de sistema de coordenadas

Cuando se produce un cambio de sistema de coordenadas en una trayectoria de esquina,


por ejemplo, con un nuevo TCP o un nuevo objeto de trabajo, se utiliza la interpolacin
de la trayectoria de esquina. Esto tambin se aplica al cambiar de una operacin
coordinada a una operacin no coordinada y viceversa.

146 Descripcin general de RAPID


Posicionamiento durante la
ejecucin del programa
Trayectorias de esquina con zonas superpuestas

Si las posiciones programadas se encuentran muy cerca la una de la otra, no es inusual


que las zonas programadas se solapen. Para obtener una trayectoria bien definida y
para conseguir la velocidad ptima en todo momento, el robot reduce el tamao de la
zona a la mitad de la distancia existente de una posicin solapada a otra (consulte la
Figura 29). El mismo radio de zona se utiliza siempre para las entradas y salidas desde
una posicin programada, con el fin de obtener trayectorias de esquina simtricas.

Trayectoria
generada
p4

p2

p1
Zonas de posicin
programadas p3

Zonas de esquina
calculadas por el robot

Figura 29 Interpolacin con zonas de posicin superpuestas. Las zonas alrededor de p2 y p3


son ms grandes que la mitad de la diferencia existente entre p2 y p3. Por tanto, el robot reduce
el tamao de las zonas para que sean iguales a la mitad de la distancia existente de p2 a p3,
generando con ello trayectorias de esquina simtricas dentro de las zonas.

Tanto la posicin como la orientacin de las zonas de las trayectorias de esquina


pueden quedar superpuestas. Tan pronto como una de estas zonas de trayectoria se
superpone, la zona se reduce (consulte la Figura 30).

Zona de orientacin
programada
Trayectoria generada
p4
Zona de orientacin
generada
p2

p1

Zonas de posicin p3

Zona de orientacin
Figura 30 Interpolacin con zonas de orientacin superpuestas. La zona de orientacin de p2
es mayor que la mitad de la distancia existente entre p2 y p3 y por tanto se reduce a la mitad de
la distancia existente entre p2 y p3. Las zonas de posicin no se superponen y por tanto no se
reducen. La zona de orientacin de p3 no se reduce tampoco.

Descripcin general de RAPID 147


Posicionamiento durante la
ejecucin del programa
Planificacin de tiempo para los puntos de paso
Ocasionalmente, si el siguiente movimiento no est planificado en el tiempo, los puntos
de paso programados pueden dar lugar a un punto de paro. Esto puede ocurrir en las
situaciones siguientes:
- Cuando se programa un conjunto de instrucciones lgicas con tiempos de
ejecucin largos entre dos movimientos cortos.
- Cuando los puntos estn muy cercanos entre s y se trabaja a velocidades
elevadas.
Si los puntos de paro son un problema, utilice la ejecucin simultnea de programas.

32.4 Ejes independientes


Los ejes independientes son ejes que se mueven independientemente de los dems ejes
del sistema de robot. Es posible cambiar un eje al modo independiente y devolver ms
tarde al modo normal.
Un conjunto especial de instrucciones se encarga de los ejes independientes. Cuatro
instrucciones de movimiento diferentes especifican el movimiento del eje. Por
ejemplo, la instruccin IndCMove pone en marcha el eje para un movimiento continuo.
A partir de ese momento, el eje se mantiene en movimiento a una velocidad constante
(independientemente de lo que haga el robot) hasta que se ejecuta una nueva
instruccin de eje independiente.
Para volver al modo normal se utiliza una instruccin de restablecimiento, IndReset.
Esta instruccin de restablecimiento tambin puede establecer una nueva referencia de
medicin (un tipo de nueva sincronizacin para el eje). Una vez que el eje ha vuelto al
modo normal, es posible utilizarlo como un eje normal.

Ejecucin de programas
Un eje cambia inmediatamente el modo independiente cuando se ejecuta una
instruccin Ind_Move. Esto se produce incluso si se est moviendo el eje en ese
momento, por ejemplo, cuando se ha programado como punto de paso un punto
anterior o cuando se utiliza la ejecucin simultnea de programas.
Si se ejecuta una nueva instruccin Ind_Move antes de que finalice la ltima, la nueva
instruccin sustituye inmediatamente a la anterior.
Si se detiene la ejecucin de un programa mientras se est moviendo un eje
independiente, dicho eje se detiene. Cuando se reinicia el programa, el eje
independiente se pone en movimiento inmediatamente. No se realiza ninguna
coordinacin activa entre los ejes independientes y los dems ejes en modo normal.
Si se produce una cada de alimentacin mientras hay un eje en modo independiente,
no es posible reanudar el programa. En este caso aparece un mensaje de error y es
necesario reiniciar un programa desde el principio.
Recuerde que las unidades mecnicas no pueden ser desactivadas cuando uno de sus
ejes est en modo independiente.

148 Descripcin general de RAPID


Posicionamiento durante la
ejecucin del programa
Ejecucin paso a paso

Durante la ejecucin paso a paso, un eje independiente se ejecuta slo cuando se est
ejecutando otra instruccin. El movimiento del eje tambin se produce paso a paso, en
lnea con la ejecucin de otros instrumentos, como se muestra en la Figura 31.

El eje independiente
alcanza la posicin final
IndAMove WaitTime 10 MoveL MoveL

10 seg

Velocidad del eje


independiente

Velocidad del eje normal

Figura 31 Ejecucin paso a paso de ejes independientes.

Movimiento

Los ejes en el modo independiente no pueden tener movimientos asignados. Si se


intenta ejecutar el eje manualmente, ste no se mueve y se muestra un mensaje de error.
Ejecute una instruccin IndReset o mueva el puntero del programa a main para poder
salir del modo independiente.

Rango de trabajo

El rango de trabajo fsico es el movimiento total del eje.

El rango de trabajo lgico es el rango utilizado por las instrucciones de RAPID y que
se lee en la ventana de movimientos.

Despus de la sincronizacin (contador de revoluciones actualizado), los rangos fsico


y lgico coinciden. La instruccin IndReset permite trasladar el rea de trabajo lgica,
como se muestra en la Figura 32.

Descripcin general de RAPID 149


Posicionamiento durante la
ejecucin del programa

Rango de trabajo
0 lgico tras IndReset
Rango de trabajo lgico
tras la sincronizacin 0

Rango de trabajo fsico

Rango de trabajo lgico

Figura 32 El rango de trabajo lgico puede trasladarse mediante la instruccin IndReset.

La resolucin de las posiciones se reduce cuando se alejan de la posicin lgica 0.


Una resolucin baja unida a un controlador demasiado apretado puede dar lugar a un
par inaceptable, a ruidos y a inestabilidad del controlador. Compruebe durante la
instalacin el ajuste del controlador y el rendimiento del eje cerca del lmite del rango
de trabajo. Compruebe tambin si la resolucin de las posiciones y el rendimiento de
la trayectoria son aceptables.

Velocidad y aceleracin

En el modo manual con velocidad reducida, la velocidad se reduce al mismo nivel que
si el eje estuviera funcionando de modo no independiente. Recuerde que la funcin
IndSpeed\InSpeed no devuelve un valor TRUE si se reduce la velocidad del eje.

La instruccin VelSet y la correccin de velocidad en porcentaje a travs de la ventana


de produccin se siguen aplicando cuando se usa el movimiento independiente.
Recuerde que la correccin a travs de la ventana de produccin inhibe el valor TRUE
generado por la funcin IndSpeed\InSpeed.

En el modo independiente, el valor ms bajo de aceleracin y deceleracin,


especificado en el archivo de configuracin, se utiliza tanto para la aceleracin como
la deceleracin. Este valor puede reducirse con un valor de pendiente en la instruccin
(1 - 100%). La instruccin AccSet no afecta a los ejes en el modo independiente.

Ejes del robot

El nico eje del robot que puede usarse como eje independiente es el eje 6.
Normalmente, junto con ese eje se utiliza la instruccin IndReset. Sin embargo,
tambin puede usarse la instruccin IndReset con el eje 4 de los modelos IRB 2400 y
4400. Si se utiliza IndReset con el eje 4 del robot, el eje 6 no debe estar en el modo
independiente.

Si se utiliza el eje 6 como eje independiente, pueden producirse problemas de


singularidad porque se sigue utilizando la funcional normal de transformacin de
coordenadas para 6 ejes. Si aparece algn problema, ejecute el mismo programa con el
eje 6 en el modo normal. Modifique los puntos o utilice las instrucciones
SingArea\Wrist o MoveJ.

150 Descripcin general de RAPID


Posicionamiento durante la
ejecucin del programa
El eje 6 tambin est activo internamente en el clculo de rendimiento de la trayectoria.
Como resultado, un movimiento interno del eje 6 puede reducir la velocidad de los
dems ejes del sistema.

El rango de trabajo independiente del eje 6 se define con los ejes 4 y 5 en la posicin
inicial. Si el eje 4 5 estn fuera de la posicin inicial, el rango de trabajo del eje 6 se
mueve debido al acoplamiento de los engranajes. Sin embargo, la posicin leda desde
la unidad de programacin para el eje 6 se compensa con las posiciones de los ejes 4 y
5 a travs del acoplamiento de los engranajes.

32.5 Servo suave


En algunas aplicaciones se requiere un servo, que acta como un resorte mecnico.
Esto significa que la fuerza del robot sobre el objeto de trabajo aumenta en funcin de
la distancia existente entre la posicin programada (ms all del objeto de trabajo) y la
posicin de contacto (entre la herramienta del robot y el objeto de trabajo).

La relacin entre la desviacin de la posicin y la fuerza se define por un parmetro


conocido como suavidad. Cuanto mayor es el valor del parmetro de suavidad, mayor
es la desviacin de posicin que se requiere para conseguir la misma fuerza.

El parmetro de suavidad se ajusta en el programa y es posible cambiar valores de


suavidad desde cualquier parte del programa. Es posible establecer distintos valores de
suavidad para los distintos ejes, adems de combinar ejes que tienen un servo normal
con ejes que tienen un servo suave.

La activacin y desactivacin del servo suave, as como la modificacin de valores de


suavidad, pueden hacerse con el robot en movimiento. Si se hace, se realizar un ajuste
entre los distintos modos de servo y entre los distintos valores de suavidad, para
conseguir unas transiciones suaves. El tiempo de ajuste puede configurarse desde el
programa con el parmetro ramp. Con ramp = 1, las transiciones requieren 0,5
segundos y por lo general el tiempo ser ramp x 0,5 en segundos.

Recuerde que la desactivacin del servo suave no debe realizarse si existe fuerza entre
el robot y el objeto de trabajo.

Con valores de suavizado elevados, existe el riesgo de que las desviaciones de posicin
del servo sean tan grandes que los ejes se muevan ms all del rango de trabajo del robot.

32.6 Paro y reanudacin


Es posible detener un movimiento de tres formas diferentes:

1. Con un paro normal, el robot se detiene sin abandonar la trayectoria, lo que hace que
la reanudacin del movimiento sea sencilla.

2. Con un paro rgido, el robot se detiene en un plazo ms breve que el de un paro


normal, pero la trayectoria de deceleracin no sigue la trayectoria programada. Por
ejemplo, se utiliza este mtodo de paro para paros de bsqueda en las que es importante
detener el movimiento lo antes posible.

Descripcin general de RAPID 151


Posicionamiento durante la
ejecucin del programa
3. Con un paro rpido, se utilizan los frenos mecnicos para conseguir una distancia de
deceleracin, que puede ser tan breve como se especifique para garantizar la seguridad.
Normalmente, la desviacin de la trayectoria es mayor en los paros rpidos que en los
paros rgidos.

Despus de un paro (de cualquiera de los tipos indicados), la reanudacin puede


hacerse siempre sobre la trayectoria interrumpida. Si el robot se ha detenido fuera de la
trayectoria programada, la reanudacin comenzar con el regreso a la posicin de la
trayectoria en la que debera haberse detenido el robot.

La reanudacin despus de una cada de alimentacin equivale a una reanudacin tras


un paro rpido. Debe recordar que el robot vuelve siempre a la trayectoria antes de que
se reanude el funcionamiento del programa interrumpido, incluso en los casos en que
la cada de alimentacin se ha producido mientras se estaba ejecutando una instruccin
lgica. Durante la reanudacin, todos los tiempos se cuentan desde el principio, por
ejemplo, al realizar el posicionamiento por tiempo o con una interrupcin con la
instruccin WaitTime.

32.7 Informacin relacionada


Descrito en:
Definicin de velocidad Tipos de datos - speeddata
Definicin de zonas (trayectorias de esquina) Tipos de datos - zonedata
Instruccin para la interpolacin de ejes Instrucciones - MoveJ
Instruccin para la interpolacin lineal Instrucciones - MoveL
Instruccin para la interpolacin circular Instrucciones - MoveC
Instruccin para la interpolacin modificada Instrucciones - SingArea
Singularidad Principios de movimiento y E/S -
Singularidad
Ejecucin simultnea de programas Principios de movimiento y E/S -
Sincronizacin con instrucciones
lgicas
Optimizacin de la CPU Gua del usuario - Parmetros del
sistema

152 Descripcin general de RAPID


Sincronizacin con instrucciones
lgicas

33 Sincronizacin con instrucciones lgicas


Normalmente, las instrucciones se ejecutan secuencialmente en el programa. No
obstante, las instrucciones lgicas tambin pueden ejecutarse en posiciones concretas
o durante un movimiento continuo.

Una instruccin lgica es cualquier instruccin que no genere un movimiento del robot
ni un movimiento de ningn eje externo, es decir, una instruccin de E/S.

33.1 Ejecucin secuencial del programa en puntos de paro


Si se ha programado una instruccin de posicionamiento como punto de paro, la
instruccin posterior del programa no se ejecuta hasta que tanto el robot como los ejes
externos se han parado, es decir, cuando es posible conseguir la posicin programada
(consulte la Figura 33).

p1

Ejecucin de SetDO
MoveL p1, v1000, fine, tool1;
SetDO do1, on;
MoveL p2, v1000, z30, tool1;

Figura 33 Las instrucciones lgicas posteriores a los puntos de paro no se ejecutan hasta que
se alcanza la posicin de destino.

33.2 Ejecucin secuencial de programas en puntos de paso


Si se programa una instruccin como punto de paso, las instrucciones lgicas
siguientes se ejecutan algn tiempo antes de llegar a la zona ms grande (para los ejes
de posicin, orientacin o externos). Consulte la Figura 34 y la Figura 35. Estas
instrucciones se ejecutan en orden.

Ejecucin de SetDO

DT
p1

MoveL p1, v1000, z30, tool1; Zona de posicin


SetDO do1, on;
MoveL p2, v1000, z30, tool1; Zona de orientacin

Figura 34 Una instruccin lgica a continuacin de un punto de paso se ejecuta antes de


alcanzar la zona ms grande.

Descripcin general de RAPID 153


Sincronizacin con instrucciones
lgicas

Ejecucin
de SetDO
Zona de posicin

DT

p2
p1

MoveL p1, v1000, z30, tool1;


Zona de
MoveL p2, v1000, z30, tool1; orientacin
SetDO do1, on;
MoveL p3, v1000, z30, tool1;

Figura 35 Una instruccin lgica a continuacin de un punto de paso se ejecuta antes de


alcanzar la zona ms grande.

El tiempo en el que se ejecutan (DT) comprende los siguientes componentes de tiempo:

- El tiempo que necesita el robot para planificar el siguiente movimiento:


aproximadamente 0,1 segundos.
- El retardo del robot (retardo de servo) en segundos: De 0 a 1,0 segundos en
funcin de la velocidad y el rendimiento real de deceleracin del robot.

154 Descripcin general de RAPID


Sincronizacin con instrucciones
lgicas

33.3 Ejecucin simultnea de programas


La ejecucin simultnea de programas puede programarse mediante el argumento
\Conc en la instruccin de posicionamiento. Este argumento se utiliza para:

- Ejecutar una o varias instrucciones lgicas al mismo tiempo que el robot se


mueve, para reducir el tiempo de ciclo (por ejemplo, se utiliza al comunicarse
a travs de canales serie).

Cuando se ejecuta una instruccin de posicionamiento con el argumento \Conc, se


ejecutan tambin las instrucciones lgicas siguientes (en secuencia):

- Si el robot no se mueve o si la instruccin de posicionamiento anterior termina


con un punto de paro, las instrucciones lgicas se ejecutan tan pronto como
comienza la instruccin de posicionamiento actual (al mismo tiempo que el
movimiento). Consulte la Figura 36.
- Si la instruccin de posicionamiento anterior termina en un punto de paso, las
instrucciones lgicas se ejecutan en un tiempo determinado (DT) antes de
alcanzar la zona ms grande (para los ejes de posicionamiento, orientacin o
externos). Consulte la Figura 37.

Ejecucin de SetDO

p2
p1

MoveL p1, v1000, fine, tool1;


MoveL \Conc, p2, v1000, z30, tool1;
SetDO do1, on;
MoveL p3, v1000, z30, tool1;

Figura 36 En el caso de la ejecucin simultnea de programas despus de un punto de paro, las


instrucciones de posicionamiento y las instrucciones lgicas siguientes comienzan al mismo
tiempo.

Descripcin general de RAPID 155


Sincronizacin con instrucciones
lgicas

Ejecucin
de SetDO
Zona ms grande
DT

p2
p1

MoveL p1, v1000, z30, tool1;


MoveL \Conc, p2, v1000, z30, tool1;
SetDO do1, on;
MoveL p3, v1000, z30, tool1;

Figura 37 En el caso de la ejecucin simultnea de programas despus de un punto de paso,


las instrucciones lgicas empiezan a ejecutarse antes de que comiencen a ejecutarse las
instrucciones de posicionamiento que presentan el argumento \Conc.

Las instrucciones que afectan indirectamente a los movimientos, como ConfL y


SingArea, se ejecutan de la misma forma que otras instrucciones lgicas. Sin embargo,
no afectan a los movimientos solicitados por instrucciones de posicionamiento
anteriores.

Si se mezclan varias instrucciones de posicionamiento que tienen el argumento \Conc


y varias instrucciones lgicas en una secuencia larga, se aplica lo siguiente:

- Las instrucciones lgicas se ejecutan directamente en el orden en el que se


programaron. Esto se realiza al mismo tiempo que el movimiento (consulte la
Figura 38), lo que significa que las instrucciones lgicas se ejecutan en una fase
anterior de la trayectoria, en lugar de en el momento en que se programaron.

156 Descripcin general de RAPID


Sincronizacin con instrucciones
lgicas

Ejecucin de
SetDO y SetAO
Zona ms grande
DT

p2
p1

MoveL p1, v1000, z30, tool1;


MoveL \Conc, p2, v1000, z30, tool1;
SetDO do1, on;
MoveL \Conc, p3, v1000, z30, tool1;
SetAO ao2, 5;

Figura 38 Si se programan en secuencia varias instrucciones de posicionamiento con el


argumento \Conc, todas las instrucciones lgicas conectadas se ejecutan en el mismo momento
en que se ejecuta la primera posicin.

Durante la ejecucin simultnea de programas, las instrucciones siguientes se


programan para finalizar la secuencia y por tanto resincronizan las instrucciones de
posicionamiento y las instrucciones lgicas:

- Una instruccin de posicionamiento hacia un punto de paro sin el


argumento \Conc
- La instruccin WaitTime o WaitUntil con el argumento \Inpos

Descripcin general de RAPID 157


Sincronizacin con instrucciones
lgicas

33.4 Sincronizacin de trayectorias


Para poder sincronizar los equipos de procesamiento (para aplicaciones como
aplicacin de adhesivo, pintado y soldadura al arco) con los movimientos del robot,
es posible generar distintos tipos de seales de sincronizacin.

Con los as denominados eventos de posicin, se genera una seal de disparo cuando
el robot atraviesa una posicin predefinida de la trayectoria. Con los eventos de tiempo,
se genera una seal en un tiempo predefinido antes de que el robot se detenga en la
posicin de paro. Adems, el sistema de control tambin gestiona eventos de
oscilacin, lo que genera pulsos en ngulos de fase predefinidos de un movimiento de
oscilacin.

Todas las seales de posicionamiento sincronizadas pueden conseguirse tanto antes


(tiempo de avance) o despus (tiempo de retardo) del momento en que el robot
atraviesa la posicin predefinida. La posicin se define mediante una posicin
programada y puede ajustarse como una distancia de trayectoria antes de la posicin
programada.

La exactitud de repeticin habitual de un conjunto de salidas digitales en la trayectoria


es de +/- 2ms.

En caso de una cada de alimentacin y un reinicio con la instruccin Trigg, todos los
eventos de disparo se generan de nuevo en la trayectoria de movimiento restante de la
instruccin Trigg.

33.5 Informacin relacionada


Descrito en:
Instrucciones de posicionamiento Resumen sobre RAPID - Movimiento
Definicin de tamaos de zona Tipos de datos - zonedata

158 Descripcin general de RAPID


Configuracin del robot

34 Configuracin del robot

34.1 Distintos tipos de configuraciones de robot


Normalmente, es posible conseguir una misma posicin y orientacin de la
herramienta de varias formas diferentes, utilizando distintos conjuntos de ngulos de
ejes. Estos distintos conjuntos se denominan configuraciones de robot.

Por ejemplo, si una posicin se encuentra aproximadamente en el centro de una clula


de trabajo, algunos robots pueden llegar hasta la misma posicin desde arriba y desde
abajo, utilizando distintos sentidos del eje 1 (consulte la Figura 39).

Figura 39 Se utilizan dos configuraciones de brazo diferentes para conseguir la misma posicin
y orientacin. La configuracin del lado derecho se consigue haciendo girar el brazo hacia
atrs. El eje 1 gira 180 grados.

Algunos robots tambin puede llegar a la posicin desde arriba y abajo mientras
utilizan el mismo sentido en el eje 1. Esto es posible con los robots que tienen un rango
de funcionamiento ampliado en el eje 3 (consulte la Figura 40).

Descripcin general de RAPID 159


Configuracin del robot

ABB

ABB
Figura 40 IRB140 con dos configuraciones de brazo diferentes para conseguir la misma
posicin y orientacin. El ngulo del eje 1 es el mismo en las dos configuraciones. La
configuracin del lado derecho se consigue girando el brazo inferior hacia delante y el brazo
inferior hacia atrs.

Esto tambin es posible haciendo girar la parte delantera del brazo superior del robot
(eje 4) hacia la posicin invertida a la vez que los ejes 5 y 6 giran hasta la posicin y la
orientacin deseadas (consulte la Figura 41).

eje 6

eje 4

eje 5

Figura 41 Se utilizan dos configuraciones de mueca diferentes para conseguir la misma


posicin y orientacin.
En la configuracin en la que la parte delantera del brazo superior apunta hacia arriba
(inferior), el eje 4 ha girado 180 grados, el eje 5 180 grados y el eje 6 180 grados para poder
conseguir la configuracin en la que la parte delantera del brazo superior apunta hacia arriba
(superior).

160 Descripcin general de RAPID


Configuracin del robot

34.2 Especificacin de la configuracin del robot


Al programar una posicin del robot, se especifica tambin una configuracin de robot.

La forma de especificar la configuracin del robot es distinta con los distintos tipos de
robots (consulte Tipos de datos y datos del sistema - confdata para obtener una
descripcin completa). Sin embargo, con la mayora de los tipos de robots, esto incluye
la definicin de los cuartos de revolucin adecuados para los ejes 1, 4 y 6.

1 0

2 3

angle
Figura 42 Cuarto de revolucin para un ngulo de eje positivo. int joint -------------- .
2

-3 -4

-2 -1

angle
Figura 43 Cuarto de revolucin para un ngulo de eje negativo. int joint -------------- 1 .
2

34.3 Comprobacin de la configuracin


Normalmente, desear que el robot tenga la misma configuracin durante la ejecucin del
programa que la que program. Para ello, puede hacer que el robot compruebe la
configuracin y, si no se consigue la configuracin correcta, detener la ejecucin del
robot. Si la configuracin no se ha comprobado, el robot puede empezar a mover
inesperadamente sus brazos y muecas, lo que podra hacer que colisione con equipos
perifricos.

La comprobacin de la configuracin implica la comparacin de la posicin


programada con la del robot.

Descripcin general de RAPID 161


Configuracin del robot

Durante un movimiento lineal, el robot se mueve siempre hacia la posicin posible ms


cercana. Sin embargo, si la comprobacin de la configuracin est activada, la
ejecucin del programa se detiene tan pronto como cualquiera de los ejes se desva un
nmero de grados superior al especificado.

Durante el movimiento eje por eje o lineal modificado con comprobacin de


configuracin, el robot se mueve siempre hacia la configuracin de ejes programada.
Si no es posible conseguir la posicin y la orientacin programadas, la ejecucin del
programa se detiene antes de empezar el movimiento. Si la comprobacin de
configuracin no est activada, el robot se traslada a la posicin y la orientacin
especificadas, con la configuracin ms cercana.

Cuando se detiene la ejecucin de una posicin programada a causa de un error de


configuracin, con frecuencia puede deberse a uno de los motivos siguientes:

La posicin est programada fuera de lnea con una configuracin defectuosa.


Se ha cambiado la herramienta del robot, haciendo que el robot tome una
configuracin distinta de la programada.
La posicin est sujeta a un funcionamiento con base de coordenadas activa
(desplazamiento, usuario, objeto, base).

La configuracin correcta en el punto de destino puede determinarse posicionando el


robot cerca de l y leyendo la configuracin en la unidad de programacin.

Si los parmetros de configuracin cambian a causa del uso de una base de coordenadas
activa, es posible desactivar la comprobacin de la configuracin.

34.4 Informacin relacionada


Descrito en:
Definicin de la configuracin del robot Tipos de datos y datos de sistema -
confdata
Activacin/desactivacin de la configuracin Resumen sobre RAPID - Parmetros
de movimiento check

162 Descripcin general de RAPID


Modelos cinemticos del robot

35 Modelos cinemticos del robot

35.1 Cinemtica del robot


La posicin y la orientacin de un robot se determinan a partir del modelo cinemtico
de su estructura mecnica. Es necesario definir los modelos especficos de la unidad
mecnica en cada instalacin. En el caso de los robots principales y exteriores ABB
estndar, estos modelos estn predefinidos en el controlador.

Robot principal

El modelo cinemtico del robot principal modela la posicin y la orientacin de la


herramienta del robot respecto de su base, en funcin de los ngulos de los ejes del
robot.

Los parmetros cinemticos que especifican las longitudes de los brazos, los offsets y
las actitudes de los ejes se predefinen en el archivo de configuracin de cada tipo de
robot.

length_of_upper_arm length_of_wrist
Eje 5 Z6
Eje 4 Eje 6
offset_of_joint_3
Z Eje 3
X6
length_of_lower_arm

offset_of_joint_2
Eje 2

height_of_foot Eje 1

Figura 44 Estructura cinemtica de un robot IRB1400

Un procedimiento de calibracin apoya la definicin de la base de coordenadas de la


base del robot principal respecto de la base de coordenadas mundo.

Descripcin general de RAPID 163


Modelos cinemticos del robot

Z6

X6

Z
Y

X
Base de coordenadas de la
base del robot principal

Base de coordenadas mundo

Figura 45 Base de coordenadas de la base del robot principal

Robot externo

La coordinacin con un robot externo requiere tambin un modelo cinemtico para el


robot externo. Se admite un conjunto de clases predefinidas de estructuras mecnicas
bidimensionales y tridimensionales.

Z2

length_of_lower_arm
Z0 offset_of_upper_arm
attitude_of_joint1
Eje 2
X2
Eje 1 turn_table
offset_of_joint1_x
attitude_of_joint

height_of_foot

X0
Figura 46 Estructura cinemtica de un robot ORBIT 160B con un modelo predefinido

Se suministran procedimientos de calibracin para definir la base de coordenadas de la


base respecto de la base de coordenadas mundo para cada clase de estructura.

164 Descripcin general de RAPID


Modelos cinemticos del robot

Z0
Z2

Cuerpo C
X2

Cuerpo B

Cuerpo A

X0
Base de coordenadas de la base del
robot externo
Base de coordenadas mundo
Figura 47 Base de coordenadas de la base de un robot ORBIT_160B

Y0

Y2

X0
y1
X2

x1 x2

Figura 48 Puntos de referencia en la mesa giratoria para la calibracin de la base de


coordenadas de la base de un robot ORBIT_160B, en la posicin inicial utilizando un modelo
predefinido

35.2 Cinemtica general


Las estructuras mecnicas no compatibles con las estructuras predefinidas pueden
modelarse utilizando un modelo cinemtico general. Esto se permite en el caso de los
robots externos.

El modelado se basa en la convencin Denavit-Hartenberg y segn el libro Introduction


to Robotics, Mechanics & Control (Introduccin a la robtica, la mecnica y el control)
de John J. Craigh (Addison-Wesley 1986).

Descripcin general de RAPID 165


Modelos cinemticos del robot

Z2
d1

d2

Z0 a1 = 0
Y2 turn_table a2 = 0
alfa1 = 0

X0 alfa2

Figura 49 Estructura cinemtica de un robot ORBIT 160B con un modelo cinemtico general

Un procedimiento de calibracin apoya la definicin de la base de coordenadas de la


base del robot externo respecto de la base de coordenadas mundo.

Z2
Z0
Y2

X0
Base de coordenadas de la
base del robot externo

Base de coordenadas mundo

Figura 50 Base de coordenadas de la base de un robot ORBIT_160B con un modelo cinemtico


general

166 Descripcin general de RAPID


Modelos cinemticos del robot

Y0

X0
x1

y1

x2 Y2

X2

Figura 51 Puntos de referencia en la mesa giratoria para la calibracin de la base de


coordenadas de la base de un robot ORBIT_160B, en la posicin inicial (ejes = 0 grados)

35.3 Informacin relacionada


Descrito en:
Definicin de la cinemtica general de Gua del usuario - Parmetros del
un robot externo sistema

Descripcin general de RAPID 167


Modelos cinemticos del robot

168 Descripcin general de RAPID


Supervisin del movimiento y
deteccin de colisiones

36 Supervisin del movimiento y deteccin de colisiones


Se conoce como supervisin de movimiento a un conjunto de funciones que permiten
supervisar los movimientos del robot con una alta sensibilidad y con bases de
coordenadas. La supervisin del movimiento incluye funciones de deteccin de
colisiones, bloqueos y cargas incorrectas. Estas funciones se conocen como funciones
de deteccin de colisin.

36.1 Introduccin
La deteccin de colisin puede dispararse si los datos de las cargas montadas en el
robot no son correctos. Esto incluye a los datos de carga de herramientas, cargas tiles
y cargas de brazo. Si los datos de las herramientas o los datos de carga til son
desconocidos, puede usarse la funcin de identificacin de cargas para definirlos. No
es posible identificar los datos de carga del brazo.
Cuando se dispara la deteccin de colisin, se invierten los pares de motor y se aplican
los frenos mecnicos para detener el robot. A continuacin, el robot retrocede un poco
a lo largo de la trayectoria para neutralizar las fuerzas residuales que pueden estar
presentes si se ha producido una colisin o un bloqueo. A continuacin, el robot se
detiene de nuevo y permanece en el estado MOTORES ON. En la figura siguiente se
ilustra una colisin tpica.
La supervisin de movimiento slo est activa si al menos un eje (incluidos los ejes
externos) est en movimiento. Si todos los ejes estn parados, la funcin se desactiva.
Esto es as para evitar disparos innecesarios debidos a fuerzas externas del proceso.

36.2 Ajuste de los niveles de deteccin de colisiones


La deteccin de colisiones utiliza un nivel de supervisin variable. Es ms sensible a
velocidades bajas que a velocidades altas. Por ello, no debe ser necesario ningn ajuste
de la funcin por parte del usuario en condiciones de funcionamiento normales. Sin
embargo, es posible activar y desactivar la funcin para ajustar los niveles de
supervisin. Estn disponibles parmetros de ajuste diferentes para el movimiento y
para la ejecucin del programa. Los distintos parmetros de ajuste se describen en ms
detalle en la Gua del usuario, dentro de Parmetros del sistema: Manipulador.
RAPID cuenta con una instruccin llamada MotionSup que se usa para activar y
desactivar la funcin y modificar el nivel de supervisin. Esta funcin resulta til en
los casos en que el proceso presenta fuerzas externas que actan sobre el robot en
determinadas partes del ciclo. La instruccin MotionSup se describe con ms detalle
en el Manual de referencia de RAPID.
Los valores de ajuste se establecen como un porcentaje del ajuste bsico. El uso del
100% supone el uso de los valores bsicos. Cuando se aumenta el porcentaje, se
consigue un sistema menos sensible. Al aumentarlo se consigue el efecto opuesto. Es
importante recordar que si se establecen valores de ajuste en los parmetros del sistema
y en la instruccin de RAPID, se tienen en cuenta los dos valores. Ejemplo: Si se
establece un valor de ajuste del 150% en los parmetros del sistema y se establece un
valor de ajuste del 200% en la instruccin de RAPID, el nivel de ajuste resultante ser
del 300%.

Descripcin general de RAPID 169


Supervisin del movimiento y
deteccin de colisiones

Figura: Colisin tpica

Fase 1: El par del motor se


invierte para detener el robot.

Fase 2: La velocidad del motor


se invierte para anular las
fuerzas residuales de la
herramienta y del robot.

colisin
detectada robot
momento de
la colisin detenido fuerzas residuales
anuladas

velocidad
del motor

tiempo

velocidad
invertida
par del
motor

tiempo

par
invertido

170 Descripcin general de RAPID


Supervisin del movimiento y
deteccin de colisiones
Existe un nivel mximo como valor total de ajuste de la deteccin de colisiones que
puede modificarse. Este valor es el 300% de forma predeterminada, pero puede
modificarse a travs del parmetro del sistema motion_sup_max_level, que slo est
disponible si el sistema se instala en el modo de servicio.

36.3 Ventana de dilogo Supervisin del Movimiento


Seleccione Supervisin del Movimiento en el men Espec. de la ventana de
movimientos. Esta opcin muestra una ventana de dilogo que permite la activacin y
la desactivacin de la supervisin del movimiento. Esto slo afectar al robot
durante el movimiento. Si la supervisin de movimiento est desactivada en la
ventana de dilogo y se ejecuta un programa, la deteccin de colisiones puede seguir
activada durante la ejecucin del programa. Si a continuacin se detiene el programa
y el robot se desplaza, el flag de estado de la ventana de dilogo se activa de nuevo.
Esto se hace como medida de seguridad, para evitar la desactivacin accidental de la
funcin.

36.4 Salidas digitales


La salida digital MotSupOn est activada cuando la funcin de deteccin de colisiones
est activada y desactivada cuando sta no est activada. Recuerde que el cambio de
estado de la funcin entra en vigor cuando comienza el movimiento. Por tanto, si la
deteccin de colisiones est activada y el robot est en movimiento, MotSupOn est
activada. Si se detiene el robot y se desactiva la funcin, MotSupOn sigue activada.
Cuando el robot comienza a moverse, MotSupOn se desactiva.

La salida digital MotSupTrigg se activa cuando se dispara la deteccin de colisiones.


Permanece activada hasta que se confirma el cdigo de error, ya sea desde la unidad de
programacin o a travs de la entrada digital AckErrDialog.

Las salidas digitales se describen con ms detalle en la Gua del usuario, dentro de
Parmetros del sistema: Seales de E/S.

36.5 Limitaciones
La supervisin del movimiento slo est disponible para los ejes del robot. No est
disponible para movimientos por un track, estaciones Orbit ni manipuladores externos.

La deteccin de colisiones est desactivada cuando al menos un eje funciona en el


modo de eje independiente. ste es tambin el caso incluso si el eje que funciona como
eje independiente es un eje externo.

La deteccin de colisiones puede dispararse cuando el robot se utiliza en el modo de


servo suave. Por tanto, resulta aconsejable desactivar la deteccin de colisiones si se
utiliza el robot en el modo de servo suave.

Descripcin general de RAPID 171


Supervisin del movimiento y
deteccin de colisiones
Si se utiliza la instruccin de RAPID MotionSup para desactivar la deteccin de
colisiones, el cambio slo se aplica cuando el robot comienza a moverse. Por tanto, la
salida digital MotSupOn puede permanecer activada temporalmente al iniciar el
programa, antes de que el robot comience a moverse.

La distancia que retrocede el robot despus de la colisin es proporcional a la velocidad


del movimiento que se realiz antes de la colisin. Si se producen colisiones repetidas
a baja velocidad, es posible que el robot no retroceda lo suficiente para anular la presin
de la colisin. Como resultado, quiz no sea posible mover el robot sin el disparo de
supervisin. En este caso, utilice el men de movimientos para desactivar
temporalmente la deteccin de colisiones y alejar el robot del obstculo.

En caso de una colisin rgida durante la ejecucin del programa, pueden ser necesarios
varios segundos antes de que el robot comience a retroceder.

Si el robot est montado sobre un track, debe desactivarse la deteccin de colisiones


mientras se mueve la base sobre el track. Si no est desactivada, la deteccin de
colisiones puede dispararse cuando el robot se mueve sobre el track, incluso si no se
produce ninguna colisin.

36.6 Informacin relacionada


Descrito en:
Instruccin MotionSup de RAPID Resumen sobre RAPID - Movimiento
Parmetros del sistema para ajustes Parmetros del sistema - Manipulador
Seales de E/S de supervisin de movimiento Parmetros del sistema - Seales de E/S
Identificacin de cargas Principios de movimiento y E/S

172 Descripcin general de RAPID


Singularidades

37 Singularidades
Algunas posiciones del espacio de trabajo del robot pueden alcanzarse mediante un
nmero infinito de configuraciones de robot en cuanto al posicionamiento y la
orientacin de la herramienta. Estas posiciones, conocidas como puntos singulares
(singularidades), constituyen un problema a la hora de calcular los ngulos del brazo
del robot a partir de la posicin y la orientacin de la herramienta.

En general, los robots presentan dos tipos de singularidades: singularidades de brazo y


singularidades de mueca. Las singularidades de brazo son todas las configuraciones
en las que el centro de la mueca (la interseccin de los ejes 4, 5 y 6) termina
directamente sobre el eje 1 (consulte la Figura 52). Las singularidades de mueca son
configuraciones en las que los ejes 4 y 5 quedan en la misma lnea, es decir, que el eje
5 tiene un ngulo igual a 0 (consulte la Figura 53).

Singularidad en la interseccin del


centro de la mueca y el eje 1

Centro de rotacin del eje 1

Z base

X base

Figura 52 La singularidad del brazo se produce cuando el centro de la mueca y el eje 1


se cortan.

Eje 5 con un ngulo de 0 grados

Eje 6 paralelo
al eje 4

Figura 53 La singularidad de la mueca se produce cuando el eje 5 se encuentra a 0 grados.

Descripcin general de RAPID 173


Singularidades

Puntos de singularidad del robot IRB140

Este robot tiene una singularidad de mueca y de brazo. Tambin existe un tercer tipo
de singularidad. Esta singularidad se produce en las posiciones de robot en las que el
centro de la mueca y los centros de rotacin de los ejes 2 y 3 se encuentran en lnea
recta (consulte la figura siguiente).

B
AB

Figura 54 El punto singular adicional del robot IRB140.

37.1 Ejecucin del programa a travs de singularidades


Durante la interpolacin de ejes, no se produce ningn problema cuando el robot
atraviesa los puntos singulares.

Al ejecutar una trayectoria lineal o circular cerca de una singularidad, las velocidades
de algunos ejes (1 y 6/4 y 6) pueden ser muy elevadas. Para no superar las velocidades
mximas de los ejes, se reduce la velocidad de la trayectoria lineal.

Es posible reducir las altas velocidades de los ejes mediante el modo (Sing Area\Wrist)
cuando los ejes de la mueca estn interpolados en ngulos de eje, a la vez que se
mantiene la trayectoria lineal de la herramienta del robot. Sin embargo, se introduce un
error de orientacin en comparacin con una interpolacin lineal completa.

Recuerde que la configuracin del robot cambia drsticamente cuando ste pasa cerca
de una singularidad en una interpolacin lineal o circular. Para evitar la
reconfiguracin, la primera posicin del otro lado de la singularidad debe programarse
con una orientacin que haga que la reconfiguracin resulte innecesaria.

Adems, debe recordar que el robot no debe encontrarse en esta singularidad cuando
slo se mueven los ejes externos. Si ocurre, es posible que los ejes del robot hagan
movimientos innecesarios.

174 Descripcin general de RAPID


Singularidades

37.2 Movimiento a travs de singularidades


Durante la interpolacin de ejes, no se produce ningn problema cuando el robot
atraviesa los puntos singulares.

Durante la interpolacin lineal, el robot puede atravesar puntos singulares, pero con
una velocidad reducida.

37.3 Informacin relacionada


Descrito en:
Control de cmo debe actuar el robot en Instrucciones - SingArea
la ejecucin cerca de puntos singulares

Descripcin general de RAPID 175


Singularidades

176 Descripcin general de RAPID


Limitacin optimizada de la
aceleracin

38 Limitacin optimizada de la aceleracin


La aceleracin y la velocidad del robot se controlan continuamente de forma que no se
superen los lmites definidos.

Estos lmites estn definidos por el programa del usuario (por ejemplo, velocidad
programada o AccSet) o definidos por el propio sistema (por ejemplo, par mximo de
la caja de engranajes o del motor, par mximo o fuerza de la estructura del robot).

Siempre y cuando los datos de carga (masa, centro de gravedad e inercia) se encuentren
dentro de los lmites del diagrama de carga y la introduccin de los datos de las
herramientas se realice correctamente, no se requiere ningn lmite de aceleracin
definido por el usuario y la vida til del robot se garantiza automticamente.

Si los datos de carga estn fuera de los lmites del diagrama de carga, es posible que se
requieran restricciones especiales, es decir un valor de AccSet o una velocidad menor,
si ABB especifica que es necesario.

La aceleracin y la velocidad del TCP se controlan mediante el planificador de


trayectorias con la ayuda de un modelo dinmico completo de los brazos del robot,
incluidas las cargas definidas por el usuario.

La aceleracin y la velocidad del TCP dependen de la posicin, la velocidad y la


aceleracin de todos los ejes en cualquier instante y por tanto la aceleracin real vara
continuamente. De esta forma, se obtiene el tiempo de ciclo ptimo, es decir, que uno
o varios de los lmites se encuentran en su valor mximo en todo momento. Esto
significa que los motores y la estructura del robot se utilizan a su mxima capacidad
en todo momento.

Descripcin general de RAPID 177


Limitacin optimizada de la
aceleracin

178 Descripcin general de RAPID


Zonas mundo

39 Zonas mundo

39.1 Utilizacin de zonas globales


Cuando se utiliza esta funcin, el robot se detiene o se activa automticamente una
salida si el robot se encuentra dentro de un rea especial definida por el usuario. stas
son algunas aplicaciones posibles:

- Cuando dos robots comparten una parte de sus reas de trabajo respectivas.
La posibilidad de que dos robots colisionen puede eliminarse con seguridad
mediante la supervisin de estas seales.
- Cuando hay equipos externos situados dentro del rea de trabajo del robot.
Es posible crear un rea de trabajo prohibida para impedir que el robot
colisione con este equipo.
- Indicacin de que el robot se encuentra en una posicin en la que se permite
iniciar la ejecucin del programa desde un PCL.

39.2 Utilizacin de zonas mundo


- Para indicar que el punto central de la herramienta se encuentra en una parte
concreta del rea de trabajo.
- Para limitar el rea de trabajo del robot para evitar colisiones con la
herramienta.
- Para crear un rea de trabajo comn para dos robots, disponibles slo para un
robot cada vez.

39.3 Definicin de zonas mundo en el sistema de coordenadas mundo


Todas las zonas mundo deben definirse dentro del sistema de coordenadas mundo.
Los lados de los cuadros son paralelos a los ejes de coordenadas y el eje de cilindro es
paralelo al eje Z del sistema de coordenadas mundo.

Descripcin general de RAPID 179


Zonas mundo

Robot con el sistema de coordenadas de la base


X

Y
Esfera
Z
Radio

TCP
Cilindro
Radio
z Cuadro
Altura

Sistema de
coordenadas mundo x

Es posible definir una zona mundo de forma que est dentro o fuera de la forma del
contorno del cuadro, la esfera o el cilindro.

39.4 Supervisin del TCP del robot

No se supervisa
Se supervisa el movimiento del punto
central de la herramienta, no ninguna
otra parte del robot.
TCP
El TCP se supervisa siempre con
independencia del modo de
funcionamiento, por ejemplo, la
ejecucin de programas y el
desplazamiento.

TCPs estacionarios

Si el robot est sosteniendo un objeto de trabajo y trabajando con una herramienta fija,
se utiliza un TCP fijo. Si la herramienta est activada, no se mueve y, si se encuentra
dentro de una zona mundo, permanecer dentro de dicha zona en todo momento.

180 Descripcin general de RAPID


Zonas mundo

39.5 Acciones

Activar una salida digital cuando el TCP se encuentra dentro de una zona mundo.

Esta accin activa una seal digital cuando el TCP se encuentra dentro de una zona
mundo. Resulta til a la hora de indicar que el robot se ha detenido dentro un rea
especfica.
Tiempo entre comprobaciones Zona mundo
respecto de las zonas mundo
Movimiento del TCP

Estado de la salida digital

Activar una salida digital antes de que el TCP alcance una zona mundo.

Esta accin activa una salida digital antes de que el TCP alcance una zona mundo.
Puede usarse para detener el robot en cuanto entra en una zona mundo.
Tiempo de paro del robot Zona mundo

Movimiento del TCP

Estado de la salida digital

Detener el robot antes de que el TCP alcance una zona mundo.

Es posible definir una zona mundo de forma que quede fuera el rea de trabajo. A
continuacin, el robot detendr el punto central de la herramienta inmediatamente
antes de entrar en la zona mundo en su movimiento hacia la zona mundo.
Tiempo de paro del robot
Tiempo entre comprobaciones
respecto de las zonas mundo
Movimiento del TCP

Cuando el robot ha entrado en una zona mundo definida como un rea de trabajo
exterior, por ejemplo, cuando se liberan los frenos y se presiona manualmente, la nica
forma de salir de la zona es con un movimiento o presionando manualmente con los
frenos no aplicados.

Descripcin general de RAPID 181


Zonas mundo

39.6 Tamao mnimo de las zonas mundo


La supervisin del movimiento de los puntos centrales de las herramientas se realiza en
puntos discretos con un intervalo de tiempo entre ellos, acorde con la resolucin de la
trayectoria.
El usuario es el responsable de hacer que las zonas tengan un tamao suficiente como
para que el robot no pueda atravesar una zona sin que se compruebe su posicin dentro
de ella.

Tamao mnimo de la zona para el valor usado


de path_resolution y la velocidad mxima
Velocidad
1.000 mm/s 2.000 mm/s 4.000 mm/s
Resol.
1 25 mm 50 mm 100 mm

2 50 mm 100 mm 200 mm

3 75 mm 150 mm 300 mm

Si se utiliza la misma salida digital para ms de una zona mundo, la distancia entre las
zonas debe superar al tamao mnimo indicado en la tabla anterior, con el fin de evitar
un estado incorrecto de la salida.

Si el robot permanece dentro de la zona un


Tiempo entre comprobaciones tiempo demasiado breve, es posible que
respecto de las zonas mundo atraviese una esquina de la zona sin ser
detectado. Por tanto, haga que la zona tenga un
tamao mayor que el rea de riesgo.

39.7 Nmero mximo de zonas mundo


Es posible tener definido un mximo de diez zonas mundo en un momento
determinado.

39.8 Cadas de alimentacin, reinicio y reanudacin


Las zonas mundo estacionarias se eliminan al apagar el sistema y es necesario
insertarlas de nuevo al encender el sistema, mediante una rutina de evento conectada al
evento POWER ON.

Las zonas mundo temporales sobreviven a las cadas de alimentacin pero se eliminan
cuando se carga un nuevo programa o cuando un programa se inicia desde el programa
principal.

Las salidas digitales de las zonas mundo se actualizan en primer lugar al poner en
marcha los motores.

182 Descripcin general de RAPID


Zonas mundo

39.9 Informacin relacionada


Descrito en:
Manual de referencia de RAPID
Principios de movimiento y E/S: Sistemas de coordenadas
Tipos de datos: wztemporary
wzstationary
shapedata
Instrucciones: WZBoxDef
WZSphDef
WZCylDef
WZLimSup
WZDOSet
WZDisable
WZEnable
WZFree
WZTempFree

Descripcin general de RAPID 183


Zonas mundo

184 Descripcin general de RAPID


Principios de E/S

40 Principios de E/S
Normalmente, el robot cuenta con una o varias placas de E/S. Cada una de las placas
tiene varios canales digitales y/o analgicos que deben conectarse a seales lgicas
para poder usarlos. Esto se realiza en los parmetros del sistema y suele estar ya hecho
con nombres estndar antes de la entrega del robot. Siempre deben usarse nombres
lgicos durante la programacin.

Un mismo canal fsico puede conectarse a varios nombres lgicos, pero tambin puede
quedar sin ninguna conexin lgica (consulte la Figura 55).

Canal fsico Seal lgica

IN1 do1
IN2 alimentador
.
.
.
.
IN16
Placa de E/S
OUT1 pinza
OUT2 do2
.
. alimentador2
.
.
OUT16 do16

Figura 55 Para poder usar una placa de E/S, sus canales deben tener asignados nombres
lgicos. En el ejemplo anterior, la salida fsica 2 est conectada a dos nombres lgicos
diferentes. Por otro lado, IN16 no tiene ningn nombre lgico y por tanto no puede usarse.

40.1 Caractersticas de las seales


Las caractersticas de una seal dependen del canal fsico utilizado, as como de la
forma de definir el canal en los parmetros del sistema. El canal fsico determina los
retardos de tiempo y los niveles de voltaje (consulte la especificacin del producto).
Las caractersticas, los tiempos de filtro y la escala entre los valores programados y los
fsicos se definen mediante parmetros del sistema.

Cuando se enciende la fuente de alimentacin del robot, todas las seales tienen el
valor cero. Sin embargo, no se ven afectadas por paros de emergencia o eventos
similares.

Descripcin general de RAPID 185


Principios de E/S

Las salidas pueden recibir el valor uno o cero desde dentro del programa. Esto tambin
puede hacerse utilizando un retardo o en forma de un pulso. Si se solicita un pulso o un
cambio retardado para una salida, la ejecucin del programa contina. A continuacin,
el cambio se implementa sin que el resto de la ejecucin del programa se vea afectada.
Si por otro lado se solicita un nuevo cambio para la misma salida antes de que transcurra
el tiempo especificado, no se realiza el primer cambio (consulte la Figura 56).

SetDO \SDelay:=1, do1;


WaitTime 0.5;
PulseDO do1;

Valor de la seal

Tiempo
0 0.5 1
Figura 56 La instruccin SetDO no llega a realizarse porque se emite un nuevo comando antes
de que transcurra el retardo especificado.

40.2 Seales conectadas a interrupciones


Las funciones de interrupciones de RAPID pueden conectarse a cambios de seales
digitales. La llamada a la funcin puede producirse en el momento de activar o
desactivar una seal. Sin embargo, si la seal digital cambia con mucha rapidez, es
posible que la interrupcin no se procese.

Por ejemplo:

Si se conecta una funcin a una seal denominada do1 y se crea un programa como
el siguiente:
SetDO do1,1;
SetDO do1,0;
La seal se activa y se desactiva a continuacin en unos pocos milisegundos. En este
caso, es posible que la interrupcin se pierda. Para asegurarse de que se detecte la
interrupcin, asegrese de que la salida est activada antes de ponerla a cero.

Por ejemplo:
SetDO do1,1;
WaitDO do1 ,1;
SetDO do1,0;
De esta forma, la interrupcin no se pierde en ningn caso.

186 Descripcin general de RAPID


Principios de E/S

40.3 Seales del sistema


Es posible conectar entre s las seales lgicas mediante funciones especiales del
sistema. Por ejemplo, si se conecta una entrada a la funcin Start del sistema, se genera
automticamente un inicio de programa tan pronto como se activa esta entrada.
Normalmente, estas funciones de sistema slo estn activadas en el modo automtico.
Para obtener ms informacin, consulte el Captulo 9, Parmetros del sistema, o el
captulo Instalacin y validacin de la instalacin - Comunicacin con un PCL del
manual del producto.

40.4 Conexiones cruzadas


Las seales digitales pueden conectarse entre s de forma que una afecte
automticamente a la otra.

- Es posible conectar una seal de salida a una o varias seales de entrada o


salida.
- Es posible conectar una seal de entrada a una o varias seales de entrada o
salida.
- Si se utiliza la misma seal en varias conexiones cruzadas, el valor de la seal
es el mismo que el valor que se activ (modific) en ltimo lugar.
- Las conexiones cruzadas pueden estar vinculadas entre s. En otras palabras,
una conexin cruzada puede actuar sobre otra. Sin embargo, no deben estar
conectadas de forma que creen un crculo vicioso, por ejemplo si se hace una
conexin cruzada de di1 a di2 mientras di2 tiene una conexin cruzada a di1.
- Si existe una conexin cruzada con una seal de entrada, la conexin fsica
correspondiente se desactiva automticamente. Por tanto, no se detectar
ningn cambio que se haga en el canal fsico.
- Ni los pulsos ni los retardos se transmiten a travs de las conexiones cruzadas.
- Es posible definir condiciones lgicas mediante NOT, AND y OR (opcin:
Advanced functions - Funciones avanzadas).

Ejemplos:

- di2=di1
- di3=di2
- do4=di2

Si di1 cambia, di2, di3 y do4 cambiarn al valor correspondiente.

- do8=do7
- do8=di5

Descripcin general de RAPID 187


Principios de E/S

Si se cambia el valor de do7 a 1, do8 tambin pasa a tener el valor 1. Si a continuacin


se cambia el valor de di5 a 0, se cambia tambin el valor de do8 (a pesar de que do7
sigue teniendo el valor 1).

- do5=di6 y do1

Do5 cambia a 1 si tanto di6 como do1 cambian a 1.

40.5 Limitaciones
Es posible utilizar pulsos con un mximo de 10 seales y retardos con un mximo de
20 seales en un momento determinado.

40.6 Informacin relacionada


Descrito en:
Definicin de placas y seales de E/S Gua del usuario - Parmetros del
sistema
Instrucciones para la gestin de E/S Resumen sobre RAPID - Seales de
entrada y salida
Manipulacin manual de E/S Gua del usuario - Entradas y salidas

188 Descripcin general de RAPID


Programacin fuera de lnea

41 Programacin fuera de lnea


Los programas de RAPID pueden crearse, mantenerse y almacenarse fcilmente en un
ordenador normal de oficina. Toda la informacin puede leerse y modificarse
directamente mediante un editor de textos convencional. En este captulo se explica el
procedimiento de trabajo para hacerlo. Adems de la programacin fuera de lnea,
puede usar la herramienta asistida por ordenador, QuickTeach.

41.1 Formato de archivo


El robot almacena y lee los programas de RAPID en formato de texto (ASCII) y es
compatible con los formatos de texto de DOS y UNIX. Si utiliza un procesador de
textos para editar los programas, debe guardarlos con el formato de texto (ASCII) antes
de usarlos en el robot.

41.2 Edicin
Cuando se crea o modifica un programa en un procesador de textos, toda la
informacin se maneja en forma de texto. Esto significa que la informacin acerca de
datos y rutinas ser algo distinta de la que se muestra en la unidad de programacin.

Recuerde que el valor de una posicin almacenada slo se muestra como un asterisco
(*) en la unidad de programacin, mientras que el archivo de texto contendr el valor
real de la posicin (x, y, z, etc.).

Para reducir al mnimo el riesgo de cometer errores en la sintaxis (programas con


fallos), debe utilizar una plantilla. Las plantillas pueden tener la forma de un programa
creado anteriormente con el robot o utilizando QuickTeach. Estos programas pueden
abrirse directamente desde un procesador de textos sin necesidad de convertirlos.

41.3 Comprobacin de la sintaxis


Los programas deben ser correctos sintcticamente antes de cargarlos en el robot. Con
ello se indica que el texto debe cumplir las reglas fundamentales del lenguaje RAPID.
Debe utilizar uno de los mtodos siguientes para detectar errores en el texto:

Guarde el archivo en un disquete e intente abrirlo en el robot. Si existen errores de


sintaxis, el programa no ser aceptado y se mostrar un mensaje de error. Para obtener
informacin acerca del tipo de error, el robot almacena un archivo de registro
denominado PGMCPL1.LOG en el disco RAM interno. Copie el archivo de registro
a un disquete utilizando el Administrador de archivos del robot. Abra el archivo de
registro en un procesador de textos, donde podr ver qu lneas eran incorrectas,
adems de una descripcin del error.
Abra el archivo en QuickTeach o ProgramMaker.
Utilice un programa de comprobacin de sintaxis de RAPID para PC.

Descripcin general de RAPID 189


Programacin fuera de lnea

Una vez que el programa es correcto sintcticamente, puede comprobarlo y editarlo en


el robot. Para asegurarse de que todas las referencias a rutinas y datos sean correctas,
utilice el comando Archivo: Verificar Programa. Si se ha modificado el programa en
el robot, puede almacenarlo de nuevo en el disquete y procesarlo o almacenarlo en
un PC.

41.4 Ejemplos
A continuacin aparecen algunos ejemplos del aspecto que tienen las rutinas en
formato de texto.

%%%
VERSION: 1
LANGUAGE: ENGLISH
%%%
MODULE main
VAR intnum process_int ;
! Demostracin de un programa de RAPID
PROC main()
MoveL p1, v200, fine, gun1;
ENDPROC

TRAP InvertDo12
! Rutina TRAP para TriggInt
TEST INTNO
CASE process_int:
InvertDO do12;
DEFAULT:
TPWrite TRAP desconocido, nmero=\Num:=INTNO;
ENDTEST
ENDTRAP

LOCAL FUNC num MaxNum(num t1, num t2)


IF t1 > t2 THEN
RETURN t1;
ELSE
RETURN t2;
ENDIF
ENDFUNC
ENDMODULE

190 Descripcin general de RAPID


Programacin fuera de lnea

41.5 Creacin de instrucciones propias


Para facilitar la programacin, puede personalizar sus propias instrucciones. Se crean
con la forma de rutinas nuevas, pero funcionan como instrucciones a la hora de
programar y realizar ejecuciones de test:

- Puede tomarlas de la lista de seleccin de instrucciones y programarlas como


instrucciones normales.
- Durante la ejecucin paso a paso, se ejecuta la rutina completa.
Cree un nuevo mdulo de sistema. En l puede almacenar las rutinas que se usarn
como instrucciones. Tambin puede situarlas en el mdulo de sistema USER.
Cree una rutina en este sistema con el nombre que desea asignar a la nueva
instruccin. Los argumentos de la instruccin se definen en forma de parmetros de
rutina. Observe que el nombre de los parmetros se mostrar en la ventana durante la
programacin y por tanto debe usar nombres fcilmente comprensibles para el
usuario.
Site la rutina en una de las listas de seleccin de instrucciones habituales.
Si desea que la instruccin se comporte de una forma determinada durante la
ejecucin hacia atrs, puede hacerlo en forma de un gestor de ejecucin hacia atrs.
Si no utiliza un gestor de este tipo, no podr ir ms all de la instruccin durante la
ejecucin del programa hacia atrs (consulte el Captulo 13 de este manual,
Caractersticas bsicas). Puede introducir un gestor de ejecucin hacia atrs mediante
el comando Rutina: Aadir Gestor Atrs en la ventana Rutinas de Programa.
Pruebe la rutina detalladamente, de forma que funcione con distintos tipos de datos
de entrada (argumentos).
Cambie el atributo del mdulo a NOSTEPIN. A partir de ese momento, durante la
ejecucin paso a paso se ejecuta la rutina completa. Sin embargo, debe introducir este
atributo fuera de lnea.

Ejemplo: Para facilitar el manejo de la pinza, se crean dos instrucciones nuevas,


GripOpen y GripClose. El nombre de la seal de salida se asigna al argumento de la
instruccin, por ejemplo GripOpen gripper1.

MODULE My_instr (SYSMODULE, NOSTEPIN)


PROC GripOpen (VAR signaldo Gripper)
Set Gripper;
WaitTime 0.2;
ENDPROC
PROC GripClose (VAR signaldo Gripper)
Reset Gripper;
WaitTime 0.2;
ENDPROC
ENDMODULE

Descripcin general de RAPID 191


Programacin fuera de lnea

192 Descripcin general de RAPID


Mdulo de sistema User

42 Mdulo de sistema User


Con el fin de facilitar la programacin, el robot se suministra con datos predefinidos.
No es necesario crear estos datos y, por tanto, pueden usarse directamente.

Si se utilizan estos datos, la programacin inicial resulta ms sencilla. Sin embargo,


suele ser buena idea asignar sus propios nombres a los datos que use, con el fin de
facilitar la lectura del programa.

42.1 Contenido
User comprende cinco datos numricos (registros), un dato de objetos de trabajo, un
reloj y dos valores simblicos para seales digitales.

Nombre Tipo de datos Declaracin


reg1 num VAR num reg1:=0
reg2 . .
reg3 . .
reg4 . .
reg5 num VAR num reg5:=0
wobj1 wobjdata PERS wobjdata wobj1:=wobj0
clock1 clock VAR clock clock1
high dionum CONST dionum high:=1
low dionum CONST dionum low:=0
edge dionum CONST dionum edge:=2

User es un mdulo de sistema, lo que significa que siempre est presente en la memoria
del robot, con independencia de qu programa est cargado.

42.2 Creacin de nuevos datos en este mdulo


Puede usar este mdulo para crear datos y rutinas que deban estar siempre presentes en
la memoria de programas, independientemente de qu programa est cargado. Por
ejemplo, puede cargar rutinas de herramientas y servicios.

Seleccione Ver: Mdulos en la ventana Programa.


Seleccione el mdulo de sistema User y presione Intro .
Modifique y cree sus datos y rutinas de la forma normal (consulte Programacin y
testing).

Descripcin general de RAPID 193


Mdulo de sistema User

42.3 Eliminacin de esta informacin


Advertencia: Si elimina el mdulo, la instruccin CallByVar no funcionar.

Para eliminar toda la informacin (es decir, todo el mdulo)

Seleccione Ver: Mdulos en la ventana Programa.


Seleccione el mdulo User.
Presione Supr .

Para modificar o eliminar datos concretos

Seleccione Ver: Datos en la ventana Programa.


Seleccione Datos: En todos los mdulos.
Seleccione los datos deseados. Si no aparecen, presione la tecla de funcin Tipos para
seleccionar el tipo de dato correcto.
Modifique o elimine los datos de la forma normal (consulte Programacin y testing).

194 Descripcin general de RAPID


Glosario

43 Glosario
Argumento Las partes de una instruccin que pueden cambiarse,
es decir, todo menos el nombre de la instruccin.
Componente Una parte de un registro.
Configuracin La posicin de los ejes del robot en un punto
determinado.
Constante Un dato cuyo valor slo puede cambiarse manualmente.
Datos de programa Los datos que estn disponibles en todo un mdulo o
en el programa completo.
Datos de rutina Datos locales que slo pueden usarse en una rutina.
Declaracin La parte de una rutina o de un dato en la que se
definen sus propiedades.
Dilogo/ventana de dilogo Siempre es necesario cerrar las ventanas de dilogo
que aparecen en la pantalla de la unidad de
programacin (normalmente presionando OK o
Cancela) antes de continuar.
E/S Entradas y salidas elctricas.
Expresin Una secuencia de datos y operandos asociados, por
ejemplo reg1+5 o reg1>5.
Funcin Una rutina que devuelve un valor.
Gestor de errores Dentro de una rutina, la parte separada en la que se
gestiona un error. Despus del gestor, la ejecucin se
reanuda automticamente.
Grupo de seales Un nmero de seales digitales que se agrupan y se
gestionan como una sola seal.
Interrupcin Un evento que interrumpe temporalmente la
ejecucin del programa y ejecuta una rutina TRAP.
Modo automtico El modo aplicable cuando se cambia el selector de
modo a .
Modo manual El modo aplicable cuando se cambia el selector de
modo a .
Mdulo Un grupo de rutinas y datos, es decir, una parte del
programa.
Mdulo de programa Un mdulo incluido en el programa del robot y que se
transfiere al copiar el programa a un disquete, por
ejemplo.
Mdulo de sistema Un mdulo que est siempre presente en la memoria
de programas. Cuando se lee un nuevo programa, los
mdulos de sistema permanecen en la memoria de
programas.
Motores activados/desactivados El estado del robot, es decir, si la fuente de
alimentacin de los motores est activada.
Descripcin general de RAPID 195
Glosario

Orientacin Por ejemplo, la direccin de un elemento terminal.


Panel de control El panel situado en la parte delantera del sistema de
control.
Parmetro El dato de entrada de una rutina, enviado la llamada a
la rutina. Corresponde al argumento de una instruccin.
Parmetros del sistema Los parmetros que definen el equipo y las
propiedades del robot, o los datos de configuracin, en
otras palabras.
Procedimiento Una rutina que puede formar independientemente una
instruccin cuando se la llama.
Programa El conjunto de instrucciones y datos que definen la
tarea del robot. Sin embargo, los programas no
contienen mdulos de sistema.
Punto central de la herramienta El punto, normalmente en la punta de una
(TCP) herramienta, que se mueve siguiendo una trayectoria
programada y a la velocidad programada.
Punto de inicio La instruccin que se ejecuta en primer lugar cuando
comienza la ejecucin del programa.
Punto de paro Un punto en el que el robot se detiene antes de
continuar al punto siguiente.
Punto de paso Un punto al que se acerca el robot en su avance, pero
sin detenerse en l. La distancia existente hasta el
punto depende del tamao de la zona programada.
Registro Un tipo de datos compuesto.
Rutina Un subprograma.
Rutina Main La rutina que suele ponerse en marcha cuando se
presiona la tecla Arranca.
Rutina TRAP La rutina que define qu debe ocurrir cuando se
produce una interrupcin determinada.
Trayectoria de esquina La trayectoria generada al atravesar un punto de paso.
Unidad mecnica Un grupo de ejes externos.
Variable Un dato cuyo valor puede cambiarse desde un
programa pero que pierde su valor (vuelve a su valor
inicial) cuando se pone en marcha un programa desde
el principio.
Variable persistente Una variable cuyo valor es persistente.
Ventana El robot se programa y utiliza por medio de un
conjunto de ventanas, como por ejemplo, la ventana
Programa y la ventana Servicio. Para salir de una
ventana, slo tiene que seleccionar otra ventana.
Zona El espacio esfrico que rodea a un punto de paso. Tan
pronto como el robot entra en esta zona, comienza a
trasladarse hacia la siguiente posicin.

196 Descripcin general de RAPID


Index

A E/S, sincronizacin 153


ejecucin hacia atrs 117
agregado 93 ejecucin simultnea 155, 171
alias, tipo de dato 94 ejes externos
mbito coordinados 133
mbito de una rutina 85 ejes externos coordinados 133
dato, mbito 95 encabezado del archivo 78
AND 104 entrada, instrucciones 27
archivo, instrucciones 31 ERRNO 111
argumento expresin 103
condicional 107 expresin aritmtica 103
argumento condicional 107 expresin de cadena de caracteres 105
asignar un valor a un dato 9 expresin lgica 104
B F
base de coordenadas de desplazamiento 132 flujo de programa, instrucciones 7
bsqueda, instrucciones 20 fuera de lnea, programar 189
C funcin 85

cadena de caracteres 76 G
comentario 9, 77 gestor de ejecucin hacia atrs 87, 117, 122,
componente de un registro 93 191
comunicacin 45 gestor de errores 111
comunicacin, instrucciones 31 global
conexiones cruzadas 187 datos 95
configuracin de ejes 159 rutina 85
configuracin del robot 159
CONST 97 I
constante 95
convenciones tipogrficas 2 identificador 75
igualdad, tipo de dato 94
D instrucciones de espera 9
instrucciones matemticas 41, 55
datos 95 interpolacin 139
utilizados en expresiones 105 interpolacin lineal modificada 142
datos de programa 95 interrupcin 33, 113
datos de rutina 96
declaracin L
constante 97
mdulo 82 llamada a funcin 106
persistente 97 llamar a una subrutina 7
rutina 87 local
variable 96 datos 95
detener la ejecucin del programa 8 rutina 85
DIV 103
M
E
main, rutina principal 81
E/S de posicin fija 158 marcador de sustitucin 77

Descripcin general de RAPID 197


matriz 96, 97 semivalor, tipo de datos 93
MOD 103 servo suave 151
mdulo 81 singularidad 173, 177
declaracin 82 sistema de coordenadas 129, 163
mdulo de programa 81 sistema de coordenadas de la base 129
mdulo de sistema 82 sistema de coordenadas de la herramienta 135
movimiento circular 141 sistema de coordenadas de la mueca 135
movimiento de ejes 139 sistema de coordenadas de objeto 131
movimiento lineal 140 sistema de coordenadas del usuario 131
movimiento, instrucciones 20 sistema de coordenadas mundo 130
movimiento, instrucciones para parmetros 13 switch, parmetro modificador 87
multitarea 57, 121
T
N
TCP 129, 163
NOT 104 estacionario 136
nmero de error 111 TCP estacionario 136
tiempo, instrucciones 39
O tipo de datos 93
operador tipos de datos sin valores 93
prioridad 107 trayectoria de esquina 143
OR 104 trayectoria, sincronizacin 158

P U

palabras reservadas 75 User, mdulo de sistema 193


parmetro 86 V
parmetro opcional 86
PERS 97 valor lgico 76
persistente 95 valor numrico 76
posicin VAR 96
instruccin 20 variable 95
Principios de E/S 185
procedimiento 85 X
programa 81 XOR 104
programar 189
punto central de la herramienta 129, 163

recuperacin en caso de error 111


registro 93
reglas de sintaxis 2
rutina 85
declaracin 87
rutina TRAP 85, 113

salida, instrucciones 27

198 Descripcin general de RAPID


3HAC 7787-1, La revisin A -sp

a
ABB Automation Technology Products AB
Robotics
S-721 68 VSTERS
SWEDEN
Telephone: +46 (0) 21 344000
Telefax: +46 (0) 21 132592

También podría gustarte