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.