4º Grado Ing. Electrónica Industrial Automatización Avanzada. A. Rosado. Tema 2: ROBOTS INDUSTRIALES (3ª parte) – Sistemas de coordenadas – Programación de Robots – Lenguaje de programación y Software de control – Simulación Automatización Avanzada (GIEI) 10/03/2020 1 4º Grado Ing. Electrónica Industrial Automatización Avanzada. A. Rosado. Sistemas de coordenadas Los datos de posicionamiento del robot corresponden a las coordenadas del TCP (Tool Center Point), estas coordenadas están referidas a un sistema de coordenadas que puede ser: SISTEMA DE COORDENADAS MUNDO: Define un sistema de coordenadas de referencia que sirve como base para determinar el punto origen del resto de sistema de coordenadas (correspondería al sistema de coordenadas principal). Se utiliza especialmente cuando más de un robot trabajan en una misma estación SISTEMA DE COORDENADAS BASE (BF): El origen de coordenadas es el centro de la base de sujeción del robot. Su origen está referenciado al sistema de coordenadas mundo. De fábrica ambos sistemas de coordenadas (mundo y base) coinciden SISTEMA DE COORDENADAS DE USUARIO: Sistema de coordenadas cuyo origen está determinado a partir del sistema de coordenadas mundo. Permite definir varios sistemas de coordenadas (por ejemplo, varias mesas de trabajo) para los puntos de trabajo de una misma pieza. Las coordenadas del TCP estarán referenciadas al sistema de coordenadas de usuario. Si no se define coordenadas de usuario se utiliza las coordenadas mundo o base. Se utilizan generalmente para crear puntos de referencia a elección del usuario. 4º Grado Ing. Electrónica Industrial Automatización Avanzada. A. Rosado. Sistemas de coordenadas (cont.) SISTEMA DE COORDENADAS OBJETO DE TRABAJO El objeto de trabajo representa normalmente a la pieza de trabajo física. Se compone de dos sistemas de coordenadas: la base de coordenadas del usuario y la base de coordenadas del objeto, en la que la segunda es descendiente de la primera. A la hora de programar un robot, todos los objetivos (posiciones) dependen de la base de coordenadas de un objeto de trabajo. Si no se especifica ningún objeto de trabajo, los objetivos dependen del objeto predeterminado Wobj0, que siempre coincide con la base de coordenadas de la base del robot. Se puede establecer un sistema de coordenadas objeto de trabajo para los puntos de trabajo para cada pieza de trabajo. Si la pieza cambia de posición, para reajustar los nuevas coordenadas bastará con redefinir el nuevo sistema de coordenadas del objeto con un offset. Si no hay sistema de coordenadas objeto de trabajo, el sistema de coordenadas para el TCP será el de usuario. SISTEMA DE COORDENADAS DE PUNTO CENTRAL DE HERRAMIENTA Se utiliza para definir la orientación de la herramienta, en los movimientos manuales. 4º Grado Ing. Electrónica Industrial Automatización Avanzada. A. Rosado. Sistemas de coordenadas Base/Herramienta 4º Grado Ing. Electrónica Industrial Automatización Avanzada. A. Rosado. Sistemas de coordenadas Mundo A. COORDENADAS BASE B. COORDENADAS MUNDO C. COORDENADAS BASE Con respecto al sistema de coordenadas mundo, el punto p10 tendrá los mismos valores de coordenadas para ambos robots 4º Grado Ing. Electrónica Industrial Automatización Avanzada. A. Rosado. Sistemas de coordenadas Usuario y Objeto de Trabajo 4º Grado Ing. Electrónica Industrial Automatización Avanzada. A. Rosado. Sistemas de coordenadas Objeto de trabajo Si no se utilizan coordenadas de usuario los sistemas de coordenadas objeto de trabajo estarán referenciados al sistema de coordenadas mundo 4º Grado Ing. Electrónica Industrial Automatización Avanzada. A. Rosado. Sistemas de coordenadas Objeto de trabajo 4º Grado Ing. Electrónica Industrial Automatización Avanzada. A. Rosado. ANIDAMIENTO DE SISTEMAS DE COORDENADAS Si no se configuran sistemas de coordenadas, las predefinidas suponen que: Coordenadas Wobj0 = coordenadas de usuario = coordenadas mundo = coordenadas base 4º Grado Ing. Electrónica Industrial Automatización Avanzada. A. Rosado. Sistemas de coordenadas de herramienta Es posible definir distintos TCP para un mismo robot. Todos los robots tienen un TCP predefinido en el punto de montaje de la herramienta en el robot, identificado como tool0. Al ejecutar un programa, el robot mueve el TCP hasta la posición programada TOOL 0 Sistemas de coordenadas específico de una herramienta 4º Grado Ing. Electrónica Industrial Automatización Avanzada. A. Rosado. Estructura de programa RAM Nombre del Módulo Principal Máximo 8 caracteres Datos creados por el Usuario Herramientas, Posiciones, ... Rutina principal Es definida automáticamente al crear el programa. Es la rutina a partir de la cual se inicia la ejecución de programa. Conjunto de rutinas creadas por el usuario. Ejemplo: Abrir_Garra Limpieza Girar_Mesa1 ... 4º Grado Ing. Electrónica Industrial Automatización Avanzada. A. Rosado. Estructura de programa RAM MoveJ p10,V1000,z50, Tool0; MoveJ p30,V1000,z50, Tool0; MoveL p60,V1000,z50, Tool0; R5; R1 R2 T2 T1 F1 R4 F2 R5 T3 4º Grado Ing. Electrónica Industrial Automatización Avanzada. A. Rosado. ESTRUCTURA DE UN PROGRAMA El sistema de programación es estructurado. El programa constará básicamente de: • Bloque de declaración de datos • Rutina principal (main) • Rutinas de programa A su vez, el conjunto de rutinas puede estar organizado en módulos de programa, donde cada uno de ellos puede disponer de su propia declaración de datos (declarados como datos globales o locales) 4º Grado Ing. Electrónica Industrial Automatización Avanzada. A. Rosado. ESTRUCTURA DE UN PROGRAMA 4º Grado Ing. Electrónica Industrial Automatización Avanzada. A. Rosado. ESTRUCTURA DE UN PROGRAMA • • Tarea Cada tarea suele contener un programa de RAPID y módulos de sistema destinados a realizar una función determinada, por ejemplo soldadura por puntos o movimientos del manipulador. Cada aplicación de RAPID puede contener una tarea. Si tiene instalada la opción ‘Multitasking’, puede tener más de una tarea. Si se usa la multitarea y se utilizan varias tareas, éstas se ejecutan en paralelo o, en caso necesario, siguiendo prioridades asignadas específicamente Parámetro de propiedad de tarea Los parámetros de propiedades de tarea permiten establecer determinadas propiedades para todo el contenido de una tarea. Cualquier programa almacenado dentro de una tarea determinada asume las propiedades establecidas para la tarea. Los parámetros de propiedad de tarea se especifican en el Manual de referencia de RAPID. Módulos Un conjunto de declaraciones de datos, seguido de un conjunto de rutinas. Los módulos pueden ser guardados, cargados y copiados en forma de archivos. Los módulos se dividen entre módulos de programa y módulos de sistema Módulo de programa Cada módulo de programa contiene datos y rutinas encaminadas a la realización de una función determinada. El programa está dividido en módulos para ofrecer una mejor visión general y facilitar el manejo. Normalmente, cada módulo representa a una acción concreta del robot o una operación similar. Todos los módulos de programa se eliminan al eliminar un programa de la memoria del controlador. Los módulos de programa suelen ser escritos por el usuario Módulo de sistema Cada módulo de sistema contiene datos y rutinas encaminadas a la realización de una función determinada. Normalmente, cada módulo representa a una acción concreta del robot o una operación similar. Los módulos de sistema suelen ser desarrollados por el fabricante del robot o los creadores de la línea de producción 4º Grado Ing. Electrónica Industrial Automatización Avanzada. A. Rosado. ESTRUCTURA DE UN PROGRAMA • • Datos Los datos son valores y definiciones establecidos en los módulos de programa o de sistema. Estos datos son utilizados por las instrucciones del mismo módulo o en varios módulos (su disponibilidad depende del tipo de dato). Las definiciones de tipos de datos se especifican en el Manual de referencia de RAPID Rutina Una rutina contiene conjuntos de instrucciones, es decir, define qué debe hacer el sistema de robot en realidad. Las rutinas también pueden contener los datos necesarios para las instrucciones Rutina de entrada (MAIN) Un tipo especial de rutina, en ocasiones conocida en ingles como "Main", definida como punto de inicio de la ejecución del programa. Cada programa debe tener una rutina de entrada con el nombre "Main“, de lo contrario no es posible ejecutarlo. La forma de elegir una rutina como rutina de entrada se especifica en el Manual de referencia de RAPID. Instrucción Cada instrucción es una petición para que tenga lugar un evento determinado, por ejemplo, "Mover el punto central de la herramienta del manipulador hasta un punto determinado" o "Establecer una salida digital”. Las instrucciones, su sintaxis y su función se describen detalladamente en el Manual de referencia de RAPID. Las instrucciones sólo pueden ser creadas dentro de una rutina Archivo de programa En IRC5, un programa de RAPID es una colección de archivos de módulo (.mod) y el archivo de programa (.pgf.) que hace referencia a todos los archivos de módulo. Al cargar un archivo de programa, todos los módulos de programa antiguos se reemplazan por aquéllos a los que se hace referencia en el archivo .pgf. Los módulos de sistema no se ven afectados por la carga de programas 4º Grado Ing. Electrónica Industrial Automatización Avanzada. A. Rosado. ESTRUCTURA DE UN PROGRAMA. Ejemplo 4º Grado Ing. Electrónica Industrial Automatización Avanzada. A. Rosado. TIPOS DE RUTINAS Procedimiento: Un conjunto de instrucciones que no devuelve ningún valor Función: Un conjunto de instrucciones que devuelve un valor Rutina TRAP: Un conjunto de instrucciones que es disparado por una interrupción RUTINAS DE PROCEDIMIENTO PROC( ) ENDPROC Contienen las instrucciones de automatización del robot. Son las rutinas generales de programación RUTINAS DE INTERRUPCIÓN TRAP( ) ENDTRAP Rutinas asociadas a la activación de una interrupción. RUTINAS DE FUNCION FUNC( ) ENDFUNC Rutinas que devuelven un valor Se configuran con datos de entrada y salida 4º Grado Ing. Electrónica Industrial Automatización Avanzada. A. Rosado. Estructura de una instrucción Los objetivos y las trayectorias se utilizan a la hora de programar los movimientos de robot MoveL P_destino, V500 /T:=5, Z50, pinza1, /Wobj.=object1 ; CODIGO DE INSTRUCCION ARGUMENTOS OBLIGATORIOS ARGUMENTOS OPCIONALES 4º Grado Ing. Electrónica Industrial Automatización Avanzada. A. Rosado. TIPOS DE DATOS / ESTRUCTURA DE UNA DECLARACION TIPOS DE DATOS en declaración: CONSTANTES: Son datos estáticos. No se pueden modificar por programa, solo en la línea de declaración dónde se establece su valor VARIABLES: Se pueden modificar por programa. En la línea de declaración se establece su valor de reinicialización. Cuando se reinicia el programa (por ejemplo llevando el puntero de programa al inicio de la rutina main, o cargando el programa) cambia su valor actual al de reinicio PERSISTENTES: Es una variable con valor persistente. Se pueden modificar por programa, pero su valor de reinicio en la línea de declaración se modifica al valor actual del dato. Esto implica que cuando se reinicia el programa el valor de arranque del dato será el que tenía en el momento del paro del programa 4º Grado Ing. Electrónica Industrial Automatización Avanzada. A. Rosado. TIPOS DE DATOS / ESTRUCTURA DE UNA DECLARACION ESTRUCTURA DE UNA LÍNEA DE DECLARACIÓN DE DATOS: Dato compuesto: CONST robtarget p20:=[[-362.36,859.02,874.63],[0.006401,-0.957468,0.288393,-0.006575],[1,-1,-1,0],[9E+09, …..]]; Tipo Tipo formato Nombre del dato Valor del dato Datos simples: PERS num ok_cancel:=0; VAR triggdata Set_op_cog; Existen instrucciones de movimiento e instrucciones de acción Una instrucción de acción es una cadena de RAPID que puede utilizarse para definir y cambiar parámetros. Las instrucciones de acción pueden insertarse antes, después o entre objetivos de instrucción en las trayectorias 4º Grado Ing. Electrónica Industrial Automatización Avanzada. A. Rosado. ESTRUCTURA DE UN PROGRAMA. Ejemplo MODULE DEF5 CONST robtarget p20:=[[-362.36,859.02,874.63],[0.006401,-0.957468,0.288393,-0.006575],[1,-1,-1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]]; CONST robtarget p10:=[[-397.21,936.23,954.16],[0.52767,-0.700323,0.204325,0.43516],[1,-1,-1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]]; CONST robtarget p2_alto_fu:=[[271.35,1076.76,869.14],[0.005391,-0.966497,0.254856,-0.030046],[0,-1,-1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]]; CONST robtarget p2_alto_ap:=[[381.74,1052.27,669.16],[0.005422,-0.966495,0.254857,-0.030103],[0,-1,-,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]]; VAR num ok_cancel:=0; VAR num tem_sel:=0; VAR num num_prog:=0; !variables para triggers VAR triggdata Set_op_cog; VAR triggdata Res_cl_cog; VAR triggdata Set_cl_cog; DECLARACIÓN DE DATOS PROC coge_pinza2() coger: IF DI11_6=0 THEN MoveJ p2_alto_fu,vmax,z50,tool0; pant_almacen; MoveJ p2_alto_apro,vmax,z50,tool0; MoveL p2_coj,v10,fine,tool0; Reset DO11_4; Set DO11_3; WaitTime 1; MoveL p2_bajo_apr,v40,fine,tool0; pant_home; ELSE TPErase; TPReadFK ok_cancel,"PONGA LA PINZA EN LA ZONA DE ALMACEN","","","","","OK"; GOTO coger; ENDIF ENDPROC PROC main() !declaracion de interrupcion CONNECT no_pieza WITH no_pieza_rut; ISignalDI DI11_9,1,no_pieza; ISleep no_pieza; !BUCLE de programa principal que repite infinitamente WHILE TRUE DO TPErase; TPWrite " "; RUTINA RUTINA MAIN 4º Grado Ing. Electrónica Industrial Automatización Avanzada. A. Rosado. INSTRUCCIONES BÁSICAS (RAPID) MoveJ MoveL MoveC MoveAbsJ [Offs()] Instrucciones de movimiento Set Reset SetDO PulseDO InvertDO WaitTime WaitDI WaitDO WaitUntil Esperas de ejecución IF WHILE FOR TEST GOTO ProcCall CallByVar Return Control básico de salida Control de flujo de digitales programa en rutina TPWrite TPErase TPReadNum TPReadFK Instrucciones de comunicación con el TP o FP Llamadas a rutinas de procedimiento TriggJ TriggL TriggC TriggIO Movimientos con eventos sincronizados VelSet AccSet SoftAct Ajuste de velocidad y aceleración. Par Motor del servo 4º Grado Ing. Electrónica Industrial Automatización Avanzada. A. Rosado. PRINCIPIOS DE PROGRAMACIÓN Un programa se ejecuta secuencialmente El flujo del programa puede controlarse acorde con cinco principios diferentes: • Llamar a otra rutina (procedimiento) y, una vez ejecutada dicha rutina, continuar la ejecución con la instrucción que sigue a la llamada a la rutina • Ejecutar instrucciones diferentes en función de si se cumple o no una condición determinada • Repetir una secuencia de instrucciones un número determinado de veces o hasta que se cumple una condición determinada • Ir a una etiqueta dentro de la misma rutina • Detener la ejecución del programa Instrucción Se usa para: ProcCall CallByVar Llamar (saltar a) otra rutina Llamar a procedimientos que tienen nombres concretos Volver a la rutina original RETURN 4º Grado Ing. Electrónica Industrial Automatización Avanzada. A. Rosado. INSTRUCCIONES DE MOVIMIENTO (trayectorias) Una trayectoria es una secuencia de instrucciones de movimiento Las trayectorias se utilizan para hacer que el robot se mueva a lo largo de una secuencia de objetivos Una instrucción de movimiento se compone de: • Una referencia a un objetivo • Datos de movimiento, por ejemplo el tipo, la velocidad y la zona del movimiento • Una referencia a datos de herramienta • Una referencia a un objeto de trabajo 4º Grado Ing. Electrónica Industrial Automatización Avanzada. A. Rosado. PROGRAMACIÓN. Movimientos. Especificaciones y parámetros programables. DEFINICION DEL TIPO DE TRAYECTORIA PARA ALCANZAR EL POSICIONAMIENTO PROGRAMADO. • Eje a Eje (Punto a Punto) • Rectilínea • Circular Parámetros incluidos en la instrucción DATOS DE POSICIÓN (coordenadas del punto, y datos de orientación de herramienta) VELOCIDAD PRECISION EN EL POSICIONAMIENTO. ZONA (punto de parada o movimiento continuo) DATOS DE HERRAMIENTA (carga, coordenadas (dimensiones), etc) DATOS DE LAS COORDENADAS DEL OBJETO DE TRABAJO Los valores de aceleración y par motor son optimizados automáticamente para obtener el máximo rendimiento dinámico del robot 4º Grado Ing. Electrónica Industrial Automatización Avanzada. A. Rosado. PROGRAMACIÓN. Movimientos. Especificaciones y parámetros programables Configurados mediante instrucciones lógicas VELOCIDAD MÁXIMA DE PROGRAMA Y AJUSTE DE VELOCIDAD ACELERACIÓN. (Ajuste para piezas delicadas) CARGA ÚTIL. (Ajuste de carga de la pieza para optimizar el rendimiento dinámico del robot) CONTROL DEL PAR MOTOR (SERVO SUAVE) DESPLAZAMIENTO DE POSICIONAMIENTOS DE PROGRAMA COMPORTAMIENTO DEL ROBOT EN EL PASO POR UN PUNTO SINGULAR 4º Grado Ing. Electrónica Industrial Automatización Avanzada. A. Rosado. INSTRUCCIONES MOVIMIENTO. Parámetros básicos MoveJ P_destino, V500, Z50, tool0 Movimiento Eje a Eje (Punto a punto) MoveL P_destino, V500, Z50, pinza1, /Wobj.=object1 Movimiento Rectilíneo Objeto de Trabajo: Datos del sistema de coordenadas del objeto de trabajo (opcional) HERRAMIENTA: Datos de la herramienta utilizada (TCP) PRECISION: Zona de aproximación al punto VELOCIDAD DE MOVIMIENTO Punto destino: * valores de posicionamiento Coordenadas, orientación, config. Robot, etc. Nombre del dato de posicionamiento MoveC P_paso, P_final, V500, Z50, tool0 Movimiento Circular sólo puede utilizarse para arcos circulares abiertos, para crear una trayectoria para un círculo cerrado, utilizar dos movimientos circulares P_paso P_final 4º Grado Ing. Electrónica Industrial Automatización Avanzada. A. Rosado. INSTRUCCIONES MOVIMIENTO: ajuste al punto objetivo 4º Grado Ing. Electrónica Industrial Automatización Avanzada. A. Rosado. DATO DE POSICIONAMIENTO (objetivo) OBJETIVO Un objetivo es una coordenada que debe ser alcanzada por el robot. Contiene la información siguiente: Posición: La posición del objetivo, definida en un sistema de coordenadas del objeto de trabajo. Orientación: La orientación del objetivo, respecto de la orientación del objeto de trabajo. Cuando el robot alcanza el objetivo, alinea la orientación del TCP con la orientación del objetivo. Configuración: Valores de configuración que especifican la forma en que el robot debe alcanzar el objetivo. nota RobotStudio: Los objetivos se convierten en instancias del tipo robtarget cuando se sincronizan con el controlador virtual 4º Grado Ing. Electrónica Industrial Automatización Avanzada. A. Rosado. DATO DE POSICIONAMIENTO (objetivo) ESTRUCTURA DE DATOS DE UN POSICIONAMIENTO: Dato compuesto: CONST robtarget p20:=[[-362.36,859.02,874.63],[0.006401,-0.957468,0.288393,-0.006575],[1,-1,-1,0],[9E+09, …..]]; Tipo Tipo formato Nombre del dato Configuración de los ejes del robot para alcanzar la posición Tipo de Dato POS Nombre trans [X, Y, Z] Tipo de Dato ORIENT Nombre rot [q1,q2,q3,q4] P20:= :=[[-362.36,859.02,874.63],[0.006401,-0.957468,0.288393,-0.006575],[1,-1,-1,0],[9E+09, 9E+09, 9E+09, 9E+09, 9E+09, 9E+09 …..]]; P20.trans:=[-362.36,859.02,874.63] P20.trans.x:= -362.36 Posición de ejes externos del robot 4º Grado Ing. Electrónica Industrial Automatización Avanzada. A. Rosado. DATO DE POSICIONAMIENTO (objetivo) EJEMPLO CONST robtarget p15 := [ [600, 500, 225.3], [1, 0, 0, 0], [1, 1, 0, 0], [ 11, 12.3, 9E9, 9E9, 9E9, 9E9] ]; Se define la posición p15 de la forma siguiente: • La posición del robot: x = 600, y = 500 y z = 225,3 mm en el sistema de coordenadas de objeto • La orientación de la herramienta en la misma dirección que el sistema de coordenadas del objeto • La configuración de ejes del robot es la siguiente: ejes 1 y 4 en la posición de 90 a 180°, eje 6 en la posición de 0 a 90° • La posición de los ejes externos lógicos a y b, expresada en grados o mm (en función del tipo de eje). Los ejes de c a f permanecen sin definir 4º Grado Ing. Electrónica Industrial Automatización Avanzada. A. Rosado. DATO DE POSICIONAMIENTO (objetivo): orientación EJEMPLO CONST robtarget p15 := [ [600, 500, 225.3], [1, 0, 0, 0], [1, 1, 0, 0], [ 11, 12.3, 9E9, 9E9, 9E9, 9E9] ]; • La orientación de la herramienta en la misma dirección que el sistema de coordenadas del objeto. Se utiliza para orientaciones (por ejemplo la orientación de una herramienta) y rotaciones (por ejemplo la rotación de un sistema de coordenadas). La orientación se describe en forma de un cuaternio compuesto por cuatro elementos: q1, q2, q3 y q4. La orientación debe estar normalizada, es decir, la suma de los cuadrados debe ser igual a 1 La orientación de un sistema de coordenadas (por ejemplo el de una herramienta) puede describirse mediante una matriz de rotación que describe la dirección de los ejes del sistema de coordenadas respecto de un sistema de referencia. Los ejes del sistema de coordenadas girado (x, y, z) son vectores que pueden expresarse en el sistema de coordenadas de referencia de la forma siguiente: x = (x1, x2, x3) y = (y1, y2, y3) z = (z1, z2, z3) . Estos tres vectores pueden reunirse en una matriz (una matriz de rotación) en la que cada uno de los vectores compone una de las columnas 4º Grado Ing. Electrónica Industrial Automatización Avanzada. A. Rosado. DATO DE POSICIONAMIENTO (objetivo): orientación En general: EJEMPLO Z’ X’ x’ = -z = (x1,x2,x3) = (0, 0, -1) y’ = y = (y1,y2,y3) = (0, 1, 0) z’ = x = (z1,z2,z3) = (1, 0, 0) sign q2 = sign (y3-z2) sign q3 = sign (z1-x3) sign q4 = sign (x2-y1) sign q3 = sign (1+1) = + 4º Grado Ing. Electrónica Industrial Automatización Avanzada. A. Rosado. DATO DE POSICIONAMIENTO (objetivo): orientación EJEMPLO En general: La dirección de la herramienta gira 30° alrededor de los ejes X' y Z' respecto del sistema de coordenadas de la muñeca X’ sign q2 = sign (y3-z2) sign q3 = sign (z1-x3) sign q4 = sign (x2-y1) x’ = (x1,x2,x3) = (cos30°, 0, -sin30°) y’ = (y1,y2,y3) = (0, 1, 0) z’ = (z1,z2,z3) = (sin30°, 0, cos30°) sign q3 = sign (sin30°+sin30°) = + 4º Grado Ing. Electrónica Industrial Automatización Avanzada. A. Rosado. Consideraciones sobre datos de configuración de ejes Un dato de tipo Robtarget implica una posición en el espacio XYZ del TCP junto con los datos de orientación del mismo, pero dependiendo de la morfología del robot esa posición puede ser alcanzable con varias configuraciones de los ejes del robot. Eso implica la necesidad de que si la configuración de ejes debe ser tenida en cuenta (supervisada) también se debe guardar como dato de un posicionamiento con qué configuración se debe alcanzar dicha posición Para más detalles, consultar el manual de lenguaje RAPID: Tipos de datos confdata 8 configuraciones distintas para la misma posición y orientación de la herramienta (tool) 4º Grado Ing. Electrónica Industrial Automatización Avanzada. A. Rosado. Consideraciones sobre datos de configuración de ejes Cada configuración de objetivo precisa especificar el cuadrante de una revolución completa de cada eje, numerados de 0 a 3 para rotación positiva (sentido antihorario) y 0 a 3 en rotación negativa (sentido horario). Se compone de cuatro valores para un robot de 6 ejes: [eje1,eje4,eje6,ejeX]. EjeX: eje virtual, sólo disponible en algunos modelos de robot P20:=[[-362.36,859.02,874.63],[0.006401,-0.957468,0.288393,-0.006575],[1,-2,2,3],[9E+09, 9 …..]]; P20:=[[-362.36,859.02,874.63],[0.006401,-0.957468,0.288393,-0.006575],[1,-2,2,1],[9E+09, 9 …..]]; 4º Grado Ing. Electrónica Industrial Automatización Avanzada. A. Rosado. Consideraciones sobre datos de configuración de ejes • • • • El valor de configuración es muy importante para los movimientos y el alcance correcto de los objetivos Es muy probable que los objetivos creados por métodos distintos que el movimiento del robot no puedan alcanzarse con su configuración predeterminada Es necesario asignar una configuración válida a cada objetivo y verificar que el robot puede moverse a lo largo de cada trayectoria. También puede desactivar la monitorización de configuraciones, lo que significa que se omiten las configuraciones almacenadas y se deja que el robot encuentre las configuraciones de trabajo durante la ejecución. Si esto no se hace correctamente, pueden producirse resultados inesperados Si la monitorización de configuraciones está desactivada, los valores de configuración almacenados en los objetivos no se tienen en cuenta y el robot utilizará la configuración más cercana a su configuración actual para alcanzar el objetivo. Si se activa, sólo utilizará la configuración especificada para alcanzar los objetivos. La monitorización de configuraciones puede desactivarse y activarse de forma independiente para los movimientos de ejes y los lineales, se controla mediante las instrucciones de acción ConfJ (mov. ejes) y ConfL (mov. lineales) 4º Grado Ing. Electrónica Industrial Automatización Avanzada. A. Rosado. PROGRAMACIÓN DE MOVIMIENTO Offs se utiliza para añadir un offset en el sistema de coordenadas de objeto a una posición de robot del tipo robtarget Ejemplo1: MoveL Offs(p2, 0, 0, 10), v1000, z50, tool1; Se mueve el robot a un punto que se encuentra a 10 mm de la posición p2 (en la dirección z) Ejemplo 2: p1 := Offs (p1, 5, 10, 15); Se reasigna el valor de la posición del robot p1 en 5mm en la dirección x, 10mm en la dirección y, 15mm en la dirección z Ejemplo 3: PROC pallet (num row, num column, num distance, PERS tooldata tool, PERS wobjdata wobj) VAR robtarget palletpos:=[[0, 0, 0], [1, 0, 0, 0], [0, 0, 0, 0], [9E9, 9E9, 9E9, 9E9, 9E9, 9E9]]; palettpos := Offs (palettpos, (row-1)*distance, (column-1)*distance, 0); MoveL palettpos, v100, fine, tool\WObj:=wobj; ENDPROC 4º Grado Ing. Electrónica Industrial Automatización Avanzada. A. Rosado. INSTRUCCIONES MOVIMIENTO Por desplazamiento (Offset) MoveL Offs(P_ref, x, y, z) V500, Z50, pinza1, /Wobj.=object1 Y 200 mm P_ref 100 mm X MoveL Offs(P_ref, 100, 200, 0) V500, Z50, pinza1, /Wobj.=object1 4º Grado Ing. Electrónica Industrial Automatización Avanzada. A. Rosado. PROGRAMACIÓN DE MOVIMIENTO: ejemplo MODULE MainModule CONST robtarget p10:=[[500,0,650],[0.0233459,-0.99915,-0.0334623,0.0059229],[1,0,-3,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]]; PROC main() MoveL MoveL MoveL MoveL MoveL MoveL MoveL MoveL MoveL MoveL MoveL MoveL MoveL MoveL MoveL MoveL MoveL MoveL ENDPROC ENDMODULE p10, Offs Offs Offs Offs Offs Offs Offs Offs Offs Offs Offs Offs Offs Offs Offs Offs Offs v1000, z50, tool0; (p10,0,0,50), v1000, z50, tool0; (p10,50,0,50), v1000, z50, tool0; (p10,50,0,0), v1000, z50, tool0; (p10,50,0,50), v1000, z50, tool0; (p10,100,0,50), v1000, z50, tool0; (p10,100,0,0), v1000, z50, tool0; (p10,100,0,50), v1000, z50, tool0; (p10,0,50,50), v1000, z50, tool0; (p10,0,50,0), v1000, z50, tool0; (p10,0,50,50), v1000, z50, tool0; (p10,50,50,50), v1000, z50, tool0; (p10,50,50,0), v1000, z50, tool0; (p10,50,50,50), v1000, z50, tool0; (p10,100,50,50), v1000, z50, tool0; (p10,100,50,0), v1000, z50, tool0; (p10,100,50,50), v1000, z50, tool0; (p10,0,0,50), v1000, z50, tool0; 4º Grado Ing. Electrónica Industrial Automatización Avanzada. A. Rosado. PROGRAMACIÓN DE MOVIMIENTO: ejemplo Activar los sensores 2 y 7 de la mesa de trabajo en ese mismo orden, las instrucciones que usaremos serán MoveJ, Set y Reset. Puntos MODULE modulo1 PROC programa1() Coordenada X Coordenada Y Coordenada Z Sensor 2 330 50 0 Sensor 7 550 130 0 !vamos al primer punto sensor2, stma coordenadas en p10 !colocamos la herramienta sobre el sensor y bajamos: activar Movej Offs(p10,330,50,0), v100, z50, tool0; Set Electroiman; Movej Offs(p10,330,50,-50), v100, fine, tool0; Reset Electroiman; Movej Offs (p10,330,50,0), v100, z50, tool0; !vamos al primer punto sensor7 !colocamos herramienta sobre el sensor y bajamos para activar Movej Offs(p10,550,130,0), v100, z50, tool0; Set Electroiman; Movej Offs(p10,550,130,-50), v100, fine, tool0; Reset Electroiman; Movej Offs (p10,550,130,0), v100, z50, tool0; ENDPROC ENDMODULE 4º Grado Ing. Electrónica Industrial Automatización Avanzada. A. Rosado. Puntos singulares (Problemas de singularidad) En robots con morfología angular existen posiciones de los ejes de robot para un punto en el espacio con una orientación de herramienta determinada que pueden ser alcanzados con infinitas configuraciones de robot. A esta situación se le denomina singularidad y cuando el robot se encuentra en esa situación se dice que está en un punto singular Esta situación supone un problema de cálculo de ángulos de ejes para alcanzar las coordenadas y orientación de herramienta. La instrucción SingArea permite configurar el comportamiento Mecánicamente implica la necesidad de que algún eje tenga que girar a una velocidad excesiva para mantener la velocidad programada y la orientación de la herramienta. Las singularidades se producen en los movimientos de interpolación lineal y circular, es decir, MoveL y MoveC, no en los de eje a eje MoveJ o MoveAbsJ. Combinando el giro del eje 4 y el eje 6 se pueden conseguir infinitas combinaciones 4º Grado Ing. Electrónica Industrial Automatización Avanzada. A. Rosado. PROGRAMACIÓN DE MOVIMIENTO: MoveAbsJ MoveAbsJ (Move Absolute Joint) se utiliza para mover el robot hacia una posición absoluta definida en posiciones de ejes. Se emplea para moverse cuando el punto final es un punto singular. El punto destino es de tipo jointtarget La posición final del robot durante un movimiento con MoveAbsJ no se ve afectada por la herramienta, por el objeto de trabajo ni por el desplazamiento de programa El robot utiliza estos datos para calcular la carga, la velocidad del TCP y la trayectoria de esquina Es posible usar las mismas herramientas en instrucciones de movimiento adyacentes Los ejes del robot y los ejes externos se desplazan hasta la posición de destino a lo largo de una trayectoria no lineal Todos los ejes alcanzan la posición de destino al mismo tiempo Esta instrucción sólo puede usarse en la tarea principal T_ROB1 Ejemplo: MoveAbsJ p50, v1000, z50, tool2; El robot que tiene montada la herramienta tool2 se mueve a lo largo de una trayectoria no lineal hacia la posición absoluta de ejes p50 (jointtarget), con los datos de velocidad v1000 y los datos de zona z50 4º Grado Ing. Electrónica Industrial Automatización Avanzada. A. Rosado. PROGRAMACIÓN DE MOVIMIENTO: jointtarget jointtarget se utiliza para definir la posición a la que se moverán los ejes del robot y los ejes externos al ejecutar una instrucción MoveAbsJ Define las posiciones individuales de los distintos ejes, tanto de los del robot como de los externos Ejemplo: CONST jointtarget calib_pos := [ [ 0, 0, 0, 0, 0, 0], [ 0, 9E9,9E9, 9E9, 9E9, 9E9] ]; La posición de calibración normal se define en calib_pos con el tipo de dato jointtarget. La posición 0 (grados o mm) de calibración normal se define también para el eje externo lógico a. Los ejes externos del b al f permanecen sin definir 4º Grado Ing. Electrónica Industrial Automatización Avanzada. A. Rosado. INSTRUCCIONES MOVIMIENTO: interpolación Las funciones de interpolación reorientan los objetivos de una trayectoria de forma que la diferencia de orientación existente entre el objetivo inicial y final se distribuya uniformemente entre los objetivos intermedios. La interpolación puede ser lineal o absoluta. • La interpolación lineal distribuye la diferencia de orientación uniformemente, basándose en las posiciones de los objetivos a lo largo de la longitud de la trayectoria. • La interpolación absoluta distribuye la diferencia de orientación uniformemente, basándose en el orden de los objetivos en la trayectoria Sin interpolación Interpolación lineal Interpolación absoluta los objetivos se orientan según su secuencia en la trayectoria: cada los objetivos se orientan según su posición objetivo se reorienta por igual, respecto de los objetivos inicial y final independientemente de su ubicación 4º Grado Ing. Electrónica Industrial Automatización Avanzada. A. Rosado. INSTRUCCIONES MOVIMIENTO MoveC MoveJ MoveL MoveAbsJ MoveExtJ MoveCDO MoveJDO MoveLDO MoveCSync MoveJSync MoveLSync Mover el TCP a lo largo de una trayectoria circular Movimiento de ejes Mover el TCP a lo largo de una trayectoria lineal Movimiento absoluto de ejes Mover un eje externo lineal o giratorio sin TCP Mover el robot en una trayectoria circular y establecer una salida digital a medio camino de la trayectoria de esquina Mover el robot con un movimiento de ejes y establecer una salida digital a medio camino de la trayectoria de esquina Mover el robot en una trayectoria lineal y establecer una salida digital a medio camino de la trayectoria de esquina Mover el robot en una trayectoria circular y ejecutar un procedimiento de RAPID Mover el robot con un movimiento de ejes y ejecutar un procedimiento de RAPID Mover el robot de forma lineal y ejecuta un procedimiento de RAPID 4º Grado Ing. Electrónica Industrial Automatización Avanzada. A. Rosado. DATOS DE MOVIMIENTO robtarget jointtarget speeddata zonedata tooldata wobjdata stoppointdata identno pos orient pose confdata extjoint robjoint loaddata mecunit La posición final La posición final de una instrucción MoveAbsJ oMoveExtJ La velocidad La exactitud de la posición (punto de paro o punto de paso) El sistema de coordenadas de la herramienta y la carga de la herramienta El sistema de coordenadas del objeto de trabajo La finalización de la posición Un número utilizado para controlar la sincronización de dos o más movimientos sincronizados y coordinados entre sí Una posición (x, y, z) Una orientación Un sistema de coordenadas (posición y orientación) La configuración de los ejes del robot La posición de los ejes externos La posición de los ejes del robot Una carga Una unidad mecánica externa 4º Grado Ing. Electrónica Industrial Automatización Avanzada. A. Rosado. CONTROL DE ENTRADAS Y SALIDAS Los nombres de las señales se definen en los parámetros del sistema. Estos nombres están siempre disponibles en el programa para la lectura o el establecimiento de operaciones de E/S. El valor de una señal analógica o de un grupo de señales digitales se especifica como un valor numérico InvertDO PulseDO Reset Set SetAO SetDO SetGO Invertir el valor de una señal digital de salida Generar un pulso en una señal digital de salida Restablecer una señal digital de salida (ponerla a 0) Activar una señal digital de salida (cambiarla a 1) Cambiar el valor de una señal analógica de salida Cambiar el valor de una señal digital de salida (su valor simbólico, por ejemplo high/low) Cambiar el valor de un grupo de señales digitales de salida AOutput DOutput GOutput Leer el valor actual de una señal analógica de salida Leer el valor actual de una señal digital de salida Leer el valor actual de un grupo de señales digitales de salida 4º Grado Ing. Electrónica Industrial Automatización Avanzada. A. Rosado. INSTRUCCIONES de ESPERA WaitTime WaitUntil WaitDI WaitDO Esperar una cantidad determinada de tiempo o esperar hasta que el robot deje de moverse Esperar hasta que se cumpla una condición Esperar hasta que se active una entrada digital Esperar hasta que se active una salida digital CONTROL DE PROGRAMA EN RUTINAS IF <condición> IF FOR WHILE TEST GOTO label Ejecutar una instrucción sólo si se cumple una condición Ejecutar una secuencia de instrucciones diferentes en función de si se cumple una condición Repetir una sección del programa un número de veces Repetir una secuencia de instrucciones diferentes mientras siga cumpliéndose una condición Ejecutar instrucciones diferentes en función del valor de una expresión Saltar a una etiqueta Especificar una etiqueta (un nombre de línea) 4º Grado Ing. Electrónica Industrial Automatización Avanzada. A. Rosado. EJERCICIO RESUELTO 1 Programa capaz de activar los 4 sensores señalados en la figura y en el orden: 1, 5, 10, 15 Los electroimanes deben activarse durante un segundo en cada una de las posiciones Las coordenadas de los sensores son las siguientes: Puntos Sensor 1 Sensor 5 Sensor 10 Sensor 15 X 0 520 495 425 Y 0 80 450 800 En el plano de trabajo podemos comportamiento al ejecutar el programa ver el El programa se hace de modo que p10 es el punto de referencia para los movimientos. El punto p10 se encuentra 5 cm (50 mm) por encima del sensor 1, por ello, para activar la señal se debe bajar ( ) 50 mm (MoveJ Offs (p10, 0,0, 50),fine, tool0;) Una vez activado el punto se ha de subir de nuevo los 5 cm para no colisionar Utilizar únicamente WaitTime, Reset instrucciones MoveJ, Set, 4º Grado Ing. Electrónica Industrial Automatización Avanzada. A. Rosado. EJERCICIO RESUELTO 1 MODULE modulo1 CONST robtarget p10 := [[15.00,-392,135],[0.0142318,-0.710513,-0.703468,-0.0101377],[-1,1,0,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]]; PROC programa1() !vamos al primer punto sensor1 Movej p10, v100, fine, tool0; Movej Offs(p10,0,0,-50), v100, fine, tool0; Set Electroiman; WaitTime 1; Reset Electroiman; Movej Offs (p10,0,0,0), v100, fine, tool0; !vamos al segundo punto sensor5 Movej Offs(p10,520,80,0), v100, z50, tool0; Movej Offs(p10,520,80,-50), v100, fine, tool0; Set Electroiman; WaitTime 1; Reset Electroiman; WaitTime 1; Movej Offs (p10,520,80,0), v100, fine, tool0; !vamos al tercer punto sensor10 Movej Offs(p10,495,450,0), v100, z50, tool0; Movej Offs(p10,495,450,-50), v100, fine, tool0; Puntos X Set Electroiman; WaitTime 1; Sensor 1 0 Reset Electroiman; Sensor 5 520 Movej Offs (p10,495,450,0), v100, z50, tool0; !vamos al punto final sensor15 Sensor 10 495 Movej Offs(p10,425,800,0), v100, z50, tool0; Sensor 15 425 Movej Offs(p10,425,800,-50), v100, fine, tool0; Set Electroiman; WaitTime 1; Reset Electroiman; Movej Offs (p10,425,800,0), v100, z50, tool0; ENDPROC ENDMODULE Y 0 80 450 800 4º Grado Ing. Electrónica Industrial Automatización Avanzada. A. Rosado. EJERCICIO RESUELTO 2 Corte de una lámina de acero con la forma que se muestra en la figura El robot realiza dos movimientos en forma de círculo y dos en línea recta para dar forma a la pieza necesaria. El corte empezará en el punto 8 y seguirá hacia el punto 9 y así sucesivamente hasta llegar nuevamente al punto inicial Finalmente el robot deberá activar el sensor en el punto10 y dar término al programa Se debe activar el electroimán a lo largo de cada corte y tendrá que esperar 2 segundos en cada uno de los cuatro puntos con la herramienta desactivada para seguir con el siguiente tramo a cortar Puntos en plano Coordenada Coordenada Punto 6 Punto 8 Punto 9 Punto 10 Punto 11 Punto 12 Punto 15 X 490 380 630 495 380 630 425 Y 120 290 290 450 620 620 800 Además de las instrucciones del ejercicio 1: MoveC y MoveL Para evitar colisiones en el momento del corte de pieza se debe levantar la herramienta 5 cms (50 mm) por encima de cada uno de los sensores, por lo que para activarlos se debe bajar en cada punto y esperar 2 segundos antes de continuar 4º Grado Ing. Electrónica Industrial Automatización Avanzada. A. Rosado. EJERCICIO RESUELTO 2 MODULE modulo1 PROC programa1() !vamos el punto 8, vamos al sensor, lo activamos, esperamos 1 seg, desactivamos el electroiman, !esperamos 2 seg, elevamos la herramienta y empezamos el corte siguiente. Movej offs(p10,380,290,-50), v100, fine, tool0; Set electroiman; WaitTime 1; Reset electroiman; WaitTime 2; Movej offs(p10,380,290,0), v100, fine, tool0; Set electroiman; MoveC offs (p10,490,120,0), offs(p10,630,290,0), v100, fine, tool0; !vamos al punto 9 reset electroiman; Movej offs(p10,630,290,-50), v100, fine, tool0; set electroiman; waitTime 1; reset electroiman; waitTime 2; Movej offs(p10,630,290,0), v100, fine, tool0; set electroiman; MoveL offs(p10,630,620,0), v100, fine, tool0; !vamos al punto 12 reset electroiman; Movej offs(p10,630,620,-50), v100, fine, tool0; set electroiman; WaitTime 1; Reset electroiman; WaitTime 2; Movej offs(p10,630,620,0), v100, fine, tool0; Set electroiman; MoveC offs(p10,435,810,0),offs(p10,380,620,0), v100, fine, tool0; !vamos al punto 11 Reset electroiman; Movej offs(p10,380,620,-50), v100, fine, tool0; Set electroiman; WaitTime 1; Reset electroiman; WaitTime 2; Movej offs(p10,380,620,0), v100, fine, tool0; Set electroiman; Puntos en Coord MoveL offs(p10,380,290,0), v100, fine, tool0; !regresamos a punto 8 plano Reset electroiman; MoveL offs(p10,380,290,-50), v100, fine, tool0; Punto 6 490 Set electroiman; WaitTime 1; Reset electroiman; WaitTime 2; Punto 8 380 Movej offs(p10,380,290,0), v100, fine, tool0; !vamos a punto 10 y luego a cinta en el punto 2 Punto 9 630 Movej offs(p10,495,450,0), v100,z50, tool0; Punto 10 495 Movej offs(p10,495,450,-50), v100,fine, tool0; Set electroiman; WaitTime 1; Punto 11 380 Movej offs(p10,330,50,0), v100,z50, tool0; Movej offs(p10,330,50,-50), v100,fine, tool0; Punto 12 630 WaitTime 1; Reset electroiman; Punto 15 425 ENDPROC ENDMODULE X Coord Y 120 290 290 450 620 620 800 4º Grado Ing. Electrónica Industrial Automatización Avanzada. A. Rosado. EJERCICIO RESUELTO 3 Operación de ensamblaje y atornillado de una pieza. La operación se realiza de la siguiente forma: se coge la pieza de grosor 20 mm a ensamblar en la cinta de llegada ubicada en el sensor 9 y se lleva a la zona de trabajo (sensor 5), se fijan los tornillos en los puntos marcados con los sensores 3, 4, 7 y 6. En ese mismo orden, el robot tendrá que ir al sensor 2 a buscar cada uno de los tornillos. Una vez atornillada se agarra la pieza por el sensor 5 y se deja en la cinta de salida ubicada en nuestro caso en el sensor 8 Sitio Puntos Cinta llegada Punto 9 Banco trabajo Coord X Coord Y Coord Z 0 0 20 Punto 5 110 190 20 Tornillo 1 Punto 4 80 250 20 Tornillo 2 Punto 3 140 250 20 Tornillo 3 Punto 7 80 130 20 Tornillo 4 Punto 6 140 130 20 Cinta salida Punto 8 250 20 20 Lugar tornillo Punto 2 295 220 20 Todos los puntos están referenciados respecto a p30 que está sobre el sensor 9, a nivel de tierra (z=0) 4º Grado Ing. Electrónica Industrial Automatización Avanzada. A. Rosado. EJERCICIO RESUELTO 3 MODULE modulo1 !Variables iniciales (Recogida de paquetes en la cinta 1) VAR num Filas:=0; VAR num XPOSi:=0; VAR num YPOSi:=0; VAR num ZPOSi:=0; !Variables iniciales (Depósito de paquetes en la cinta 2) VAR num XPOSc:=-250; VAR num YPOSc:=20; VAR num ZPOSc:=0; !Variables del punto de ensamblaje (banco de trabajo) VAR num XPOSe:=-110; VAR num YPOSe:=-190; VAR num ZPOSe:=0; !Variables de recogida de tornillos VAR num XPOSt:=-295; VAR num YPOSt:=-220; VAR num ZPOSt:=0; !Variables del primer punto del palet VAR num XPOSf:=-80; VAR num YPOSf:=-250; VAR num ZPOSf:=0; !Variables intermedias para formar el palet VAR num XPOS:=0; VAR num YPOS:=0; VAR num ZPOS:=0; !Variables finales que indican las veces que se realiza la operación en cada eje VAR num XPO:=2; VAR num YPO:=2; PROC programa1() !Vamos al punto de inicio MoveL Offs(p30,XPOSi,YPOSi,100), v100, z50, tool0; MoveL Offs(p30,XPOSi,YPOSi,20), v100, fine, tool0; Set Electroiman; WaitTime 0.5; MoveL Offs(p30,XPOSi,YPOSi,100), v100, z50, tool0; !Vamos al punto de ensamblaje MoveL Offs (p30,XPOSe,YPOSe,100), v100, z50, tool0; MoveL Offs(p30,XPOSe,YPOSe,20), v100, fine, tool0; WaitTime 0.5; Reset Electroiman; MoveL Offs(p30,XPOSe,YPOSe,100), v100, z50, tool0; Sitio Puntos Cinta llegada Punto 9 Banco trabajo Coord X Coord Y Coord Z 0 0 20 Punto 5 110 190 20 Tornillo 1 Punto 4 80 250 20 Tornillo 2 Punto 3 140 250 20 Tornillo 3 Punto 7 80 130 20 Tornillo 4 Punto 6 140 130 20 Cinta salida Punto 8 250 20 20 Lugar tornillo Punto 2 295 220 20 4º Grado Ing. Electrónica Industrial Automatización Avanzada. A. Rosado. EJERCICIO RESUELTO 3 !Realizamos un bucle anidado para el movimiento a los 4 puntos de atornillado, primero en x y luego en y WHILE YPOS < YPO DO WHILE XPOS < XPO DO MoveL Offs(p30,XPOSt,YPOSt,100), v100, z50, tool0; MoveL Offs(p30,XPOSt,YPOSt,20), v100, fine, tool0; Set Electroiman; WaitTime 0.5; MoveL Offs(p30,XPOSt,YPOSt,100), v100, z50, tool0; MoveL Offs(p30,XPOSf,YPOSf,100), v100, z50, tool0; MoveL Offs(p30,XPOSf,YPOSf,20), v100, fine, tool0; WaitTime 1; Reset Electroiman; MoveL Offs(p30,XPOSf,YPOSf,100), v100, z50, tool0; XPOSf:=XPOSf-60; XPOS:=XPOS+1; ENDWHILE !Ponemos los valores a 0 del eje x, ponemos los valores de y para la segunda línea XPOS:=0; XPOSf:=-80; YPOSf:=YPOSf+120; YPOS:=YPOS+1; ENDWHILE Sitio Puntos Coord X Coord Y !Vamos al punto de ensamblaje MoveL Offs (p30,XPOSe,YPOSe,100), v100, z50, tool0; MoveL Offs(p30,XPOSe,YPOSe,20), v100, fine, tool0; Cinta llegada Punto 9 0 20 Set Electroiman; WaitTime 0.5; Banco trabajo Punto 5 110 190 MoveL Offs(p30,XPOSe,YPOSe,100), v100, z50, tool0; !Vamos a la cinta de salida Tornillo 1 Punto 4 80 250 MoveL Offs(p30,XPOSc,YPOSc,100), v100, z50, tool0; Tornillo 2 Punto 3 140 250 MoveL Offs(p30,XPOSc,YPOSc,20), v100, fine, tool0; Reset Electroiman; WaitTime 0.5; Tornillo 3 Punto 7 80 130 MoveL Offs(p30,XPOSc,YPOSc,100), v100, z50, tool0; Tornillo 4 Punto 6 140 130 ENDPROC ENDMODULE Cinta salida Punto 8 250 20 Lugar tornillo Punto 2 295 220 Coord Z 20 20 20 20 20 20 20 20 4º Grado Ing. Electrónica Industrial Automatización Avanzada. A. Rosado. Referencias Manual RAPID: Generalidades Manual de referencia RAPID