Subido por Víctor Cano Aguado

Tema2c Robotica AA

Anuncio
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
Descargar