Operación del Robot 6GL
INSTITUTO TECNOLÓGICO DE QUERÉTARO LABORATORIO DE INGENIERÍA INDUSTRIAL
MANUAL DE OPERACIÓN DEL ROBOT 6GL
Revisión Octubre Octubre 2008
1
Operación del Robot 6GL
ÍNDICE
CAPITULO 1. INTRODUCCIÓN............. INTRODUCCIÓN......................... ......................... ............................ ........................... .......................... ....................... ......... 3 1.1 PARTES QUE INTEGRAN EL ROBOT ................................. .............................................. .......................... ..................... ........ 3 1.2 CARACTERÍSTICAS DE LOS ROBOTS ARTICULADOS ARTICULADOS ..................... .................................... ................. .. 3 1.3 INSTALACIÓN DE LOS COMPONENTES Y EL SOFTWARE.......................... SOFTWARE................................ ...... 4 CAPITULO 2. AJUSTES / INSTALACIÓN / SEGURIDAD ....................... ................................... ......................... ............. 4 CONSIDERACIONES CONSIDERACIONES DE SEGURIDAD................. SEGURIDAD.............................. .......................... ............................ ........................... .............. .. 4 FUNCIONES DE LAS TECLAS DEL TEACH PENDANT. .......................... ...................................... ...................... .......... 6 SISTEMAS DE COORDENADAS QUE MANEJA EL ROBOT.................. ROBOT............................... ....................... .......... 9 MANEJO DE ROBOT.................... ROBOT.................................. ........................... ........................... ............................ .......................... ........................... ................. .. 9 CAPITULO 3. LENGUAJE DE PROGRAMACIÓN Y OPERACIÓN DEL ROBOT .......... 14 CAPITULO 4. PROGRAMACION.............. PROGRAMACION........................... .......................... ........................... ............................ .......................... ................ .... 28 CAPITULO 5. ENTRADAS Y SALIDAS ................................... ................................................ ........................... .......................... ............ 43
2
Operación del Robot 6GL
ÍNDICE
CAPITULO 1. INTRODUCCIÓN............. INTRODUCCIÓN......................... ......................... ............................ ........................... .......................... ....................... ......... 3 1.1 PARTES QUE INTEGRAN EL ROBOT ................................. .............................................. .......................... ..................... ........ 3 1.2 CARACTERÍSTICAS DE LOS ROBOTS ARTICULADOS ARTICULADOS ..................... .................................... ................. .. 3 1.3 INSTALACIÓN DE LOS COMPONENTES Y EL SOFTWARE.......................... SOFTWARE................................ ...... 4 CAPITULO 2. AJUSTES / INSTALACIÓN / SEGURIDAD ....................... ................................... ......................... ............. 4 CONSIDERACIONES CONSIDERACIONES DE SEGURIDAD................. SEGURIDAD.............................. .......................... ............................ ........................... .............. .. 4 FUNCIONES DE LAS TECLAS DEL TEACH PENDANT. .......................... ...................................... ...................... .......... 6 SISTEMAS DE COORDENADAS QUE MANEJA EL ROBOT.................. ROBOT............................... ....................... .......... 9 MANEJO DE ROBOT.................... ROBOT.................................. ........................... ........................... ............................ .......................... ........................... ................. .. 9 CAPITULO 3. LENGUAJE DE PROGRAMACIÓN Y OPERACIÓN DEL ROBOT .......... 14 CAPITULO 4. PROGRAMACION.............. PROGRAMACION........................... .......................... ........................... ............................ .......................... ................ .... 28 CAPITULO 5. ENTRADAS Y SALIDAS ................................... ................................................ ........................... .......................... ............ 43
2
Operación del Robot 6GL
CAPITULO 1. INTRODUCCIÓN
1.1 PARTES QUE INTEGRAN EL ROBOT 1. Las partes que integran el robot son las siguientes: • • • • •
Brazo Robot Controlador ( para este caso el C500C) Teach pendant serial Terminal( PC) Cables umbilicales ( control y potencia )
1.2 CARACTERÍSTICAS DE LOS ROBOTS ARTICULADOS De los robots de la marca se tienen tres modelos, los cuales son:
ROBOT A255
Grados libertad Alcance
de 5 559 mm
Carga nominal
ROBOT A465
Gradosde libertad Alcance
1.0 kg.
6 710 m
Carga nominal
ROBOT F3
Grados de libertad Alcance Carga nominal
2.0 kg.
6 710 m m 3.0 kg. 3
Operación del Robot 6GL
1.3 INSTALACIÓN DE LOS COMPONENTES Y EL SOFTWARE Para el correcto funcionamiento del robot es necesario realizar una buena instalación física de todos sus componentes así como también de un correcta instalación del software. Primero se recomienda, realizar la instalación del software en la terminal que sea asignada para el robot. Todos los robots traen su software en CD, en donde la instalación es sencilla. Los pasos para la instalación son los siguientes: 1. Se lee el CD de instalación y se encuentra el comando INSTALAR( este comando instala el sistema operativo del robot.). 2. A continuación se procede a instalar el ROBCOMM3 el cual es el lenguaje de programación del robot. Para conectar la PC al robot es necesario configurar el puerto serial COM1 a 57600 bps. Para ello es necesario desde el programa Robcomm3 configurar la velocidad de la siguiente manera: Se escoge el tipo de controlador del robot a utilizar, para este caso el C500, después, en la ventana comsettings se selecciona COM1 y la velocidad de 57600. Si el robot viene en la posición de empaque será necesario desbloquear el robot, para lo cual es necesario aplicar el comando LIMP, el cual lo libera del bloqueo y se puede manipular manualmente. Se debe tener cuidado no aplicar este comando sin tener debidamente sujetado el Robot ya que puede sufrir algún daño debido al impacto que este puede tener.
CAPITULO 2. AJUSTES / INSTALACIÓN / SEGURIDAD
CONSIDERACIONES CONSIDERACIONES DE SEGURIDAD. El controlador y sus componentes cuentan con paros de emergencia que se distinguen fácilmente. Es importante verificar antes de encender el robot por primera vez que estos paros de emergencia no se encuentren activados, ya que al activarse un paro de emergencia se corta la energía del brazo robot. 4
Operación del Robot 6GL
Los paros de emergencia se encuentran conectados en circuitos serie, para que de esta manera al ser activado cualesquiera de ellos, rompe el circuito y se interrumpe la energía del brazo y en este se activan al instante los frenos o bloqueos de los ejes, lo cual evita que el robot se mueva por alguna inercia o por la gravedad. También el software aplica se activa y como medida de seguridad disminuye la velocidad de los ejes a CERO en un período muy rápido de tiempo, lo cual contribuye a no tener movimientos bruscos del brazo robot. Una vez que se restablece un paro de emergencia, la energía se restablece a los motores del brazo, pero no de forma inmediata, es decir , será necesario pulsar el botón ARM POWER del controlador del robot. El controlador C500B esta provisto de una entrada para paros de emergencia, de tal forma que en un sistema se pueden instalar el número de paros de emergencia externos que sean necesarios y con ello garantizar la seguridad, ya que el controlador es el cerebro del robot. Se debe considerar que los paros de emergencia que se conecten al controlador únicamente detendrán al robot. El controlador no tiene salida de paro de emergencia lo cual implica que al ser activado un paro de emergencia del robot, este no podrá parar el sistema en el cual este interactuando. El teach pendant posee un botón de paro de emergencia también. El teach pendant cuenta también con un switch de seguridad en la parte lateral y el cual debe de estar presionado cuando se este trabajando con el robot usando este control. Este switch o palanca de seguridad tiene tres posiciones 1) abierta, 2) cerrada y 3) sobrepresionada. Los movimientos que hagamos con el robot solo serán posibles manteniendo la palanca en la posición 2 ( cerrada ). Si la palanca se encuentra en cualquiera de las otras 2 posiciones. El brazo robot sólo puede ser movido por uno de los dos puntos de control que tiene, es decir, si esta activado el teach pendant solo este tendrá el control del robot. Para poder usar la PC como controlador, es necesario pasar el control a la terminal y deshabilitar el teach pendant. El mismo procedimiento será necesario realizar para ceder el control desde la PC hacia el teach pendant. Cuando el robot se enciende es necesario ponerlo en la posición de HOME, esto con la finalidad de que el robot este colocado en sus referencias de fabrica. Poner el robot en HOME se puede hacer desde el teach pendant o bien desde la PC. Antes de inicializar el robot debemos liberarlo para ponerlo entre las marcas que trae cada eje y después aplicar el comando HOME.
5
Operación del Robot 6GL
FUNCIONES DE LAS TECLAS DEL TEACH PENDANT. 1. TECLAS DEL TEACH PENDANT
F1 , F2 , F3 , F4 A estas teclas se les puede asignar una función, la cual se indicará en la línea del menú de la pantalla actual, numeradas del 1 al 4 respectivamente.
ESC Esta tecla sirve como una salida, paro o para cancelar alguna función seleccionada, también nos lleva al menú anterior. La teclas ESC nos permite parar un programa que se este ejecutando, parando el robot y terminando el programa. Cuando tenemos algún error de una línea que se esta editando, con ESC podemos cancelar la edición y empezar de nuevo.
TECLAS DE EJES Son teclas que se encuentran grabadas por flechas y letras y además contienes los símbolos de "+ " y " - ". Se utilizan para mover el robot de una manera manual, cada par de teclas opera un eje del robot. Para el movimiento LIMP, la tecla que contiene el signo " + " libera el eje que corresponde a la tecla y la tecla con el signo " - " retoma el control de la unión liberada.
6
Operación del Robot 6GL
TECLAS DEL GRIPPER Estas teclas se utilizan para abrir y cerrar el gripper de manera manual
HOME Y READY La tecla HOME alinea el robot a su posición de cero, es necesario mantenerla presionada hasta que el robot termine de ejecutar la instrucción. La tecla READY mueve al robot a una posición de seguridad o inicio programada previamente.
LIMP/NO LIMP ALL Estas teclas se utilizan para seleccionar el tipo de movimiento limp. LIMP ALL libera todas las posiciones del robot para que se puedan mover libremente con la mano. NO LIMP ALL retoma el control de todos los ejes del robot para que mantengan su posición.
MOVE Se utiliza para realizar movimientos en el robot de manera manual y puede ser en dos formas. La forma 005 se pueden realizar movimientos simples, y la forma 006 se pueden realizar movimientos de arreglos.
UP/DOWN INDEX Estas teclas aumentan o disminuyen de uno en uno el número del índice mostrado en un arreglo.
TYPE INDEX Con esta tecla se puede mostrar o rescribir un índice de un arreglo.
FIRST/LAST Permite recibir el primero o el último índice de un arreglo.
INS/DEL/Pack Array Estas teclas se utilizan para insertar dentro, borrar desde y compactar un arreglo.
SPEED DOWN/SPEED UP Estas teclas son usadas para incrementar o reducir la velocidad de movimiento de los ejes del robot. 7
Operación del Robot 6GL
SHIFT Se utiliza para escribir el carácter denotado en la parte superior de una tecla alfabética.
ENTER Esta tecla da entrada a toda la información que se este manejando en el teach p e n d a n t.
8
Operación del Robot 6GL
SISTEMAS DE COORDENADAS QUE MANEJA EL ROBOT Existen cuatro tipos de coordenadas que maneja el robot. Si el robot no ha sido puesto en home solo podrá utilizar la coordenada JOINT.
TIPODE COORDENADA JOINT WORLD
EJES 1 ,2 ,3 ,4 ,5 ,6 , ( 7 ,8 ) X,Y,Z, YAW, ROLL
CYL , R, Z
MOVIMIENTO ARTICULACIONES PITCH, MOVIMIENTOS RELATIVOS A LA BASE DEL ROBOT MOVIMIENTO CILÍNDRICO DONDE ES EL GIRO, R MANTIENE LA HORIZONTAL Y Z LA VERTICAL.
MODO JOINT . Este comando mueve cada uno de los ejes con las teclas correspondientes, es el único modo que se puede utilizar antes de poner en HOME al robot. MODO WORLD. El origen de este modo es el centro de la base del robot, la coordenada Z se extiende verticalmente hacia arriba de la base del robot, la coordenada Y se extiende hacia el lado derecho, y la coordenada X se extiende hacia el frente del robot. En cada tipo de movimiento se puede incrementar o disminuir la velocidad del robot, con las teclas del teach pendant. También cuando se mueve el robot manualmente se debe de seleccionar un tipo de movimiento, que puede ser, de velocidad o de JOG.
MANEJO DE ROBOT 1. MOVIMIENTO DEL ROBOT Por medio del teach pendant y únicamente realizando movimientos individuales en cada uno de los ejes, se pueden realizar de la siguiente manera: 1. 2. 3. 4.
Seleccionar F1 que son las aplicaciones del robot. Dentro de las aplicaciones podemos revisar hasta encontrar test. Presionar F1 para seleccionar test ( sel) Presionar F3 para seleccionar el tipo de movimiento, comenzando con la velocidad de movimiento de los ejes. 9
Operación del Robot 6GL 5. Con F4 podemos seleccionar el tipo de movimiento en donde tenemos las opciones vistas anteriormente 6. Con las teclas de movimiento que contienen las flechas podemos empezar a dar movimiento al robot. Podemos estar probando los tipos de movimiento del robot así como las diferentes velocidades, para obtener dominio del brazo robot. Es importante que el robot tenga locaciones especificas, por lo que es necesario grabar cada una de las locaciones que nosotros creamos pertinentes, o bien que algún proceso determinado no lo exija.
Como grabar posiciones del robot desde el teach pendant 1. Como primer paso se fija el robot en la posición que queremos grabar y se a ce p t a e n e l co m a n d o d e l t e a ch p e ndant. 2. En el teach pendant se presiona la tecla F1 y aparece (var), lo cual nos indica que debemos insertar una variable a esa posición. 3. Debemos de insertar la variable que nosotros asignemos a la posición en donde podemos asignar una letra. 4. En el paso anterior aparecerá en la pantalla Var Create indicándonos el nombre que le asignamos a la variable. Es necesario presionar F1 (make) para crear o grabar la nueva posición. 5. Con F1 ( sel )podemos seleccionar una nueva variable 6. Mover el robot a otra locación que se desee guardar 7. Presionar F1 para grabar la posición en la tabla de variables. Para determinar más locaciones se deben de repetir los pasos anteriores.
Saliendo del teach pendant hacia la computadora Para salir del teach pendant se empieza a presionar la tecla ESC hasta llegar a la pantalla donde aparezca la pregunta, que nos informa si queremos salir del pendant donde tenemos que definir el SI o el NO, si es SI el control pasará a la computadora, si es NO se queda el control en el Teach.
Saliendo de la computadora hacia el teach En la terminal del ROBCOMM3 aparecerá un prompt de signo de pesos, enseguida del prompt debemos escribir pendant y el control pasara al teach pendant. Debemos recordar que el control del robot solo puede estar en una de las dos partes anteriores, pero no en las dos a la vez.
10
Operación del Robot 6GL
2. MOVIENDO EL ROBOT DESDE LA PC Aplicación Ash La aplicación ASH nos permite enviarle comandos al robot para que este los ejecute, para poder trabajar con la aplicación ASH debemos de entrar primeramente al ROBCOMM3, luego pulsar el icono TERMINAL.( se debe de verificar que el control sea pasado a la PC ). Una vez que estemos en la PC y abierto el programa del robot, debemos de abrir una aplicación de la siguiente forma:
$ a s h pr ue ba si esta aplicación no esta grabada o creada nos preguntará si deseamos crearla, para lo cual debemos de pulsar la tecla Y de si , con esto se creará una nueva aplicación y aparecerá:
pr ue ba > después de creada la aplicación podemos insertar los comandos que se quieran utilizar para trabajar con el robot desde la PC sin necesidad del teach pendant. Para realizar movimientos con esta aplicación los procedimientos son los siguientes:
NOTA: todos los comandos se deben de escribir con minúsculas. joint # ángulo, mueve una unión a la vez, en donde # indica el número de la unión y el ángulo es en grados. wx distancia, mueve el robot sobre la dirección del eje X por la distancia especificada. wy distancia, mueve el robot sobre la dirección del eje Y por la distancia especificada. wz distancia, mueve el robot sobre la dirección del eje Z por la distancia especificada. move_ (nombre de locación) mueve el robot a la variable de la locación grabada. Las distancias pueden ser en milímetros o pulgadas. Otros comandos de operación en el modo ash son los siguientes:
11
Operación del Robot 6GL
COMANDOS DE OPERACIÓN DEL MODO ash
joint articulación, grados speed valor
w0 w1 wx,wy,wz xrot, yrot, zrot ready cready tx,ty,tz yaw,pitch,roll go gc here name cloc ploc # print nombre list new tipo name set name=valor erase output salida, valor appro nombre,distancia depart distancia tool x,y,z,jaw,pitch,roll
Movimiento relativo a la posición deseada, puede ser positivo o negativo. Proporciona la velocidad a la que queremos trabajar, sin valor nos indica la velocidad a la que estamos trabajando. Muestra valores de las articulaciones, valor de la posición y del encoder. Muestra en tiempo real el valor del encoder, para salir se presiona ctrl. +E. Mueve el robot en el modo worlden función del sistema métrico seleccionado. Rota en relación al eje indicado en sentido positivo o relativo. Coloca al robot en una posición determinada. Coloca el brazo en posición vertical. Mueve las articulaciones en modo tool. Rota en modo tool, segun el eje indicado. Abre gripper. Cierra gripper. Enseña la posición en que se encuentra Coordenadas cartesianas Localización en función de pulsos Muestra el valor de la variable Muestra los puntos guardados Crea una variable de nombre y tipo indicado. Asigna un valor a la variable que se indique Borra la variable que se le indique. Establece una salida al valor Mueve a una distancia del punto indicado con respecto al gripper. Se aleja del punto actual respecto al gripper. Establece la posición del centro de gravedad .
12
Operación del Robot 6GL Como grabar posiciones del robot desde la PC 1. Se debe de estar en la aplicación que va a ser modificada 2. Usando los comandos de movimiento de ash, mover el robot a la posición d e sa d a 3. En el prompt escribir el comando here variable ( here a) 4. repetir los pasos para cuantas posiciones se necesiten
13
Operación del Robot 6GL
CAPITULO 3. LENGUAJE DE PROGRAMACIÓN Y OPERACIÓN DEL ROBOT 1. INTRODUCCIÓN AL ROBCOMM3 El ROBCOMM3 es un software que esta basado en windows y diseñado para utilizarse con el RAPL3. se usa esta interfase para tener una comunicación entre la computadora y el controlador.
Abriendo el ROBCOMM3 • • •
Desde el menú inicio seleccionar programas Encontrar ROBOTICS Seleccionar Robcomm3
Con lo anterior ya se esta dentro del programa y con ello podemos utilizar los iconos que nos muestra el software, podemos abrir la ventana del editor y abriendo un nuevo documento.
14
Operación del Robot 6GL
Nombrar y salvar un programa • • •
Dentro del menú file seleccionar save as Escribir el nombre que se desee Hacer clic en ok
15
Operación del Robot 6GL Creando una nueva aplicación • • • • •
Una vez salvado el archivo, ir a la ventana del menú aplicación Seleccionar new app El nombre de la aplicación será el mismo que el nombre del archivo fuente Regresar al menú de la aplicación y seleccionar setup Todas las líneas deben de ser llenadas y aplicar ok.
16
Operación del Robot 6GL
E s c r i bi e ndo una a pl i c a c i ón Cada programa en RAPL3 debe de tener una construcción de bloque "main.....end main"como esta en la entrada y salida de cada programa. Crear un programa que mueva el robot de una posición grabada y después se mueva a otra posición y por último se ponga en posición ready. El comando move(): este comando mueve el centro de la punta de la herramienta la posición especificada en modo de unión interpolada, es decir las uniones del robot se mueven y paran al mismo tiempo. Para usar el comando se debe de escribir de la siguiente forma move(_location name) se debe asegurar de incluir los paréntesis y un guión bajo en frente del nombre de la locación. ready(): este comando mueve el brazo a la posición ready. El programa puede quedar de la siguiente forma: main teachable cloc a,b move (-a) move (_b) ready() end main
17
Operación del Robot 6GL Compilando un programa Cuando se compila un programa, se esta creando un programa, objeto del archivo fuente y existen tres maneras de compilar un archivo. • • •
Desde la barra de herramientas, seleccionando el botón compile. Desde el menú de aplicación, seleccionando compile Desde la ventana del editor, con el botón derecho del mouse haga clic,de esta formas se despliega un menú de trabajo, seleccionar compile.
18
Operación del Robot 6GL
Si la compilación fue exitosa, Ralp-3 despliega un mensaje en la pantalla indicándonos que la compilación fue buena, para lo que es necesario aceptar.
Si existen errores también no lo indica, para lo cual es necesario corregir el programa fuente y volver a compilar hasta que este se pueda compilar.
19
Operación del Robot 6GL Cargando el programa en el controlador El programa una vez compilado se queda en la PC por lo que es necesario mandar el archivo objeto al controlador, para ello es necesario realizar el procedimiento siguiente: • • • •
Mandar el archivo Desde el menú herramientas, seleccionar send app Desde el menú application, seleccionar send Desde la ventana del editor, haciendo clic en el botón derecho del mousese despliega un menú de trabajo donde se selecciona send.
20
Operación del Robot 6GL
Sobrescribiendo posiciones con el teach pendant 1. 2. 3. 4. 5. 6. 7. 8. 9.
Seleccionar F1 ( edit) Seleccionar F1 ( var ) Usando F3 y F4 par mostrar todas las variables Seleccionar la variable a, presionar F1 (SEL) Mover el robot a la nueva posición Presionar F1 (TCH) para enseñar esa nueva locación Presionar F1 (YES) cuando muestre la pregunta " TEACH VARIABLE" Presionar ESC para regresar a la pantalla de "VAR FIND" Repetir los pasos del 4 a 8 para la posición B
Para ejecutar un programa, es necesario tener grabadas las posiciones a las cuales le indicamos que se mueva en programa, como lo indicamos en el capítulo anterior. Una vez que se tiene el programa, que este ha sido compilado y enviado al controlador y que las posiciones han sido verificadas o grabadas, se procede a ejecutar el programa de la siguiente forma:
21
Operación del Robot 6GL Desde el teach pendant, se selecciona app, luego se selecciona la aplicación run y se confirma la ejecución. Desde la PC. Dentro del Robcomm3 y una vez que aparece el prompt se selecciona la aplicación que fue grabada, cuando aparece la aplicación se teclea run y se le da enter ejecutándose asi el programa.
2. SISTEMAS DE COORDENADAS Modo cilíndrico Para mover el robot en modo cilíndrico solo se puede hacer desde el teach pendant. El sistema de coordenadas cilíndrico esta definido por: 1. Una rotación alrededor del eje Z 2. Una distancia alejada del eje Z 3. Una distancia ( altura) a lo largo del eje Z
Sistema coordenado tool Este sistema coordenado esta directamente relacionado a el flanco del plato de la herramienta en el final del brazo del robot. Para la serie A de los robots, el eje que apunta hacia fuera del centro del plato de herramienta es el eje X de la herramienta. Para la serie F el eje Z apunta hacia fuera del centro del plato de la herramienta. Para que el robot se mueva en este modo, es necesario utilizar el teach pendant. Si se quiere mover el robot sin el uso del teach pendant, el robot se va a mover en el ambiente ash, los comandos en ash para mover el robot en modo tool son similares a los comandos en modo world y se escriben de la siguiente forma:
tx distancia ty distancia tz distancia estos comandos mueven al robot a una posición relativa a la herramienta
22
Operación del Robot 6GL Comandos relacionados con el Gripper Al final del brazo del robot regularmente se instala una pinza con dedos, los cuales pueden tener diferentes formas dependiendo de la tarea que se tenga que realizar. Para manipular los dedos de cualquier tipo de gripper se utilizan los mismos co m a n d o s.
grip_open(). Abre el gripper. Si se esta usando un servogripper, dentro de los paréntesis se puede escribir la fuerza de trabajo que se desee, siendo el parámetro de 0 a 100%. Si no se usa servogripper no se debe de incluir ningún valor. grip_close(). Cierra el gripper y se aplican los mismos parámetros que el grip_open. grip_finish(). Mantiene la ejecución del programa, cuando encuentra el comando grip_finish() hasta que el movimiento del gripper ha terminado. finish(). Obliga al programa a esperar este comando hasta que los movimientos del robot han terminado.
EJERCICIO: 1. En la locación a cerrar gripper 2. Mover el robot a la locación b 3. En la locación b abrir gripper
Comandos aproach y depart (acercarce y retirarce) En ocasiones resulta necesario que el robot no llegue directamente a un punto, sino solo que se aproxime o retire, para ello se utilizan estos comandos.
appro() mueve el centro de la punta de la herramienta a una posición aproximada. La posición de aproximación es definida por una locación y una distancia a lo largo del eje de la herramienta. Ejemplo:
appro(a,40) el robot se va a aproximar a la locación "a" 4 centímetros. Desde ash la sintaxis cambia ya que los valores no se ponen entre los paréntesis a s h a ,4 0
23
Operación del Robot 6GL depart() mueve el centro de la punta de la herramienta fuera de la posición actual a lo largo del eje de la herramienta. Ejemplo:
depart(20) retira el robot de la posición en que se encuentra 2 cm. Desde ash
de pa r t 2 0 Comandos de Velocidad La velocidad de trabajo del robot se puede establecer desde el comando ash o bien en el programa Rapl3
ash escribir el porcentaje de velocidad a la cual se quiere trabajar de 0 a 100% Rapl3: speed_set(%) o speed(%) La velocidad en el movimiento de una trayectoria puede ser variable de acuerdo a la longitud de la trayectoria, también de acuerdo a las locaciones y a el acercamiento, etc. EJERCICIO: 1. Grabar 2 nuevas locaciones al programa 2. adicionar un comando appro y depart para las dos primeras locaciones a y b 3. antes del comando depart establecer una velocidad del 20% 4. después del comando appro establecer una velocidad del 50% 5. enseñar las 2 nuevas locaciones usando ash 6. ejecutar el programa.
24
Operación del Robot 6GL V a r i a bl e s
S í m bol o Ninguno % $ Guión bajo (_) #
Ti po Entero Flotante Cadena Cloc(cartesiano) Ploc(punto de presición)
Dentro de un programa las variables se usan para: 1. 2. 3. 4. 5.
Nombrar una locación Poner un nombre igual a una Constante Usar contadores Definir arreglos e t c.
Convención para nombrar las variables En el Rapl3 los nombres de las variables pueden ser de cualquier longitud, sin embrago los primeros 32 caracteres son los importantes. Números y guión bajo pueden ser utilizados como primer carácter en un nombre.
Tipos de datos Todas las variables pueden ser definidas como un tipo de dato de la tabla que se mostró al momento de declarar estas en el programa. Las variables son declaradas usando el tipo de dato de la variable con el nombre de la variable.
Asignación de variables Las variables que son asignadas dentro del programa Rapl3, pueden ser asignadas ya sea en la declaración de línea, o en cualquier parte del programa. La asignación de una variable ocurre cuando la variables es cargada con un valor actual. Las variables del tipo teachable, le pueden ser asignados valores en el prompt de ash, usando el comando set. Para asignar los valores a las variables se usa el operador"=", ejemplo: Prueba> set A_VALOR=5 Rapl3 soporta la asignación de valores en codigo ASCII para caracteres, usando el carácter actual encerado entre comillas simples, ejemplo: 25
Operación del Robot 6GL
Char="A"
Variables del tipo teachable Las variables de este tipo son aquellas que son declaradas en el programa Rapl3 y que aún no les ha sido asignado valor. Para crear este tipo de variables, se debe de usar la palabra teachable antes de la variable que se esta declarando. La asignación de la variable va a ser suministrada por el usuario antes de correr el programa. Las variables teachable son declaradas al comienzo del programa principal o bien en un subprograma. Si la variables es declarada como variable global, todos los subprogramas y el programa principal de cualquier archivo van a compartir el valor de esas variables, lo cual no es muy recomendable. Este tipo de variables no pueden ser declaradas y a la vez asignarles un valor o inicializarlas. Las variables teachables pueden ser de cualquier tipo, si no se declara el tipo por default se declara cloc(cartesiana) y ploc ( presición ).
Movimiento en línea recta Este tipo de movimiento mantiene el centro de la herramienta con movimiento en línea recta. Los comandos de movimiento pueden ser generados para mover el robot en línea recta, adicionando una "s" al final del comando, ejemplo move(a) se mueve a la posición a pero no en línea recta moves(a) se mueve a la posición a en línea recta En ocasiones resulta imposible para el robot llegar de una posición a otra en línea recta por lo que será necesario grabar algunas locaciones intermedias y que el movimiento se pueda dar. EJERCICIO: En el programa que se tiene convertir todos los movimientos a línea recta y observar la diferencia.
26
Operación del Robot 6GL Imprimiendo en pantalla Imprimir mensajes en la pantalla de la PC, es útil para depurar programas. Si se usa correctamente, se puede saber donde el programa ha fallado, que error ha ocurrido, etc. El comando mas favorable para realizar esto es printf La expresión que se quiere que salga en pantalla se debe de encerrar entre comillas Printf("el robot esta trabajando") Se puede utilizar un salto de línea añadiendo un \n, ejemplo Int a=12 Printf(" el valor de a es {}\n",a);;esta línea se imprimirá en la pantalla como: ;; el valor de a es 12
27
Operación del Robot 6GL CAPITULO 4. PROGRAMACION ESTRUCTURA DE LOS PROGRAMAS El formato general para un programa en RAPL3 es similar a los programas en lenguaje "C", en donde hay que respetar ciertas estructuras ya definidas para poder interactuar con la interface de usuario y realizar programas. El formato es el siguiente: definición de variables: principal)
teachable
(puede ser antes o después de definir el segmento
cloc a,b.....z,a1.... a xx, [10] puntos, etc...... pl oc
i nt i , a 1 . . . . a x x , float b.... etc. para el caso en que las variables se refieran a ubicación de puntos grabados en el controlados del robot, se especifica el tipo de exactitud de las variables (cloc, ploc) en dónde cloc (cartesian location) se refiere a que se va a referenciar para la exactitud en sistema de coordenadas cartesiano, y ploc (points location) lo hará directamente de los puntos provenientes de los "decoders" del robot; se obtiene mas presición con el tipo ploc definición del segmento principal:
ma in
;; definir el segmento principal, comienzo de todo programa ;; es conveniente poner comentarios cuando se realiza y ;; estructura un programa para una mejor comprensión
ready() move (a) move (b) ..... ..... ..... ready()
;; aquí comienza la programación deseada
e nd m a
;; fin del programa con el cierre del segmento principal
;; termina la programación
in Esta es la estructura básica de los programas, con la cual debe contar todo programa para interactuar con la interface del robot
28
Operación del Robot 6GL
CREACION DE PROGRAMAS Los pasos para la creación de algún programa son los siguientes: 1. 2. 3. 4. 5. 6. 7. 8.
abrir el editor de texto (icono de hoja nueva o desde el menú File --Open Se recomienda tener las pantallas de editor y terminal abiertas crear el listado salvar el programa con un nombre definido con extensión .r3 en un directorio deseado ( nombre.r3, el programa no lo hace automáticamente) compilar el programa (icono, menú Application, o botón derecho del ratón) crear una aplicación con el mismo nombre del programa fuente en la pantalla de terminal (ash) (nombre) Crear un nexo entre el programa fuente y la aplicación por medio de New app del menú application, la cual debe tener el mismo nombre y proceder del mismo directorio que el programa fuente, ( nombre.app) Para verificar, en el menú apliccation, seleccionar setup, el cual en este punto debe contener los 3 tipos de archivos creados: nombre.r3 nombre.app nombre
"programa fuente" "archivo de enlace" "aplicación de terminal"
REALICE LA SIGUIENTE PRACTICA: 1. 2. 3.
encienda el controlador del robot y inicialícelo (home, ready, y pase el control a la PC) abra la interface robcomm3 y abra las pantallas de terminal y de nueva edición (new del menú file) en la pantalla del editor, escriba lo siguiente: teachable cloc a,b main ready() move (a) move (b) ready() end main
4. 5.
salve el programa (save as del menú file) en el directorio de ejemplos con un nombre cualquiera y extension r3 pase a la pantalla de terminal y cree la aplicación correspondiente en el controlador (ash nombre) 29
Operación del Robot 6GL 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
el controlador al no encontrar una aplicación con ese nombre, pregunta si desea crearla, para aceptar teclee "y" (yes) del menu application, seleccione new app, y asígnele el mismo nombre con extensión app y en el mismo directorio (nombre.app) verifique que esten presentes los tres elementosa básicos del programa (menú application, opción setup); en caso contrario realice los pasos del 4 en adelante hasta lograr que aparezcan) compile el archivo (application -- compile) o botón derecho mande la aplicación al controlador (application -- send) o botón derecho en la pantalla de terminal, ejecute el programa (run) al no haber grabado posiciones, el controlador avisa para que las variables de posición sean definidas. con los comandos de terminal mueva al robot a una posición cualquiera, y asigne esa posición a la variable "a "(here a) haga lo mismo para la variable "b" corra de nuevo el programa y observe Haga algunos agregados (mas posiciones, comandos del gripper, etc), compile y mande la aplicación corregida y observe
OTRO METODO POSIBLE DE PROGRAMAR Y ASIGNAR VARIABLES Otra manera viable de realizar el proceso de programación, es interactuando directamente con el robot e ir asignando las variables aun sin haber realizado el listado del programa; esto permite el ir moviendo el robot con los comandos de terminal o con el "teach pendant" e ir asignando la secuencia de variables que se utilizara en el programa; a su vez y puede ser de forma paralela, el ir creando el listado del programa conforme a los movimientos que se van realizando y a las variables que se van asignando. Para ejemplificar mejor este aspecto, realice el siguiente ejercicio: 1.
2. 3. 4.
5. 6.
Salga de la aplicación actual que este presente en el controlador, por medio del comando "exit" en la pantalla de terminal, y cierre la aplicacion de nexo presente de la pantalla del programa robcomm3 por medio de seleccionar "close app" del menu application Desde la pantalla de terminal, cree una nueva aplicación que se llame curso por medio del comando "ash curso" y acepte la nueva creación mueva el robot a la posición de ready asigne una nueva variable directamente al controlador, por medio del (para asignar variables tipo cartesiano se agrega el comando "new a" simbolo de guion bajo " _" , y para variables del tipo de presición, el símbolo de numero "#" ) asigne la variable b con el comando "new _b" en la pantalla de terminal, teclee el comando "list", para observar las variables existentes (observara que las variables aparecen precedidas del simbolo " * " , lo que indica que no han sido asignadas posiciones a estas variables)
7.
mueva el robot a una posición distinta con el comando "joint 1,100" 30
Operación del Robot 6GL 8. 9. 10. 11. 12.
indique que esa posicion se le asignara a la variable a, por medio del comando "here a" teclee de nuevo el comando "list" y observe mueva el brazo a otra posición, digamos "joint 2,50" teclee de nuevo el comando "list" y observe ahora abra una nueva pantalla de editor y nómbrela "curso.r3" y teclee el siguiente programa: teachable cloc a,b main ready() move (a) move (b) ready() end main
13. 14. 15.
cree una nueva aplicación de nexo llamada curso.app observe la pantalla de setup (setup del menu application) (tiene que estar los tres elementos basicos, fuente, aplicacion y nexo; de lo contrario repita los pasos anteriores) corra el programa y observe
DECLARACION DE VARIABLES TIPO ARREGLO (ARRAY) Un arreglo de variables es útil por ejemplo cuando se van a realizar movimientos a posiciones secuenciales diferentes, o cuando se realizan operaciones complejas, o cuando se necesita guardar resultados en diferentes variables de manera secuencial, etc (depende del programador). y para definir estas variables, solo se define en la declaración el número de localidades o diferentes valores va a contar dicha variable: teachable cloc [5] a, [5] b, c..... etc
REALICE LA SIGUIENTE PRACTICA: 1.
del mismo ejercicio anterior, corrija la declaración de variables por lo siguiente:
teachable cloc [5] a teachable cloc b 31
Operación del Robot 6GL 2.
corrija el listado del programa por lo siguiente: main ready() move (a[0]) move (a[1]) move (a[2]) move (a[3]) move (a[4]) move (a[5]) move (b) ready() end main
3. 4. 5. 6. 7.
agregue esas 6 nuevas posiciones y salve el programa con otro nombre2.r3 cree la aplicación en la terminal (primero salga de la aplicación actual con el comando exit en terminal) cree el nuevo nexo con una nueva aplicación (primero salga de la aplicación actual con close app del menu application) defina nuevas posiciones para las variables ejecute el programa y observe.
COMENTARIO: Es recomendable cambiar y realizar todo el proceso de creación de un programa cada vez que se realicen cambios a este, ya que el controlador no acepta los cambios realizados, sobre todo cuando se cambian o agregan variables de diferente tipo a los programas. Se debe tener especial cuidado cuando se realicen cambios a los programas y verificar efectivamente que las correcciones realizadas se lleven a cabo. Una manera de seguir con los mismos programas fuente y aplicaciones cuando se hacen correcciones en las variables, es el eliminarlas del controlador completamente y reasignar las posiciones de todas las variables, o las que se hayan corregido al menos con el comando "erase "
PROGRAMACION DE MENSAJES, VELOCIDAD, RETARDOS Y OPERACION DEL GRIPPER Algunos comandos útiles que se utilizan comúnmente son los siguientes:
REFRESH el cual limpia y "resetea" o inicializa la memoria del controlador para evitar degradación de los códigos con basura. (en la pantalla de terminal) LI S T
muestra todas las variables existentes en uso por la aplicación actual y marca con * las que no se hayan asignado
32
Operación del Robot 6GL Delay(#milisegundos) útil cuando se programan esperas definidas (en edición de programas) finish()
espera a que la instrucción anterior se realice completamente antes de proceder a ejecutar la siguiente
grip_open()
abre el gripper
grip_close()
cierra gripper
speed(0-99)
cambia la razón de velocidad del robot y se expresa en porcentaje
REALICE LA SIGUIENTE PRACTICA: 1.
Realice el siguiente programa y sálvelo con un nuevo nombre (recuerde salir y cerrar las aplicaciones actuales) teachable cloc a,b,c main ready() printf ("moviendose a punto a\n") move (a) printf ("espera de 5 segundos\n\n\n") delay(5000) grip_open() printf ("moviendose a punto b\n") move (b) finish() speed(30) printf ("aumentando la velocidad de operación \n") move (c) finish() printf ("se move a punto c y espera a que termine \n") printf ("espera de 3 segundos \n") delay (3000) grip_close() printf ("fin del programa y se va a posición de ready \n") ready()
end main 2. 3.
salve, compile, cree aplicación, nexo, ejecute el programa y observe haga modificaciones a su gusto y observe. 33
Operación del Robot 6GL CICLOS REPETITIVOS
for variable=xx to xx ....... end for
CICLO
repetición de secuencias del programa con numero finito de veces
REALICE LA SIGUIENTE PRACTICA: 1.
Realice el siguiente programa: teachable cloc [5] a teachable cloc b int c main ready() for c=1 to 5 printf("realizando el ciclo: [{}]\n",c) move (a[0]) move (a[1]) move (a[2]) move (a[3]) move (a[4]) move (b) end f or ready() end main
2.
realice todo el proceso de enviar el programa y observe
CICLO
goto etiqueta
REALICE LA SIGUIENTE PRACTICA: 1.
sobre el mismo programa anterior, realice los siguientes cambios:
34
Operación del Robot 6GL
teachable cloc [5] a teachable cloc b main ready() regreso1:: move (a[0]) move (a[1]) move (a[2]) move (a[3]) move (a[4]) move (b) goto regreso1
end main 2.
Ejecute el programa y observe
Este modo de ejecutar programas aunque es posible no es recomendable bajo ciertas circunstancias, debido a que como se observó, la única manera en este caso de salir del programa es utilizando los paros de emergencia o forzando el apagado del programa desde la pantalla de terminal utilizando la secuencia .
CICLO
loop
...... end loop
Otra herramienta útil para realizar ciclos, es esta función, que aunque básicamente es un ciclo incondicional, fácilmente puede utilizarse como un ciclo dependiente de cierta condición, lo cual, se verá posteriormente. Otra manera de asignar valores a variables que no cambiarán su valor, y para una mejor comprensión al utilizarlas, es darle valores predeterminados a estas variables con nombres complejos definiéndolas desde el comienzo de los programas con la herramienta (.include)
REALICE LA SIGUIENTE PRACTICA: 1.
Cierre todas las aplicaciones y cree este nuevo programa: teachable cloc a,b,c,d .define alta 100 .define media 40 .define baja 10 main
35
Operación del Robot 6GL ready() loop speed(baja) move (a) speed(media) move (b) speed(alta) move (c) delay(5000) move(d) end loop end main 2. 3. 4.
Salve, compile cree aplicacion y nexo y enseñe al robot las nuevas posiciones Ejecute el programa y observe Realice modificaciones a su gusto y observe los cambios.
CICLOS CONDICIONALES CICLO
if .........
end if
Una de las herramientas más útiles en cualquier lenguaje de programación, es el poder verificar el estado de cierta variable, condición o estado de alguno de los parámetros asociados de que es capaz de manejar el ambiente o dispositivo a programar; para la creación de ciclos condicionales con el ciclo loop, se puede verificar cierta condición con la función "if" y si se cumple, agregar la función "break", con la cual se podrá salir del ciclo a la siguiente instrucción posterior al "end loop."
REALICE LA SIGUIENTE PRACTICA: 1.
Modifique el programa anterior de la siguiente manera: teachable cloc a,b,c,d .define alta 100 .define media 40 .define baja 10 main ready() int e=0
36
Operación del Robot 6GL loop speed(baja) move (a) speed(media) move (b) speed(alta) move (c) delay(5000) e=e+1 if e>5 break end if end loop move(d) delay(5000) ready() end main 2. 3.
aplique un refresh al controlador y compile y mande este nuevo programa; observe que el ciclo loop se ha convertido en un ciclo condicional realice modificaciones y observe
while
CICLO
..........
end while
Para este caso, la secuencia del programa se ejecuta repetitivamente hasta alcanzar cierta condición, que puede ser un valor en especial de una variable o una señal digital de entrada
REALICE LA SIGUIENTE PRACTICA: 1.
Cierre aplicación nexo y programa y cree un conjunto nuevo con este listado teachable a,b main int c=1 while c<5 ready() move (a) move (b) c=c+1
37
Operación del Robot 6GL end while ready() end main 2. 3.
Ejecute el programa y observe Realice algunos cambios y observe
CICLO
do
..........
until
REALICE LA SIGUIENTE PRACTICA: 4.
Cierre aplicación nexo y programa y cree un conjunto nuevo con este listado teachable a,b main int c=1 do ready() move (a) move (b) c=c+1 until c>5 ready() end main
5. 6.
Ejecute el programa y observe Realice algunos cambios y observe
SUBRUTINAS Otra característica especial de este tipo de lenguajes, es la compilación por módulos o separada, lo que permite que se puedan definir subrutinas separadas del programa principal y utilizarse llamándolas cuando sea necesario; estas subrutinas por lo general contienen partes de un programa o secuencia fijos, es decir, que no varían aunque la secuencia de su utilización así como otras acciones se puedan controlar desde el programa principal. Para la utilización de subrutinas en un programa, es necesario incluirlas en las declaraciones que va a usar el programa principal por medio de la función .include tal como se muestra a continuación; y el formato de los archivos que contengan las subrutinas, no deberan contener la función main, y en vez de esto,
38
Operación del Robot 6GL tener como encabezado y fin de las subrutinas, las sentencias sub nombre() y end sub respectivamente.
REALICE LA SIGUIENTE PRACTICA: 1.
Cierre aplicación nexo y programa y cree un conjunto nuevo con este listado, que se llame sub1.r3 .include sub2.r3 .include sub3.r3 teachable cloc a,b main ready () move(a) finish() printf("movio a punto a y espera de 3 seg\n") delay(3000) finish() printf("ejecutando subrutina 2 y espera de 5 seg\n") sub2() ;; ejecucion de subrutina 2 printf("termina la subrutina 2, mueve a b y espera de 3 seg\n") move(b) finish() delay(3000) finish() printf("ejecutando subrutina 3 y espera de 5 seg\n") sub3() printf("termina la subrutina 3, mueve a b y espera de 3 seg\n") move(b) finish() delay(3000) finish() ready() finish() printf("termina el programa\n") end main
2.
Abra un nuevo editor y escriba la siguiente subrutina y sálvela con el nombre de sub2.r3 sub sub2() teachable cloc c 39
Operación del Robot 6GL
delay(5000) move(c) finish() printf("movio a c en subrutina 2 y espera de 3 seg\n") delay(3000) finish() e n d su b 3.
De nuevo abra un nuevo editor y escriba la siguiente subrutina y sálvela con el nombre de sub3.r3 sub sub3() teachable cloc d delay(5000) finish() move(d) finish() printf("movio a d en subrutina 3 y espera de 3 seg\n") delay(3000) finish()
4. 5. 6. 7. 8. 9. 10.
e n d su b Ahora abra la pantalla de terminal, del menú window, seleccione la opción Tile; asegúrese de haber encendido el robot y cree la aplicación sub1 por medio del comando ash sub1 Del menú Application seleccione New app y cree el nexo sub1.app Asegúrese de que en el setup aparezcan los tres elementos y compile el programa principal (sub1.r3) hasta que no aparezcan errores mande al controlador el programa (send) Ejecute el programa para que reconozca las variables a usar Mueva el robot y grabe 4 diferentes puntos ejecute el programa, realice algunas modificaciones y observe.
EJECUCIÓN DE SEGMENTO CON CONDICIÓN (CASE) Algunas veces se hace necesario redirigir el flujo del programa para realizar alguna terea específica dependiente de un valor de una variable, condicion o entrada digital, esto puede ser realizado con la función case.
FUNCION
case
..........
of xx
REALICE LA SIGUIENTE PRACTICA 40
Operación del Robot 6GL 1.
Cierre todas las aplicaciones y programas, y cree este programa nuevo. teachable cloc a,b,c,d main int e=1 string[64] mensaje ready() loop printf("el contador es: {}\n",e) delay(6000) finish() ca se e of 1: mensaje = "caso de 1 paso a posicion a\n" printf(mensaje) move(a) finish() o f 2 ,3 ,5 : mensaje = "caso de 2,3 o 5 y paso a posicion b\n" printf(mensaje) move(b) finish() o f 6 to 8 : mensaje = "paso a posicion c, en los casos del 6 al 8\n" printf(mensaje) move(c) finish() o f 9 to 1 0 , 1 2 to 1 4 , 1 6 : mensaje = "posicion d cuando e es de 9 a 10, de 12 a 14, o 16\n" printf(mensaje) move(d) finish() else mensaje = "caso indefinido, no hago nada\n" 41
Operación del Robot 6GL printf(mensaje) e n d ca se e=e+1 if e>17 break end if end loop ready() finish() printf("fin del programa.....adios\n") end main 2. 3. 4. 5. 6.
salve con un nombre nuevo y abra las aplicaciones correspondientes, compile y asegúrese de que en el setup aparezcan los tres elementos y compile el programa principal hasta que no aparezcan errores mande al controlador el programa (send) Ejecute el programa para que reconozca las variables a usar Mueva el robot y grabe 4 diferentes puntos ejecute el programa, realice algunas modificaciones y observe.
42
Operación del Robot 6GL CAPITULO 5. ENTRADAS Y SALIDAS DISTRIBUCIÓN FÍSICA DE PUERTOS DE ENTRADAS Y SALIDAS DIGITALES Y CONECTORES PUERTO DE ENTRADAS / SALIDAS DIGITALES GPIO El controlador C500C del robot cuenta con un juego de entradas y salidas digitales, con las cuales poder interactuar en tiempo real con el medio externo y poder monitorear o controlar dispositivos externos; este controlador cuenta con 16 entradas digitales opto aisladas, 4 salidas con contactos de relevador y 12 salidas opto aisladas.
CONSIDERACIONES EN EL DIESÑO DE CIRCUITOS Si se va a usar el puerto GPIO, se deben tener en cuenta las siguientes consideraciones. •
•
•
• •
•
Para los robots A255 y A465, se puede usar tanto la fuente interna de 24 VDC que provee el equipo o una externa que conecte al sistema La capacidad de corriente que puede manejar la fuente interna es de máximo 1 Ampere, por lo que si la aplicacion que se va a manejar es de mayor capacidad, use una fuente externa. Las salidas opto aisladas son de baja capacidad en corriente, manejan hasta 50 mA cada una de ellas. Las salidas relevadas masnejan hasta 3 A cada una. Todas las salidas de relevador, están conectadas a un punto en común, y están protegidas por un relevador que se encuentra en el panel frontal. PRECAUCION.- Apague el interruptor principal del controlador antes de conectar cualquier alambre al controlador.
Los diagramas del patillaje correspondientes se muestran en las páginas siguientes:
43
Operación del Robot 6GL REALICE LA SIGUIENTE PRÁCTICA 1. 2.
3. 4. 5. 6. 7.
Aplique el comando shutdown now a la pantalla de terminal para apagar el robot, Cierre todas las aplicaciones y el programa robcomm3 y apague el controlador. Del conector DD-50, conecte las terminales 1 y 3, o bien la 2 y 4, para utilizar la fuente interna de 24 volts de DC; también conecte las terminales 47 a la 49, o bien la 48 a la 50, para cerrar el lazo a tierra de los circuitos internos del GPIO Conecte el cable tipo listón al conector DD-50 y por el otro extremo al controlador del robot Encienda el controlador y abra la pantalla de terminal del robcomm3 abra cualquier aplicación existente (ash xxxxx) de la pantalla terminal Introduzca el comando input 1, haga lo mismo con las 16 entradas y observe. Con mucho cuidado, conecte un alambre largo a la terminal 49 ó 50 del conector DD-50 y a la terminal 5 del mismo; aplique el comando input 1 y oberve, retirelo de la terminal 5 y vuelva a verificar el estado de la entrada 1 y haga lo mismo con algunas otras entradas.
NOTA: TAL COMO SE OBSERVO, LA SALIDA SE HACE VALIDA (VALOR DE 1) CUANDO SE CONECTA A TIERRA LA ENTRADA CORRESPONDIENTE
8.
Ahora, con la ayuda de un multímetro ajustado para medir voltaje de DC, en la escala que soporte al menos 24 VDC, conecte la terminal positiva del multímetro a la terminal 1 ó 2 del conector DD-50, y la negativa a la terminal 21, observe la lectura del multímetro; ahora, aplique a la pantalla de terminal el comando output 1,1 (formato: output #salida, valor lógico) y observe; ahora el comando output 1,0 y note el cambio de estados de aprox. cero Volts a aprox. 24 VDC que es el voltaje de la fuente interna del controlador. Haga lo mismo con algunas salidas de la 2 a la 12.
NOTA: CUANDO SE USEN LAS SALIDAS DIGITALES, DE PREFERENCIA UTILICE YA SEA LA FUENTE INTERNA O UNA EXTERNA, DE MAXIMO 24 VDC Y LAS CARGAS O DISPOSITIVOS A ENCENDER (TAL COMO UN RELEVADOR) DEL MISMO VALOR DE VOLTAJE.
9.
Para el caso de las salidas de la 13 a la 16, existe la diferencia de que estas son contactos de relevador, con un punto en comun. Para verificar, ajuste el multímetro para medir resistencia (si tiene la capacidad de tono audible cuando se detecta resistencia cercana a cero, actívela); con mucho cuidado, conecte una de las terminales del multímetro a la terminal 43 ó 44 del conector DD-50, y la otra a la terminal 36 del DD-50; introduzca el comando output 13,1 y observe la lectura del medidor; después de el comando output 13,0 y observe; conecte ahora de la terminal 43 ó 44 a la 35 y repita los dos comandos anteriores.
44
Operación del Robot 6GL Con estas herramientas, se pueden realizar programas mas complejos que involucren el uso de entradas y salidas digitales, para poder controlar dispositivos externos, o coordinar acciones determinadas dependientes de esos dispositivos, a ambas cuestiones.
REALICE LA SIGUIENTE PRACTICA 1.
Abra una pantalla de edición de programas nuevos y teclee el siguiente programa: teachable cloc a,b,c main loop while input(16)==1 printf("activada la entrada 16 y espero seleccion de entrada\n") delay(5000) finish() if input(1)==1 move(a) finish() printf("entrada uno conectada, muevo posicion a\n") printf("y activo salida 13 por 5 segundos a\n") output (13,1) delay(5000) output_set (13,0) end if if input(2)==1 move(b) finish() printf("entrada dos conectada, muevo posicion b\n") printf("y espero a que active la entrada 3\n") while input(3)==0 end while printf("entrada 3 pulsada, continuo con el programa\n") end if if input(4)==1 move(c) finish() printf("entrada cuatro conectada, muevo posicion c\n") end if 45