CATALYST 5 Características Características físicas del robot • • • • • • • • • •
•
5 ejes Peso de 19 Kg Carga nominal1 Kg Carga má xima 2 Kg Alcance 660 mm Repetibilidad +/- 0.05 mm Sistema encoders increméntales Transmisi ón drives armónicos Frenos todos los ejes Dos modos de movimiento teach y automá tico tico Conectador final servo gripper o neumá tico tico
Características. Características. del controlador •
•
Diseño dual de microprocesadores. 133 MHz; 486 DX Sistema de procesamiento 60 MHz TM3320C31DSP Control Memoria 4 MB RAM, usuario, 512 KB NVRAM para almacenar aplicaciones, 1 MB de memoria flash para firmware
•
•
Entradas / salidas 16 entradas digitales 12 salidas digitales 1 entrada analógica 4 salidas a relevador Panel frontal Display de cristal liquido de 16 caracteres x 2 líneas 5 botones (2 programables) cuentan con luz indicadora de
estado •
•
Programador manual (teach pendant) Display de cristal liquido liquido 4 x 20 lineas 45 teclas multifunciones Interruptor de seguridad (live_man) Paro de emergencia Generador de sonido Conexiones al sistema.
Entrada externa para un bot ón de emergencia 5 Puertos serial 2 Puertos de entrada /salida 1 Puerto serial para el programador manual 1 Puerto para sensor de fuerza 1 Puerto para comunicación con la computadora Peso de 31 Kg. 1 Puerto paralelo para reemplazar panel frontal Alimentación 100/115/230 VCA 60Hz Potencia má xima 1000 Watts Soporta hasta 8 ejes (3 ejes adicionales)
• • • •
Especificaciones por eje ±° 18
° 2/ 1
°/ 5 0
°° 0 1 a1 0
° 2/ 1
°/ 5 0
° ° 1 -a
° 2/ 1
°/ 5 0
±° 11
° 5/ 5
°/ 1 8
±° 18
° 1/ 1
°/ 3 6
Botones de emergencia.
Cuando se oprime un bot ón de emergencia, se aplican los frenos a todos los ejes, desacelera, deshabilita la alimentación del robot. Para volver a habilitar, se restablece el bot ón de emergencia, se alimenta al robot (es necesario liberar el bot ón de emergencia, para poder alimentar al robot). Ademá s el teach cuanta con un interruptor (switch live man) para poder mover el robot, este debe estar oprimido durante el movimiento del robot. Requisito internacional de seguridad. Control de una sola persona
Solo puede ser movido por una persona, ya sea por medio del teach o por la computadora.
Iniciar el sistema
Encender interruptor del controlador, esperar mensaje en display C500C CROS, comprobar que los botes de emergencia est én libres y oprimir ARM POWER (alimentación del robot).
Apagar el sistema.
Desde el controlador
Mantener oprimido Home, oprimir después pause / continue soltar pause / continue y finalmente soltar home, y esperar el mensaje en display de cristal liquido “system halted”, ahora si apagar el interruptor del controlador. Desde la ventana terminal. Escribir en el prompt “shutdown now” , y esperar por el mensaje en el display de cristal liquido “system halted”, hasta que aparezca el mensaje se debe apagar el interruptor del controlador Programador manual (teach pendant) El programador manual es un herramienta para mover el robot, ense ñar posiciones, crear variables y correr programas. Una vez que la aplicación ya esta iniciada, por medio de variables aprendidas (teachables) es posible guardar posiciones, iniciar variables, etc. Características físicas del programador manual (teach pendant) • • • • •
Teclado Interruptor de seguridad Paro de emergencia Pantalla Sonidos
Teclado
Muchas de las teclas son multifunciones, dependiendo de la aplicaci ón es la función que realizan. Teclas de función.
Cada menú tiene una tecla de funci ón, esta teclas son asignadas en la parte baja de la pantalla. F1 a F4. Teclas de ejes
Se emplean para mover el robot. La respuesta del eje a mover depende del modo y sistema de movimiento empleado. Flechas en verde parte izquierda.
Teclas de movimiento
Tienen una función especifica. Teclas con un cuadro de color verde parte superior derecha del programador. FUNCIÓN
TECLA
GRIP HOME READY LIMP ALL NOLIMP ALL MOVE SPEED UP SPEED DOWN
Abrir o cerrar gripper Mover cada eje al punto de Referencia Ir a posición ready Liberar ejes del robot Mantener en la posición ejes Ir a la posición seleccionada Incrementar velocidad Disminuir velocidad
Teclas de matriz
Se emplean en matrices para seleccionar la variable. Teclas con un cuadro amarillo parte derecha del programador. FUNCIÓN
TECLA
FIRST LAST TYPE UP DOWN
Seleccionar el primer elemento Seleccionar el ultimo elemento No usado Incrementar índice Decrementar índice
Teclas de entrada de datos
Cada tecla de eje (flechas verdes), de movimiento (cuadro verde) y de matriz (cuadro amarillo) también cuentan con letras o números. Estas teclas representan. TECLA
Letras Números SHIFT
FUNCIÓN
Se usan para crear una variable, aplicación Y para búsqueda de variables o aplicaciones Seleccionar un determinado índice de matriz, O crear una variable y especificar el tama ño Se usa junto con F1 para mostrar una bit ác ora de errores
Interruptor de seguridad (live-man switch)
El interruptor de seguridad del programador manual (cuenta con tres posiciones. Cuando se oprime ligeramente, esta en habilitando el movimiento. Mientras que si se presiona fuertemente o se suelta esta deshabilitando el movimiento. Si se quitar la condición de habilitar durante este movimiento provoca la interrupci ón de alimentación del brazo y por esto el brazo se para sú bitamente. Botón de emergencia.
Por razones de seguridad interrumpe la alimentación del robot. Pantalla
Los diferentes menús son mostrados por medio de la pantalla. Por medio de las teclas de función se puede acceder. Por medio de la tecla ESC se va al menú anterior Sonidos
El programador manual esta equipado con una peque ña bocina que es capaz de producir un sonido, estos sonidos tienen un significado SONIDO
EVENTO
EJEMPLO
Corto y grave
Una tecla valida a sido Oprimida Una tecla no valida a sido oprimida Se ha inicializado una acción y necesita confirmación Error
Desde el menú aplicación oprimir F1 Desde el menú aplicación oprimir move Desde el menú manual Oprimir Home Desde el menú manual Oprimir Home estando apagado el robot
Corto y agudo Tres cortos y agudos Largo y agudo
Cambio de control Del teach a la computadora
Para cambiar el control de teach a la computadora se debe oprimir ESC hasta que sale el mensaje “Terminate pendant and release robot control”, y oprimir F1 para enviar el control a la computadora. En el teach debe aparecer un mensaje “Pendant Off” De la computadora al teach
Para cambiar el control de la computadora al teach dentro del programa Robocomm 3 y abierta la ventana terminal, escribir “pendant”, env ía el control al teach. Mover el robot.
Para mover el robot, es necesario especificar el tipo de movimiento y el sistema de coordenadas. Entre los tipos de movimiento tenemos el jog , se desplaza una cantidad especificada cada vez que oprimimos una tecla, según sea el sistema, se desplaza grados o distancia. Y mover cada eje en forma continua. Sistemas de coordenadas
Existen 4 sistemas de coordenadas, si no se va a home esta limitado a una velocidad del 10% y un sistema de eje. 1. 2. 3. 4.
Eje (joint) Sistema cartesiano Sistema cilíndrico Sistema herramienta
Sistema de coordenadas por Eje(joint)
Se mueve cada eje en forma independiente. Cuando no se ha enviado a home es el único sistema que se puede acceder, con una velocidad m á xima de 10% antes de enviar a home, desde la ventana terminar, escribir el eje a mover y la distancia “joint 1,5”, o por medio del teach, seleccionar el tipo de movimiento, el sistema joint F3 y F4 respectivamente y la velocidad. La numeración de los ejes va de la base hasta el efector final.
Sistema cartesiano (world)
Toma como origen el centro de la base del robot.
COORDENADA
TECLA EJE
Eje x Eje y Eje x Rotación Z Rotación Y Rotación X
1 2 3 4 5 6
DESCRIPCI ÓN
Mover efector final adelante – atrá s Mover efector final derecha – izquierda Mover efector final arriba - abajo Rotar el efector final en base al eje Z Rotar el efector final en base al eje Y Rotar el efector final en base al eje X
Desde la ventana de la terminal escribir el eje a mover y la distancia, “wx 5” , “wy 10” , etc.
Sistema cilíndrico
COORDENADA TECLA EJE
(theta) Radio R θ
Altura Cil.- Yaw Cil-Pitch Cil-Roll.
1 2 3 4 5 6
DESCRIPCI ÓN
mover la base del robot Extender o contraer efector final horizontalmente a lo largo del vector Mover verticalmente hacia arriba o abajo el efector final Rotar el efector final en base al eje vertical Rotar efector final arriba o abajo Rotar efector final en base a la línea horizontal formada entre el efector final y el robot.
Este sistema solo puede ser usado desde el programador manual (teach pendant).
Sistema de coordenadas herramienta
Este sistema toma como referencia el efector final, gripper, se tiene que especificar el origen del efector final (TCP-Tool Center Point). En base al efector final Eje X adelante – atr ás Eje Y derecha – izquierda Eje Z abajo – arriba Desde la ventana terminal tx distancia , ty distancia , etc Mandar a Home
Cuando se inicia el robot es necesario mandar a home, como los encoders son increméntales se deben poner a cero en una posici ón ya especificada. Mandar a home en forma manual.
Existen marcas dentro de cada eje, deben estar los ejes sobre esa marca para poder en la marca desde el teach. Dentro del men ú enviar a home, cuando ya est án movimiento, oprimir F1 para que se vaya a home mantener oprimido el interruptor de seguridad, hasta que termine el movimiento. Desde la terminal, escribir en el prompt “home”.
Enseñar posiciones.
Para enseñar una posición debe existir una variable donde guardar la posición, Desde el teach.
1. 2. 3. 4. 5. 6. 7.
Comando tch F1 (var) Nombre de la variable make, type y dim (especificar el tipo, y la dimensión de la variable) Ir a posición a guardar Oprimir F1 (tch) Si se desean má s variables seguir paso 1
Desde la terminar.
Es necesario estar en una aplicaci ón par poder lograrlo. Dentro de la aplicación se mueve el brazo y se guarda la posición. Con el comando “here nom ” donde nom es el nombre de la variable.
Crear una aplicación
Dentro de Robocomm3 1. Seleccionar el puerto de comunicación y la velocidad de transmisión / recepci ón 2. Crear un nuevo documento (Editor de texto) 3. Crear una aplicación(archivo a enviar al controlador) Cada programa debe tener un main y un end main, es la parte del programa que ejecuta el controlador siempre. Ejemplo main teachable cloc a,b move(a) move(b) ready() end main
;;declarar variables ;;moverse a posicion a ;;moverse a posicion b ;;ir a posicion ready ;;termina el programa
Para poder enviarlo al controlador es necesario compilarlo, (cambia de lenguaje), y posteriormente si no existe alg ún error enviarlo a controlador.
Para correr el programa desde el teach seleccionar la aplicaci ón y oprimir F2 para que corra, antes de que se mueva el brazo se debe oprimir pause / continue, como seguridad, se debe verificar que no exista algo dentro del á rea de trabajo del robot que le impida realizar sus movimientos o una persona dentro del á rea. Para correr el programa desde la computadora, dentro de Robocomm 3 y en la termina seleccionar la aplicación escribir “ash” (stands for applications shell) e indica cuales aplicaciones tenemos, escribir el nombre de nuestra aplicación y finalmente escribir “run”. También se debe oprimir pause / continue, como seguridad, se debe verificar que no existe algo dentro del á rea de trabajo del robot, para terminar el programa, si se quedo en un ciclo oprimir CTRL. + Z para interrumpir el programa. Cambio de posiciones con el teach
Comprobar que este el control en el teach 1. Seleccionar aplicación 2. Escoger editar F1 3. Escoger variable F1 4. Seleccionar variable a editar 5. Seleccionar variable F1 6. Moverse a la nueva posición 7. Guardar posición (tch F1) 8. Confirmar que se desea guardar la variable (F1) 9. Oprimir ESC para regresar al menú anterior 10. Si se desea modificar mas variables seguir paso de 3 al 9 Cambio de posiciones desde la computadora
Comprobar que este en la aplicación correcta, (ventana terminal) ir a nueva posición, escribir “here variable ”, y continuar cambiando posiciones si se desea cambiar má s posiciones.
Tipos de variable
SÍMBOLO
PREFIJO
Int float string cloc ploc
Ninguno % $ _ #
TIPO
Entero Fracción Cadena Posición cartesiana Posición de precisión
Todas estas variables su valor puede ser asignado desde el teach (teachable), es útil como contadores, enviar mensajes y posiciones. Matriz
También existe la posibilidad de crear matrices multidimensionales, el único problema es que no pueden ser teachable las matrices de dos dimensiones si son de tipo cadena, y mayor de tres dimensiones ninguna variable puede se teachable. Creación de nuevas variable Desde el teach
Asegurarse que esta en la aplicación, correcta. 1. 2. 3. 4. 5.
F1 (var) Nombre de la variable type (F2) y dim (F3) especificar el tipo, y tama ño de la variable crear variable (F1) Si se desean má s variables seguir paso 1 al 5
Desde le ventana terminal
Asegurarse que esta en la aplicación correcta. new prefijo nombre ;emplear el prefijo de la variable
1.
Asignación de valores de variables teachables
Desde el teach.
1. 2. 3. 4. 5. 6. 7.
Seleccionar aplicación Seleccionar editar F1 Seleccionar var F1 Desplazarse con F3 o F4 hasta encontrar variable Asignar valor ESC para regresar a menú anterior Se desean modificar mas variables ir a paso 4
Desde la computador
Asegurarse que esta en la aplicación correcta. En el prompt de la ventana terminal escribir Set = nombre = valor
Nombre = nombre de la variable Valor = valor de la variable Control de flujo
1. 2. 3. 4. 5. 6. 7. 8.
BREAK LOOP CASE WHILE FOR DO IF GOTO
BREAK
Salir de un ciclo, loop, while, do, for, do, if LOOP
Hacer un ciclo Ejemplo loop move (a) move(b) end loop CASE
Hacer varias comparaciones. Según la comparación es lo que realiza. Ejemplo int contado case contado of 0: move(a) of 2,3,5: move (b) of 6 to 30: ready()
;;comprobar estado de contador ;;si es igual cero ;;mu év ete a posici ón a ;;si es igual 2 , 3 o 5 ete a posici ón b ;;mu év ;;si esta dentro del rango 6 a 30 ;;ve a ready
end case
WHILE
Hacer un ciclo mientras la sentencia sea verdadera
Ejemplo While (contador < 5]
;;mientras que el contador
sea menor a 5
move(a)
;;ir a
a posici ón
move(b)
;;ir a
posici ón b
contador = contador + 1 end while
;;incrementar contador
FOR
Realizar un ciclo un determinado numero de veces, Ejemplo For x= 1 to 10
;;sentencia inicio y
final
Move posicion(x) End for
;;ciclo a realizar
DO
Hacer un ciclo, pero prueba la condición hasta el final, en el caso de while la prueba antes de empezar, al menos se realiza una vez. do move(a)
;;ir a
a posici ón
move(b)
;;ir a
b posici ón
contador = contador + 1 until contado > 5 mayor a 5
;;incrementar contador ;;hasta que el contador
IF
Si es cierta la condición se realiza el ciclo, para salir por medio de un break a un goto (ir a una lugar especificado por una etiqueta) if (contador < 5]
;;si en contador es
menor a 5
move(a) a posici ón
;;ir a
move(b)
;;ir a
b posici ón
else if (contado >5) move(b)
;;si en con ;;ir a
b posici ón
move(a)
;;ir a
c posici ón
end if GOTO
Ir a una etiqueta. Puerto de entrada / salida de propósito general (GPIO)
Con su nombre lo indica es un puerto de entradas / salidas el cual cuanta con : 16 entrada opto aisladas, NPN • 12 salidas opto aisladas NPN • 4 salidas a relevador, con salida normalmente abierta y salida • normalmente cerrada, conectadas a línea común Una entrada analógica de 0 a 5 volts • Fuente externa.
Soporta una fuente de voltaje de 20 a 28 VCD Se tiene opto aisladas las entradas Fuente Interna
No se tiene las entradas opto aisladas La fuente interna es 24 VCD Consideraciones
No soporta una diferencia de 50 volts CD Las salidas y las entradas no deben exceden de 1 A en todo el puerto si se emplea la fuente interna Las salidas a relevador no deben exceder 2 A 30 VCD, no soportan corriente alterna. Para leer una entrada
input (int canal) ; canal numero de entrada Para habilitar las salidas
output_set(int canal, int estado) Subrutinas y funciones Subrutinas
Una subrutina es un subprograma el cual puede tomar cualquier numero de argumentos (inclusive ninguno), no regresa ning ún valor al programa principal. Se emplea cuando se repiten varios comandos y se quiere ahorrar espacio. Para no estar escribiendo cada vez,
Formato para crear una subrutina. sub sub_indicador (par ám etros) declaraci ón
end sub
Formato para llamar una subrutina. Identificador_sub (par á metro) El tipo de par á metro debe coincidir con el especificado en la declaraci ón de la subrutina, (un error común) también deben coincidir el numero de par á metro. Funciones
Una función es similar a una subrutina, solo que las funciones regresar un valor al programa principal, este puede ser int, flota, ploc, cloc o incluso un apuntador para una cadena, ya que no puede regresar una cadena. Formato func tipo identificador_func (par ám etros) declaraciones
return end func
Al menos debe de contar con un return ya que indica que valor se envia al programa. Formato para llamar una función Existen dos formas de llamar una función.
• •
Como parte de una expresión Por ella misma como una condición
Subprogramas utilizados mas frecuentemente.
Para ver todos los subprogramas se recomienda ver el archivo RAPL –3 Language Reference Guide.pdf ya que aqu í solo se muestran algunos. Se agruparon según la tarea que realizan. • • • • •
Entrada analógica Calibración Entradas y salidas digitales Panel frontal Gripper