MANERAS DE COMUNICARSE CON EL ROBOT SISTEMAS DE RECONOCIMIENTO DE VOZ ENSEÑANZA Y REPETICION (GUIADO) LENGUAJES DE PROGRAMACION
TIPOS DE PROGRAMACIÓN Gestual o Directa (Guiado) Programación por aprendizaje directo Programación mediante un dispositivo de enseñanza (Botonera) Textual Textual Explicita Textual especificativa
EL LENGUAJE V+ El lenguaje V+ aparece después de reemplazar el lenguaje VAL II, que a su vez, Val II reemplazó a VAL. El lenguaje V+ proporciona una gran interacción entre el hombre y el robot. Presenta las siguientes aportaciones más relevantes: • Inteligibilidad: Nos puede proporcionar una buena documentación, además de un diseño ordenado y coherente del programa. • Fiabilidad: Sobre todo en sistemas que deben responder a situaciones imprevistas. • Adaptabilidad: Se pueden mejorar, ampliar y modificar los programas con poco esfuerzo. • Transportabilidad: Los programas se pueden desarrollar en computadoras (ej: un PC) para poder introducirlos, posteriormente, en el controlador del sistema a través de un disquete.
– Programas de aplicación accesibles al operador mediante mouse, ventanas y gráficos en color. – Modificación de la trayectoria en tiempo real, – Acceso a comunicación con el BUS VME. – Cálculos booleanos, funciones matemáticas, funciones geométricas, etc.. – Funciones gráficas para crear ventanas, iconos, gestión de eventos,… – Construcción estructurada. – Movimientos continuos. -7 tareas paralelas (con posible extensión a 28 tareas). – Acceso a 256 entradas/ 256 salidas digitales externas, a 28 entradas / 16 salidas analógicas, 4 (ó 5) puertos de comunicación serie. – Gestión de ejes suplementarios y de encoders externos – Matrices de hasta 3 dimensiones. – Variables numéricas de 32 bits, coma flotante, simple y doble precisión. – Manipulación de cadenas de caracteres. Herramientas de detección de errores. – Los programas pueden ser escritos off-line en otros ordenadores LAS POSIBILIDADES DEL V+
Programas de control del robot: Estos programas controlan directamente el robot y pueden contener cualquier instrucción, además de las instrucciones de movimiento del robot. Programas de control de propósito general: Estos programas no son controlados por el robot, y pueden ejecutarse al mismo tiempo. Pueden controlar procesos externos a través delineas binarias externas y comunicarse con el programa de control mediante variables compartidas y señales de software. Programas de comandos del monitor: Estos programas se componen de comandos de monitor, más que de instrucciones de programa y, se usan, para realizar secuencias de comandos del monitor. TIPOS DIFERENTES DE PROGRAMAS CON V+
(Gp:) Palabra Clave (Gp:) Tipo (Gp:) Función (Gp:) Estructura (Gp:) ABORT (Gp:) Instrucción de Programa (Gp:) Terminal de ejecución de programa (Gp:) GOTO label (Gp:) CALL (Gp:) Instrucción de Programa (Gp:) Suspende la ejecución del programa actual y continua la ejecución con un nuevo programa (es decir, un subprograma). (Gp:) Ej: CALL check_data(locx, locy, length) (Gp:) CALLS (Gp:) Instrucción de Programa (Gp:) Suspende la ejecución del programa actual y continua la ejecución con un nuevo programa (Gp:) $program_name = $program_list[program_select] (Gp:) CASE (Gp:) Instrucción de Programa (Gp:) Proceso iniciado con una estructura del CASE definiendo el valor de interés. (Gp:) CLEAR.EVENT (Gp:) Instrucción de Programa (Gp:) Despeja un acontecimiento asociado a la tarea especificada. (Gp:) (Gp:) CYCLE.END (Gp:) Instrucción de Programa (Gp:) Termina el programa de control especificado la próxima vez que ejecuta una instrucción del programa de PARADA (Gp:) (Gp:) DO (Gp:) Instrucción de Programa (Gp:) Introduce una estructura DO. (Gp:) EJ: DO. code block . UNTIL expression (Gp:) EXECUTE (Gp:) Instrucción de Programa (Gp:) Empieza la ejecución de un programa de control. (Gp:) (Gp:) EXECUTE (Gp:) Comando de Monitor (Gp:) Empieza la ejecución de un programa de control. (Gp:) (Gp:) EXIT (Gp:) Instrucción de Programa (Gp:) Sale de una estructura de control FOR, DO …WHILE. (Gp:) (Gp:) FOR (Gp:) Instrucción de Programa (Gp:) Ejecuta un grupo de instrucciones de programa un cierto número de veces. (Gp:) Ej: FOR index = start_val TO end_val STEP incr . code block . END (Gp:) GET.EVENT (Gp:) Función de valor Real (Gp:) Devuelve acontecimientos que se fijan para la tarea (Gp:) (Gp:) GOTO (Gp:) Instrucción de Programa (Gp:) Realiza un parte del programa identificado por la etiqueta (Gp:) (Gp:) HALT (Gp:) Instrucción de Programa (Gp:) Para la ejecución de programa (Gp:) (Gp:) IF…GOTO (Gp:) Instrucción de Programa (Gp:) Mira si el valor de la etiqueta especificada de una expresión lógica es TRUE (Gp:) IF logical_expression GOTO 100 (Gp:) IF…THEN (Gp:) Instrucción de Programa (Gp:) Ejecuta un grupo de instrucciones condicionales (o uno de dos grupos) dependiendo del resultado de una expresión lógica. TABLA DE OPERACIONES DE CONTROL DE PROGRAMAS:
TABLA DE OPERACIONES DE CONTROL DE PROGRAMAS: (Gp:) INT.EVENT (Gp:) Instrucción de Programa (Gp:) Envía una instrucción de SET.EVENT a la tarea actual si una interrupción ocurre en un vector especificado del bus de VME. (Gp:) LOCK (Gp:) Instrucción de Programa (Gp:) Fija la prioridad del cierre de la reacción del programa al valor dado. (Gp:) MCS (Gp:) Instrucción de Programa (Gp:) Invoca un comando de control del monitor (Gp:) NEXT (Gp:) Instrucción de Programa (Gp:) Rompe una estructura FOR, DO, o WHILE y comienza la iteración siguiente de la estructura del control. (Gp:) PAUSE (Gp:) Instrucción de Programa (Gp:) Para la ejecución de programa y no permite que el programa sea reasumido. (Gp:) PRIORITY (Gp:) Función de valor Real (Gp:) Devuelve la prioridad actual del cierre de la reacción hacia el programa. (Gp:) REACT / REACTI (Gp:) Instrucción de Programa (Gp:) Inicia el control continuo de una señal numérica especifica y acciona automáticamente una llamada de subprograma si las transiciones de señal son correctas. (Gp:) REACTE (Gp:) Instrucción de Programa (Gp:) Inicia la supervisión de los errores que ocurren durante la ejecución de la tarea del programa actual. (Gp:) REALASE (Gp:) Instrucción de Programa (Gp:) Permite la tarea siguiente disponible del programa para funcionar. (Gp:) RETRY (Gp:) Instrucción de Programa (Gp:) Controla si la PROGRAM START causa un resumens de programa . (Gp:) RETURN (Gp:) Instrucción de Programa (Gp:) Termina la ejecución de la ejecución actual del subprograma y de la ultima ejecución del programa en el siguiente paso de la instruccion (Gp:) RETURNE (Gp:) Instrucción de Programa (Gp:) Termina la ejecución de la ejecución actual del subprograma y de la ultima ejecución del programa en el siguiente paso de la instrucción que causa la subrutina invocada. (Gp:) RUNSIG (Gp:) Instrucción de Programa (Gp:) Enciende o apaga la señal digital mientras la ejecución de la tarea invocada continua. (Gp:) SET.EVENT (Gp:) Instrucción de Programa (Gp:) Fija un acontecimiento asociado a la tarea especificada. (Gp:) STOP (Gp:) Instrucción de Programa (Gp:) Termina la ejecución del ciclo del programa (Gp:) WAIT (Gp:) Instrucción de Programa (Gp:) Pone en el programa un lazo de espera hasta que la condición es TRUE. (Gp:) WAIT.EVENT (Gp:) Instrucción de Programa (Gp:) Suspende la ejecución de un programa hasta que ha ocurrido un acontecimiento especificado, o hasta que ha transcurrido una cantidad de tiempo especificada. (Gp:) WHILE (Gp:) Interruptor de sistema (Gp:) Inicia un proceso con la estructura WHILE si la condición es TRUE o salta la estructura del WHILE si la condición es inicialmente FALSA.
(Gp:) Palabra Clave (Gp:) Función (Gp:) ABS (Gp:) Retorna un valor absoluto (Gp:) ATAN2 (Gp:) Devuelve el tamaño del ángulo (grados) que tiene la tangente trigonometrica igual a value_1/value_2. (Gp:) BCD (Gp:) Convierte un valor real a formato de Código Decimal binario (BCD). (Gp:) COS (Gp:) Retorna el cosinos trigonométrico del ángulo dado. (Gp:) DCB (Gp:) Convierte digitos BCD a un número entero equivalente. (Gp:) FRACT (Gp:) Retorna la parte fraccionada de un argumento. (Gp:) INT (Gp:) Retorna la parte entera de un número. (Gp:) INTB (Gp:) Retorna el valor de dos bytes de un string interpretado (Gp:) MAX (Gp:) Devuelve el valor máximo contenido en la lista de valores. (Gp:) MIN (Gp:) Devuelve el valor mínimo contenido en la lista de valores. (Gp:) OUTSIDE (Gp:) Comprueba un valor para ver si es exterior al rango especificado. (Gp:) PI (Gp:) Devuelve el valor de la constante matemática pi (3,141593). (Gp:) RANDOM (Gp:) Devuelve un número pseudoaleatorio. (Gp:) SIGN (Gp:) Devuelve el valor 1 con la señal del parámetro del valor. (Gp:) SIN (Gp:) Devuelve el seno trigonométrico de un ángulo dado. (Gp:) SQR (Gp:) Devuelve el cuadrado del parámetro. (Gp:) SQRT (Gp:) Devuelve la raíz cuadrada del parámetro. TABLA DE FUNCIONES PARA VALORES NUMÉRICOS
Tabla de funciones de sistemas de control: (Gp:) Palabra clave (Gp:) Función (Gp:) DEFINED (Gp:) Determina si se ha definido una variable. (Gp:) ERROR (Gp:) Devuelve el número del error de un error reciente que causó una parada mientras se ejecutaba el programa o causó una reacción de REACTE. (Gp:) $ERROR (Gp:) Retorna el mensaje de error asociado con el código de error. (Gp:) FREE (Gp:) Devuelve la cantidad de espacio de almacenaje libre inutilizado de la memoria. (Gp:) GET.EVENT (Gp:) Retorna acontecimientos que se fijan para la tarea especificada. (Gp:) ID (Gp:) Devuelve los que identifican la configuración del sistema actual. (Gp:) $ID (Gp:) Devuelve la fecha de creación del sistema y la información de edit/revision. (Gp:) LAST (Gp:) Devuelve el índice más alto usado para una matriz (dimensión). (Gp:) PARAMETER (Gp:) Devuelve el ajuste actual del parámetro nombrado del sistema. (Gp:) PRIORITY (Gp:) Devuelve la prioridad actual del cierre de la reacción para el programa. (Gp:) SELECT (Gp:) Devuelve el número de la unidad que es seleccionado actualmente por la tarea actual para el dispositivo nombrado. (Gp:) STATUS (Gp:) Retorna la información de estado para una aplicación de programa. (Gp:) SWITCH (Gp:) Devuelve una indicación del ajuste de un interruptor del sistema. (Gp:) TAS (Gp:) Devuelve el valor actual de una variable de valor real y le asigna un nuevo valor. Las dos acciones se hacen indivisiblemente, así que, ninguna otra tarea del programa puede modificar la variable en el mismo tiempo. (Gp:) TASK (Gp:) Retorna información sobre una tarea de la ejecución de programa. (Gp:) TIME (Gp:) Devuelve un valor del número entero que representa la fecha o la hora especificada en el parámetro dado, de la secuencia. (Gp:) $TIME (Gp:) Devuelve un valor de la secuencia que contiene la fecha actual del sistema y hora o la fecha y la hora especificadas. (Gp:) TIMER (Gp:) Devuelve el valor del tiempo actual (en segundos) del contador de tiempo especificado del sistema. (Gp:) TPS (Gp:) Devuelve el número de las señales del reloj del sistema que ocurren por segundo (señales por segundo).
APLICACIONES Aplicaciones en fundición. Aplicaciones de Soldadura Aplicación de Pintura, Esmalte, Partículas de metal, etc. Alimentación de máquinas. Corte. Montaje / Ensamblaje Paletización Pick and place
La fundición de materiales por inyección fue el primer proceso robotizado en 1960. Los robots, en estos procesos son utilizados para el transporte de las piezas a un lugar de enfriado y posteriormente a otro proceso (desbardado, corte, etc.). Aplicaciones en fundición.
Aplicaciones de Soldadura La tarea más robotizada dentro de la fabricación de automóviles es la soldadura de carrocerías. Los robots de soldadura por puntos precisan capacidad de cargas del orden de los 50-100 Kg. y estructura articular, con suficientes grados de libertad (5 o 6) como para posicionar y orientar la pinza de soldadura (o pieza según el caso) en lugares de difícil acceso.
Aplicación de Pintura, Esmalte, Partículas de metal, etc. Los robots de pintura suelen ser robots articulares, ligeros, con 6 o más grados de libertad que les permiten proyectar pintura en todos los huecos de la pieza. Cuentan con protecciones especiales para defenderse de las partículas en suspensión dentro de la cabina de pintura y sus posibles consecuencias (explosiones, incendio, deterioro mecánico). También tienen una accionamiento hidráulico por el riesgo de incendio.
Alimentación de máquinas. La utilización de robots para alimentar máquinas aparece por la peligrosidad y monotonía de las operaciones de carga y descarga de maquinas. Los robots usados en estas tareas son de baja complejidad, precisión media, numero reducido de grados de libertad y un control sencillo, basado, en ocasiones, con manipuladores secuenciales y con un campo de acción grande. Las estructuras mas frecuentemente utilizadas son la cilíndrica, esférica y articular. También la cartesiana puede aportar solución.
Corte. El corte de materiales mediante el robot es una aplicación reciente, gracias a la capacidad de reprogramación del robot y su integración en un sistema que hace que sea el elemento ideal para transportar la herramienta de corte sobre la pieza, realizando con precisión un programa de corte desde un sistema de diseño asistido por computador (CAD).
Montaje / Ensamblaje. Las operaciones de montaje, por la gran precisión y habilidad que normalmente exigen, presentan grandes dificultades para su automatización flexible. El tipo SCARA ha alcanzado gran popularidad en este tipo de tareas por su bajo coste y buenas características. Estas se consiguen por su adaptabilidad selectiva, presentando facilidad para desviarse, por una fuerza externa, en el plano horizontal y una gran rigidez para hacerlo en el eje vertical.
Paletización La paletización es un proceso básicamente de manipulación, consistente en disponer de piezas sobre una plataforma o bandeja (palet). Generalmente, las tareas de paletización implican el manejo de grandes cargas, de peso y dimensiones elevadas. Por este motivo, los robots empleados en este tipo de aplicaciones acostumbran a ser robots de gran tamaño, con una capacidad de carga de 10 a 150 kg aproximadamente.
Pick and place La misión de un robot trabajando en un proceso de pick and place consiste en recoger piezas de un lugar y depositarlas en otro El propio robot gestiona las líneas de alimentación de las cajas y de palets, a la vez que toma las decisiones necesarias para situar la caja en el palet con la posición y orientación adecuadas de una manera flexible.