Вы находитесь на странице: 1из 228

Manual de referencia de RAPID

Descripcin general de RAPID


Software de controlador para IRC5 RobotWare 5.0

Manual de referencia de RAPID 3HAC 16580-5 Revisin A Software de controlador para IRC5 Descripcin general de RAPID RobotWare 5.0

ndice

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. ABB no ser en ningn caso responsable de los daos accidentales o consecuentes que se produzcan como consecuencia del uso de este manual o de los productos descritos en el mismo. Se prohbe 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 perseguido legalmente. Usted puede obtener copias adicionales de este manual a travs de ABB, con el coste aplicable en el momento de su solicitud.

Copyright 2004 ABB. Reservados todos los derechos. ABB Automation Technologies 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 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 .................................................................................................................. 10 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 .............................................................................................. 14 5.7 Definicin del comportamiento cerca de puntos singulares........................................... 15 5.8 Desplazamiento de programa ......................................................................................... 15 5.9 Servo suave..................................................................................................................... 15 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 6.3 Bsqueda ........................................................................................................................ 20 Descripcin general de RAPID I

ndice
6.4 Activacin de salidas o interrupciones en posiciones concretas .................................... 21 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 Obtencin de la informacin de robot en un sistema MultiMove .................................. 22 6.8 Control de ejes externos ................................................................................................. 22 6.9 Ejes independientes ........................................................................................................ 23 6.10 Correccin de trayectoria ............................................................................................. 24 6.11 Grabadora de trayectorias............................................................................................. 24 6.12 Conveyor tracking (Control de transportadores).......................................................... 25 6.13 Sincronizacin de sensores........................................................................................... 25 6.14 Identificacin de carga y deteccin de colisiones ........................................................ 25 6.15 Funciones de posicin .................................................................................................. 26 6.16 Comprobacin de la interrupcin de una trayectoria despus de una cada de alimentacin............................................................................................................................... 26 6.17 Funciones de estado...................................................................................................... 26 6.18 Datos de movimiento.................................................................................................... 27 6.19 Datos bsicos de los movimientos................................................................................ 27 7 Seales de entrada y salida..................................................................................................... 29 7.1 Principios de programacin............................................................................................ 29 7.2 Modificacin del valor de una seal............................................................................... 29 7.3 Lectura del valor de una seal de entrada ...................................................................... 29 7.4 Gestin de errores........................................................................................................... 30 7.5 Lectura del valor de una seal de salida......................................................................... 30 7.6 Comprobacin de la entrada en las seales de salida ..................................................... 30 7.7 Desactivacin y activacin de mdulos de E/S.............................................................. 30 7.8 Definicin de seales de entrada y salida....................................................................... 31 7.9 Obtencin del estado de la unidad de E/S ...................................................................... 31 8 Comunicacin .......................................................................................................................... 33 8.1 Principios de programacin............................................................................................ 33 8.2 Comunicacin a travs del FlexPendant ........................................................................ 33 8.3 Lectura o escritura a travs de un canal serie o un archivo alfanumrico...................... 34 8.4 Comunicacin a travs de canales serie o archivos o buses de campo binarios............. 34 8.5 Conversin...................................................................................................................... 35 8.6 Datos para canales serie ................................................................................................. 35 9 Interrupciones ......................................................................................................................... 37 9.1 Principios de programacin............................................................................................ 37 9.2 Conexin de interrupciones a rutinas TRAP .................................................................. 37 9.3 Peticin de interrupciones .............................................................................................. 38

II

Descripcin general de RAPID

ndice
9.4 Cancelacin de interrupciones........................................................................................ 38 9.5 Activacin y desactivacin de interrupciones ................................................................ 38 9.6 Datos de interrupcin...................................................................................................... 38 9.7 Tipos de datos de las interrupciones............................................................................... 39 10 Recuperacin en caso de error............................................................................................. 41 10.1 Principios de programacin .......................................................................................... 41 10.2 Creacin de una situacin de error desde el propio programa ..................................... 41 10.3 Registro de un nmero de error .................................................................................... 41 10.4 Reinicio y retorno desde el gestor de errores ............................................................... 42 10.5 Errores y avisos definidos por el usuario...................................................................... 42 10.6 Generacin de errores de proceso................................................................................. 42 10.7 Datos para la gestin de errores.................................................................................... 42 10.8 Configuracin para la gestin de errores...................................................................... 43 11 Sistema y tiempo.................................................................................................................... 45 11.1 Principios de programacin .......................................................................................... 45 11.2 Utilizacin de un reloj para temporizar un evento........................................................ 45 11.3 Lectura de la hora y la fecha actuales........................................................................... 45 11.4 Obtencin de informacin de hora de un archivo......................................................... 46 11.5 Obtener el tamao de memoria libre del programa ...................................................... 46 12 Operaciones matemticas..................................................................................................... 47 12.1 Principios de programacin .......................................................................................... 47 12.2 Clculos sencillos con datos numricos ....................................................................... 47 12.3 Clculos ms avanzados ............................................................................................... 47 12.4 Funciones aritmticas ................................................................................................... 48 12.5 Funciones de bits .......................................................................................................... 49 13 Comunicacin con un ordenador externo........................................................................... 51 13.1 Principios de programacin .......................................................................................... 51 13.2 Envo de un mensaje controlado por el programa del robot a un ordenador................ 51 14 Funciones para operaciones con archivos........................................................................... 53 15 Instrucciones de soporte de RAPID..................................................................................... 55 15.1 Obtencin de datos del sistema .................................................................................... 55 15.2 Obtencin de informacin acerca del sistema .............................................................. 55 15.3 Obtencin de informacin acerca de la memoria ......................................................... 56 15.4 Lectura de datos de configuracin .............................................................................. 56 15.5 Escritura de datos de configuracin............................................................................ 56 15.6 Reinicio del controlador ............................................................................................... 56 15.7 Funciones de disparo .................................................................................................... 56 15.8 Instrucciones para tablas de texto................................................................................. 57 Descripcin general de RAPID III

ndice
15.9 Obtencin de nombres de objetos ................................................................................ 57 15.10 Obtencin de nombres de tareas................................................................................. 57 15.11 Bsqueda de smbolos ................................................................................................ 58 16 Instrucciones de servicio tcnico y calibracin .................................................................. 59 16.1 Calibracin de la herramienta....................................................................................... 59 16.2 Distintos mtodos de calibracin ................................................................................. 59 16.3 Envo de un valor a la seal de test del robot ............................................................... 59 16.4 Registro de una ejecucin............................................................................................. 60 17 Funciones para cadenas de caracteres ................................................................................ 61 17.1 Operaciones bsicas ..................................................................................................... 61 17.2 Comparacin y bsqueda ............................................................................................. 61 17.3 Conversin.................................................................................................................... 62 18 Multitarea .............................................................................................................................. 63 18.1 Conceptos bsicos ........................................................................................................ 63 18.2 Instrucciones y funciones generales ............................................................................. 63 18.3 Sistema MultiMove con robots coordinados................................................................ 64 19 Resumen de la sintaxis.......................................................................................................... 65 19.1 Instrucciones................................................................................................................. 65 19.2 Functions ...................................................................................................................... 78 20 Elementos bsicos.................................................................................................................. 85 20.1 Identificadores .............................................................................................................. 85 20.2 Espacios y caracteres de salto de lnea ......................................................................... 86 20.3 Valores numricos ........................................................................................................ 86 20.4 Valores lgicos ............................................................................................................. 86 20.5 Valores de cadena de caracteres ................................................................................... 86 20.6 Comentarios.................................................................................................................. 87 20.7 Marcadores de sustitucin ............................................................................................ 87 20.8 Encabezado del archivo................................................................................................ 88 20.9 Sintaxis ......................................................................................................................... 88 21 Mdulos.................................................................................................................................. 91 21.1 Mdulos de programa................................................................................................... 91 21.2 Mdulos de sistema ...................................................................................................... 92 21.3 Declaracin de mdulos ............................................................................................... 92 21.4 Sintaxis ......................................................................................................................... 93 22 Rutinas ................................................................................................................................... 95 22.1 mbito de una rutina .................................................................................................... 95 22.2 Parmetros .................................................................................................................... 96 22.3 Finalizacin de una rutina ............................................................................................ 97

IV

Descripcin general de RAPID

ndice
22.4 Declaraciones de rutinas............................................................................................... 97 22.5 Llamada a procedimiento ............................................................................................. 98 22.6 Sintaxis ......................................................................................................................... 99 23 Tipos de datos ...................................................................................................................... 103 23.1 Tipos de datos sin valores........................................................................................... 103 23.2 Tipos de datos de igualdad (alias) .............................................................................. 104 23.3 Sintaxis ....................................................................................................................... 104 24 Datos ..................................................................................................................................... 105 24.1 mbito de un dato ...................................................................................................... 105 24.2 Declaracin de variables............................................................................................. 106 24.3 Declaracin de variables persistentes ......................................................................... 107 24.4 Declaracin de constantes .......................................................................................... 107 24.5 Inicializacin de datos ................................................................................................ 108 24.6 Clase de almacenamiento ........................................................................................... 109 24.7 Sintaxis ....................................................................................................................... 110 25 Instrucciones.........................................................................................................................111 25.1 Sintaxis ....................................................................................................................... 111 26 Expresiones .......................................................................................................................... 113 26.1 Expresiones aritmticas .............................................................................................. 113 26.2 Expresiones lgicas .................................................................................................... 114 26.3 Expresiones de cadena de caracteres .......................................................................... 115 26.4 Utilizacin de datos en expresiones............................................................................ 115 Matrices........................................................................................................................ 115 Registros....................................................................................................................... 115 26.5 Utilizacin de agregados en expresiones.................................................................... 116 26.6 Utilizacin de llamadas a funciones en las expresiones ............................................. 116 26.7 Prioridad entre operadores.......................................................................................... 117 Ejemplo ........................................................................................................................ 118 26.8 Sintaxis ....................................................................................................................... 118 Expresiones .................................................................................................................. 118 Operadores ................................................................................................................... 118 Valores constantes ........................................................................................................ 118 Datos ............................................................................................................................ 119 Agregados .................................................................................................................... 119 Llamadas a funciones................................................................................................... 119 Expresiones especiales ................................................................................................. 120 Parmetros.................................................................................................................... 120 27 Recuperacin en caso de error........................................................................................... 121 Descripcin general de RAPID V

ndice
27.1 Gestores de errores ..................................................................................................... 121 Gestor de errores del sistema ....................................................................................... 122 Errores elevados por el programa ................................................................................ 122 El registro de eventos................................................................................................... 122 28 Interrupciones ..................................................................................................................... 123 28.1 Manipulacin de interrupciones ................................................................................. 123 28.2 Rutinas TRAP............................................................................................................. 124 29 UNDO................................................................................................................................... 125 29.1 Definiciones/terminologa .......................................................................................... 125 29.2 Cundo utilizar UNDO............................................................................................... 125 29.3 Comportamiento detallado de UNDO ........................................................................ 125 29.4 Limitaciones ............................................................................................................... 126 29.5 Ejemplo ...................................................................................................................... 127 30 Ejecucin hacia atrs .......................................................................................................... 129 30.1 Gestores de ejecucin hacia atrs ............................................................................... 129 30.2 Limitacin de las instrucciones de movimiento del gestor de ejecucin hacia atrs . 130 30.3 Comportamiento de la ejecucin hacia atrs .............................................................. 131 Rutinas MoveC y nostepin........................................................................................... 131 Objetivo, tipo de movimiento y velocidad................................................................... 131 Ejemplo ........................................................................................................................ 132 31 Multitarea ............................................................................................................................ 135 31.1 Sincronizacin de tareas ............................................................................................. 136 Sincronizacin mediante consulta................................................................................ 136 Sincronizacin mediante una interrupcin................................................................... 137 31.2 Comunicacin entre tareas ......................................................................................... 137 31.3 Tipo de tarea ............................................................................................................... 138 31.4 Prioridades.................................................................................................................. 139 31.5 Nivel de confianza...................................................................................................... 140 31.6 Una consideracin a tener en cuenta .......................................................................... 141 31.7 Esquema de programacin ......................................................................................... 141 Primera vez .................................................................................................................. 141 Fase de iteracin .......................................................................................................... 141 Fase de finalizacin...................................................................................................... 142 32 Sistemas de coordenadas .................................................................................................... 143 32.1 El punto central de la herramienta del robot (TCP) ................................................... 143 32.2 Sistemas de coordenadas utilizados para determinar la posicin del TCP................. 143 Sistema de coordenadas de la base .............................................................................. 143 Sistema de coordenadas mundo ................................................................................... 144

VI

Descripcin general de RAPID

ndice
Sistema de coordenadas del usuario............................................................................. 145 Sistema de coordenadas de objeto ............................................................................... 145 Sistema de coordenadas de desplazamiento................................................................. 146 Ejes externos coordinados............................................................................................ 147 32.3 Sistemas de coordenadas utilizados para determinar la direccin de la herramienta. 148 Sistema de coordenadas de la mueca ......................................................................... 149 Sistema de coordenadas de la herramienta .................................................................. 149 TCPs estacionarios ....................................................................................................... 150 32.4 Informacin relacionada ............................................................................................. 152 33 Posicionamiento durante la ejecucin del programa ....................................................... 153 33.1 Consideraciones generales.......................................................................................... 153 33.2 Interpolacin de la posicin y la orientacin de la herramienta ................................. 153 Interpolacin de ejes .................................................................................................... 153 Interpolacin lineal ...................................................................................................... 154 Interpolacin circular ................................................................................................... 155 SingArea\Wrist............................................................................................................. 156 33.3 Interpolacin de trayectorias de esquina .................................................................... 157 Interpolacin de ejes en trayectorias de esquina .......................................................... 158 Interpolacin lineal de una posicin en trayectorias de esquina .................................. 158 Interpolacin lineal de la orientacin en trayectorias de esquina ................................ 159 Interpolacin de ejes externos en trayectorias de esquina ........................................... 160 Trayectorias de esquina al cambiar de mtodo de interpolacin ................................. 160 Interpolacin al cambiar de sistema de coordenadas ................................................... 160 Trayectorias de esquina con zonas superpuestas.......................................................... 161 Planificacin de tiempo para los puntos de paso ......................................................... 162 33.4 Ejes independientes .................................................................................................... 162 Ejecucin de programas ............................................................................................... 162 Ejecucin paso a paso .................................................................................................. 163 Movimiento.................................................................................................................. 163 rea de trabajo ............................................................................................................. 163 Velocidad y aceleracin ............................................................................................... 164 Ejes del robot ............................................................................................................... 164 33.5 Servo suave................................................................................................................. 165 33.6 Paro y reanudacin ..................................................................................................... 165 33.7 Informacin relacionada ............................................................................................. 166 34 Sincronizacin con instrucciones lgicas .......................................................................... 167 34.1 Ejecucin secuencial del programa en puntos de paro ............................................... 167 34.2 Ejecucin secuencial de programas en puntos de paso .............................................. 167 Descripcin general de RAPID VII

ndice
34.3 Ejecucin simultnea de programas ........................................................................... 168 34.4 Sincronizacin de trayectorias.................................................................................... 171 34.5 Informacin relacionada............................................................................................. 172 35 Configuracin del robot...................................................................................................... 173 35.1 Distintos tipos de configuraciones de robot ............................................................... 173 35.2 Especificacin de la configuracin del robot ............................................................. 175 35.3 Comprobacin de la configuracin ............................................................................ 175 35.4 Informacin relacionada............................................................................................. 176 36 Modelos cinemticos del robot........................................................................................... 177 36.1 Cinemtica del robot .................................................................................................. 177 Robot principal............................................................................................................. 177 Robot externo............................................................................................................... 178 36.2 Cinemtica general ..................................................................................................... 179 36.3 Informacin relacionada............................................................................................. 181 37 Supervisin del movimiento y deteccin de colisiones..................................................... 183 37.1 Introduccin................................................................................................................ 183 37.2 Ajuste de los niveles de deteccin de colisiones ........................................................ 183 37.3 Ventana de dilogo Supervisin del Movimiento....................................................... 185 37.4 Salidas digitales.......................................................................................................... 185 37.5 Limitaciones ............................................................................................................... 185 37.6 Informacin relacionada............................................................................................. 186 38 Singularidades ..................................................................................................................... 187 Puntos de singularidad del robot IRB140 .................................................................... 188 38.1 Ejecucin del programa a travs de singularidades.................................................... 188 38.2 Movimiento a travs de singularidades ...................................................................... 188 38.3 Informacin relacionada............................................................................................. 189 39 Limitacin optimizada de la aceleracin .......................................................................... 191 40 Zonas mundo ....................................................................................................................... 193 40.1 Utilizacin de zonas globales ..................................................................................... 193 40.2 Utilizacin de zonas mundo ....................................................................................... 193 40.3 Definicin de zonas mundo en el sistema de coordenadas mundo ............................ 193 40.4 Supervisin del TCP del robot ................................................................................... 194 TCPs estacionarios....................................................................................................... 194 40.5 Acciones ..................................................................................................................... 195 Activar una salida digital cuando el TCP se encuentra dentro de una zona mundo. ... 195 Activar una salida digital antes de que el TCP alcance una zona mundo.................... 195 Detener el robot antes de que el TCP alcance una zona mundo. ................................. 195 40.6 Tamao mnimo de las zonas mundo ......................................................................... 196

VIII

Descripcin general de RAPID

ndice
40.7 Nmero mximo de zonas mundo .............................................................................. 196 40.8 Cadas de alimentacin, reinicio y reanudacin ......................................................... 196 40.9 Informacin relacionada ............................................................................................. 197 41 Principios de E/S ................................................................................................................. 199 41.1 Caractersticas de las seales...................................................................................... 199 41.2 Seales conectadas a interrupciones........................................................................... 200 41.3 Seales del sistema ..................................................................................................... 201 41.4 Conexiones cruzadas .................................................................................................. 201 41.5 Limitaciones ............................................................................................................... 202 41.6 Informacin relacionada ............................................................................................. 202 42 Programacin fuera de lnea .............................................................................................. 203 42.1 Formato de archivo..................................................................................................... 203 42.2 Edicin........................................................................................................................ 203 42.3 Comprobacin de la sintaxis....................................................................................... 203 42.4 Ejemplos ..................................................................................................................... 204 42.5 Creacin de instrucciones propias .............................................................................. 205 43 Mdulo de sistema User...................................................................................................... 207 43.1 Contenido.................................................................................................................... 207 43.2 Creacin de nuevos datos en este mdulo .................................................................. 207 43.3 Eliminacin de esta informacin ................................................................................ 208 44 Glosario ................................................................................................................................ 209

Descripcin general de RAPID

IX

ndice

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 todos 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. Cuando empiece a programar el robot normalmente es mejor empezar con el Manual del operador - IRC5 con FlexPendant hasta que est familiarizado 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. El Manual del operador - IRC5 con FlexPendant contiene instrucciones detalladas acerca de cmo realizar distintas tareas, por ejemplo, cmo mover manualmente el robot, cmo realizar la programacin o cmo 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. El Manual de referencia de RAPID - Parte 1 y 2, la Parte 1 describe todas las instrucciones y la Parte 2 las funciones y tipos de datos. Se describen en orden alfabtico para mayor comodidad.

Descripcin general de RAPID

Introduccin
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. 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 y un glosario. Por otro lado, el Manual de referencia de RAPID - Parte 1 y 2 contiene un ndice al final. Convenciones tipogrficas Los comandos situados en cualquiera de las cinco teclas de men de la parte superior de cada pantalla del FlexPendant 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, 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 el FlexPendant en lo siguiente: - Determinadas palabras de control que aparecen con una mscara en la pantalla del FlexPendant 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 el FlexPendant para programar, normalmente slo necesita conocer la sintaxis simplificada, dado que el robot se asegura automticamente de que se utilice la sintaxis correcta.

Descripcin general de RAPID

Introduccin
Sintaxis simplificada Ejemplo:

TPWrite
Instruccin

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


Argumento opcional Argumentos excluyentes entre s

Argumento obligatorio

- 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> <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. Descripcin general de RAPID 3

Introduccin

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

La estructura del lenguaje


Otras caractersticas del lenguaje son: - Parmetros de rutinas - Expresiones aritmticas y lgicas - Gestin automtica de errores - Programas modulares - Multitarea

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 ProcCall CallByVar RETURN Finalidad: Llamar (saltar a) otra rutina Llamar a procedimientos que tienen nombres concretos Volver a la rutina original

3.3 Control del programa dentro de la rutina


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

Control del flujo del programa

3.4 Detencin de la ejecucin del programa


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

3.5 Detencin del ciclo actual


Instruccin ExitCycle Finalidad: 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.

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: Asignacin de 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 WaitTime WaitUntil WaitDI WaitDO Finalidad: Esperar una cantidad determinada de tiempo o esperar hasta que el robot deje de moverse Esperar hasta que se cumpla una condicin Esperar hasta que se active una entrada digital 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 comentario Finalidad: Comentario sobre el programa

Descripcin general de RAPID

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 Load UnLoad StartLoad WaitLoad CancelLoad Save EraseModule Tipo de datos loadsession Finalidad: Cargar un mdulo de programa en la memoria de programas Descargar un mdulo de programa de la memoria de programas Cargar un mdulo de programa en la memoria de programas durante la ejecucin Conectar el mdulo, si se ha cargado con StartLoad, a la tarea de programa Cancelar la carga de un mdulo que se est cargando o que se ha cargado con la instruccin StartLoad Guardar un mdulo de programa Borrar un mdulo de la memoria del programa. Finalidad: Programar una sesin de carga

4.5 Otras funciones


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

4.6 Datos bsicos


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

Otras instrucciones

4.7 Funciones de conversin


Funcin StrToByte ByteToStr Finalidad: Convertir un byte en un dato de cadena de caracteres con un formato definido de datos de byte. 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 MaxRobSpeed Finalidad: 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 VelSet Para definir: 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 AccSet WorldAccLim PathAccLim Finalidad: Definir la aceleracin mxima Limitar la aceleracin/deceleracin de la herramienta (y la carga de la pinza) dentro del sistema de coordenadas mundo. 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 ConfJ ConfL Para definir: Control de configuracin activado/desactivado durante el movimiento de ejes Control de configuracin activado/desactivado durante el movimiento lineal

5.6 Definicin de la carga til


Para alcanzar el rendimiento ptimo del robot, es necesario definir la carga til correcta. Instruccin GripLoad Para definir: La carga til de la pinza

14

Descripcin general de RAPID

Parmetros de movimiento

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 SingArea Para definir: 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 PDispOn PDispSet PDispOff EOffsOn EOffsSet EOffsOff Funcin DefDFrame DefFrame ORobT DefAccFrame Finalidad: Activar el desplazamiento de programa Activar el desplazamiento de programa mediante la especificacin de un valor Desactivar el desplazamiento de programa Activar un offset del eje externo Activar un offset de eje externo mediante la especificacin de un valor Desactivar un offset de eje externo Finalidad: Calcular un desplazamiento de programa desde tres posiciones Calcular un desplazamiento de programa desde seis posiciones Eliminar el desplazamiento de programa desde una posicin Definir una base de coordenadas desde las posiciones originales y las desplazadas

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 SoftAct SoftDeact DitherAct1 DitherDeact1
1. Slo en el sistema IRB 7600

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

Descripcin general de RAPID

15

Parmetros de movimiento

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 TuneServo TuneReset PathResol CirPathMode Tipo de dato tunetype Finalidad: Modificar los valores de ajuste del robot Restablecer el ajuste al modo normal Ajustar la resolucin de trayectorias geomtricas Seleccionar la forma en que la herramienta cambia de orientacin durante una interpolacin circular Finalidad: Representar el tipo de ajuste como una constante simblica

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 WZBoxDef WZCylDef WZSphDef WZHomeJointDef WZLimJointDef WZLimSup1 WZDOSet
1 1 1

Finalidad: Definir una zona global cuadrada Definir una zona global cilndrica Definir una zona global esfrica Definir una zona global en coordenadas de ejes Definir una zona global en coordenadas de ejes para la delimitacin del rea de trabajo Activar la supervisin de lmites de una zona global Activar la zona global para el establecimiento de salidas digitales Desactivar la supervisin de una zona global temporal Activar la supervisin de una zona global temporal Borrar la supervisin de una zona global temporal Finalidad: Identificar una zona global temporal Identificar una zona global estacionaria Describir la geometra de una zona global

WZDisable1 WZEnable1 WZFree1 Tipo de dato wztemporary wzstationary1 shapedata


1

5.12 Datos para parmetros de movimiento


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

1. Slo si el robot est equipado con la opcin World zones

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 MoveC MoveJ MoveL MoveAbsJ MoveExtJ MoveCDO MoveJDO MoveLDO MoveCSync1 MoveJSync1 MoveLSync1 Tipo de movimiento: Mover el TCP a lo largo de una trayectoria circular Movimiento de ejes Mover el TCP a lo largo de una trayectoria lineal Movimiento absoluto de ejes Mover un eje externo lineal o giratorio sin TCP Mover el robot en una trayectoria circular y establecer una salida digital a medio camino de la trayectoria de esquina. Mover el robot con un movimiento de ejes y establecer una salida digital a medio camino de la trayectoria de esquina. Mover el robot en una trayectoria lineal y establecer una salida digital a medio camino de la trayectoria de esquina. Mover el robot en una trayectoria circular y ejecutar un procedimiento de RAPID. Mover el robot con un movimiento de ejes y ejecutar un procedimiento de RAPID 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 SearchC SearchL Tipo de movimiento: TCP a lo largo de una trayectoria circular TCP a lo largo de una trayectoria lineal

1. Slo si el robot est equipado con la opcin Fixed position events.

20

Descripcin general de RAPID

Movimiento

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. Instruccin TriggIO1 TriggInt1 TriggCheckIO1 TriggEquip1 Finalidad: Definir una condicin de disparo para establecer una salida en una posicin determinada Definir una condicin de disparo para ejecutar una rutina TRAP en una posicin determinada Definir una comprobacin de E/S en una posicin determinada 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 Mover el robot (el TCP) en crculo con una condicin de disparo activada Mover el robot eje por eje con una condicin de disparo activada Mover el robot (el TCP) linealmente con una condicin de disparo activada Retroceder en su trayectoria en una rutina de evento RESTART 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. Para definir: Condiciones de disparo Condiciones de disparo con E/S analgica
2

TriggC1 TriggJ1 TriggL1 StepBwdPath2 TriggStopProc2

Tipo de dato triggdata1 aiotrigg3 restartdata

Datos para TriggStopProc

6.5 Control de una seal analgica de salida de forma proporcional al TCP real
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 Fixed position events. 2. Slo si el robot est equipado con la opcin Advanced RAPID. 3. Slo si el robot est equipado con la opcin Analog signal interrupt.

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 StopMove StartMove StartMoveRetry StopMoveReset StorePath1 RestoPath1 ClearPath Finalidad: Detener los movimientos del robot Reiniciar los movimientos del robot Reiniciar los movimientos del robot y hacer un reintento en una secuencia indivisible Restablecer el estado de detencin de movimiento, pero sin iniciar los movimientos del robot Almacenar la ltima trayectoria generada Restaurar una trayectoria almacenada anteriormente Eliminar toda la trayectoria de movimiento del nivel actual de trayectorias de movimiento.

6.7 Obtencin de la informacin de robot en un sistema MultiMove


Se utiliza para obtener un nombre o una referencia al robot en la tarea de programa actual. Funcin RobName Dato ROB_ID Finalidad: Obtener el nombre del robot controlado en la tarea de programa actual, si lo hay. Finalidad: Obtener datos que contienen una referencia al robot controlado en la tarea de programa actual, si lo hay.

6.8 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 DeactUnit ActUnit MechUnitLoad Funcin GetNextMechUnit IsMechUnitActive Finalidad: Desactivar una unidad mecnica externa Activar una unidad mecnica externa Definir una carga til para una unidad mecnica Finalidad: Obtener el nombre de las unidades mecnicas del sistema del robot Comprobar si una unidad mecnica est activada o no

1. Slo si el robot est equipado con la opcin Path recovery.

22

Descripcin general de RAPID

Movimiento

6.9 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. Funcin IndAMove1 IndCMove1 IndDMove1 IndRMove1 IndReset1 IndInpos1 IndSpeed
1

Finalidad: Poner un eje en el modo independiente y mover el eje hasta una posicin absoluta Poner un eje en el modo independiente e iniciar un movimiento continuo del eje Poner un eje en el modo independiente y mover el eje una distancia delta Poner un eje en el modo independiente y mover el eje hasta una posicin relativa (dentro de la revolucin del eje) Poner un eje en el modo dependiente o/y restablecer el rea de trabajo Comprobar si un eje independiente est en posicin Comprobar si un eje independiente ha alcanzado la velocidad programada Finalidad: Restablecer la posicin de los ejes de mueca en los manipuladores de mueca huecos, por ejemplo, en los sistemas IRB 5402 y IRB 5403.

Instruccin HollowWristReset2

1. Slo si el robot est equipado con la opcin Independent movement. 2. Slo si el robot est equipado con la opcin Independent movement. La instruccin HollowWristReset slo puede usarse en los robots IRB 5402 y IRB 5403.

Descripcin general de RAPID

23

Movimiento

6.10 Correccin de trayectoria


Instruccin CorrCon1 CorrWrite
1

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

CorrDiscon1 CorrClear1 Funcin CorrRead


1

Leer todas las correcciones entregadas por todos los generadores de correccin conectados Finalidad: Aadir offsets geomtricos al sistema de coordenadas de trayectoria

Tipo de datos corrdescr1

6.11 Grabadora de trayectorias


Instruccin PathRecStart2 PathRecStop2 PathRecMoveBwd2 PathRecMoveFwd2 Funcin PathRecValidBwd2 PathRecValidFwd2 Tipo de datos pathrecid Finalidad: Iniciar la grabacin de la trayectoria del robot Detener la grabacin de la trayectoria del robot Mover el robot hacia atrs por una trayectoria grabada Mover el robot de nuevo a la posicin en la que se ejecut PathRecMoveBwd Finalidad: Comprobar si la grabadora de trayectorias est activa y si est disponible una trayectoria hacia atrs grabada Comprobar si la grabadora de trayectorias puede utilizarse para moverse hacia adelante Finalidad: Identificar un punto de ruptura para la grabadora de trayectorias

1. Slo si el robot est equipado con la opcin Path offset or RobotWare-Arc sensor. 2. Slo si el robot est equipado con la opcin Path recovery.

24

Descripcin general de RAPID

Movimiento

6.12 Conveyor tracking (Control de transportadores)


Instruccin WaitWObj1 DropWObj1 Finalidad: Esperar a que exista un objeto de trabajo en el transportador Soltar el objeto de trabajo sobre el transportador

6.13 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 WaitSensor2 SyncToSensor2 DropSensor2 Finalidad: Conectarse con un objeto de la ventana inicial de una unidad mecnica con sensor. Iniciar o detener la sincronizacin de los movimientos del robot con el movimiento de los sensores Desconectarse del objeto actual

6.14 Identificacin de carga y deteccin de colisiones


Instruccin MotionSup3 ParIdPosValid ParIdRobValid LoadId ManLoadId Tipo de datos loadidnum paridnum paridvalidnum Finalidad: Desactiva/activa la supervisin del movimiento Posicin de robot vlida para la identificacin de parmetros Tipo de robot vlido para la identificacin de parmetros Identificacin de carga de la herramienta o la carga til Identificacin de carga del manipulador externo Finalidad: Representar un entero con una constante simblica Representar un entero con una constante simblica Representar un entero con una constante simblica

1. Slo si el robot est equipado con la opcin Conveyor tracking. 2. Slo si el robot est equipado con la opcin Sensor synchronization. 3. Slo si el robot est equipado con la opcin Collision detection.

Descripcin general de RAPID

25

Movimiento

6.15 Funciones de posicin


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

6.16 Comprobacin de la interrupcin de una trayectoria despus de una cada de alimentacin


Funcin PFRestart1 Finalidad: Comprobar si la trayectoria fue interrumpida como consecuencia de la cada de alimentacin

6.17 Funciones de estado


Funcin CSpeedOverride Finalidad: 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 Advanced RAPID.

26

Descripcin general de RAPID

Movimiento

6.18 Datos de movimiento


Los datos de movimiento se utilizan como argumentos de las instrucciones de posicionamiento. Tipo de dato robtarget jointtarget speeddata zonedata tooldata wobjdata stoppointdata identno Para definir: La posicin final La posicin final de una instruccin MoveAbsJ oMoveExtJ La velocidad La exactitud de la posicin (punto de paro o punto de paso) El sistema de coordenadas de la herramienta y la carga de la herramienta El sistema de coordenadas del objeto de trabajo La finalizacin de la posicin Un nmero utilizado para controlar la sincronizacin de dos o ms movimientos sincronizados y coordinados entre s

6.19 Datos bsicos de los movimientos


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

Descripcin general de RAPID

27

Movimiento

28

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 InvertDO PulseDO Reset Set SetAO SetDO SetGO Finalidad: Invertir el valor de una seal digital de salida Generar un pulso en una seal digital de salida Restablecer una seal digital de salida (ponerla a 0) Activar una seal digital de salida (cambiarla a 1) Cambiar el valor de una seal analgica de salida Cambiar el valor de una seal digital de salida (su valor simblico, por ejemplo alta/baja) 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

29

Seales de entrada y salida

7.4 Gestin de errores


Pueden generarse los errores recuperables siguientes. El error puede ser gestionado en un gestor de errores. La variable de sistema ERRNO cambia a: ERR_NORUNUNIT si ha perdido el contacto con la unidad.

7.5 Lectura del valor de una seal de salida


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

7.6 Comprobacin de la entrada en las seales de salida


Instruccin WaitDI WaitDO Funcin TestDI Finalidad: Esperar hasta que se activa o se pone a cero una entrada digital Esperar hasta que se activa o se pone a cero una salida digital Finalidad: Comprobar si una entrada digital est activada

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 IODisable IOEnable Finalidad: Desactivar un mdulo de E/S Activar un mdulo de E/S

30

Descripcin general de RAPID

Seales de entrada y salida

7.8 Definicin de seales de entrada y salida


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

* Slo para su definicin mediante parmetros de sistema.

7.9 Obtencin del estado de la unidad de E/S


Tipo de dato iounit_state Funcin IOUnitStatus Para definir: El estado de la unidad de E/S Finalidad: Devuelve el estado actual de la unidad de E/S

1. Slo si el robot est equipado con la opcin Advanced RAPID-Alias I/O signals.

Descripcin general de RAPID

31

Seales de entrada y salida

32

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 del FlexPendant 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. El FlexPendant est disponible en todo momento y no es necesario abrirlo. Es posible imprimir tanto textos como los valores de determinados tipos de datos.

8.2 Comunicacin a travs del FlexPendant


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

Descripcin general de RAPID

Comunicacin

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


Instruccin Open1 Write
1

Finalidad: Abrir un canal o un archivo para lectura o escritura Escribir un texto en el canal o el archivo Cerrar el canal o el archivo Finalidad:

Close1 Funcin ReadNum ReadStr1


1

Leer un valor numrico Leer una cadena de caracteres

8.4 Comunicacin a travs de canales serie o archivos o buses de campo binarios


Instruccin Open1 WriteBin1 WriteAnyBin1 WriteStrBin1 Rewind1 Close
1 1

Finalidad: Abrir un canal serie o un archivo para una transferencia binaria de datos Escribir en un canal serie o un archivo binario Escribir en cualquier canal serie o archivo binario Escribir una cadena de caracteres en cualquier canal serie o archivo binario Seleccionar el principio del archivo como posicin actual Cerrar el canal o el archivo Vaciar el bfer de entrada de un canal serie Leer de cualquier canal serie binario Escribir los datos de tipo rawbytes en un canal serie o un archivo o un bus de campo binario Leer los datos de tipo rawbytes de un canal serie o un archivo o un bus de campo binario Finalidad: Leer de un canal serie binario Leer una cadena de caracteres de un canal serie o un archivo binario

ClearIOBuff

ReadAnyBin1 WriteRawBytes1 ReadRawBytes1 Funcin ReadBin1 ReadStrBin1

1. Slo si el robot est equipado con la opcin File and serial channel handling

34

Descripcin general de RAPID

Comunicacin

8.5 Conversin
Instruccin ClearRawBytes1 CopyRawBytes1 PackRawBytes1 UnPackRawBytes1 PackDNHeader2 Funcin RawBytesLen1 rawbyte Finalidad: Cambiar la variable rawbytes a cero Copiar de una variable rawbytes a otra Empaquetar el contenido de una variable en un contenedor de tipo rawbytes Desempaquetar el contenido de un contenedor de tipo rawbytes en una variable Empaquetar el ttulo del mensaje DeviceNet en un contenedor de rawbytes Finalidad: Obtener la longitud actual de los bytes vlidos en una variable

8.6 Datos para canales serie


Tipo de dato iodev1 rawbytes1 Para definir: Una referencia a un canal serie o un archivo, para usarla posteriormente en operaciones de lectura y escritura Un contenedor general de datos, que se utiliza para la comunicacin con los dispositivos de E/S.

1. Slo si el robot est equipado con la opcin File and serial channel handling. 2. Slo si el robot est equipado con la opcin Fieldbus command interface.

Descripcin general de RAPID

35

Comunicacin

36

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 CONNECT Finalidad: Conectar una variable (una identidad de interrupcin) a una rutina TRAP

Descripcin general de RAPID

37

Interrupciones

9.3 Peticin de interrupciones


Instruccin ISignalDI ISignalDO ISignalAI ITimer TriggInt IPers IError
3 2 1

Para solicitar: Una interrupcin desde una seal digital de entrada Una interrupcin desde una seal digital de salida Una interrupcin desde una seal analgica de entrada Una interrupcin a partir de una seal analgica de salida Una interrupcin temporizada Una interrupcin relacionada con una posicin (de la lista de seleccin de movimientos) Una interrupcin al cambiar una variable persistente. Pedir y activar una interrupcin cuando se produce un error

ISignalAO1

9.4 Cancelacin de interrupciones


Instruccin IDelete Finalidad: Cancelar (eliminar) una interrupcin

9.5 Activacin y desactivacin de interrupciones


Instruccin ISleep IWatch IDisable IEnable Finalidad: Desactivar una interrupcin concreta Activar una interrupcin concreta Desactivar todas las interrupciones Activar todas las interrupciones

9.6 Datos de interrupcin


Instruccin GetTrapData3 ReadErrData3 Casos en que se usa: En rutinas TRAP, para obtener todos los datos sobre la interrupcin que caus la ejecucin de la rutina TRAP. 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 Analog signal interrupt. 2. Slo si el robot est equipado con la opcin Fixed position events. 3. Slo si el robot est equipado con la opcin Advanced RAPID.

38

Descripcin general de RAPID

Interrupciones

9.7 Tipos de datos de las interrupciones


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

Descripcin general de RAPID

39

Interrupciones

40

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 sistema, como por ejemplo la divisin por cero, o de un tipo elevado por el programa, por ejemplo cuando un programa eleva un error al obtenerse un valor incorrecto de un lector de cdigos de barras.

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 RAISE Finalidad: Crear un error y llamar al gestor de errores

10.3 Registro de un nmero de error


Instruccin BookErrNo
1

Finalidad: Registrar un nuevo nmero de error de sistema de RAPID

1. Slo si el robot est equipado con la opcin Advanced RAPID.

Descripcin general de RAPID

41

Recuperacin en caso de error

10.4 Reinicio y retorno desde el gestor de errores


Instruccin EXIT RAISE RETRY TRYNEXT RETURN RaiseToUser StartMoveRetry Finalidad: Detener la ejecucin del programa en caso de un error no recuperable. Llamar al gestor de errores de la rutina que llam a la rutina actual. Ejecutar de nuevo la instruccin que caus el error. Ejecutar la instruccin siguiente a la instruccin que caus el error. Volver a la rutina que llam a la rutina actual. Desde una rutina NOSTEPIN, el error es elevado por el gestor de errores en el nivel de usuario. Una instruccin que sustituye al par de instrucciones StartMove y RETRY. Reanuda los movimientos y vuelve a ejecutar adems la instruccin que gener el error. Omitir el ltimo mensaje de advertencia pedido.

SkipWarn

10.5 Errores y avisos definidos por el usuario


Instruccin ErrLog ErrRaise Finalidad: Mostrar un mensaje de error en la unidad de programacin y escribirla en el registro de mensajes del robot. Crear un error en el programa y llamar a continuacin al gestor de errores de la rutina.

10.6 Generacin de errores de proceso


Instruccin ProcerrRecovery
1

Finalidad: Generar un error de proceso durante el movimiento del robot.

10.7 Datos para la gestin de errores


Tipo de dato errnum errstr Para definir: El motivo del error El texto de un mensaje de error

42

Descripcin general de RAPID

Recuperacin en caso de error

10.8 Configuracin para la gestin de errores


Parmetros de sistema Para definir: No Of Retry El nmero de veces que se debe reintentar una instruccin fallida si el gestor de errores utiliza RETRY. No Of Retry pertenece al tipo System Misc del tema Controller.

Descripcin general de RAPID

43

Recuperacin en caso de error

44

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 del FlexPendant 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 ClkReset ClkStart ClkStop Funcin ClkRead Tipo de dato clock Finalidad: Poner a cero un reloj utilizado para la temporizacin Poner en marcha un reloj utilizado para la temporizacin Detener un reloj utilizado para la temporizacin Finalidad: Leer un reloj utilizado para la temporizacin Finalidad: Temporizacin: almacena una medicin de tiempo, en segundos

11.3 Lectura de la hora y la fecha actuales


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

Descripcin general de RAPID

45

Sistema y tiempo

11.4 Obtencin de informacin de hora de un archivo


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

11.5 Obtener el tamao de memoria libre del programa


Funcin ProgMemFree Finalidad: Obtener el tamao de memoria libre del programa.

46

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 Clear Add Incr Decr Finalidad: Eliminar el valor Sumar o restar un valor Aumentar en 1 Reducir en 1

12.3 Clculos ms avanzados


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

Descripcin general de RAPID

47

Operaciones matemticas

12.4 Funciones aritmticas


Funcin Abs Round Trunc Sqrt Exp Pow ACos ASin ATan ATan2 Cos Sin Tan EulerZYX OrientZYX PoseInv PoseMult PoseVect Vectmagn DotProd NOrient Finalidad: Calcular el valor absoluto Redondear un valor numrico Truncar un valor numrico Calcular la raz cuadrada Calcular el valor exponencial en base e Calcular el valor exponencial en la base deseada Calcular el arco coseno Calcular el arco seno Calcular el arco tangente en el rango [-90,90] Calcular el arco tangente en el rango [-180,180] Calcular el coseno Calcular el valor del seno Calcular la tangente Calcular ngulos de Euler a partir de una orientacin Calcular la orientacin a partir de ngulos de Euler Invertir una pose Multiplicar una pose Multiplicar una pose y un vector Calcular la magnitud de un vector pos. Calcular el producto escalar de dos vectores pos. Normalizar una orientacin no normalizada (quarternion)

48

Descripcin general de RAPID

Operaciones matemticas

12.5 Funciones de bits


Instruccin BitClear1 BitSet1 Funcin BitCheck BitAnd1 BitNeg1 BitOr1 BitXOr1 BitLSh1 BitrSh1 Tipo de datos byte1
1

Finalidad: Eliminar un bit especificado en un dato de byte definido. Cambiar 1 un bit especificado en un dato de byte definido. Finalidad: Comprobar si un bit especificado de un dato de byte definido tiene el valor 1. Ejecutar una operacin lgica bit a bit AND en tipos de datos byte. Ejecutar una operacin lgica de NEGACIN en tipos de datos byte. Ejecutar una operacin lgica bit a bit OR en tipos de datos byte. Ejecutar una operacin lgica bit a bit XOR en tipos de datos byte. Ejecutar una operacin lgica bit a bit DESPLAZAMIENTO A LA IZQUIERDA en tipos de datos byte. Ejecutar una operacin lgica bit a bit DESPLAZAMIENTO A LA DERECHA en tipos de datos byte. Finalidad: Se utiliza junto con instrucciones y funciones de manipulacin de bits.

1. Slo si el robot est equipado con la opcin Advanced RAPID - Bit functions.

Descripcin general de RAPID

49

Operaciones matemticas

50

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 SCWrite1 Finalidad: Enviar un mensaje al ordenador supervisor

1. Slo si el robot est equipado con la opcin PC interface/backup.

Descripcin general de RAPID

51

Comunicacin con un ordenador externo

52

Descripcin general de RAPID

Funciones para operaciones con archivos

14 Funciones para operaciones con archivos


Instruccin MakeDir
1 1

Finalidad: Crear un nuevo directorio Eliminar un directorio Abrir un directorio para su examen posterior Cerrar un directorio como operacin opuesta de OpenDir
1

RemoveDir OpenDir1 CloseDir1

RemoveFile RenameFile CopyFile1 Funcin ISFile1 FSSize1 FileSize1 ReadDir


1

Eliminar un archivo Cambiar el nombre de un archivo Copiar un archivo Finalidad: Comprobar el tipo de un archivo Obtener el tamao de un sistema de archivos Obtener el tamao de un archivo determinado Obtener el elemento siguiente de un directorio Finalidad: Recorrer estructuras de directorios

Tipo de datos dir1

1. Slo si el robot est equipado con la opcin File and serial channel handling - File operation functions.

Descripcin general de RAPID

53

Funciones para operaciones con archivos

54

Descripcin general de RAPID

Instrucciones de soporte de RAPID

15 Instrucciones de soporte de RAPID


Existen varias funciones que soportan el lenguaje RAPID: - Obtencin de datos del sistema - Lectura de datos de configuracin - Escritura de datos de configuracin - Reinicio del controlador - Comprobar datos del sistema - Obtencin de nombres de objetos - Obtencin de nombres de tareas - Bsqueda de 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 GetSysData SetSysData1 Funcin IsSysID IsStopStateEvent2 RobOS Finalidad: Obtener los datos y el nombre de la herramienta o del objeto de trabajo actuales Activar un nombre de dato de sistema especificado para un tipo de datos especificado. Finalidad: Comprobar la identidad del sistema Obtener informacin acerca del movimiento del puntero de programa Comprobar si la ejecucin se realiza en el controlador de robot RC o en el controlador virtual VC.

15.2 Obtencin de informacin acerca del sistema


Funcin para obtener informacin acerca del nmero de serie, versin de software o tipo de robot. Funcin GetSysInfo Finalidad: Obtener informacin acerca del sistema.

1. Slo si el robot est equipado con la opcin Advanced RAPID-Data search. 2. Slo si el robot est equipado con la opcin Advanced RAPID-Miscellaneous functions.

Descripcin general de RAPID

55

Instrucciones de soporte de RAPID

15.3 Obtencin de informacin acerca de la memoria


Funcin ProgMemFree Finalidad: obtener el tamao de memoria libre del programa

15.4 Lectura de datos de configuracin


Instrucciones para leer un atributo de un parmetro de sistema cuyo nombre se indica. Instruccin ReadCfgData1 Finalidad: Leer un atributo de un parmetro de sistema cuyo nombre se indica.

15.5 Escritura de datos de configuracin


Instrucciones para escribir un atributo de un parmetro de sistema cuyo nombre se indica. Instruccin WriteCfgData1 Finalidad: Escribir un atributo de un parmetro de sistema cuyo nombre se indica

15.6 Reinicio del controlador


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

15.7 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 TriggC2 TriggJ2 TriggL2 Finalidad: Definir movimientos y eventos del robot a lo largo de una trayectoria circular Definir movimientos y eventos del robot a lo largo de un movimiento lineal de un punto a otro Definir movimientos y eventos del robot en un movimiento lineal

1. Slo si el robot est equipado con la opcin Advanced RAPID. 2. Slo si el robot est equipado con la opcin Fixed position events.

56

Descripcin general de RAPID

Instrucciones de soporte de RAPID

15.8 Instrucciones para tablas de texto


Instrucciones para administrar las tablas de texto del sistema Instruccin TextTabInstall Funcin TextTabGet TextGet1 TextTabFreeToUse1
1 1

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

15.9 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 ArgName2 Finalidad: Obtener el nombre del objeto de datos original

15.10 Obtencin de nombres de tareas


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

1. Slo si el robot est equipado con la opcin Advanced RAPID -Text handling. 2. Slo si el robot est equipado con la opcin Advanced RAPID-Miscellaneous functions.

Descripcin general de RAPID

57

Instrucciones de soporte de RAPID

15.11 Bsqueda de smbolos


Instrucciones para buscar objetos de datos en el sistema Instruccin SetAllDataVal1 Finalidad: Establecer un nuevo valor en todos los objetos de datos de un tipo determinado y que coincidan con una gramtica determinada. Junto con GetNextSym , permite obtener objetos de datos del sistema Obtener un valor de un objeto de datos que se especifica mediante una variable de cadena de caracteres Establecer un valor para un objeto de datos que se especifica mediante una variable de cadena de caracteres Finalidad: Junto con SetDataSearch , permite obtener objetos de datos del sistema Finalidad: Contiene informacin acerca de dnde est definido un objeto determinado dentro del sistema.

SetDataSearch1 GetDataVal1 SetDataVal1 Funcin GetNextSym1 Tipo de datos datapos1

1. Slo si el robot est equipado con la opcin Advanced RAPID-Data search.

58

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 4MToolRotCalib MToolTCPCalib SToolRotCalib SToolTCPCalib Finalidad: Calibrar la rotacin de una herramienta mvil Calibrar el TCP (punto central de la herramienta) de una herramienta mvil Calibrar el TCP y la rotacin de una herramienta estacionaria Calibrar el TCP (punto central de la herramienta) de una herramienta estacionaria

16.2 Distintos mtodos de calibracin


Funciones CalcRotAxisFrame CalcRotAxFrameZ Finalidad: Calcular el sistema de coordenadas del usuario de un tipo de eje giratorio. Calcular el sistema de coordenadas del usuario de un tipo de eje giratorio cuando el robot principal y el eje externo se encuentran en tareas diferentes de RAPID. Definir una base de coordenadas desde las posiciones originales y las desplazadas.

DefAccFrame

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 TestSignDefine TestSignReset Funcin TestSignRead Tipo de dato testsignal Descripcin general de RAPID Finalidad: Definir una seal de test Restablecer todas las definiciones de seales de test Finalidad: Obtener el valor de una seal de test Finalidad: Para la instruccin de programacin TestSignDefine 59

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 SpyStart SpyStop Finalidad: Iniciar la grabacin de instrucciones y datos de tiempo durante la ejecucin Detener la grabacin de datos de tiempo durante la ejecucin

60

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 string Para definir: Cadena de caracteres. Constantes predefinidas STR_DIGIT, STR_UPPER, STR_LOWER y STR_WHITE

Instruccin/Operador Finalidad: := + Funcin StrLen StrPart Asignar un valor (una copia de la cadena de caracteres) Concatenacin de cadenas de caracteres Finalidad: Determinar la longitud de una cadena de caracteres Obtener parte de una cadena de caracteres

17.2 Comparacin y bsqueda


Operador = <> Funcin StrMemb StrFind StrMatch StrOrder Finalidad: Comprobar si un valor es igual a otro Comprobar si un valor es distinto de otro Finalidad: Comprobar si un carcter aparece dentro de un conjunto de caracteres Buscar un carcter en una cadena de caracteres Buscar un patrn dentro de una cadena de caracteres Comprobar si varias cadenas de caracteres estn ordenadas

Descripcin general de RAPID

61

Funciones para cadenas de caracteres

17.3 Conversin
Funcin NumToStr ValToStr StrToVal StrMap StrToByte ByteToStr DecToHex HexToDec Finalidad: Convertir un valor numrico en una cadena de caracteres Convertir un valor en una cadena de caracteres Convertir una cadena de caracteres en un valor Mapear una cadena de caracteres Convertir una cadena de caracteres en un byte Convertir un byte en una cadena de caracteres Convertir un nmero especificado en una cadena que admita lectura de la base 10 a la base 16 Convertir un nmero especificado en una cadena que admita lectura de la base 16 a la base 10

62

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 rutinas TRAP y las rutinas de eventos slo se disparan si lo indica el propio sistema de tarea (por ejemplo, iniciar, detener, reiniciar....).

18.2 Instrucciones y funciones generales


Instruccin WaitSyncTask1 Funcin TestAndSet TaskRunMec TaskRunMec Tipo de datos taskid syncident tasks Finalidad Sincronizar varias tareas de programa en un punto especial de cada programa Finalidad: Obtener el derecho de uso exclusivo de reas de cdigo concretas de RAPID o recursos del sistema Comprobar si la tarea de programa controla alguna unidad mecnica Comprobar si la tarea de programa controla algn robot con TCP Finalidad Identificar las tareas de programa disponibles en el sistema Especificar el nombre de un punto de sincronizacin Especificar varias tareas de programa de RAPID

1. Slo si el robot est equipado con la opcin Multitasking.

Descripcin general de RAPID

63

Multitarea

18.3 Sistema MultiMove con robots coordinados


Instruccin SyncMoveOn1 SyncMoveOff
1

Finalidad Iniciar una secuencia de movimientos sincronizados Para finalizar los movimientos sincronizados Restablecer los movimientos sincronizados Finalidad: Indicar si la tarea actual est en el modo sincronizado Finalidad Para especificar el nombre de un punto de sincronizacin Especificar varias tareas de programa de RAPID

SyncMoveUndo Funcin IsSyncMoveOn Tipo de datos syncident tasks

1. Slo si el robot est equipado con la opcin Coordinated Robots.

64

Descripcin general de RAPID

Resumen de la sintaxis

19 Resumen de la sintaxis
19.1 Instrucciones Dato := Valor AccSet ActUnit Add Acc Ramp MecUnit

Name AddValue FromSignal ToSignal

AliasIO

ArcRefresh ArcKill BitClear BitSet BitData BitPos

BitData BitPos ErrorName

BookErrNo Break CallByVar CancelLoad CirPathMode Clear Name

Name Number LoadNo [\PathFrame] | [\ObjectFrame] | [\CirPointOri]

ClearIOBuff ClearPath

IODevice

ClearRawBytes ClkReset ClkStart ClkStop Clock Clock Clock

RawData [\FromIndex]

Descripcin general de RAPID

65

Resumen de la sintaxis
Close IODevice CloseDir ! Comment ConfJ ConfL [\On] | [\Off] [\On] | [\Off] Interrupt WITH Trap routine Dev

CONNECT CopyFile

OldPath NewPath FromRawData FromIndex ToRawData ToIndex

CopyRawBytes

66

Descripcin general de RAPID

Resumen de la sintaxis
[\NoOfBytes] CorrClear CorrCon Descr Descr

CorrDiscon CorrWrite CorrWrite CorrClear DeactUnit Decr

Descr Data

MecUnit

Name [\MechUnit] Axis [\Level]

DitherAct DitherDeact DropSensor DropWObj EOffsOff EOffsOn EOffsSet

Mecunt WObj

[\ExeP] ProgPoint EAxOffs ModuleName

EraseModule

ErrLog ErrorID [\W] Argument1 Argument2 Argument3 Argument4 Argument5

Descripcin general de RAPID

67

Resumen de la sintaxis
ErrRaise
ErrorName ErrorID Argument4 Argument5 Argument1 Argument2 Argument3

ErrWrite Exit ExitCycle

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

FOR Loopcounter FROM Startvalue TO Endvalue [STEP Stepvalue] DO ... ENDFOR GetDataVal GetSysData GetTrapData GOTO Label Load Object [\Block] Value DestObject [\ObjectName] TrapEvent

GripLoad IDelete IDisable IEnable IError IF

Interrupt

ErrorDomain [\ErrorId] ErrorType Interrupt ...

Condition

IF Condition THEN ... {ELSEIF Condition THEN ...} [ELSE ...] ENDIF Incr Name MecUnit Axis [\ToAbsPos] | [\ToAbsNum] Speed MecUnit Axis Speed [\Ramp] MecUnit Axis Delta Speed [\Ramp]

IndAMove [\Ramp] IndCMove IndDMove

IndReset MecUnit Axis [\RefPos] | [\RefNum] | [\Short] | [\Fwd] | [\Bwd] | [\Old]

68

Descripcin general de RAPID

Resumen de la sintaxis
IndRMove MecUnit Axis [\ToRelPos] | [\ToRelNum] | [\Short] | [\Fwd] | [\Bwd] Speed [\Ramp] InvertDO IODisable IOEnable IPers Signal UnitName MaxTime UnitName MaxTime

Name Interrupt

ISignalAI [\Single] Signal Condition HighValue LowValue DeltaValue [\DPos] | [\DNeg] Interrupt ISignalAO [\Single] Signal Condition HighValue LowValue DeltaValue [\DPos] | [\DNeg] Interrupt ISignalDI ISignalDO ISleep ITimer [\Single] Signal TriggValue Interrupt [\Single] Signal TriggValue Interrupt

Interrupt [\Single] Time Interrupt VarNo Value Interrupt

IVarValue

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

ManLoadIdProc [\ParIdType] [\MechUnit] [\MechUnitName] [\AxisNumber] [\PayLoad] [\ConfigAngle] [\DeactAll] [\AlreadyActive] [\DefinedFlag] MechUnitLoad MotionSup MoveAbsJ MechUnit AxisNo Load

[\On] | [\Off] [\TuneValue] [\Conc] ToJointPos [\ID] Speed [\V] | [\T] Zone

Descripcin general de RAPID

69

Resumen de la sintaxis
[\Z] Tool [\WObj] MoveC [\Conc] CirPoint ToPoint [\ID] Speed [\V] | [\T] Zone [\Z] Tool [\WObj]

70

Descripcin general de RAPID

Resumen de la sintaxis
MoveCDO CirPoint ToPoint [\ID] Speed [\T] Zone Tool [\WObj] Signal Value MoveCSync CirPoint ToPoint [\ID] Speed [\T] Zone Tool [\WObj] ProcName MoveExtJ [\Conc] ToJointPos [\ID] Speed [\T] Zone [\Inpos]

MoveJ [\Conc] ToPoint [\ID] Speed [\V] | [\T] Zone [\Z] Tool [\WObj] MoveJDO ToPoint [\ID] Speed [\T] Zone Tool [\WObj] Signal Value MoveJSync ProcName ToPoint [\ID] Speed [\T] Zone Tool [\WObj]

MoveL [\Conc] ToPoint [\ID] Speed [\V] | [\T] Zone [\Z] Tool [\WObj] MoveLDO ToPoint [\ID] Speed [\T] Zone Tool [\WObj] Signal Value MoveLSync ProcName ToPoint [\ID] Speed [\T] Zone Tool [\WObj] RefTip ZPos [\XPos] Tool Pos1 Pos2 Pos3 Pos4 Tool MaxErr MeanErr

MToolRotCalib MToolTCPCalib

Open Object [\File] IODevice [\Read] | [\Write] | [\Append] | [\Bin] OpenDir Dev Path Service Path RawData

PackDNHeader

PackRawBytes Value RawData [\Network] StartIndex [\Hex1] | [\IntX] | [\Float4] | [\ASCII] PathAccLim AccLim [\AccMax] DecelLim [\DecelMax] [\ID] [\ToolOffs] [\Speed] [\ID] [\ToolOffs] [\Speed]

PathRecMoveBwd PathRecMoveFwd

Descripcin general de RAPID

71

Resumen de la sintaxis
PathRecStart PathRecStop PathResol PDispOff PDispOn PDispSet Procedure [\Rot] [\ExeP] ProgPoint Tool [\WObj] DispFrame { Argument } [\SyncOrgMoveInst] | [\SyncLastMoveInst] ID [\Clear]

Value

ProcerrRecovery PulseDO RAISE

[\PLength] Signal [ Error no ] [\Continue] | [\BreakOff] [\ErrorNumber] IODevice Data [\Time] InstancePath Attribute CfgData

RaiseToUser ReadAnyBin ReadCfgData

ReadErrData TrapEvent ErrorDomain ErrorId ErrorType [\Str1] [\Str2] [\Str3] [\Str4] [\Str5] ReadRawBytes RemoveDir RemoveFile RenameFile Reset Signal IODevice RawData NoOfBytes[\Time]

Path Path OldPath NewPath

RestoPath RETURN Rewind Save [ Return value ] IODevice

[\TaskRef] ModuleName [\FilePath] [\File]

SearchC [\Stop] | [\PStop] | [\Sup] Signal SearchPoint CirPoint ToPoint [\ID] Speed [\V] | [\T] Tool [\WObj]

72

Descripcin general de RAPID

Resumen de la sintaxis
SearchL [\Stop] | [\PStop] | [\Sup] Signal SearchPoint ToPoint [\ID] Speed [\V] | [\T] Tool [\WObj] Set Signal Type [\TypeMod] [\Object] [\Hidden] Value

SetAllDataVal SetAO

Signal Value

SetDataSearch Type [\TypeMod] [\Object] [\PersSym] [\VarSym] [\ConstSym] [\InTask] | [\InMod] [\InRout] [\GlobalSym] | [\LocalSym] SetDataVal SetDO SetGO Object [\Block] Value

[\SDelay] Signal Value Signal Value SourceObject [\ObjectName] [\Wrist] | [\Arm] | [\Off]

SetSysData SingArea SkipWarn SoftAct SoftDeact

Axis Softness [\Ramp] [\Ramp]

SpcCon Descr Status [\GrpSize] [\Teach] [\Strict] [\Header] [\BackupFile] SpcDiscon Descr SpcDump SpcRead SpcStat SpotJ SpotL ToPoint Speed Spot [\InPos] [\NoConc] [\Retract] Gun Tool [\WObj] SpotML SpyStart File
73

Descripcin general de RAPID

Resumen de la sintaxis
SpyStop StartLoad StartMove [\Dynamic] FilePath [\File] LoadNo [\AllMotionTasks]

StartMoveRetry StepBwdPath SToolRotCalib SToolTCPCalib Stop StepLength StepTime RefTip ZPos XPos Tool Pos1 Pos2 Pos3 Pos4 Tool MaxErr MeanErr

[\NoRegain] [\Quick][\AllMotionTasks]

StopMove StorePath

SyncMoveOff SyncMoveOn SyncMoveUndo SyncToSensor

SyncID [\TimeOut] SyncID TaskList [\TimeOut]

Mecunt [On/Off] {CASE Test value {, Test value} : ...}

TEST Test data [ DEFAULT: ...] ENDTEST TestSignDefine TestSignReset TextTabInstall TPErase TPWrite

Channel SignalId MechUnit Axis SampleTime

File

String [\Num] | [\Bool] | [\Pos] | [\Orient] Answer String FK1 FK2 FK3 FK4 FK5

TPReadFK

74

Descripcin general de RAPID

Resumen de la sintaxis
[\MaxTime] [\DIBreak] [\BreakFlag] TPReadNum TPShow TPWrite Answer String [\MaxTime] [\DIBreak] [\BreakFlag]

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

TriggC CirPoint ToPoint [\ID] 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] TriggJ ToPoint [\ID] Speed [\T] Trigg_1 [\T2] [\T3] [\T4] Zone Tool [\WObj] TriggL ToPoint [\ID] 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 UnLoad MecUnit Axis TuneValue [\Type]

FilePath [\File] RawData [\Network] StartIndex Value

UnpackRawBytes

Descripcin general de RAPID

75

Resumen de la sintaxis
[\Hex1] | [\IntX] | [\Float4] | [\ASCII] WaitDI WaitDO WaitLoad WaitSensor [\TimeFlag] Signal Value [\MaxTime] [\TimeFlag] Signal Value [\MaxTime] [\TimeFlag] [\UnloadPath] [\UnloadFile] LoadNo Mecunt[ \RelDist ] [ \PredTime] [\MaxTime] SyncID TaskList [\TimeOut]

WaitSyncTask WaitTime WaitUntil

[\InPos] Time [\InPos] Cond [\MaxTime] [\TimeFlag]

76

Descripcin general de RAPID

Resumen de la sintaxis
WaitWObj WarmStart VelSet Override Max DO ... WObj [\RelDist]

WHILE Condition ENDWHILE WorldAccLim

[\On] | [\Off]

Write IODeviceString [\Num] | [\Bool] | [\Pos] | [\Orient] [\NoNewLine] WriteAnyBin WriteBin IODevice Data

IODevice Buffer NChar InstancePath Attribute CfgData IODevice RawData [\NoOfBytes]

WriteCfgData WriteRawBytes WriteStrBin WZBoxDef WZCylDef WZDisable

IODevice Str [\Inside] | [\Outside] Shape LowPoint HighPoint [\Inside] | [\Outside] Shape CentrePoint Radius Height WorldZone

WZDOSet [\Temp] | [\Stat] WorldZone [\Inside] | [\Before] Shape Signal SetValue WZEnable WZFree WorldZone

WorldZone [\Inside] | [\Outside] Shape MiddleJointVal [\Inside] | [\Outside] Shape LowJointVal

WZHomeJointDef DeltaJointVal WZLimJointDef HighJointVal WZLimSup WZSphDef

[\Temp] | [\Stat] WorldZone Shape [\Inside] | [\Outside] Shape CentrePoint Radius

Descripcin general de RAPID

77

Resumen de la sintaxis

19.2 Functions Abs ACos (Input) (Value) (Signal) (Parameter)

AOutput ArgName ASin ATan ATan2 BitAnd BitCheck BitLSh BitNeg BitOr BitRSh BitXOr

(Value) (Value) (Y X) (BitData1 BitData2) (BitData BitPos) (BitData ShiftSteps) (BitData1) (BitData1 BitData2) (BitData1 ShiftSteps) (BitData1 BitData2) (ByteData [\Hex] | [\Okt] | [\Bin] | [\Char])

ByteToStr

CalcJointT (Rob_target Tool [\WObj]) CalcRobT (Joint_target Tool [\WObj]) (MechUnit [\AxisNo] TargetList TargetsInList

CalcRotAxisFrame MaxErr MeanErr)

CalcRotAxFrameZ (TargetList TargetsInList PositiveZPoint

78

Descripcin general de RAPID

Resumen de la sintaxis
MaxErr MeanErr) CDate CJointT ClkRead CorrRead (Clock)

Descripcin general de RAPID

79

Resumen de la sintaxis
Cos CPos CRobT (Angle) ([\Tool] [\WObj]) ([\Tool] [\WObj])

CSpeedOverride CTime CTool CWObj DecToHex (Str)

DefAccFrame (TargetListOne TargetListTwo TargetsInList MaxErr MeanErr) DefDFrame DefFrame Dim (OldP1 OldP2 OldP3 NewP1 NewP2 NewP3) (NewP1 NewP2 NewP3 [\Origin])

(ArrPar DimNo) (Point1 Point2) (Signal) (Vector1 Vector2) ([\X] | [\Y] | [\Z] Rotation)

Distance DOutput DotProd EulerZYX Exp

(Exponent) (Path) (Path [\ModifyTime] | [\AccessTime] | [\StatCTime]) (Name [\Total] | [\Free]) (ListNumber UnitName)

FileSize FileTime FSSize

GetNextMechUnit GetNextSym GetSysInfo

(Object Block [\Recursive]) ([\SerialNo] | [\SWVersion] | [\RobotType]) ([\TaskNo])

GetTaskName

80

Descripcin general de RAPID

Resumen de la sintaxis
GetTime GOutput HexToDec IndInpos IndSpeed ([\WDay] | [\Hour] | [\Min] | [\Sec]) (Signal) (Str) (MecUnit Axis) (MecUnit Axis [\InSpeed] | [\ZeroSpeed]) (UnitName)

IOUnitState IsFile )

(Path[\Directory] [\Fifo] [\RegFile] [\BlockSpec] [\CharSpec] (MechUnit)

IsMechUnitActive IsPers (DatObj)

IsStopStateEvent IsSyncMoveOn IsSysId IsVar

([\PPMoved] | [\PPToMain])

(SystemId) (DatObj)

MaxRobSpeed MirPos (Point MirPlane [\WObj] [\MirY]) (Object) ([\Main])

ModTime

NonMotionMode NOrient NumToStr Offs

(Rotation) (Val Dec [\Exp])

(Point XOffset YOffset ZOffset)

Descripcin general de RAPID

81

Resumen de la sintaxis
OpMode OrientZYX ORobT (ZAngle YAngle XAngle)

(OrgPoint [\InPDisp] | [\InEOffs]) (ParIdType Pos AxValid [\ConfAngle]) (ParIdType) ([\ID])

ParIdPosValid ParIdRobValid

PathRecValidBwd

82

Descripcin general de RAPID

Resumen de la sintaxis
PathRecValidFwd PFRestart PoseInv PoseMult PoseVect Pow ([\ID])

([\Base] | [\Irpt]) (Pose) (Pose1 Pose2) (Pose Pos)

(Base Exponent) (OptPar)

Present

ProgMemFree RawBytesLen ReadBin ReadDir (RawData)

(IODevice [\Time]) (Dev FileName) ([\MecUnit] Axis) (IODevice [\Time]) (IODevice [\Time]) (IODevice NoOfChars [\Time])

ReadMotor ReadNum ReadStr

ReadStrBin RelTool RobOS Round

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

( Val [\Dec]) ([\Main])

RunMode Sin Sqrt

(Angle) (Value) (Str ChPos Set [\NotInSet]) (Str) (Str FromMap ToMap) (Str ChPos Pattern)
83

StrFind StrLen StrMap StrMatch

Descripcin general de RAPID

Resumen de la sintaxis
StrMemb StrOrder StrPart (Str ChPos Set) (Str1 Str2 Order) (Str ChPos Len) (ConStr [\Hex] | [\Okt] | [\Bin] | [\Char]) (Str Val)

StrToByte StrToVal Tan

(Angle)

TaskRunMec TaskRunRob TestAndSet TestDI (Object)

(Signal) (Channel)

TestSignRead TextGet

(Table Index) (TableName)

TextTabFreeToUse TextTabGet Trunc

(TableName)

(Val [\Dec]) (Val) (Vector)

ValToStr VectMagn

84

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

Descripcin general de RAPID

85

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.

86

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. Por 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> <DDN> <RDN> <PAR> <ALT> <DIM> <SMT> <VAR> <EIT> <CSE> <EXP> <ARG> <ID> Descripcin general de RAPID Definicin de tipo de datos Declaracin de dato Declaracin de rutina Parmetro alternativo opcional formal Parmetro opcional formal Dimensin de matriz formal (conformada) Instruccin Referencia a un objeto de datos (variable, variable persistente o parmetro) Clusula Else IF de una instruccin IF Clusula Case de una instruccin de test Expresin Argumento de llamada a procedimiento Identificador 87

Elementos bsicos

20.8 Encabezado del archivo


Los archivos de programa comienzan con el encabezado de archivo siguiente: %%% VERSION:1 LANGUAGE:ENGLISH %%% (Versin de programa M94 o M94A) (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 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>} <nueva lnea>

88

Descripcin general de RAPID

Elementos bsicos
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 |k|l|m|n|o|p|q|r|s|t |u|v|w|x|y|z|||| | | | | | | | | | | | | | | 1) | | | | | | | | | | | | 2) | 3) |

1) Letra eth islandesa 2) Letra Y con acento agudo 3) Letra thorn islandesa

Descripcin general de RAPID

89

Elementos bsicos

90

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 Mdulo1 Mdulo2 Mdulo3 Mdulo4 Datos de programa Rutina4 Rutina5 Rutina1 Rutina2 Rutina3

Mdulo de sistema1 Datos de programa Mdulo de sistema2 Rutina6 Rutina7 Figura 1Es 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 91

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 del FlexPendant. A continuacin aparecen algunos ejemplos de los atributos de un mdulo: Atributo SYSMODULE NOSTEPIN VIEWONLY READONLY NOVIEW Si se especifica, el mdulo: Se trata de un mdulo de sistema (si no se indica, es un mdulo de programa) No se permite su activacin durante la ejecucin paso a paso No se permite su modificacin No se permite su modificacin, pero s la eliminacin de este atributo 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 del FlexPendant. 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. MODULE nombre_mdulo (SYSMODULE, VIEWONLY) !Definicin de tipo de datos !Declaraciones de datos !Declaraciones de rutinas ENDMODULE

por ejemplo

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

92

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

93

Mdulos

94

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
Rutina local a Rutina local b Rutina c Rutina d Rutina e

Mdulo2
Rutina local a Rutina local e Rutina f Rutina g Rutina h

Figura 2Ejemplo: Las rutinas siguientes estn disponibles desde la rutina h: Mdulo1 - Rutina c, d. Mdulo2 - Todas las 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. Descripcin general de RAPID 95

Rutinas

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)

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 Descripcin general de RAPID

96

Rutinas
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. 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 3Las rutinas pueden contener declaraciones, datos, un cuerpo principal, un gestor de ejecucin hacia atrs y un gestor de errores.

Descripcin general de RAPID

97

Rutinas
Declaracin de procedimiento 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 funcin 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

22.5 Llamada a procedimiento


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 116 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. 98 Descripcin general de RAPID

Rutinas
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.

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>

Descripcin general de RAPID

99

Rutinas
<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> } 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>

100

Descripcin general de RAPID

Rutinas
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

101

Rutinas

102

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

103

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; level:= high; Esto es correcto dado que dionum es un tipo de dato de alias 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>

104

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. 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. Descripcin general de RAPID 105

Datos
Consulte el ejemplo de la Figura 4. Mdulo1
Dato local a Dato local b Dato c Dato d Dato e

Mdulo2
Dato local a Dato local f Dato g Rutina local e Dato e1 Rutina h Dato h1 Dato c

Figura 4Ejemplo: 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. 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

106

Descripcin general de RAPID

Datos

24.3 Declaracin de variables persistentes


Las variables persistentes slo pueden ser declaradas en el nivel de mdulo, no dentro de una rutina. Estas variables persistentes pueden declararse como globales del sistema, globales de la tarea o locales. Ejemplo: PERS num persglobal := 123; TASK PERS num perstarea := 456; LOCAL PERS num perslocal := 789;

Todas las variables persistentes globales del sistema que tengan el mismo nombre comparten el valor actual. Las variables persistentes globales de la tarea y locales no comparten el valor actual con otras variables persistentes. Las variables persistentes locales y globales de la tarea deben recibir un valor de inicializacin. En el caso de las variables persistentes globales del sistema, el valor inicial puede omitirse. El valor de inicializacin debe ser un solo valor (sin referencias a 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 cambia el valor actual de una variable persistente, el hacerlo provoca automticamente la actualizacin del valor de inicializacin (si no se haba omitido) de la declaracin de la variable persistente. Ejemplo: PERS num reg1 := 0; ... reg1 := 5; Despus de guardar el mdulo, ste tiene el aspecto siguiente: PERS num reg1 := 5; ... reg1 := 5;

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;

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]]; 107

Descripcin general de RAPID

Datos

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.
Tabla1 Cambios de datos en distintas actividades.
Evento de sistema Afecta a Constante Variable Persistente Encendido (arranque en caliente) Sin cambios Sin cambios Sin cambios Pedidas de nuevo No se ejecuta Iniciar programa (mover puntero a main) Inicializacin Inicializacin Sin cambios Iniciar programa (mover puntero a rutina) Inicializacin Inicializacin Sin cambios Iniciar programa (mover puntero a cursor) Sin cambios Sin cambios Sin cambios Sin cambios No se ejecuta Iniciar programa (llamada a rutina) Sin cambios Sin cambios Sin cambios Sin cambios No se ejecuta Iniciar programa (despus de ciclo) Sin cambios Sin cambios Sin cambios Sin cambios No se ejecuta Iniciar programa (despus de paro) Sin cambios Sin cambios Sin cambios Sin cambios No se ejecuta

Abrir, cerrar o nuevo programa

Inicializacin Inicializacin Inicializacin **/Sin cambios Desaparece

Interrupcio nes con comando Rutina de puesta en marcha SYS_RESE T (con configuraci ones de movimiento ) Archivos Trayectoria

Desaparece

Desaparece

Se ejecuta*

Ejecucin

No se ejecuta

Se cierran Creada de nuevo al arrancar

Se cierran Desaparece

Se cierran Desaparece

Se cierran Desaparece

Sin cambios Desaparece

Sin cambios Sin cambios

Sin cambios Sin cambios

Sin cambios Sin cambios

108

* Genera un error cuando hay un error semntico en el programa de la tarea actual. ** Las variables persistentes que no tienen ningn valor inicial slo se inicializan si no se han declarado previamente. 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).

Descripcin general de RAPID

109

Datos

24.7 Sintaxis
Declaracin de datos <declaracin de dato> ::= [LOCAL] ( <declaracin de variable> | <declaracin de variable persistente> | <declaracin de constante> ) | TASK <declaracin de variable persistente> | <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> 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> ] Importante: La expresin literal slo puede omitirse en el caso de las variables persistentes globales del sistema. 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>

110

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 IF FOR WHILE TEST Ejemplo: Palabra de terminacin ENDIF ENDFOR ENDWHILE ENDTEST 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

111

Instrucciones

112

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, - Como una condicin de una instruccin IF, - Como argumento de una instruccin, por ejemplo a:=3*b/c; por ejemplo IF a>=3 THEN ... 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 2: Distintos tipos de operaciones posibles
Operador + + + * * * * / DIV 2) MOD 2) suma suma unitaria; conservar el signo suma de vectores resta resta unitaria; cambio de signo resta de vectores multiplicacin multiplicacin de vectores escalares producto de vectores vinculacin de rotaciones divisin divisin entera mdulo de entero; resto Operacin Tipos de operandos num + num +num o +pos pos + pos num - num -num o -pos pos - pos num * num num * pos o pos * num pos * pos orient * orient num / num num DIV num num MOD num Tipo de resultado num3) igual1)3) pos num3) igual1)3) pos num3) pos pos orient num 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 113

Expresiones

26.2 Expresiones lgicas


Las expresiones lgicas se utilizan para evaluar valores lgicos (TRUE/FALSE). Ejemplo: a>5 AND b=3 Tabla 3: Distintos tipos de operaciones posibles Operador < <= = >= > <> AND XOR OR NOT Operacin menor que menor que o igual a igual a mayor que o igual a mayor que distinto de y OR exclusivo o no unitario; negacin Tipos de operandos num < num num <= num cualquiera 1)= cualquiera 1) num >= num num > num cualquiera 1) <> cualquiera 1) booleano AND booleano booleano XOR booleano booleano OR booleano NOT booleano Tipo de resultado bool bool bool bool bool bool bool bool bool bool

1) Slo tipos de datos con valor. Los operandos deben ser del mismo tipo. a AND b a Verdadero Falso b Verdadero Verdadero Falso Falso Falso Falso a XOR b a Verdadero Falso b Verdadero Falso Verdadero Falso Verdadero Falso

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

114

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

Genera el resultado INPUT

Tabla 4: nica operacin posible Operador + Operacin concatenacin de cadenas de caracteres Tipos de operandos cadena de caracteres + cadena de caracteres Tipo de resultado cadena

26.4 Utilizacin de datos en expresiones


Es posible usar variables enteras, variables persistentes o constantes como parte de una expresin. Ejemplo: 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}; row := column; 2*pi*radio

Slo un elemento de la matriz 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 115

Expresiones
Ejemplo: VAR pos home; VAR pos pos1; VAR num yvalue; .. yvalue := home.y; pos1 := home;

Slo el componente Y 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]; posarr := [[0, 0, 100], [0,0,z]]; Agregado de registros pos 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.

116

Descripcin general de RAPID

Expresiones
Ejemplo: Cosine(45) Cosine(0.785398\Rad) Dist(p2) Dist(\distance:=pos1, p2) Un argumento obligatorio ... y un modificador Un argumento obligatorio ... 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 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. Descripcin general de RAPID 117

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

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> | <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> 118 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

119

Expresiones
Expresiones especiales <expresin constante> ::= <expresin> <expresin literal> ::= <expresin> <expresin condicional> ::= <expresin> Parmetros <parmetro> ::= <parmetro completo> | <elemento de parmetro> | <componente de parmetro>

120

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 sistema. 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. Para poder realizar ms de cuatro reintentos, tiene que configurar el parmetro del sistema No Of Retry. Consulte el Manual de referencia tcnica - Parmetros de sistema. - 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

121

Recuperacin en caso de error


Gestor de errores del sistema 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. No es posible recuperar la ejecucin tras los errores que se producen dentro de un gestor de errores. Este tipo de errores se propagan siempre hacia el gestor de errores del sistema. Errores elevados por el programa 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. El registro de eventos Los errores manejados por un gestor de errores siguen provocando un aviso en el registro de eventos. Mediante la consulta del registro de eventos es posible controlar qu errores se han producido. Si desea que un error se maneje sin escribir ningn aviso en el registro de eventos, utilice la instruccin SkipWarn en el gestor de errores. Esto puede resultar til si se utiliza el gestor de errores para probar algn hecho (por ejemplo, si existe un archivo determinado) sin dejar ninguna huella si la prueba no da un resultado positivo.

122

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;

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; . IWatch sig1int; Desactivar Activar 123

Descripcin general de RAPID

Interrupciones
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; . IEnable sig1int; Deshabilitar 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 TRAP etrap open_valve; RETURN; ENDTRAP TRAP deteclleno close_valve; RETURN; ENDTRAP Responde a la interrupcin alimentador vaco

Responde a la interrupcin alimentador lleno

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. 124 Descripcin general de RAPID

UNDO

29 UNDO
La rutinas de RAPID pueden contener un gestor UNDO. El gestor se ejecuta automticamente si el PP se mueve hacia el exterior de la rutina. Se ha previsto para eliminar los efectos secundarios que queden despus de ejecutar rutinas parcialmente, por ejemplo, al cancelar instrucciones modales (como abrir un archivo). La mayor parte del lenguaje de RAPID puede utilizarse en un gestor UNDO, pero hay algunas limitaciones, por ejemplo en las instrucciones de movimiento.

29.1 Definiciones/terminologa
Para evitar ambigedades en el texto que aparece ms adelante, enumeramos a continuacin distintas explicaciones de los trminos relacionados con UNDO. UNDO: La ejecucin del cdigo de limpieza antes de un restablecimiento del programa. Gestor UNDO: Una parte opcional de un procedimiento o funcin de RAPID que contiene el cdigo de RAPID que se ejecuta en UNDO. Rutina UNDO: Un procedimiento o una funcin con un gestor UNDO. Cadena de llamadas: Todos los procedimientos o funciones asociados actualmente entre s a travs de las ejecuciones de rutina y que no han finalizado an. Se supone que se empieza en la rutina Main si no se especifica lo contrario. Contexto UNDO: Cuando la rutina actual es parte de una cadena de llamadas que se inicia en un gestor UNDO.

29.2 Cundo utilizar UNDO


Una rutina de RAPID puede anularse en cualquier punto con slo situar el puntero de programa fuera de la rutina. En algunos casos, cuando el programa est ejecutando ciertas rutinas sensibles, no es posible anularlas. Es posible utilizar UNDO para proteger esas rutinas sensibles frente a un restablecimiento inesperado del programa. Con UNDO es posible conseguir que cierto cdigo se ejecute automticamente si se anula la rutina. Este cdigo debe realizar normalmente acciones de limpieza, por ejemplo cerrar un archivo.

29.3 Comportamiento detallado de UNDO


Cuando se activa UNDO, se ejecutan todos los gestores de UNDO de la cadena de llamadas actual. Estos gestores son partes opcionales de un procedimiento o una funcin de RAPID que contiene cdigo de RAPID. Los gestores UNDO activos

Descripcin general de RAPID

125

UNDO
actualmente son aquellos que pertenecen a procedimientos o funciones que se han iniciado su ejecucin pero no han terminado, es decir, las rutinas de la cadena de llamadas actual. UNDO se activa cuando el PP se mueve inesperadamente hacia el exterior de una rutina UNDO, por ejemplo si el usuario mueve el PP a Main. UNDO se inicia tambin si se ejecuta una instruccin EXIT, lo que hace que el programa se restablezca o si el programa se restablece por alguna otra razn, por ejemplo al cambiar cierta configuracin o si se elimina el programa o el mdulo. Sin embargo, UNDO no se inicia si el programa alcanza el final de la rutina o una sentencia return y retorna de la forma normal desde la rutina. Si hay ms de una rutina UNDO en la cadena de llamadas, los gestores UNDO de las rutinas se procesarn en el mismo orden con el que habran retornado las distintas rutinas, de abajo arriba. El gestor UNDO ms cercano al final de la cadena de llamadas se ejecutar en primer lugar y el ms cercano a Main se ejecutar en ltimo lugar.

29.4 Limitaciones
Un gestor UNDO puede acceder a cualquier variable o smbolo al que se pueda llegar desde el cuerpo de la rutina normal, incluidas las variables declaradas localmente. Sin embargo, el cdigo de RAPID que se va a ejecutar en contexto UNDO tiene ciertas limitaciones. El gestor UNDO no debe contener STOP, BREAK, RAISE ni RETURN. Si se hace un intento de utilizar algunas de estas instrucciones en el contexto UNDO, la instruccin no se tendr en cuenta y se generara un aviso de ELOG. Las instrucciones de movimiento, por ejemplo MoveL, tampoco estn permitidas en el contexto UNDO. La ejecucin es siempre continua en UNDO. No es posible ejecutar paso a paso. Cuando se inicia UNDO, el modo de ejecucin cambia automticamente a continuo. Una vez terminada la sesin de UNDO, se restablece el modo de ejecucin anterior. Si el programa se detiene durante la ejecucin de un gestor UNDO, el resto del gestor no se ejecutar. Si hay gestores UNDO adicionales an por ejecutar en la cadena de llamadas, tampoco se tendrn en cuenta. Esto dar lugar a un aviso de ELOG. Adems se detiene debido a un error en tiempo de ejecucin. El PP no est visible en un gestor UNDO. Cuando se ejecuta UNDO, el PP permanece en su anterior ubicacin, pero se actualiza cuando finalizan los gestores UNDO. Una instruccin EXIT anula al UNDO de la misma forma que un error de tiempo de ejecucin o la detencin del programa. El resto de gestores UNDO no se tienen en cuenta y el PP se mueve a Main.

126

Descripcin general de RAPID

UNDO

29.5 Ejemplo
Tabla 5: Una ejecucin de UNDO El programa: PROC B TPWrite "Aqu la rutina B"; Exit; UNDO TPWrite "Aqu el UNDO de la rutina B"; ENDPROC PROC A TPWrite "Aqu la rutina A"; B; ENDPROC PROC main TPWrite "Aqu Main"; A; UNDO TPWrite "Aqu el UNDO de Main"; ENDPROC La salida: Aqu Main Aqu la rutina A Aqu la rutina B Aqu el UNDO de la rutina B Aqu el UNDO de Main

Descripcin general de RAPID

127

UNDO

128

Descripcin general de RAPID

Ejecucin hacia atrs

30 Ejecucin hacia atrs


Los programas pueden ejecutarse hacia atrs, una instruccin cada vez. La ejecucin hacia atrs est sujeta a las restricciones generales siguientes: - No es posible retroceder paso a paso hasta salir de una sentencia IF, FOR, WHILE o TEST. - No es posible retroceder para salir de una rutina cuando se alcanza el comienzo de la rutina. - Ni las instrucciones de parmetros de movimiento ni otras instrucciones que afectan al movimiento pueden ejecutarse hacia atrs. Si intenta ejecutar estas instrucciones hacia atrs, una ventana de alerta le informar de que no es posible.

30.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; 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

.. MoveTo; ..

Descripcin general de RAPID

129

Ejecucin hacia atrs

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

.. MoveTo; ..

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

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.

30.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; MoveL p4,v500,z10,tool1; BACKWARD MoveL p4,v500,z10,tool1; MoveC p2,p3,v500,z10,tool1; MoveL p1,v500,z10,tool1; ENDPROC

Plano espejo

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 ... 130 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.

30.3 Comportamiento de la ejecucin hacia atrs


Rutinas MoveC y nostepin Cuando se ejecuta paso a paso hacia delante y se pasa por una instruccin MoveC, el robot se detiene en el punto circular (la instruccin se ejecuta en dos pasos). Sin embargo, cuando se ejecuta paso a paso hacia atrs y se pasa por una instruccin MoveC, el robot no se detiene en el punto circular (la instruccin se ejecuta en un solo paso). No se permite pasar de la ejecucin hacia delante a la ejecucin hacia atrs cuando el robot est ejecutando una instruccin MoveC. No se permite pasa de la ejecucin hacia delante a la ejecucin hacia atrs, ni viceversa, en una rutina nostepin. Objetivo, tipo de movimiento y velocidad Cuando se ejecuta paso a paso hacia delante por el cdigo del programa, un puntero de programa indica la siguiente instruccin que va a ejecutarse y un puntero de movimiento indica la instruccin de movimiento que el robot est realizando. Cuando se ejecuta paso a paso hacia atrs por el cdigo del programa, el puntero de programa indica la instruccin inmediatamente anterior al puntero de movimiento. Cuando el puntero de programa indica una instruccin de movimiento y el puntero de movimiento indica otra, el siguiente movimiento hacia atrs se mover hasta el objetivo indicado por el puntero de programa, usando el tipo de movimiento y la velocidad indicada por el puntero de movimiento. Una excepcin en cuanto a la velocidad de ejecucin hacia atrs es la instruccin MoveExtJ. Esta instruccin utiliza la velocidad relacionada con el objetivo de robot tanto para la ejecucin hacia delante como para la ejecucin hacia atrs.

Descripcin general de RAPID

131

Ejecucin hacia atrs


Ejemplo En este ejemplo se ilustra el comportamiento cuando se ejecuta paso a paso hacia atrs por las instrucciones de movimiento. El puntero de programa y el puntero de movimiento le ayudan a controlar dnde se encuentra la ejecucin de RAPID y dnde est el robot.

Tabla 6: Explicaciones sobre la imagen anterior


A B C Puntero de programa Puntero de movimiento Se resalta el objetivo de robot hacia el que se mueve el robot o el que ya ha alcanzado.

1 El programa se ejecuta paso a paso hacia delante hasta que el robot est en p5. El puntero de movimiento indicar p5 y el puntero de programa indicar la siguiente instruccin de movimiento (MoveL p6). 2 La primera vez que se presiona el botn Atrs, el robot no se mueve pero el puntero de programa se mueve hasta la instruccin anterior (MoveC p3, p4). As se indica que sta es la instruccin que se ejecuta la prxima vez que se presione Atrs. 3 La segunda vez que se presione el botn Atrs, el robot se mueve linealmente hasta p4 con la velocidad v300. El objetivo de este movimiento (p4) se toma de la instruccin MoveC. El tipo de movimiento (lineal) y la velocidad se toman de la instruccin anterior (MoveL p5). El puntero de movimiento apunta a p4 y el puntero de programa se mueve hasta MoveL p2. 4 La tercera vez que se presiona el botn Atrs, el robot se mueve circularmente hasta p2 pasando por p3 y con la velocidad v100. El objetivo p2 se toma de la instruccin MoveL p2. El tipo de movimiento (circular), el punto circular (p3) y la velocidad se toman de la instruccin MoveC. El puntero de movimiento apunta a p2 y el puntero de programa se mueve hasta MoveL p1.

132

Descripcin general de RAPID

Ejecucin hacia atrs


5 La cuarta vez que se presiona el botn Atrs, el robot se mueve linealmente hasta p1 con la velocidad v200. El puntero de movimiento apunta a p1 y el puntero de programa se mueve hasta MoveJ p0. 6 La primera vez que se presiona el botn Adelante el robot no se mueve, pero el puntero de programa se mueve hasta la siguiente instruccin (MoveL p2). 7 La segunda vez que se presione el botn Adelante, el robot se mueve hasta p2 con la velocidad v200.

Descripcin general de RAPID

133

Ejecucin hacia atrs

134

Descripcin general de RAPID

Multitarea

31 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 Manual de referencia tcnica - Parmetros del sistema). - 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 Manual de referencia tcnica Parmetros del sistema. Descripcin general de RAPID 135

Multitarea

31.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

136

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

31.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. Todas las declaraciones deben especificar un valor inicial para la variable persistente, pero slo se utiliza con el primer mdulo cargado con la declaracin.

Descripcin general de RAPID

137

Multitarea
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

31.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.

138

Descripcin general de RAPID

Multitarea

31.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: Cadena de ciclo 2: Cadena de ciclo 3: Cadena de ciclo 4: Tareas 0, 1 y 8 ocupadas Tareas 0, 3, 4, 5 y 8 ocupadas Tareas 1 y 2 en espera Tareas 2, 4 y 5 ocupadas Tareas 0, 1, 8 y 9 en espera Tareas 6 y 7 ocupadas Tareas 0, 1, 2, 3, 4, 5, 8 y 9 en espera

Descripcin general de RAPID

139

Multitarea

Cadena 1
Tarea 0

Cadena 2

Tarea 1

Tarea 2

Tarea 3

Tarea 4

Tarea 5

Tarea 6 Tarea 7

Cadena 4 Cadena 3

Tarea 8

Tarea 9

Figura 5Las tareas pueden tener prioridades diferentes.

31.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 Motores OFF. Cuando se cambia el sistema al modo Motores ON, es posible mover el motor, pero se rechazan los nuevos intentos de iniciar el programa. Un nuevo arranque en caliente restablece el sistema.

140

Descripcin general de RAPID

Multitarea
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.

31.6 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.

31.7 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 el FlexPendant 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.

Descripcin general de RAPID

141

Multitarea
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 una tarea NORMAL, no se ven afectadas por el botn de inicio/detencin del FlexPendant. 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.

142

Descripcin general de RAPID

Sistemas de coordenadas

32 Sistemas de coordenadas
32.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 150.

32.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 X Figura 6El sistema de coordenadas de la base.

Descripcin general de RAPID

143

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 montaje de la base. - El plano xy coincide con el de la superficie de montaje 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

X Y Z Z Y X
Sistema de coordenadas de la base del robot 1

z y
Sistema de coordenadas mundo

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

144

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

Y X Z
Sistema de coordenadas del usuario 2

Y X

Z Y X
Sistema de coordenadas de la base

y
Sistema de coordenadas mundo

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

Sistema de coordenadas de 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 145

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
Sistema de coordenadas del usuario

z
Sistema de coordenadas de objeto 1

y y x y x
Sistema de coordenadas de objeto 2

z y
Sistema de coordenadas mundo

x
Figura 9Dos 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 de 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 varios lugares 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.

146

Descripcin general de RAPID

Sistemas de coordenadas
El sistema de coordenadas de desplazamiento se define a partir del sistema de coordenadas de objeto (consulte la Figura 10).

y y
Posicin original

Nueva posicin

x
Sistema de coordenadas de desplazamiento

x
Sistema de coordenadas de objeto

Figura 10Si 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 dependern 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

z y
Sistema de coordenadas mundo

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

Descripcin general de RAPID

147

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 Track

Sistema de coordenadas de la base

Figura 12Interpolacin 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 los parmetros del sistema.

32.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. 148 Descripcin general de RAPID

Sistemas de coordenadas
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).

x
Figura 13El 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 de montaje 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. 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.

Descripcin general de RAPID

149

Sistemas de coordenadas

x x
Arriba

Arriba

z
Figura 14Sistema 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). y

Sistema de coordenadas de la herramienta

Figura 15El 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.

150

Descripcin general de RAPID

Sistemas de coordenadas

Z
Sistema de coordenadas de objeto

Z Y X
Sistema de coordenadas de la herramienta

Z Y X
Sistema de coordenadas de la base

y
Sistema de coordenadas mundo

x
Figura 16Si 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. z

y z
Sistema de coordenadas de objeto

y z

x y
Sistema de coordenadas de desplazamiento

Sistema de coordenadas del usuario

x y
Sistema de coordenadas de la mueca

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

Descripcin general de RAPID

151

Sistemas de coordenadas

32.4 Informacin relacionada


Descrito en: Definicin del sistema de coordenadas mundo Definicin del sistema de coordenadas del usuario Manual de referencia tcnica Parmetros del sistema Manual del operador - IRC5 con FlexPendant - Calibracin, Tipos de datos - wobjdata Manual del operador - IRC5 con FlexPendant - Calibracin, Tipos de datos - wobjdata

Definicin del sistema de coordenadas del objeto

Definicin del sistema de coordenadas de la herramienta Manual del operador - IRC5 con FlexPendant - Calibracin, Tipos de datos - tooldata Definicin del punto central de la herramienta Manual del operador - IRC5 con FlexPendant - Calibracin, Tipos de datos - tooldata

Definicin de la base de coordenadas de desplazamiento Manual del operador - IRC5 con FlexPendant - Calibracin, Resumen sobre RAPID - Parmetros de movimiento Movimiento en sistemas de coordenadas distintos Manual del operador - IRC5 con FlexPendant - Movimiento

152

Descripcin general de RAPID

Posicionamiento durante la ejecucin del programa

33 Posicionamiento durante la ejecucin del programa


33.1 Consideraciones generales
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.

33.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 153

Posicionamiento durante la ejecucin del programa

Punto de inicio

Trayectoria de ejes interpolada

Punto de destino

Figura 18La 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 19Interpolacin 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.

154

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 20Interpolacin 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

155

Posicionamiento durante la ejecucin del programa

Punto de crculo

Punto de destino Punto de inicio


Figura 21La 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
mover TCP

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

33.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 22Los 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 157

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. Punto de paso programado Zone

Punto de inicio Trayectoria de esquina VelocidadFigura del TCP 23Durante 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 programada Zone

Punto de inicio Trayectoria de esquina


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

158

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 Figura25a-c).

Figura25aForma de programar tres posiciones con diferentes orientaciones de herramienta.

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

Tamao de la zona de operaciones Figura25cSi 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. 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. Descripcin general de RAPID 159

Posicionamiento durante la ejecucin del programa


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 26). Interpolacin lineal p1 Interpolacin de ejes Interpolacin Sing Area\Wrist p4

p2 Interpolacin Sing Area\Wrist Zona de posicin

p3

Zona de orientacin

Figura 26Interpolacin 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.

160

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 27). 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 Zonas de esquina calculadas por el robot

p3

Figura 27Interpolacin 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 28). Zona de orientacin programada Zona de orientacin generada p1 p3 Zona de orientacin
Figura 28Interpolacin 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.

Trayectoria generada p2

p4

Zonas de posicin

Descripcin general de RAPID

161

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.

33.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.

162

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 29. El eje independiente alcanza la posicin final IndAMove WaitTime 10 10 seg Velocidad del eje independiente MoveL MoveL

Velocidad del eje normal


Figura 29Ejecucin 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. rea de trabajo El rea de trabajo fsico es el movimiento total del eje. El rea de trabajo lgico es el rea utilizada por las instrucciones de RAPID y que se lee en la ventana de movimientos. Despus de la sincronizacin (contador de revoluciones actualizado), las reas de trabajo fsico y lgico coinciden. La instruccin IndReset permite trasladar el rea de trabajo lgica, como se muestra en la Figura 30.

Descripcin general de RAPID

163

Posicionamiento durante la ejecucin del programa

rea de trabajo lgico tras la sincronizacin

rea de trabajo lgico 0 tras IndReset 0 0

rea de trabajo fsico rea de trabajo lgico


Figura 30El rea 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 rea 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. 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. 164 Descripcin general de RAPID

Posicionamiento durante la ejecucin del programa


El rea 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 rea de trabajo del eje 6 se mueve debido al acoplamiento de los engranajes. Sin embargo, la posicin leda desde el FlexPendant para el eje 6 se compensa con las posiciones de los ejes 4 y 5 a travs del acoplamiento de los engranajes.

33.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. ConCon 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 rea de trabajo del robot.

33.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. 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. Descripcin general de RAPID 165

Posicionamiento durante la ejecucin del programa


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.

33.7 Informacin relacionada


Descrito en: Definicin de velocidad Instruccin para la interpolacin de ejes Instruccin para la interpolacin lineal Instruccin para la interpolacin circular Instruccin para la interpolacin modificada Singularidad Ejecucin simultnea de programas Tipos de datos - speeddata Instrucciones - MoveJ Instrucciones - MoveL Instrucciones - MoveC Instrucciones - SingArea Principios de movimiento y E/S Singularidad Principios de movimiento y E/S Sincronizacin con instrucciones lgicas Manual de referencia tcnica Parmetros del sistema Definicin de zonas (trayectorias de esquina) Tipos de datos - zonedata

Optimizacin de la CPU

166

Descripcin general de RAPID

Sincronizacin con instrucciones lgicas

34 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.

34.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 31). p1

MoveL p1, v1000, fine, tool1; SetDO do1, on; MoveL p2, v1000, z30, tool1;

Ejecucin de SetDO

Figura 31Las instrucciones lgicas posteriores a los puntos de paro no se ejecutan hasta que se alcanza la posicin de destino.

34.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 32 y la Figura 33. Estas instrucciones se ejecutan en orden. Ejecucin de SetDO DT p1 MoveL p1, v1000, z30, tool1; SetDO do1, on; MoveL p2, v1000, z30, tool1; Zona de posicin Zona de orientacin

Figura 32Una instruccin lgica a continuacin de un punto de paso se ejecuta antes de alcanzar la zona ms grande.

Descripcin general de RAPID

167

Sincronizacin con instrucciones lgicas

Ejecucin de SetDO

Zona de posicin

DT p2 p1

MoveL p1, v1000, z30, tool1; MoveL p2, v1000, z30, tool1; SetDO do1, on; MoveL p3, v1000, z30, tool1;

Zona de orientacin

Figura 33Una 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.

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

168

Descripcin general de RAPID

Sincronizacin con instrucciones lgicas


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 34. - 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 35.

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 34En 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

169

Sincronizacin con instrucciones lgicas

Ejecucin de SetDO DT

Zona ms grande

p2 p1

MoveL p1, v1000, z30, tool1; MoveL \Conc, p2, v1000, z30, tool1; SetDO do1, on; MoveL p3, v1000, z30, tool1;
Figura 35En 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 36), 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.

170

Descripcin general de RAPID

Sincronizacin con instrucciones lgicas

Ejecucin de SetDO y SetAO DT

Zona ms grande

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 36Si 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

34.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.

Descripcin general de RAPID

171

Sincronizacin con instrucciones lgicas


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.

34.5 Informacin relacionada


Descrito en: Instrucciones de posicionamiento Definicin de tamaos de zona Resumen sobre RAPID - Movimiento Tipos de datos - zonedata

172

Descripcin general de RAPID

Configuracin del robot

35 Configuracin del robot


35.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 37).

Figura 37Se 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 pueden 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 rea de trabajo ampliada en el eje 3 (consulte la Figura 38).

Descripcin general de RAPID

173

Configuracin del robot

ABB

Figura 38IRB140 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 39).

Eje 6

Eje 4 Eje 5

Figura 39Se 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 abajo (superior).

174

Descripcin general de RAPID

ABB

Configuracin del robot

35.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 2

0 3

- . Figura 40Cuarto de revolucin para un ngulo de eje positivo. int joint ------------ Se2 angle

-3 -2

-4 -1

- 1 . Figura 41Cuarto de revolucin para un ngulo de eje negativo. int joint ------------ Se2 angle

35.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

175

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 el FlexPendant. Si los parmetros de configuracin cambian a causa del uso de una base de coordenadas activa, es posible desactivar la comprobacin de la configuracin.

35.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

176

Descripcin general de RAPID

Modelos cinemticos del robot

36 Modelos cinemticos del robot


36.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 Z6 Eje 5

offset_of_joint_3 Z length_of_lower_arm offset_of_joint_2

Eje 4 Eje 3

Eje 6
X6

Eje 2 Eje 1

height_of_foot

X
Figura 42Estructura 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

177

Modelos cinemticos del robot

Z6

X6 Z Y X

Base de coordenadas de la base del robot principal

Base de coordenadas mundo


Figura 43Base 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 Z0 length_of_lower_arm offset_of_upper_arm attitude_of_joint1

Eje 2 Eje 1
offset_of_joint1_x turn_table

X2

attitude_of_joint height_of_foot X0
Figura 44Estructura 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.

178

Descripcin general de RAPID

Modelos cinemticos del robot

Z0 Cuerpo C

Z2

X2 Cuerpo B Cuerpo A

X0 Base de coordenadas de la base del robot externo Base de coordenadas mundo


Figura 45Base de coordenadas de la base de un robot ORBIT_160B

Y0

Y2 X0

y1

X2
x1 x2

Figura 46Puntos 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

36.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.

Descripcin general de RAPID

179

Modelos cinemticos del robot


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). Z2 d1 d2 Z0 Y2 X0 turn_table alfa2 a1 = 0 a2 = 0 alfa1 = 0

Figura 47Estructura 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 48Base de coordenadas de la base de un robot ORBIT_160B con un modelo cinemtico general

180

Descripcin general de RAPID

Modelos cinemticos del robot

Y0

X0

x1 y1 x2

Y2

X2
Figura 49Puntos 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)

36.3 Informacin relacionada


Descrito en: Definicin de la cinemtica general de Manual de referencia tcnica - Parmetros del un robot externo sistema

Descripcin general de RAPID

181

Modelos cinemticos del robot

182

Descripcin general de RAPID

Supervisin del movimiento y deteccin de colisiones

37 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.

37.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.

37.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 el Manual de referencia tcnica - Parmetros del sistema dentro de 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 183

Supervisin del movimiento y deteccin de colisiones

Figura: Colisin tpica Fase 1 - Se invierte el par del motor para detener el robot. Fase 2 - Se invierte la velocidad del motor para neutralizar las fuerzas residuales de la herramienta y el motor.

hora de colisin

colisin detectada

robot detenido

velocidad del motor

fuerzas residuales neutralizadas

tiempo
velocidad invertida

par de motor

tiempo

par invertido

184

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.

37.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.

37.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 el FlexPendant o a travs de la entrada digital AckErrDialog. Las salidas digitales se describen en ms detalle en el Manual del operador - IRC5 con FlexPendant dentro de Seales de E/S.

37.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. 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. Descripcin general de RAPID 185

Supervisin del movimiento y deteccin de colisiones


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.

37.6 Informacin relacionada


Descrito en: Instruccin MotionSup de RAPID Parmetros del sistema para ajustes Identificacin de cargas Resumen sobre RAPID - Movimiento Parmetros del sistema - Manipulador Principios de movimiento y E/S

Seales de E/S de supervisin de movimiento Parmetros del sistema - Seales de E/S

186

Descripcin general de RAPID

Singularidades

38 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 50). Las singularidades de mueca son configuraciones en las que los ejes 4 y 6 quedan en la misma lnea, es decir, que el eje 5 tiene un ngulo igual a 0 (consulte la Figura 51). Singularidad de la interseccin del centro de la mueca y el eje 1

Centro de rotacin del eje 1

Z base

X base Figura 50La 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 51La singularidad de la mueca se produce cuando el eje 5 se encuentra a 0 grados.

Descripcin general de RAPID

187

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

AB

Figura 52El punto singular adicional del robot IRB140.

38.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.

38.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. 188 Descripcin general de RAPID

Singularidades

38.3 Informacin relacionada


Descrito en: Control de cmo debe actuar el robot en la ejecucin cerca de puntos singulares Instrucciones - SingArea

Descripcin general de RAPID

189

Singularidades

190

Descripcin general de RAPID

Limitacin optimizada de la aceleracin

39 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

191

Limitacin optimizada de la aceleracin

192

Descripcin general de RAPID

Zonas mundo

40 Zonas mundo
40.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.

40.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.

40.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

193

Zonas mundo

Robot con el sistema de coordenadas de la base

X Y Z
Esfera Radio

TCP

Cilindro Radio Prisma Altura

z y

Sistema de coordenadas mundo

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.

40.4 Supervisin del TCP del robot


No se supervisa TCP

Se supervisa el movimiento del punto central de la herramienta, no ninguna otra parte del robot. 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 estacionaria, 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.

194

Descripcin general de RAPID

Zonas mundo

40.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 Movimiento del TCP Zona mundo

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

195

Zonas mundo

40.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 zonapara el valor usado de path_resolution y la velocidad mxima
Velocidad Resol.

1000 mm/seg 25 mm 50 mm 75 mm

2000 mm/seg 50 mm 100 mm 150 mm

4000 mm/seg 100 mm 200 mm 300 mm

1 2 3

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.
Tiempo entre comprobaciones respecto de las zonas mundo

Si el robot permanece dentro de la zona un tiempo demasiado breve, es posible que atraviese una esquina de la zona sin ser detectado. Por tanto, haga que la zona tenga un tamao mayor que el rea de riesgo.

40.7 Nmero mximo de zonas mundo


Es posible tener definido un mximo de diez zonas mundo en un momento determinado.

40.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.

196

Descripcin general de RAPID

Zonas mundo

40.9 Informacin relacionada


Manual de referencia de RAPID Principios de movimiento y E/S: Tipos de datos: Sistemas de coordenadas wztemporary wzstationary shapedata Instrucciones: WZBoxDef WZSphDef WZCylDef WZLimSup WZDOSet WZDisable WZEnable WZFree

Descripcin general de RAPID

197

Zonas mundo

198

Descripcin general de RAPID

Principios de E/S

41 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 53).

Canal fsico IN1 IN2

Seal lgica do1 alimentador

IN16 OUT1 OUT2

. . . . Placa de E/S . . . .

pinza do2 alimentador2 do16

OUT16

Figura 53Para 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.

41.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 199

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

SetDO \SDelay:=1, do1; WaitTime 0.5; PulseDO do1; Valor de la seal 1 Hora 0 0.5 1
Figura 54La instruccin SetDO no llega a realizarse porque se emite un nuevo comando antes de que transcurra el retardo especificado.

41.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.

200

Descripcin general de RAPID

Principios de E/S

41.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.

41.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). Ejemplos: - di2=di1 - di3=di2 - do4=di2 Si di1 cambia, di2, di3 y do4 cambiarn al valor correspondiente. - do8=do7 - do8=di5 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. Descripcin general de RAPID 201

Principios de E/S

41.5 Limitaciones
Es posible utilizar pulsos con un mximo de 10 seales y retardos con un mximo de 20 seales en un momento determinado.

41.6 Informacin relacionada


Descrito en: Definicin de placas y seales de E/S Instrucciones para la gestin de E/S Manipulacin manual de E/S Manual de referencia tcnica Parmetros del sistema Resumen sobre RAPID - Seales de entrada y salida Manual del operador - IRC5 con FlexPendant - Entradas y salidas

202

Descripcin general de RAPID

Programacin fuera de lnea

42 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.

42.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.

42.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 el FlexPendant. Recuerde que el valor de una posicin almacenada slo se muestra como un asterisco (*) en el FlexPendant, 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.

42.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 203

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.

42.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

204

Descripcin general de RAPID

Programacin fuera de lnea

42.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

205

Programacin fuera de lnea

206

Descripcin general de RAPID

Mdulo de sistema User

43 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.

43.1 Contenido
User comprende cinco datos numricos (registros), un dato de objetos de trabajo, un reloj y dos valores simblicos para seales digitales. Nombre reg1 reg2 reg3 reg4 reg5 wobj1 clock1 Tipo de datos num . . . num Declaracin VAR num reg1:=0 . . . VAR num reg5:=0 PERS wobjdata VAR clock clock1

wobjdata wobj1:=wobj0 clock

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.

43.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

207

Mdulo de sistema User

43.3 Eliminacin de esta informacin


Aviso: 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 Borrar .

Para modificar o eliminar datos concretos Seleccione Ver: Datos en la ventana Programa. Seleccione Datos: En todos los mdulos. Seleccione el dato deseado. 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).

208

Descripcin general de RAPID

Glosario

44 Glosario
Argumento Modo automtico Las partes de una instruccin que pueden cambiarse, es decir, todo menos el nombre de la instruccin. El modo aplicable cuando se cambia el selector de modo a . Componente Configuracin Constante Una parte de un registro. La posicin de los ejes del robot en un punto determinado. Un dato cuyo valor slo puede cambiarse manualmente.

Trayectoria de esquinaLa trayectoria generada al atravesar un punto de paso. 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 del FlexPendant (normalmente presionando OK o Cancelar antes de continuar. 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. Una secuencia de datos y operandos asociados, por ejemplo reg1+5 o reg1>5. 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. Una rutina que devuelve un valor. Un nmero de seales digitales que se agrupan y se gestionan como una sola seal. Un evento que interrumpe temporalmente la ejecucin del programa y ejecuta una rutina TRAP. Entradas y salidas elctricas. La rutina que suele ponerse en marcha cuando se presiona la tecla Arranca. El modo aplicable cuando se cambia el selector de modo a .

Expresin Punto de paso

Funcin Grupo de seales Interrupcin E/S Rutina Main Modo manual

Descripcin general de RAPID

209

Glosario
Unidad mecnica Mdulo Motores On/Off Panel de control Orientacin Parmetro Un grupo de ejes externos. Un grupo de rutinas y datos, es decir, una parte del programa. El estado del robot, es decir, si la fuente de alimentacin de los motores est activada. El panel situado en la parte delantera del sistema de control. Por ejemplo, la direccin de un elemento terminal. El dato de entrada de una rutina, enviado con la llamada a la rutina. Corresponde al argumento de una instruccin.

Variable persistente Una variable cuyo valor es persistente. Procedimiento Programa Una rutina que puede formar independientemente una instruccin cuando se la llama. El conjunto de instrucciones y datos que definen la tarea del robot. Sin embargo, los programas no contienen mdulos de sistema. Los datos que estn disponibles en todo un mdulo o en el programa completo.

Datos de 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. Registro Rutina Datos de rutina Punto de inicio Punto de paro Mdulo de sistema Un tipo de datos compuesto. Un subprograma. Datos locales que slo pueden usarse en una rutina. La instruccin que se ejecuta en primer lugar cuando comienza la ejecucin del programa. Un punto en el que el robot se detiene antes de continuar al punto siguiente. 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.

Parmetros del sistemaLos parmetros que definen el equipo y las propiedades del robot, o los datos de configuracin, en otras palabras. Punto central de la herramienta (TCP) El punto, normalmente en la punta de una herramienta, que se mueve siguiendo una trayectoria programada y a la velocidad programada.

210

Descripcin general de RAPID

Glosario
Rutina TRAP Variable La rutina que define qu debe ocurrir cuando se produce una interrupcin determinada. 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. El robot se programa y utiliza por medio de un conjunto de ventanas, por ejemplo, la ventana Programa y la ventana Servicio. Para salir de una ventana, slo tiene que seleccionar otra ventana. 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.

Ventana

Zona

Descripcin general de RAPID

211

Glosario

212

Descripcin general de RAPID

ndice alfabtico
A agregado 103 alias, tipo de dato 104 mbito mbito de una rutina 95 dato, mbito 105 AND 114 archivo, instrucciones 33 argumento condicional 117 argumento condicional 117 aritmtica, expresin 113 asignar un valor a un dato 9 B base de coordenadas de desplazamiento 146 bsqueda, instrucciones 20 C cadena 86 comentario 9, 87 componente de un registro 103 comunicacin 51 comunicacin, instrucciones 33 conexiones cruzadas 201 configuracin de ejes 173 configuracin del robot 173 CONST 107 constante 105 convenciones tipogrficas 2 D datos 105 utilizados en expresiones 115 datos de programa 105 datos de rutina 105 declaracin constante 107 mdulo 92 persistente 107 rutina 97 variable 106 detener la ejecucin del programa 8 DIV 113 E E/S de posicin fija 171 E/S, sincronizacin 167 ejecucin hacia atrs 129 ejecucin simultnea 168, 185 ejes externos coordinados 147 ejes externos coordinados 147 encabezado del archivo 88 entrada, instrucciones 29 ERRNO 121 expresin 113 expresin de cadena de caracteres 115 F flujo de programa, instrucciones 7 fuera de lnea, programar 203 funcin 95 G gestor de ejecucin hacia atrs 97, 129, 136, 205 gestor de errores 121 global datos 105 rutina 95 I identificador 85 igualdad, tipo de dato 104 instrucciones de espera 9 instrucciones matemticas 47, 61 interpolacin 153 interpolacin lineal modificada 156 interrupcin 37, 123 L llamada a funcin 116 local datos 105 rutina 95 lgica, expresin 114 M marcador de sustitucin 87 matriz 106, 107 Descripcin general de RAPID 213

MOD 113 mdulo 91 declaracin 92 mdulo de programa 91 mdulo de sistema 92 movimiento circular 155 movimiento de ejes 153 movimiento lineal 154 movimiento, instrucciones 20 movimiento, instrucciones para parmetros 13 multitarea 63, 135 N NOT 114 nmero de error 121 O operador prioridad 117 OR 114 P palabras reservadas 85 parmetro 96 parmetro opcional 96 PERS 107 persistente 105 posicin instruccin 20 Principios de E/S 199 procedimiento 95 programa 91 programar 203 punto central de la herramienta 143, 177 R Recuperacin en caso de error 125 recuperacin en caso de error 121 registro 103 reglas de sintaxis 2 rutina 95 declaracin 97 rutina principal 91 S salida, instrucciones 29

semivalor, tipo de datos 103 servo suave 165 singularidad 187, 191 sistema de coordenadas 143, 177 sistema de coordenadas de la base 143 sistema de coordenadas de la herramienta 149 sistema de coordenadas de la mueca 149 sistema de coordenadas de objeto 145 sistema de coordenadas del usuario 145 sistema de coordenadas mundo 144 switch 96 T TCP 143, 177 estacionario 150 TCP estacionario 150 tiempo, instrucciones 45 tipo de datos 103 tipos de datos sin valores 103 TRAP, rutina 95, 123 trayectoria de esquina 157 trayectoria, sincronizacin 171 U User, mdulo de sistema 207 V valor lgico 86 valor numrico 86 VAR 106 variable 105 X XOR 114

214

Descripcin general de RAPID

ABB Automation Technologies AB Robotics SE-721 68 Vsters SUECIA Telfono: +46 (0) 21-34 40 00 Fax: +46 (0) 21-13 25 92

3HAC16580-5, Revisin A , Es

Вам также может понравиться