Académique Documents
Professionnel Documents
Culture Documents
TTULO: AUTORES:
EL LENGUAJE V+ JAUME YEBRA PREZ NRIA LAGOS FERNNDEZ INGENIERA TCNICA INDUSTRIAL ELECTRNICA PERE PONSA ASENSIO INGENIERA DE SISTEMAS, INFORMTICA INDUSTRIAL DICIEMBRE - 2002 AUTOMTICA E
FECHA:
EL LENGUAJE V+
Mediante este miniproyecto, se pretende, en primer lugar, ampliar los conocimientos adquiridos en la asignatura de ROBTICA de la titulacin de Ingeniera Tcnica Industrial especialidad Electrnica Industrial. As mismo, el tema escogido trata sobre los lenguajes de programacin de robots industriales, mercado actual, posibilidades, historia, comparativa, etc. Concretamente se ha tratado de ampliar el lenguaje V+. Por otro lado, se han explicado las caractersticas principales del V+, cdigo fuente, programas ejemplo, aplicaciones, etc. Otra parte del miniproyecto, ha sido la difcil tarea de reunir informacin tcnica suficiente para que tenga lugar este trabajo. As mismo, se han adjuntado extensos manuales de VAL II y V+ (VAL3), en modo PDF, estos ltimos (manuales de V+ de Adept) han sido realmente difciles de conseguir, y la informacin que ofrecen es muy completa. Por ltimo, se ha realizado un entorno multimedia, en formato WEB, para ordenar toda la informacin procesada.
Palabras clave (mximo 10): ROBTICA V+ LENGUAJES PROGRAMACIN ADEPT VAL STUBLI VAL II
-1-
EL LENGUAJE V+
NDICE
1. Introduccin a la Robtica
1.1. Los orgenes de la palabra robot y su supuesto significado. 1.2. Etapas histricas sobre los robots. 1.3. Clasificacin de los robots. 1.4. Propiedades caractersticas de los robots. 1.5. Comunicacin con los robots. 1.6. Lenguajes de programacin. 1.6.1. Lenguaje de programacin Gestual Punto a punto. 1.6.2. Lenguaje de programacin a nivel de movimientos elementales. 1.6.3. Lenguajes estructurados de programacin explicita. 1.6.4. Lenguajes de programacin especificativa a nivel de objeto. 1.6.5. Lenguajes de programacin en funcin de los objetivos. 1.6.6. Tabla resumen de los lenguajes de programacin. 1.7. Caractersticas de un Lenguaje Ideal para la robtica. 1.8. Clasificacin de la programacin usada en robtica.
2. El lenguaje V+
2.1. El lenguaje de robtica industrial VAL. 2.2. El lenguaje de robtica industrial VAL II. 2.3. El lenguaje de robtica industrial V+. 2.4. Uso del entorno de programacin V+. 2.5. Tablas resumen de Instrucciones V+. 2.6. Botones de la paleta (Botonera).
3. Aplicaciones
3.1. Aplicaciones en fundicin. 3.2. Aplicaciones de Soldadura 3.3. Aplicacin de Pintura, Esmalte, Partculas de metal, etc. 3.4. Alimentacin de mquinas. 3.5. Corte. 3.6. Montaje / Ensamblaje 3.7. Paletizacin 3.8. Pick and place
4. Bibliografa
-2-
EL LENGUAJE V+
-3-
EL LENGUAJE V+
1. INTRODUCCIN A LA ROBTICA
-4-
EL LENGUAJE V+
1.1.
El trmino robot es reciente, pero el concepto es muy antiguo. Antiguamente apareca expresado en sinnimos como autmata, que significaba que pensaba por s mismo. La palabra robot aparece por el sueo de los seres humanos en poder librarse de tareas indeseables, peligrosas o demasiado pesadas. La primera vez que se hablo de estos seres, utilizando el trmino por el que es hoy mundialmente conocido, robot, fue en 1923 por el escritor Karel Capek en su comedia R.U.R..("Rossum`s Universal Robots"), palabra que proviene del trmino checo robotnik que significa siervo. Hoy la palabra robot tiene diferentes significados: El significado de la palabra Robot por el Institute of Amrica: "un manipulador multifuncional y reprogramable, diseado para mover materiales, piezas, herramientas o dispositivos especiales, mediante movimientos programables y variables que permitan llevar a cabo diversas tareas". El significado de la palabra Robot por Oxford English dictionary: "un aparato mecnico que se parece y hace el trabajo de un ser humano". El concepto de Robot inteligente incluye la capacidad de recibir instrucciones de alto nivel expresadas como "comandos" para realizar una tarea general, trasladando dichas instrucciones a un conjunto de acciones que deben ejecutarse para llevar a cabo dicha tarea. Ser consciente de su entorno y capaz de tomar decisiones acerca de sus acciones basadas, en parte, en la interpretacin de dicho entorno.
-5-
EL LENGUAJE V+
-6-
EL LENGUAJE V+
-7-
EL LENGUAJE V+
El lenguaje es el medio que utiliza el hombre para gobernar las mquinas controladas por sistemas informticos, de manera, que su correcta adaptacin con la tarea a realizar y sencillez de manejo, son factores determinantes del rendimiento obtenido en los robots industriales.
Hay tres maneras generales de comunicarse con un robot que son: reconocimiento de voz, enseanza y repeticin y lenguajes de programacin de alto nivel. Los sistemas de reconocimiento de voz con la tecnologa actual, son bastante primitivos. Estos sistemas pueden reconocer un conjunto de palabras concretas de un vocabulario limitado y, en general, exigen al usuario una pausa entre las palabras, aunque en la actualidad es posible reconocer las palabras separadas en tiempo real debido a que cada vez los PCs son ms rpidos y eficientes. La utilidad del reconocimiento de palabras separadas para describir la tarea de un robot es bastante limitada. As mismo, pueden confundirse los ruidos ambientales con la voz.
-8-
EL LENGUAJE V+
La enseanza y repeticin, tambin conocido como guiado, es la solucin ms utilizada en la actualidad en los robots industriales. Este mtodo consiste en guiar al robot (ensear), dirigindole los movimientos que el usuario desea que realice. La enseanza y repeticin se lleva a cabo, normalmente, con los siguientes pasos: 1) Dirigiendo al robot con un movimiento lento, utilizando el control manual, para realizar la tarea completa y grabando los ngulos del movimiento del robot, en los lugares adecuados, para que vuelva a repetir el movimiento. 2) Reproduciendo y repitiendo el movimiento enseado. 3) Si el movimiento enseado es correcto, entonces se hace funcionar al robot a la velocidad correcta, en modo repetitivo. Podemos guiar al robot en movimientos lentos de varias maneras: usando un joystick, un conjunto de botones (uno para cada movimiento) o un sistema de manipulacin maestro-esclavo. Los lenguajes de programacin de alto nivel suministran una solucin ms general para resolver el problema de comunicacin hombre-robot. En la dcada anterior, los robots fueron utilizados con xito en reas tales como soldadura por arco voltaico o pintura con spray utilizando el guiado. Estas tareas no requieren interaccin entre el robot y su entorno y pueden ser programadas fcilmente por guiado. Sin embargo, la utilizacin de robots, para llevar a cabo las tareas, requieren tcnicas de programacin en lenguajes de alto nivel, ya que el robot de la lnea de produccin suele confiar en la realimentacin de los sensores. Este tipo de interaccin slo puede ser mantenida por mtodos de programacin que contengan condiciones. Los lenguajes clsicos empleados en informtica, como el FORTRAN, BASIC, PASCAL, C, etc., no disponen de las instrucciones y comandos especficos que necesitan los robots, para aproximarse a su configuracin y a los trabajos que han de realizar. Esta circunstancia, ha obligado a los constructores de robots e investigadores a disear lenguajes propios de robtica. El problema, es que los lenguajes desarrollados hasta el momento, se han dirigido a un determinado modelo de controladora de robot, lo que ha impedido la aparicin de lenguajes estndar y transportables entre mquinas, es decir, de carcter universal. La estructura del sistema informtico del robot vara notablemente, segn el nivel y complejidad del lenguaje y de la base de datos requerida.
-9-
EL LENGUAJE V+
A continuacin se realiza una descripcin de los lenguajes de programacin ms usados en robtica. 1.6.1. Lenguaje de programacin Gestual Punto A Punto Estos lenguajes se utilizan con el robot "in situ", recordando las normas de funcionamiento de un video domstico, ya que disponen de unas instrucciones similares: PLAY (reproducir), RECORD (grabar), FF (adelantar), FR (atrasar), PAUSE, STOP, etc. Adems, puede disponer de instrucciones auxiliares, como INSERT (insertar un punto o una operacin de trabajo) y DELETE (borrar). Este manipulador en lnea funciona como un digitalizador de posiciones. Los lenguajes ms conocidos en programacin gestual punto a punto son el FUNKY (creado por IBM), y el T3 (creado por Cincinnati Milacrom). En el lenguaje FUNKY se utiliza un mando (joystick), que dispone de un comando especial para centrar la pinza sobre el objeto y controlar los movimientos, mientras que el T3 dispone de un dispositivo de enseanza ("teach pendant"). El procesador usado en T3 es el AMD 2900 ("bit slice"), mientras que en el FUNKY est constituido por el IBM SYSTEM-7.
- 10 -
EL LENGUAJE V+
1.6.2. Lenguaje de programacin A nivel de movimientos elementales. Algunos de los lenguajes, mas importantes, que tratan los movimientos punto a punto son: ANORAD, EMILY, RCL, RPL, SIGLA, VAL, MAL. Estos lenguajes mantienen las caractersticas de los movimientos primitivos, ya sea en coordenadas articulares o cartesianas. Tienen como ventajas destacables, los saltos condicionales y subrutinas, adems de un aumento de las operaciones con sensores. Estos lenguajes son de tipo intrprete, con excepcin del RPL, que tiene un compilador. La mayora dispone de comandos de tratamiento a sensores bsicos: tacto, fuerza, movimiento, proximidad y presencia. El RPL dispone de un sistema complejo de visin, capaz de seleccionar una pintura y reconocer objetos presentes en su base de datos. Los lenguajes EMILY y SIGLA son transportables y admiten procesos simples, en paralelo. Otros datos interesantes de estos lenguajes son: ANORAD Este lenguajes es una transformacin de un lenguaje de control numrico de la casa ANORAD CORPORATION, utilizado para el robot ANOMATIC. Utiliza como procesador el microprocesador 68000 de Motorola de 16/32 bits. VAL Fue diseado por UNIMATION INC para sus robots UNIMATE y PUMA. Utiliza como CPU un LSI-II, que se comunica con procesadores individuales que regulan el servocontrol de cada articulacin. Las instrucciones (en ingls) son sencillas e intuitivas como podemos apreciar en el siguiente ejemplo de programa:
.PROGRAM PICKUP 1. APRO PART, 25.0 2. MOVES PART 3. CLOSE, 0.0.0 4. APRO PART, -50.0 5. APRO DROP, 100.0 6. MOVES DROP 7. OPEN, 0.0.0 8. APRO DROP, -100.0 .END
RPL Esta dotado con un LSI-II como procesador central que se aplica a los robots PUMA. Fue diseado por SRI INTERNATIONAL. EMILY Es un lenguaje creado por IBM para el control de uno de sus robots. Usa el procesador IBM 370/145 SYSTEM 7 y est escrito en Ensamblador. SIGLA Fue desarrollado por OLIVETTI para su robot SUPER SIGMA. Emplea un mini-ordenador con 8K de memoria. Escrito en Ensamblador, es de tipo intrprete. MAL Fue creado en el Politcnico de Miln para el robot SIGMA, con un Mini-multiprocesador. Es un lenguaje del tipo intrprete, escrito en FORTRAN. RCL Aplicado al robot PACS y desarrollado por RPI, emplea como CPU, un PDP 11/03. Es del tipo intrprete y est escrito en Ensamblador.
- 11 -
EL LENGUAJE V+
1.6.3. Lenguajes Estructurados De Programacin Explcita Algunos de los lenguajes ms importantes de programacin explcita son: AL, HELP, MAPLE, PAL, MCL, MAL EXTENDIDO. Todos los lenguajes que tratan de la programacin explcita, (con excepcin de HELP), tienen estructuras de datos de tipo complejo. As, el AL utiliza vectores, posiciones y transformaciones; el PAL usa transformaciones y el MAPLE permite la definicin de puntos, lneas, planos y posiciones. Slo el PAL, y el HELP carecen de capacidad de adaptacin sensorial. Los lenguajes AL, MAPLE y MCL tienen comandos para el control de la sensibilidad del tacto de los dedos (fuerza, movimiento, proximidad, etc.). Adems, el MCL tiene comandos de visin para poder identificar e inspeccionar objetos. Exponemos las caractersticas ms representativas de los lenguajes de programacin explcita: AL Proporciona las definiciones necesarias acerca de los movimientos relacionados con los elementos sobre los que trabaja el brazo. AL fue diseado por el laboratorio de Inteligencia Artificial de la Universidad de Stanford, con estructuras de bloques y de control similares al ALGOL (lenguaje en el que fue escrito). Est dedicado al manipulador de Stanford, utilizando como procesadores centrales, a un PDP 11/45 y un PDP KL-10. HELP Fue creado por GENERAL ELECTRIC, para su robot ALLEGRO y est escrito en PASCAL/FORTRAN. Este lenguaje permite el movimiento simultneo de varios brazos y dispone de un conjunto especial de subrutinas para la ejecucin de cualquier tarea. Utiliza como CPU un PDP 11. MAPLE Fue escrito por IBM, como intrprete en lenguaje PL-1, para el robot de la misma empresa. El cual, tiene capacidad para soportar informaciones de sensores externos. Utiliza como CPU un IBM 370/145 SYSTEM 7. PAL Fue desarrollado por la Universidad de Purdure para el manipulador de Stanford. Esta escrito en FORTRAN y ensamblador, y s un intrprete, capaz de aceptar sensores de fuerza y de visin. Cada una de sus instrucciones para mover el brazo del robot en coordenadas cartesianas, es procesada para que satisfaga la ecuacin del procesamiento. Como CPU utiliza un PDP 11/70. MCL Fue creado por la compaa MC DONALL DOUGLAS, como ampliacin de su lenguaje de control numrico APT. Es un lenguaje compilable, apto para la programacin de robots "off-line". MAL EXTENDIDO Procede del Politcnico de Miln, al igual que el MAL. Incorpora elementos de programacin estructurada y se utiliza en el robot SIGMA.
- 12 -
EL LENGUAJE V+
De los lenguajes de programacin explcita a nivel de objeto destacamos los tres ms interesantes: RAPT, AUTOPASS y LAMA. RAPT El lenguaje RAPT fue creado en la Universidad de Edimburgo, departamento de Inteligencia Artificial; est orientado, en especial, al ensamblaje de piezas. Destinado al robot FREDY, utiliza, como procesador central, a un PDP 10. Es un intrprete y est escrito en lenguaje APT. Este lenguaje se basa en definir una serie de planos, cilindros y esferas, que dan lugar a otros cuerpo. Para modelar un cuerpo, se confecciona una biblioteca con sus rasgos ms representativos. Seguidamente, se define los movimientos que ligan a los cuerpos a ensamblar (alinear planos, encajar cilindros, etc.). Un ejemplo: Si se desea definir un cuerpo C1, se comienza definiendo sus puntos ms importantes, por ejemplo:
P1 P2 P3 P4 = = = = < < < < x, 0, 0 0, y, 0 x/2, y, 0, 0, z > > 0 > >
Si, anlogamente al cuerpo C1, se define otro, como el C2, una accin entre ambos podra consistir en colocar la cara inferior de C1 alineada con la superior de C2. Esto se escribira.
AGAINST / BOT / OF C1, TOP / OF C2;
AUTOPASS Fue creado por IBM para el ensamblaje de piezas. Utiliza instrucciones, muy comunes, en ingls. Precisa de un ordenador de varios Megabytes de capacidad de memoria. Adems de indicar, como el RAPT, puntos especficos, prev, tambin, colisiones y genera acciones a partir de las situaciones reales. El AUTOPASS realiza todos sus clculos sobre una base de datos, que define a los objetos como poliedros de un mximo de 20,000 caras. Est escrito en PL/1 y es intrprete y compilable.
- 13 -
EL LENGUAJE V+
Un pequeo ejemplo, que puede proporcionar una idea de la facilidad de relacionar objetos, es el siguiente programa, que coloca la parte inferior del cuerpo C1 alineada con la parte superior del cuerpo C2. Asimismo, alinea los orificios A1 y A2 de C1, con los correspondientes de C2.
PLACE C1 SUCH THAT C1 BOT CONTACTS C2TOP AND B1 A1 IS ALIGNED WITH C2A1 AND B1 A2 IS ALIGNED WITH C2A2
LAMA Fue creado por el laboratorio de Inteligencia Artificial del MIT, para el robot SILVER, en el que se orientaron hacia el ajuste de conjuntos mecnicos. Aporta ms inteligencia que el AUTOPASS y permite una buena adaptacin al entorno. La operatividad del LAMA se basa en tres funciones principales: - Creacin de la funcin de trabajo. Operacin inteligente. - Generacin de la funcin de manipulacin. - Interpretacin y desarrollo, de forma interactiva, de una estrategia de realimentacin para la adaptacin al entorno de trabajo.
1.6.5. Lenguajes de programacin En funcin de los objetivos. Los lenguajes en funcin de los objetivos, consisten en definir la situacin final del producto a fabricar, a partir de la cual se generan los planes de accin que tienden a conseguirlo, obtenindose, finalmente, el programa de trabajo. Estos lenguajes, de tipo natural, suponen una potenciacin extraordinaria de la Inteligencia Artificial, que descargan al usuario de las labores de programacin. Estos lenguajes pueden realizar una comunicacin hombre-mquina, a travs de la voz. De los lenguajes de programacin en funcin de los objetivos destacamos: STRIPS y HILAIRE. STRIPS Fue diseado, en la Universidad de Stanford, para el robot mvil SHAKEY. Est6 basado en un modelo del universo ligado a un conjunto de planteamientos aritmtico-lgicos que se encargan de obtener las subrutinas que conforman el programa final. Es intrprete y compilable, y utiliza como procesadores a un PDP-10 y un PDP-15. HILAIRE Fue creado por el laboratorio de Automtica y Anlisis de Sistemas (LAAS) de Toulouse. Esta escrito en lenguaje LISP. Es uno de los lenguajes naturales ms interesantes, por sus posibilidades de ampliacin e investigacin.
- 14 -
EL LENGUAJE V+
ORIGEN Y CARACTERSTICAS - Nivel actuador - Compilador asociado al robot. - Sintaxis simple: MOVE, SEARCH, CENTER. - Objetos tratados: constantes, variables, vectores, contadores - Basado en PASCAL. - Nivel actuador. - Transformador de coordenadas. - Sintaxis compleja: MOVE TO, MOVE VIA, etc., SEARCH, ACROSS SEARCH, WITHOUT..., CENTER ON ... - Objetos tratados: los de Wave ms planos, traslaciones, rotaciones. - Estructura Algol. - Interprete escrito en APT. - Nivel objeto.
APLICACIONES - Manipulacin de piezas mecnicas. - Montaje de bomba de agua. - Ensamblaje. - Manipulacin de piezas mecnicas. - Sistema de desarrollo de programas Pointy. - Robots Unimation.
Stanford
Stanford
RAPT (1978)
RAPID (1994)
KAREL KRL
Sistemas de Toulouse (Universidad de Edimburgo) Unimation - Se parti de AL, pero utilizando BASIC. - Nivel actuador. - Transformador de coordenadas. - Instrucciones de movimiento y de control (MOVE-, DEPART-). - instrucciones Aritmticas. - Estructura Algol. Cincinnati - Desarrollo por ICAM y realizado en Fortram Milacron IBM - Alto nivel interactivo estructurado. - Nivel objeto. - Compilador al nivel. - Sintaxis evolucionada, como colocar X sobre Y alineando Z y T. ACMA - Desarrollado en colaboracin con la Universidad de Montpellier. ADEPT - Lenguaje textual de alto nivel. - Ejecucin de varios programas al mismo tiempo (multitarea). - Proceso asncrono o ejecucin de rutinas de reaccin ante determinados eventos. ABB - Lenguaje textual de alto nivel altamente estructurado. - Estructura modular del programa. - Uso de estructuras predefinidas para especificar la configuracin del robot y las caractersticas de la herramienta. FANUC - Basado en PASCAL. - Soporta la multitarea. - Estructura de datos asociados modificable. KUKA - Basado en el estndar IRL, descrito en la norma DIN 66312, lo que aporta transportabilidad.
- Montaje
- 15 -
EL LENGUAJE V+
- 16 -
EL LENGUAJE V+
- 17 -
EL LENGUAJE V+
- Seleccin de velocidades. - Generacin de retardos. - Sealizacin del estado de los sensores. - Borrado y modificacin de los puntos de trabajo. - Funciones especiales. Al igual que con la programacin directa, en la que se emplea un elemento de enseanza, el usuario no necesita conocer ningn lenguaje de programacin. Simplemente, debe habituarse al empleo de los elementos que constituyen el dispositivo de enseanza. De esta forma, se pueden editar programas, aunque como es lgico, muy simples. La estructura del "software" es del tipo intrprete; sin embargo, el sistema operativo que controla el procesador puede poseer rutinas especficas, que suponen la posibilidad de realizar operaciones muy eficientes.
2. Programacin Textual: En la programacin textual, las acciones que ha de realizar el brazo se especifican mediante el programa, que consta de un texto de instrucciones o sentencias (en un lenguaje determinado), cuya confeccin no requiere de la intervencin del robot; es decir, se efectan "off-line". As mismo, con este tipo de programacin, el operador no define, prcticamente, las acciones del brazo manipulado, sino que se calculan, en el programa, mediante el empleo de las instrucciones textuales adecuadas. Las trayectorias del manipulador se calculan matemticamente con gran precisin y se evita el posicionamiento a ojo, muy corriente en la programacin gestual. En esta labor no participa la mquina (off-line). Los lenguajes de programacin textual se encuadran en varios niveles, segn se realice la descripcin del trabajo del robot. Estos son los lenguajes de programacin por orden creciente de complejidad: Lenguajes elementales, que controlan directamente el movimiento de las articulaciones del manipulador Lenguajes dirigidos a posicionar el elemento terminal del manipulador. Lenguajes orientados hacia el objeto sobre el que opera el sistema. Lenguajes enfocados a la tarea que realiza el robot. En una aplicacin tal como el ensamblaje de piezas, en la que se requiere una gran precisin, los posicionamientos seleccionados mediante la programacin gestual no son suficientes, debiendo ser sustituidos por clculos ms perfectos y por una comunicacin con el entorno que rodea al sistema. En la programacin textual, la posibilidad de edicin es total. El robot debe intervenir, slo, en la puesta a punto final. Segn las caractersticas del lenguaje, pueden confeccionarse programas de trabajo complejos, con inclusin de saltos condicionales, empleo de bases de datos, posibilidad de creacin de mdulos operativos intercambiables, capacidad de adaptacin a las condiciones del mundo exterior, etc. Dentro de la programacin textual, existen dos grandes grupos, de caractersticas netamente diferentes:
- 18 -
EL LENGUAJE V+
1. Programacin textual explcita: el programa consta de una secuencia de rdenes o instrucciones concretas, que van definiendo con rigor las operaciones necesarias para llevar a cabo la aplicacin. Se puede decir que la programacin explcita engloba a los lenguajes que definen los movimientos punto por punto, similares a los de la programacin gestual, pero bajo la forma de un lenguaje formal. Con este tipo de programacin, la labor del tratamiento de las situaciones anormales, colisiones, etc., queda a cargo del programador. Dentro de la programacin explcita, hay dos niveles: a) Nivel de movimiento elemental: comprende los lenguajes dirigidos a controlar los movimientos del brazo manipulador. Existen dos tipos: Articular, cuando el lenguaje se dirige al control de los movimientos de las diversas articulaciones del brazo. Los lenguajes del tipo articular indican los incrementos angulares de las articulaciones. Aunque esta accin es bastante simple para motores de paso a paso y corriente continua, al no tener una referencia general de la posicin de las articulaciones con relacin al entorno, es difcil relacionar al sistema con piezas mviles, obstculos, cmaras de TV, etc. Los lenguajes correspondientes al nivel de movimientos elementales aventaja, principalmente, a los de punto a punto, en la posibilidad de realizar bifurcaciones simples y saltos a subrutinas, as como de tratar informaciones sensoriales. Cartesiano, cuando el lenguaje define los movimientos relacionados con el sistema de manufactura, es decir, los del punto final del trabajo (Tool Center Point). Los lenguajes del tipo cartesiano utilizan transformaciones homogneas. Este hecho confiere "popularidad" al programa, independizando a la programacin del modelo particular del robot, puesto que un programa confeccionado para uno, en coordenadas cartesianas, puede utilizarse en otro, con diferentes coordenadas, mediante el sistema de transformacin correspondiente. Son lenguajes que se parecen al BASIC, sin poseer una unidad formal y careciendo de estructuras a nivel de datos y de control. b) Nivel estructurado: Intenta introducir relaciones entre el objeto y el sistema del robot, para que los lenguajes se desarrollen sobre una estructura formal. Se puede decir que los lenguajes correspondientes a este tipo de programacin adoptan la filosofa del PASCAL, LABVIEW, o cualquier programa parecido. Describen objetos y transformaciones con objetos, disponiendo, muchos de ellos, de una estructura de datos arborescente. El uso de lenguajes con programacin explcita estructurada aumenta la comprensin del programa, reduce el tiempo de edicin y simplifica las acciones encaminadas a la consecucin de tareas determinadas. En los lenguajes estructurados, se utilizan mucho las transformaciones de coordenadas, que exigen un cierto nivel de conocimientos. Por este motivo dichos lenguajes no son populares hoy en da. 2. Programacin textual especificativa: Se trata de una programacin del tipo no procesal, en la que el usuario describe las especificaciones de los productos mediante una modelizacin, al igual que las tareas que hay que realizar sobre ellos. El sistema informtico para la programacin textual especificativa se ha de disponer del modelo de donde se encuentra el robot. Este modelo ser, normalmente, una base de datos ms o menos compleja, requiriendo siempre computadoras potentes para el procesado de una abundante informacin. El trabajo de la programacin consistir, simplemente, en la descripcin de las tareas a realizar, lo que supone poder llevar a cabo trabajos complicados. Dentro de la programacin textual especificativa, hay dos clases, segn la orientacin a la que se refiera el modelo, objeto o objetivos:
- 19 -
EL LENGUAJE V+
Si el modelo se orienta al nivel de los objetos, el lenguaje trabaja con ellos y establece las relaciones entre ellos. La programacin se realiza "off-line" y la conexin CAM es posible. Dada la inevitable imprecisin de los clculos del ordenador y de las medidas de las piezas, se precisa de una ejecucin previa, para ajustar el programa al entorno del robot. Los lenguajes con un modelo del universo orientado a los objetos son de alto nivel, permitiendo expresar las sentencias en un lenguaje similar al usado comnmente. Cuando el modelo se orienta hacia los objetivos, se define el producto final. La creacin de lenguajes de muy alto nivel transferir una gran parte del trabajo de programacin, desde el usuario hasta el sistema informtico; ste resolver la mayora de los problemas, combinando la Automtica y la Inteligencia Artificial.
Otra posible clasificacin de los modos de programacin que hemos encontrado es la que muestra el cuadro siguiente:
Directo (Gaiotto) Pasivo Maniqu (Nordson) Guiado Activo (ARLA - ABB) Modos de Programacin Nivel robot (V+, RAPID) Textual Nivel objeto (RAPT) Nivel tarea
- 20 -
EL LENGUAJE V+
2. EL LENGUAJE V+
- 21 -
EL LENGUAJE V+
El lenguaje V+ aparece como mejora al lenguaje VAL II, el cual, a su vez, reemplaz al lenguaje VAL. As mismo, el V+ entra en la categora de los denominados segunda generacin de lenguajes de programacin para robots industriales.
2.
3. 4.
Las aportaciones ms relevantes de VAL II son: Al concepto de programa de control del robot aade el de programa de control de proceso. Prioridad relativa entre procesos asncronos. Admite las cinco estructuras clsicas de control. Comunicacin con un ordenador central (host).
- 22 -
EL LENGUAJE V+
La comunicacin con un host, aumenta enormemente las posibilidades del sistema ya que pone al alcance del robot toda la potencia de clculo y de gestin de informacin procedente de sensores representada por el host. Se puede as empezar a pensar para los robots de Unimation en tareas coordinadas con sistemas de visin, en aplicacin de tcnicas de I.A. para el control de la actuacin de manipuladores, etc. Se abre as un nuevo campo de posibilidades en tareas de robtica inteligente. [Ferrat et al., 86]. En resumen, VAL II es un lenguaje y sistema de control basado en computadora diseado para los robots industriales Unimation. Proporciona la capacidad para facilitar la definicin de la tarea que va a realizar un robot, puesto que las tareas se definen mediante los programas escritos por el usuario. Incluyndose, tambin, la capacidad para responder a la informacin a partir de sensores tales como la visin de mquina, el perfeccionamiento en la ejecucin del movimiento del brazo y el trabajo en las situaciones imprevisibles o utilizando sistemas de referencia.
- 23 -
EL LENGUAJE V+
Significado de las lneas de programa anteriores: 1 a 6 son comentarios 7 da la orden de abrir la pinza del elemento terminal 8 asigna a la variable B el valor de la localizacin donde se desean depositar los objetos 9 inicializa la variable entera COUNT 10 mueve el elemento terminal en lnea recta desde la posicin actual hasta una que dista 200 mm sobre el eje Z de la herramienta en el punto donde se desea recoger el objeto 11 realiza un movimiento en lnea recta que sita el elemento terminal en el punto PICKUP 12 cierra la pinza 13 se aleja de la posicin anterior 200 mm en lnea recta sobre el eje Z de la herramienta 14 realiza un movimiento de aproximacin hasta 200 mm del punto B 15 mueve el elemento terminal en lnea recta hasta B 16 abre la pinza 17 se aleja en lnea recta de B 18 aumenta una unidad el valor del contador COUNT 19 muestra el valor actual del contador COUNT 21 expresin condicional para comprobar si ha terminado el traslado de los cuatro objetos 23 modifica la localizacin de B en 75 mm segn la coordenada Z 24 vuelve a la lnea con el indicador 10 25 cambia la velocidad (50 % de la nominal) 26 lleva al manipulador a la posicin de reposo 27 escribe el mensaje de final de programa
- 24 -
EL LENGUAJE V+
El lenguaje V+ proporciona una gran interaccin entre el hombre y el robot. Presenta las siguientes aportaciones ms relevantes: Inteligibilidad: Nos puede proporcionar una buena documentacin, adems de un diseo 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 travs de un disquete. As mismo, V+ es muy verstil, contando con las siguientes caractersticas: Rpido y alto nivel de interpretacin del lenguaje en las aplicaciones. Multitarea del sistema a tiempo real. Sistema de vision integrada en el proceso en el mismo programa V+ Arquitectura abierta de diseo, pudiendo aadirse fcilmente nuevos perifricos, redes, etc.
- 25 -
EL LENGUAJE V+
V+ usa un protocolo KERMIT y el programa de aplicacin XMODEM que permite la transferencia de programas entre el controlador Adept y otro ordenador a travs de la lnea serie. As mismo el sistema es abierto, y permite comunicacin entre diferentes elementos y mediante diferentes protocolos de comunicaciones.
A continuacin, se puede ver una pantalla capturada del V+ donde se muestra la configuracin ETHERNET TCP/IP y el estado de la comunicacin de la controladora del robot:
- 26 -
EL LENGUAJE V+
Para una programacin ms elaborada, el V+ lenguaje interpretado y estructurado de alto nivel, ofrece al programador entre otras, las siguientes posibilidades: Programas de aplicacin accesibles al operador mediante mouse, ventanas y grficos en color. Modificacin de la trayectoria en tiempo real, permitiendo adaptar la trayectoria en funcin de los sensores externos, tales como la visin, sensor de esfuerzo, cinta transportadora. Acceso a comunicacin con el BUS VME. Clculos booleanos, funciones matemticas, funciones geomtricas, tales como transformadas compuestas, "frame", correccin de herramientas, etc.. Funciones grficas para crear ventanas, iconos, gestin de eventos,... Construccin estructurada. Movimientos continuos. 7 tareas paralelas (con posible extensin a 28 tareas). Acceso a 256 entradas/ 256 salidas digitales externas, a 28 entradas / 16 salidas analgicas, 4 ( 5) puertos de comunicacin serie. Gestin de ejes suplementarios y de encoders externos Matrices de hasta 3 dimensiones. Variables numricas de 32 bits, coma flotante, simple y doble precisin. Manipulacin de cadenas de caracteres. Herramientas de deteccin de errores. Los programas pueden ser escritos off-line en otros ordenadores y transferidos mediante disquetes en formato PC. Subrutinas recursivas y reentrantes con paso de parmetros
- 27 -
EL LENGUAJE V+
Los programas de V+ consisten en conjuntos de instrucciones. Cada lnea se interpreta como una instruccin del programa. El formato tpico de cada lnea: Nmero _ lnea etiqueta instruccin ;comentario
Cada lnea de programa tiene asignado un nmero de lnea, que se ajusta automticamente cuando se insertan o borran lneas. Para identificar a una lnea de puede colocar una etiqueta (un nmero entre 0 y 65535) en el principio de lnea. Despus de la etiqueta se puede colocar las instrucciones (opcional). Se pueden incluir comentarios despus del carcter ;. El editor de V+, comprueba automticamente la sintaxis, si es correcta, cada vez que introducimos una lnea. La primera instruccin que aparecer en nuestro programas ser .PROGRAM, seguida del nombre del programa. Tendr el siguiente formato: .PROGRAM nombre (lista de parmetros) El nombre del programa debe ponerse, mientras que la lista de parmetros son opcionales. El final del programa se indica con la instruccin .END. El lenguaje V+ se pueden usar diferentes variables, dependiendo de la forma en la que se acceden a ellas. Se pueden clasificar de tres maneras: Globales: Todos los programas en memoria tienen acceso a estas variables. Su mal uso puede provocar que el valor que tiene la variable sea modificada por una subrutina u otro programa. Para que no sucedan estas modificaciones indeseables, se utilizan variables locales y automticas. Locales: Las variables pueden ser locales con el uso de la instruccin LOCAL. Esta variable se crea cuando le ponemos la instruccin LOCAL, y mantiene su valor entre llamadas de programas (mantiene su valor aunque salgamos fuera del programa, hasta la siguiente vez que entramos en el programa). Para que no ocurran conflictos al usar diferentes tareas con esas variables se crean las variables automticas. La desventaja de estas variables es que ocupan espacio en memoria aunque no se ejecute el programa. Programas de comandos del monitor (Automticas): Estas variables se crean dentro de los programas con la instruccin AUTO. Se parecen a las variables locales porque solo se puede acceder a ellas dentro del programa donde residen. Cuando se entra dentro del programa la variable automtica, se crea una copia separada de cada variable automtica, y el valor de esta copia se pierde cuando se sale del programa. Si la variable automtica se utiliza en diversas tareas a la vez, sus valores son independientes en cada momento, con lo que no provocan conflictos. La ventaja de esta variable es que cuando se sale del programa se libera la memoria. Los argumentos de las subrutinas son un caso especial de variable automtica. El alcance de las subrutinas es el mismo que el de las variables automticas.
- 28 -
EL LENGUAJE V+
El lenguaje V+ permite especificar el contexto de las variables locales y automticas con los comandos HERE, POINT, TEACH, et. Tienen el siguiente formato: Comando @tarea:programa parmetros
El comando representa el nombre de un comando, y parmetros representa los parmetros normales del comando. El elemento @tarea:programa (opcional) especifica el contexto para las variables referenciadas en los parmetros del comando. El elemento tarea es un entero y representa una de las tareas del sistema. El elemento programa representa el nombre de un programa en la memoria del sistema. Existen tres tipos diferentes de programas que podemos realizar con el V+, dependiendo de los comandos o tipos de instrucciones que utilizamos, y acciones que llevamos a cabo. Los tipos de programas son los siguientes Programas de control del robot: Estos programas controlan directamente el robot y pueden contener cualquier instruccin, adems de las instrucciones de movimiento del robot. Se suelen ejecutar con la tarea principal (numero 0), pero tambin pueden ejecutarse con cualquier tares del sistema. Programas de control de propsito general: Estos programas no son controlados por el robot, y pueden ejecutarse al mismo tiempo. Pueden controlar procesos externos a travs delineas binarias externas y comunicarse con el programa de control mediante variables compartidas y seales de software. Estos programas no pueden ejecutar instrucciones que afecten al movimiento del robot, directamente. Aunque, estos programas pueden cambiar de clasificacin durante su ejecucin, pasando de ser un programa de propsito general a un programa de control, o viceversa. Programas de comandos del monitor: Estos programas se componen de comandos de monitor, ms que de instrucciones de programa y, se usan, para realizar secuencias de comandos del monitor.
El lenguaje de programacin V+ permite la ejecucin de diferentes programas al mismo tiempo. Un ejemplo de esto, es la posibilidad de ejecutarse a la vez, un programa de control y otros programas adicionales (por ejemplo controlar el robot y la cinta transportadora simultneamente). El sistema de V+ ejecuta cada programa como una tarea independiente y cuenta con siete tareas disponibles. Dependiendo del tipo de programa a realizar o de la tarea que se desee ejecutar, ser ejecutar de diversas maneras. La tarea con ms alta prioridad y ms significativa es la nmero 0, ya que es la que utilizamos, generalmente, para la ejecucin del programa de control del robot. Las instrucciones se suelen ejecutar de manera secuencial. Tambin existen instrucciones que pueden variar el flujo de la ejecucin del programa como GOT, CALL, IF...GOTO, WAIT, STOP, etc. Una caracterstica particular del V+ es el proceso asncrono, el cual consiste en la capacidad del sistema de responder a eventos cuando estos ocurren. Cuando aparecen los eventos (si esta activada la opcin) se ejecuta un programa especfico, llamado rutina de reaccin (como una instruccin CALL). Se le llama Proceso Asncrono porque la ejecucin no est sincronizada con el flujo normal del programa. Estos procesos asncronos se habilitan con las instrucciones REACT, REACTIVE y REACTI. Estas instrucciones son usadas para cada una de las tareas, para preparar el procesado independiente de los eventos. Una rutina de reaccin se ejecuta, solamente, si la prioridad del programa principal es menor que la de reaccin.
- 29 -
EL LENGUAJE V+
El programa principal se ejecuta, normalmente con prioridad 0, mientras que la menor prioridad que puede tener una reaccin es uno. De esta manera, una reaccin puede interrumpir el programa principal, normalmente. Cuando ejecutamos una rutina de reaccin, la prioridad del programa se ajusta automticamente a la prioridad de la reaccin para evitar que sea interrumpido por reacciones de igual o menor prioridad. Al salir de la reaccin, el programa principal recupera la prioridad que tenia.
- 30 -
EL LENGUAJE V+
- 31 -
EL LENGUAJE V+
Almacena en el fichero especificado todos los programas y datos activos que se encuentren en memoria. .FRENAME C:<NONBRE_ANTIGUO>.V2=<NONBRE_NUEVO>.v2 Permite cambiar el nombre a un fichero almacenado en disco.
El editor SEE, adems de permitir la edicin de programas, realiza una labor de interprete el cdigo a la vez que ste se va escribiendo. Cualquier error en una lnea del programa se indica con una interrogacin, ?. Una vez creado un programa con SEE, si no contiene errores, no es necesario compilarlo. El programa que se haya creado nuevo se mantiene en la memoria del sistema. .EXECUTE <PROGRAMA> Ejecuta el programa que le pasemos como <PROGRAMA>.
Otros comandos .HERE <NOMBRE_DE_VARIABLE> Guarda en la variable las coordenadas de la posicin actual del robot. .WHERE Muestra las coordenadas de la posicin actual de robot.
- 32 -
EL LENGUAJE V+
.DISABLE POWER Desactiva el robot (DIS POW). .STATUS 0 Muestra en pantalla el estado actual del manipulador. Formato de las posiciones. Sentencia SET-TRANS
Una posicin en V/V+ consta de una tupla de seis parmetros (X, Y, Z, y, p, r), donde X, Y, Z representan las coordenadas cartesianas absolutas en milmetros; y (yaw) representa un deslizamiento o rotacin de la garra en el eje X (siempre vale 0); p (pitch) representa el cabeceo o rotacin de la garra en el eje Y (siempre vale 180); y r (roll) representa el balanceo o rotacin de la garra, en grados, en el eje Z. Este ltimo parmetro puede tomar cualquier valor, ya que se corresponde con uno de los grados de libertad del robot. La sentencia SET-TRANS se utiliza para definir una variable, dentro de la memoria activa del sistema, en la que se almacenar las coordenadas absolutas del espacio de operaciones del brazo robtico. Por ejemplo, una posicin a la que llamaremos garra1 se define en un programa de la siguiente manera: SET garra1 = TRANS (123.789, -488.511, 755, 0, 180, -61.87)
- 33 -
EL LENGUAJE V+
Para realizar este movimiento utiliza una interpolacin lineal, es decir, que para llegar al punto de destino va a obligar a la garra a desplazarse en lnea recta. Esto es muy til para sacar las garras de su plataforma. APPRO <VARIABLE_DE_POSICIN>, <VALOR> Mueve el robot a la posicin indicada por la variable de posicin, pero aumentando o disminuyendo la coordenada Z con el valor especificado. El movimiento se realiza mediante interpolacin lineal. DEPARTS <VALOR> Incrementa o decrementa la coordenada Z con el valor especificado. OPENI Abre los enganches para coger o dejar la garra. CLOSEI
Cierra los enganches para coger la garra, si no la tiene cogida, o cierra la garra, si la tiene cogida.
RELAXI Abre la garra que debe tener cogida. DELAY(<VALOR) Establece un retardo de tiempo medio en segundos. CALL <NOMBRE_DE_PROGRAMA> Permite desde un programa llamar a otro, <NOMBRE_DE_PROGRAMA>, de modo que se desva el flujo de ejecucin al programa indicado, retornando cuando haya finalizado. Comando DO ste es un comando especial que nos permite utilizar las instrucciones del lenguaje de programacin anteriores desde fuera de un programa, como si fuesen comandos. Por ejemplo, si queremos desde el prompt definir una posicin llamada SAFE y mover el brazo del terminal hasta ella, se escribira .DO SET SAFE=TRANS(560, -560, 855, 0, 180, -124) .DO MOVE SAFE
- 34 -
EL LENGUAJE V+
Palabra Clave
ABORT CALL
Tipo
Instruccin de Programa Instruccin de Programa
Funcin
Terminal de ejecucin de programa Suspende la ejecucin del programa actual y continua la ejecucin con un nuevo programa (es decir, un subprograma). Suspende la ejecucin del programa actual y continua la ejecucin con un nuevo programa (es decir, un subprograma) especificado con un valor de la secuencia. Proceso iniciado con una estructura del CASE definiendo el valor de inters.
Estructura
GOTO label CALL program (arg_list) Ej: CALL check_data(locx, locy, length) $program_name = $program_list[program_select] Ej: CALLS $program_name(length, width) Ej: CASE target OF VALUE list_of_values: code block (executed when target is in list_of_values) VALUE list_of_values: code block (executed when target is in list_of_values) ... ANY code block (executed when target not in any list_of_values) END
CALLS
Instruccin de Programa
CASE
Instruccin de Programa
DO
Instruccin de Programa
Funcin de valor Real Instruccin de Programa Instruccin de Programa Instruccin de Programa Instruccin de Programa
Despeja un acontecimiento asociado a la tarea especificada. Termina el programa de control especificado la prxima vez que ejecuta una instruccin del programa de PARADA (o su equivalente). Suspenda el proceso de un programa en uso o del programa del comando hasta que un programa termina la ejecucin. Introduce una estructura DO. EJ: DO. code block . UNTIL expression Empieza la ejecucin de un programa de control. Empieza la ejecucin de un programa de control. Sale de una estructura de control FOR, DO ...WHILE. Ejecuta un grupo de instrucciones de programa Ej: FOR index = start_val TO un cierto nmero de veces. end_val STEP incr . code block . END Devuelve acontecimientos que se fijan para la tarea especificada. Realiza un parte incondicional del programa identificado por la etiqueta dada. Para la ejecucin de programa y no permite que el programa sea reasumido. Mira si el valor de la etiqueta especificada de una IF logical_expression GOTO expresin lgica es TRUE (distinto a cero). 100 Ejecuta un grupo de instrucciones condicionales Ej: IF expression THEN (o uno de dos grupos) dependiendo del resultado code block (executed when de una expresin lgica. expression is true) ELSE code block (executed when expression is false) END
- 35 -
EL LENGUAJE V+
Enva una instruccin de SET.EVENT a la tarea actual si una interrupcin ocurre en un vector especificado del bus de VME. Fija la prioridad del cierre de la reaccin del programa al valor dado. Invoca un comando de control del monitor Rompe una estructura FOR, DO, o WHILE y comienza la iteracin siguiente de la estructura del control. Para la ejecucin de programa y no permite que el programa sea reasumido. Devuelve la prioridad actual del cierre de la reaccin hacia el programa. Inicia el control continuo de una seal numrica especifica y acciona automticamente una llamada de subprograma si las transiciones de seal son correctas. Inicia la supervisin de los errores que ocurren durante la ejecucin de la tarea del programa actual. Permite la tarea siguiente disponible del programa para funcionar. Controla si la PROGRAM START causa un resumens de programa . Termina la ejecucin de la ejecucin actual del subprograma y de la ultima ejecucin del programa en el siguiente paso de la instruccion CALL o CALLS que causa la subrutina invocada. Termina la ejecucin de la ejecucin actual del subprograma y de la ultima ejecucin del programa en el siguiente paso de la instruccin que causa la subrutina invocada. Enciende o apaga la seal digital mientras la ejecucin de la tarea invocada continua. Fija un acontecimiento asociado a la tarea especificada. Termina la ejecucin del ciclo del programa Pone en el programa un lazo de espera hasta que la condicin es TRUE. Suspende la ejecucin de un programa hasta que ha ocurrido un acontecimiento especificado, o hasta que ha transcurrido una cantidad de tiempo especificada. Inicia un proceso con la estructura WHILE si la condicin es TRUE o salta la estructura del WHILE si la condicin es inicialmente FALSA.
INT.EVENT LOCK MCS NEXT PAUSE PRIORITY REACT REACTI REACTE REALASE RETRY RETURN
Instruccin de Programa Instruccin de Programa Instruccin de Programa Instruccin de Programa Instruccin de Programa Funcin de valor Real
/ Instruccin de Programa
RETURNE
Instruccin de Programa
RUNSIG
Instruccin de Programa
SET.EVENT Instruccin de Programa STOP WAIT WAIT.EVE NT WHILE Instruccin de Programa Instruccin de Programa Instruccin de Programa
Interruptor de sistema
- 36 -
EL LENGUAJE V+
Palabra clave
ASC $CHR DBLB $DBLB $DECODE $ENCODE FLTB $FLTB $INTB LEN LNGB $LNGB $MID PACK POS $TRANSB $TRUNCATE $UNPACK VAL
Funcin
Devuelve un solo valor de carcter dentro de una secuencia. Devuelve una secuencia de un carcter que tiene un valor dado. Devuelve el valor de ocho octetos de una secuencia interpretada como nmero de coma flotante de precisin doble de IEEE. Devuelve una secuencia de 8-byte que contiene la representacin binaria de un valor verdadero en el formato de coma flotante con la precisin doble de IEEE. Extrae la parte de una secuencia segn lo delimitado por los caracteres de rotura dados. Devuelve una secuencia creada por especificaciones de salida. La secuencia producida es similar a la salida de una instruccin de TYPE. Devuelve el valor de cuatro octetos de una secuencia interpretada como nmero de coma flotante de IEEE. Devuelve una secuencia de 4-byte que contiene la representacin binaria de un valor verdadero en el formato floating-point de IEEE en la forma de coma flotante. Devuelve una secuencia de 2-byte que contiene la representacin binaria de un nmero entero de16-bit. Devuelve el nmero de caracteres de la secuencia dada. Devuelve el valor de cuatro octetos de una secuencia interpretada como nmero entero binario de 32-bit enteros. Devuelve una secuencia de 4-byte que contiene la representacin binaria de un nmero entero 32-bit. Devuelve una subsecuencia de la secuencia especificada. Substituye una subsecuencia dentro de una matriz de (128-character) o dentro de la variable (nonarray) de la secuencia de string variables. Retorna la posicin del carcter que comienza en una subsecuencia en una secuencia. Retorna una secuencia de 48-byte que contiene la representacin binaria de un valor de la transformacin. Devuelve todos los caracteres en la secuencia de la entrada hasta un ASCII NUL (o el extremo de la secuencia) encontrada. Retorna una subsecuencia de una matriz de 128 variables de caracteres. Devuelve el valor real representado por los caracteres en la secuencia de la entrada.
- 37 -
EL LENGUAJE V+
- 38 -
EL LENGUAJE V+
Seales especiales
Existen algunas seales que permiten activar los elementos relacionados con los tornillos. Se manejan con la instruccin SIGNAL(<VALOR>) desde dentro de un programa. Dependiendo del valor dado, activa o desactiva ciertos elementos del entorno de trabajo. Unos ejemplos podran ser: Signal (1): Activa la cubeta para la subida de los tornillos. Signal (-1): Desactiva la cubeta para la subida de los tornillos. Signal (2): Activa la plataforma de recogida de los tornillos. Signal (-2): Desactiva la plataforma de recogida de los tornillos. Signal (3): Activa el cierre de la mordaza. Signal (-3): Desactiva el cierre de la mordaza. Signal (4): Sube la plataforma para la insercin de tornillos en el destornillador. Signal (-4): Baja la plataforma para la insercin de tornillos en el destornillador.
- 39 -
EL LENGUAJE V+
- 40 -
EL LENGUAJE V+
Algoritmo:
PROGRAM cogergarra(garra, salir) LEFTY ; comportamiento de brazo iquierdo APPRO garra, 100 ; mueve la base a 100mm encima de la garra DELAY(0.5) ; retardo de 0.5 segundos OPENI ; abre los enganches de la base DELAY(0.5) MOVES garra ; mueve la base hasta entrar en la garra DELAY(0.5) CLOSEI ; cierra los enganches de la garra DELAY(0.5) MOVES salir ; saca la garra de su plataforma DELAY(0.5) DEPARTS 100 ; sube la garra 100mm
Algoritmo:
PROGRAM dejargarra(garra, salir) LEFTY ; comportamiento de brazo iquierdo APPRO salir, 100 ; mueve la garra a 100mm encima de salir DELAY(0.5) MOVES salir ; mueve la garra a la posicin salir DELAY(0.5) MOVES garra ; introduce la garra en la plataforma DELAY(0.5) OPENI ; abre los enganches de la base DELAY(0.5) DEPARTS 100 ; levanta la base a 100mm
- 41 -
EL LENGUAJE V+
Botones de funciones
- 42 -
EL LENGUAJE V+
Elementos bsicos para el control del robot industrial (Botonera, Armario de control o controladora y panel de control):
Boton DISP
El botn DISP permite fijar las coordenadas de articulacin del robot.
- 43 -
EL LENGUAJE V+
Botn CMD
El botn CMD permite acivar los comandos de los programas en la pantalla CMD1 o CMD2.
- 44 -
EL LENGUAJE V+
- 45 -
EL LENGUAJE V+
Botn PANIC
El botn PANIC para el programa en ejecucin y desactiva la alimentacin de los brazos del robot y activa los frenos
Botn RUN/HOLD
El botn RUN / HOLD pone el programa en Marcha, saliendo el panel AV
- 46 -
EL LENGUAJE V+
Botn STEP
El botn STEP pone el programa en Marcha, saliendo el panel AV
- 47 -
EL LENGUAJE V+
Barras de velocidad
Les barras de velocidad, permiten elegir la velocidad en los desplazamientos manuales. Con estas barras se puede elegir una velocidad ms rpida o lenta segn pulse (+/-).
Slow (lento)
El botn SLOW permite elegir dos tipos de desplazamiento, el desplazamiento normal o lento.
- 48 -
EL LENGUAJE V+
Botn TOOL
El botn TOOL permite desplazar libremente los ejes paralelamente a las coordenadas utiles.
Botn JOINT
El botn JOINT permite desplazar angularmente los distintos ejes.
- 49 -
EL LENGUAJE V+
Botn FREE
El botn FREE permite liberar cada eje del robot.
Dimensiones
- 50 -
EL LENGUAJE V+
- 51 -
EL LENGUAJE V+
3. APLICACIONES
- 52 -
EL LENGUAJE V+
3. APLICACIONES
Para implantar un robot industrial, en un determinado proceso, exige un detallado estudio previo del proceso en cuestin, examinando las ventajas e inconvenientes que conlleva la introduccin del robot. Tambin habr que considerar aspectos como el rea de accin, velocidad de carga, capacidad de control, coste, etc.
- 53 -
EL LENGUAJE V+
Las tareas de soldadura por puntos admiten dos soluciones, dependiendo del tamao, peso y manejabilidad de las piezas: 1) El robot transporta la pieza presentando esta a los electrodos que estn fijos 2) El robot transporta la pinza de soldadura posicionando los electrodos en el punto exacto de la pieza en la que se desea realizar la soldadura. Un ejemplo de soldadura: En las grandes lneas de soldadura de carroceras de automviles, estas pasan secuencialmente por varios robots dispuestos formando un pasillo, de una manera coordinada y posicionan las piezas de soldadura realizando varios puntos consecutivamente.
- 54 -
EL LENGUAJE V+
Lo ms importante de estos robots es la programacin: Cuentan con un control de trayectoria continua, para especificar trayectoria, punto final e inicial. El mtodo normal de programacin es el de aprendizaje con un muestreo continuo de la trayectoria. El operario realiza una vez el proceso de pintura con el propio robot. La unidad de programacin registra continuamente gran cantidad de puntos y luego los repite.
2,5 kg
RXPaint60 L
865 mm
0.033 mm
12 kg
RXPaint90
985 mm
0.02 mm
9 kg
RXPaint90 L
1185 mm
0.025 mm
25 kg
RXPaint130
1360 mm
0.03 mm
12 kg
RXPaint130 L
1600 mm
0.035 mm
8 kg
RXPaint130 XL
2185 mm
0.05 mm
- 55 -
EL LENGUAJE V+
3.5. Corte.
El corte de materiales mediante el robot es una aplicacin reciente, gracias a la capacidad de reprogramacin del robot y su integracin en un sistema que hace que sea el elemento ideal para transportar la herramienta de corte sobre la pieza, realizando con precisin un programa de corte desde un sistema de diseo asistido por computador (CAD). Los mtodos de corte no mecnico mas empleados son oxicorte, plasma, lser y chorro de agua, dependiendo de la naturaleza del material a cortar. En todos ellos el robot transporta la boquilla por la que se emite el material de corte, proyectando este sobre la pieza al tiempo que sigue una trayectoria determinada. De todos los mtodos de corte, el que cuenta con mejores ventajas seria el corte por chorro de agua por los motivos siguientes: -No provoca aumento de temperatura en el material. -No es contaminante. -No provoca cambios de color. -No altera las propiedades de los materiales. -Coste de mantenimiento bajo. Los robots empleados para corte, precisan control de trayectoria continua y elevada precisin. Su campo de accin varia con el tamao de las piezas a cortar. Puede ser de una envergadura media de 1 a 3 metros de radio, por esto, con mucha frecuencia se dispone al robot suspendido boca abajo sobre la pieza.
- 56 -
EL LENGUAJE V+
3.6. Montaje / Ensamblaje. Las operaciones de montaje, por la gran precisin y habilidad que normalmente exigen, presentan grandes dificultades para su automatizacin flexible. Muchos procesos de ensamblado se han automatizado empleando maquinas especiales que funcionan con gran precisin y rapidez. Sin embargo, el mercado actual precisa de sistemas muy flexibles, que permitan introducir frecuentes modificaciones en los productos con unos costes mnimos. Por este motivo el robot industrial se ha convertido en muchos casos en la solucin ideal para la automatizacin del ensamblaje. En particular, el robot resuelve correctamente muchas aplicaciones de ensamblado de piezas pequeas en conjuntos mecnicos o elctricos. Para ello el robot precisa una serie de elementos auxiliares cuyo coste es similar o superior al del propio robot. Entre estos cabe destacar a los alimentadores (tambores vibradores, por ejemplo), posicionadores y los posibles sensores que usa el robot para ayudarse en su tarea (esfuerzos, visin, tacto, etc.). Estos sensores son indispensables en muchos casos debido a las estrechas tolerancias con que se trabaja en el ensamblaje y a los inevitables errores, aunque sean muy pequeos, en el posicionamiento de las piezas que entran a tomar parte de l. Los robots empleados en el ensamblaje requieren, en cualquier caso, una gran precisin y repetibilidad, no siendo preciso que manejen grandes cargas. El tipo SCARA ha alcanzado gran popularidad en este tipo de tareas por su bajo coste y buenas caractersticas. 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. Tambin se usan con frecuencia robots cartesianos por su elevada precisin y, en general, los robots articulares que pueden resolver muchas de estas aplicaciones con suficiente efectividad. La dificultad inherente de este tipo de tareas obliga, en casi todos los casos, a facilitarlas con un adecuado rediseo de las partes que componen el conjunto a ensamblar. De este modo, conjuntos cuyo ensamblaje automatizado seria inabordable con su diseo inicial, pueden ser montados de una manera competitiva mediante el empleo de robots.
- 57 -
EL LENGUAJE V+
3.7. Paletizacin.
La paletizacin es un proceso bsicamente de manipulacin, consistente en disponer de piezas sobre una plataforma o bandeja (palet). Las piezas en un palet ocupan normalmente posiciones predeterminadas, procurando asegurar la estabilidad, facilitar su manipulacin y optimizar su extensin. Los palets son transportados por diferentes sistemas (cintas transportadoras, carretillas, etc.) llevando su carga de piezas, bien a lo largo del proceso de fabricacin, bien hasta el almacn o punto de expedicin. Dependiendo de la aplicacin concreta, un palet puede transportar piezas idnticas (para almacenamiento por lotes por ejemplo), conjuntos de piezas diferentes, pero siempre los mismos subconjuntos procedentes de ensamblados) o cargas de piezas diferentes y de composicin aleatoria (formacin de pedidos en un almacn de distribucin).
Existen diferentes tipos de maquinas especificas para realizar operaciones de paletizado. Estas frente al robot, presentan ventajas en cuanto a velocidad y coste, sin embargo, son rgido en cuanto a su funcionamiento, siendo incapaces de modificar su tarea de carga y descarga. As mismo, actualmente la diferencia de coste es aproximadamente igual, y los robots realizan con ventaja aplicaciones de paletizacin en las que la forma, numero o caractersticas generales de los productos a manipular, cambian con relativa frecuencia. En estos casos, un programa de control adecuado permite resolver la operacin de carga y descarga, optimizando los movimientos del robot, aprovechando la capacidad del palet o atendiendo a cualquier otro imperativo. Por otro lado, el robot industrial siempre se puede reutilizar para cualquier operacin industrial debido a su flexibilidad. Generalmente, las tareas de paletizacin 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 tamao, con una capacidad de carga de 10 a 150 kg aproximadamente. No obstante, se
- 58 -
EL LENGUAJE V+
pueden encontrar aplicaciones de paletizacion de pequeas piezas, en las que un robot con una capacidad de carga de 5Kg. es suficiente. Las denominadas tareas de Pick and place, aunque en general con caractersticas diferentes al paletizado, guardan estrecha relacin con este. El lenguaje V+ posee diferentes facilidades para modelar determinadas tareas, como la definicin de palets (pallet.frame) a partir de tres localizaciones especificadas, o para el seguimiento y manipulacin de objetos en cintas transportadoras, que se mueven a velocidad constante (definiendo unas ventanas de trabajo sobre la propia cinta).
Definicin de palets.
Seguimiento de cintas
.PROGRAM move.parts() ;DESCRIPCION: Este programa coge cajas en la localizacin pick ; y las deposita en place, incrementando la z de place, y as apilando ; las cajas en el palet. parts = 6 ; n de cajas a apilar height1 = 300 ; altura de approach/depart en pick height2 = 500 ; altura de approach/depart en place parameter HAND.TIME = 0.16 ; movimiento del brazo lento OPEN ; apertura de pinza RIGHTY ; seleccionamos configuracin derecha MOVE start ; mover a la localizacin segura de inicio FOR i = 1 TO parts ; iniciar el apilado de cajas APPRO pick, height1 ; ir a pick-up MOVES pick ; mover hacia la caja CLOSEI ; cerrar la pinza DEPARTS height1 ; volver a la posicin anterior APPRO place, height2 ; ir a put-down MOVES place ; mover a la localizacin de destino OPENI ; abrir la pinza DEPARTS height2 ; volver a la posicin anterior SHIFT heicht2 BY 0.00, 0.00, 300 END TYPE Fin de tarea. , /IO, parts, cajas apliadas. RETURN ; fin del programa .END
- 59 -
EL LENGUAJE V+
- 60 -
EL LENGUAJE V+
.PROGRAM sub.menu() ; ; ; ; ; ; ; ; DESCRIPCIN: Este programa ofrece al operario un men con las opciones que puede seleccionar, desde su terminal de usuario (botonera/ PC). Despus de introducir una entrada desde el teclado, el programa ejecutar la operacin seleccionada. El men incluye la ejecucin del programa de pick and place, mostrar los puntos, y volver al menu principal. SUPONEMOS: Las funciones pick.place() y teach() definidas.
AUTO opcion, salir, $frase salir = FALSE DO TYPE TYPE TYPE TYPE /C2, /C1, /C1, /C1, "MENU DE OPERACIN PICK AND PLACE" " 1 => Inicializar pick and place" " 2 => Mostrar localizacin puntos" " 3 => Volver al menu principal", /C1
PROMPT "Selecciona una opcion y presiona INTRO: ", $frase opcion = VAL($frase) ;Convierte un string en un numero
CASE opcion OF ;entramos en el menu... VALUE 1: ;...seleccion 1 TYPE /C2, "Iniciando operacion..." CALL move.parts() VALUE 2: ;...seleccion 2 CALL teach() VALUE 3: ;...seleccion 3 salir = TRUE ANY ;...si se presiona cualquier otra tecla TYPE /B, /C1, "** ENTRADA NO VALIDA E R R O R **" END ;Fin del CASE UNTIL salir ;Fin del DO .END
- 61 -
EL LENGUAJE V+
.PROGRAM move.parts() ;DESCRIPCION: Este programa coge piezas en la localizacin pick ; y las deposita en place parts = 100 ; n de piezas a procesar height1 = 25.4 ; altura de approach/depart en pick height2 = 50.8 ; altura de approach/depart en place parameter HAND.TIME = 0.16 ; configuracin para brazo lento OPEN ; apertura de pinza RIGHTY ; seleccionamos configuracin derecha MOVE start ; mover a la localizacin segura de inicio FOR i = 1 TO parts ; procesar las piezas APPRO pick, height1 ; ir a pick-up MOVES pick ; mover a la pieza CLOSEI ; cerrar la pinza DEPARTS height1 ; volver a la posicin anterior APPRO place, height2 ; ir a put-down MOVES place ; mover a la localizacin de destino OPENI ; abrir la pinza DEPARTS height2 ; volver a la posicin anterior END TYPE Fin de tarea. , /IO, parts, piezas procesadas. RETURN ; fin del programa .END
- 62 -
EL LENGUAJE V+
Este programa permite al operario grabar las posiciones de pick, place y start, con la paleta de control manual. Las dos lneas del cristal lquido (LCD) de la paleta de control, son usadas en esta. El programa graba automticamente las posiciones despus de presionar una tecla.
.PROGRAM teach(pick, place, start) ; ABSTRACT: Este programa se usa para grabar las posiciones ;"pick", "place", y "start" del "move.parts" programa. ; PARMETROS DE ENTRADA: Ninguno ; PARMETROS DE SALIDA: pick, place, y empezar ; EFECTOS SECUNDARIOS: El robot est inactivo mientras la rutina est ; activada. AUTO $borrar.display ;variable
$borrar.display = $CHR(12)+$CHR(7) ATTACH (1) DETACH (0) ;Desactiva el control automatico del robot ;Realiza el control manual del robot
; Salida en el display del control manual. WRITE (1) $borrar.display, "Mueve el robot a la posicion 'START' & pulsa RECORD" WRITE (1) /X17, "RECORD", $CHR(5), /S WRITE (1) $CHR(30), $CHR(3), /S ;Parpadea el led de la paleta de control WAIT PENDANT(3) HERE start ;Esperar que una tecla sea pulsada
; Aviso, en el display de la segunda localizacin WRITE (1) $borrar.display, "Mueve el robot a la posicion RECORD" WRITE (1) /X17, "RECORD", $CHR(5), /S WAIT PENDANT(3) HERE pick ; Esperar que una tecla sea pulsada 'PICK' y pulsa
; Aviso, en el display de la tercera localizacin WRITE (1) $borrar.display, "Mueve el robot a la posicin RECORD" WRITE (1) /X17, "RECORD", $CHR(5), /S WAIT PENDANT(3) HERE place ATTACH (0) DETACH (1) RETURN .END ; Esperar que una tecla sea pulsada 'PLACE' y pulsa
;Graba la posicion "place" ;Activa el control automatico del robot ;Anula el control manual del robot ;Vuelve a llamar al programa ; Finaliza el programa
- 63 -
EL LENGUAJE V+
A continuacin se presenta un programa de ejemplo en el que el robot ha de realizar operaciones de manipulacin. En el programa se introduce un ejemplo del concepto de ejecucin concurrente (ejecucin de varios programas en paralelo) y de la habilitacin de un proceso asncrono para la gestin de errores. El robot ha de realizar una tarea de pick and place entre posiciones variables calculadas en un ordenador que se encarga de recibir y transmitir mensajes al robot. Los dos programas, el de comunicaciones con la estacin y el de control del robot se ejecutan en paralelo.
El programa de comunicacin tendr el siguiente aspecto:
.PROGRAM comunica() ;PROGRAMA DE COMUNICACION CON LA ESTACION lu_est = 10 ; asigna a la unidad lgica de la estacin el valor 10 hay_cod_fun = FALSE ; indica que no hay cdigo de funcin disponible $rnens_ttir ="" ; el mensaje a transmitir es una cadena vaca hay_syst_err = FALSE ;indica que no hay error del sistema ;CODIGOS DE ERROR er_rob.no.ok = 256 ;INICIALIZA EL CONTROL DEL ROBOT SPEED 20 ;se asigna la velocidad del robot READY ;prepara al robot posicionndole en la posicin de espera DETACH (0) ;se libera al robot de la tarea #0 EXECUTE 1 robot() ;se ejecuta el programa de control del robot con la tarea #1 ;a partir de aqu los dos programas se ejecutan en paralelo ;ESTABLECIMIENTO DE LA CONEXIN ROBOT-ORDENADOR 10 TYPE "Esperando establecer la conexin..." ;mensaje por pantalla ATTACH (lu_est,0) ;se asigna la lnea de comunicacin al programa ;se establece un bucle que controla si la comunicacin se realiza con xito IF IOSTAT (lu_est,0) <=0 THEN TYPE "Error al intentar establecer la comunicacin !!!!" DETACH (lu_est) ;libera la unidad lgica de la tarea GOTO 10 ELSE ELSE TYPE" Robot conectado a la estacin" END ;RECEPCION Y DECODIFICACION DE ORDENES ;se establece un bucle que comprueba el estado del canal de comunicacin y lee el mensaje mandado por el ;ordenador. Si hay un error del sistema se enva un mensaje travs del canal lgico y se lee el nuevo mensaje. 20 DO IF(hay_syst_err) THEN WRITE (lu_est) $mens_ttir, /S END READ (lu_est,,1) $mens_rbdo UNTIL (IOSTAT(lu_est,0) <>-256) ;se comprueba el estado del canal de comunicacin comprobando que la recepcin es correcta IF IOSTAT(lu_est,0) <=0 THEN TYPE "iostat error!!!", IOSTAT(lu_est,0) TYPE "Recepcin incorrecta de orden" DETACH (lu_est) ;se libera la unidad lgica de la tarea asignada GOTO 10 END ;se asigna el cdigo de la funcin recibida cod_fun = ASC($MID($mens_rbdo,l,1))
- 64 -
EL LENGUAJE V+
;EJECUCION DE ORDENES
;se comprueba si el robot est listo. Si lo est' se da paso al programa de control, si no, se enva un mensaje diciendo ;que el robot no est preparado IF ((STATE(1) <>2) OR (codJun == 4)) THEN hay cod_fun = TRUE ;da paso al programa del robot que estaba en espera activa. WAIT (NOT hay_con_fun) ;espera a que se haya ejecutado la orden ELSE $mens_ttir = $CHR(50+cod_fun)+$INTB(er_rob.no.ok) END ;TRANSMISION DE MENSAJES WRITE (lu_est) $mens_ttir, /S ;se enva el mensaje a travs de la unidad lgica ;se comprueba si hay error en la transmisin. En ese caso se restablece la conexin IF IOSTAT(lu_est) <=0 THEN TYPE "ERROR en la transmisin de" TYPE ASC($MID($mens_ttir, 1,1)) DETACH (lu_est) ;se libera el canal de comunicacin GOTO 10 ;se restablece la conexin END Hay_syst_err = FALSE ;indica que no ha habido error GOTO 20 .END ;espera a una nueva orden ;fin del programa de comunicacin
El programa de control del robot se encarga de ejecutar los cdigos de funcin pasados por el ordenador en $cod_fun y devuelve el mensaje $mens_ttir. Segn el cdigo de funcin recibido, el robot realizar tres tareas : inicializacin, tarea de pick & place y parada. El presente ejemplo slo se muestra la programacin de la tarea de pick & place, pudiendo el realizar el ejercicio de completar las otras dos tareas. El programa de control, podra tener el siguiente aspecto:
PROGRAM robotO ;INICIAIZACION DE LAS VARIABLES altura = 20 ;indica la altura de aproximacin y salida en milmetros rapido = 150 ;indica la velocidad rpida lento = 30 ;indica la velocidad lenta ;PUNTO DE REENTRADA TRAS SYST_ERR TYPE "El programa de control ha sido relanzado" REACTE errores ;habilita el proceso asncrono de tratamiento de errores 20 WAIT(hay_cod_fun) ;espera hasta que est disponible un cdigo de funcin TYPE "Cdigo recibido", cod_fun ;indica a travs del monitor el cdigo que se ha recibido CASE cod_fun OF VALUE 1: ;INICIALIZACION ;aqu se incluira el cdigo de inicializacin VALUE2: ;PARADA ;aqu se incluira el cdigo correspondiente a la parada VALUE 3: PICK & PLACE TYPE "Recibida la orden de PICK & PLACE" ATTACH (0) ;Asigna al programa la tarea nmero O SET pos_in = TRANS(431,610,523,0,180,45) SET pos_dej = TRANS(227,-548,7 12,0, 180,45) ;comienza la operacin de picking SPEED rapida ALWAYS ;indica el punto de recogida de las piezas ;indica el punto de dejada de las piezas ;selecciona la velocidad
- 65 -
EL LENGUAJE V+ ;selecciona la aceleracin ;se aproxima al punto de recogida a una distancia "altura" reduce la velocidad ;se mueve al punto de recogida ;cierra la pinza ;se separa hasta una distancia "altura"
ACCEL 90, 75 APPRO pos_in, altura SPEED lenta MOVE pos_in CLOSEI DEPARTS altura ;operacin de dejada de la pieza SPEED rapida ALWAYS ACCEL 90,75 APPRO pos_dej, altura SPEED lenta MOVE pos_dej OPENI DEPARTS altura ;fin de la instruccin CASE
;selecciona la velocidad ;selecciona la aceleracin ;se aproxima al punto de dejada a una distancia "altura" ;reduce la velocidad ;se mueve al punto de dejada ;abre la pinza ;se separa hasta una distancia "altura"
.END
;indica que ya no hay cdigo de funcin ;regresa al estado de espera ;fin del programa de control
Por ltimo, se muestra un ejemplo de cmo sera el programa de tratamiento de errores. .PROGRAM errores() TYPE "RUTINA DE TRATAMIENTO DE ERRORES DEL SISTEMA V+" TYPE "Error nmero: ",ERROR(-1) TYPE "Mensaje: ",$ERROR(ERROR(-1)) error = ABS(ERROR(-1)) $cod_er = $INTB(error) hay_Sist._err = TRUE hay_cod_fun = FALSE EXECUTE 2 err_robot() CYCLE.END 2 RETURN .END ;asigna el error que se ha producido ;comprueba cul es el error ;indica que se ha producido un error ;indica que no hay cdigo de funcin ;ejecuta el programa err_robot asignndole la tarea 2
;aborta la ejecucin del programa de control del robot ;ejecuta el programa de control del robot ;asignndole la tarea #1
ABORT2 .END
- 66 -
EL LENGUAJE V+
4. BIBLIOGRAFA
- 67 -
EL LENGUAJE V+
LIBROS
Robtica: Control, Deteccin, Visin e Inteligencia K.S. FU, R.C Gonzlez, C.S.G. LEE Ed. McGraw Hill Robtica Practica Tecnologa y Aplicaciones Jos Ma. Angulo Ed. Paraninfo Robtica Industrial: Fundamentos y aplicaciones Arantxa Rentera, Maria Rivas Ed. McGraw Hill Fundamentos de robtica, Antonio Barrientos, Luis Felipe Pen, Carlos Balaguer i Rafael Aracil Ed. McGraw Hill
MANUALES
Curso n 1 de VAL II Curso n 2 de VAL II Curso de V+ (Francs)
WEBS
www.staubli.com www.adept.com
- 68 -