sistemas de control programables y robótica - josevicente.com · fácilmente al software flowol,...

51
CURSO SISTEMAS DE CONTROL PROGRAMABLES Y ROBÓTICA PARA PROFESORES DE TECNOLOGÍA DE LA E.S.O. Por José Vicente Manga

Upload: hoangduong

Post on 10-Jul-2018

231 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Sistemas de control programables y robótica - josevicente.com · fácilmente al software Flowol, indicado para programar el autómata programable FlowGo. En el apartado de Programación

CURSO

SISTEMAS DE CONTROL PROGRAMABLES

Y

ROBÓTICA

PARA PROFESORES DE TECNOLOGÍA DE LA E.S.O.

Por José Vicente Manga

Page 2: Sistemas de control programables y robótica - josevicente.com · fácilmente al software Flowol, indicado para programar el autómata programable FlowGo. En el apartado de Programación

Sistemas de control programables y robótica

José Vicente Manga – Enero 2006 2

LOS SISTEMAS DE CONTROL PROGRAMABLES: ENTRADA, CONTROL Y SALIDA. REALIMENTACIÓN. En primer lugar debemos tener una idea, lo más clara posible, de lo que es un sistema de control programable y cuáles pueden ser sus aplicaciones. Un sistema de control programable es, básicamente, un circuito electrónico que almacena un programa informático capaz de controlar el funcionamiento de algún dispositivo o actuador, en función de la información recibida a través de los sensores que tenga conectados. En este sistema distinguimos tres módulos básicos:

1. Entrada: constituido por los sensores, que podrán ser analógicos (sondas de temperatura, de iluminación,...) o digitales (interruptores, conmutadores, pulsadores,...), y los circuitos encargados de adaptar las señales de entrada de los sensores para que puedan ser procesadas por el módulo de control.

2. Control: se trata del circuito electrónico que almacena el programa informático y procesa las señales de entrada, provenientes de los sensores, para controlar el funcionamiento de los dispositivos de salida.

3. Salida: formado por circuitos capaces de conectar, desconectar o regular el funcionamiento de los dispositivos que hayan de controlarse.

Dispondríamos de un control muy limitado si no pudiera modificarse el funcionamiento de los dispositivos de salida, en función de algunas variables, que modifiquen su valor debido al propio funcionamiento de la máquina o del proceso que deseamos controlar. Gracias a los sensores conectados al módulo de entrada, podemos hacer que el programa evalúe las condiciones de funcionamiento, pudiendo tomar “decisiones” que modifiquen el modo de operación de la máquina o del proceso que se controla.

Podemos considerar, de forma general, que la realimentación consiste en la toma de muestras en la salida, a través de los dispositivos de entrada, para su evaluación, con el fin de tomar decisiones que afectan al funcionamiento de todo el sistema. Un ejemplo muy sencillo podría ser el de un horno para cocer cerámica, controlado por un sistema de control programable que dispone de una sonda de temperatura instalada dentro del horno y conectada a al módulo de entrada, un relé conectado a al módulo de salida y, a su vez, conectado al circuito de encendido de la resistencia calefactora del horno, y un programa capaz de hacer conmutar al relé en función de la temperatura detectada por la sonda y el tiempo transcurrido, de forma que se someta a la cerámica a diferentes temperaturas a lo largo del tiempo de cocción.

ENTRADA (Sensores)

CONTROL (Procesador y memoria)

SALIDA (Actuadores)

Page 3: Sistemas de control programables y robótica - josevicente.com · fácilmente al software Flowol, indicado para programar el autómata programable FlowGo. En el apartado de Programación

Sistemas de control programables y robótica

José Vicente Manga – Enero 2006 3

EL EQUIPO DE CONSTRUCCIÓN DE AUTOMATISMOS COMPUTING STARTER KIT Contiene las piezas necesarias para construir 8 modelos de máquinas que pueden controlarse mediante un autómata programable, propuestos en el manual de instrucciones de montaje, si bien es posible montar otros modelos diferentes utilizando la imaginación. En principio, el control de estos modelos, se sugiere en los manuales que acompañan al Kit, se consigue mediante el interfaz de Fischertechnik, sin embargo es recomendable utilizar el autómata programable FlowGo, debido a que en él, una vez almacenado el programa de control, no desaparece al cesar la alimentación de corriente. En el cuaderno adjunto al Kit aparecen unas indicaciones que describen cómo programar los distintos modelos en base a unas tareas propuestas. Todas esas indicaciones están dirigidas a la programación mediante el software Llwin, pero pueden adaptarse fácilmente al software Flowol, indicado para programar el autómata programable FlowGo. En el apartado de Programación... con Flowol se proponen otras tareas de programación para los modelos de máquinas citados anteriormente y algunos más incluidos en las “mímicas” suministradas con el programa, y se sugieren los diagramas de programación utilizando el software Flowol. Con el fin de alargar la vida útil del Kit de construcción de automatismos, recomiendo que no se use si no es estrictamente necesario, sustituyéndolo por estructuras que fabriquen los propios alumnos con materiales de uso común, motores, relés u otros componentes electrónicos convencionales. El motivo es que no es difícil que los alumnos pierdan alguna de las piezas del Kit, lo que llevaría a no poder utilizarlo hasta reponer la pieza perdida. Además, con la dotación actual, cuando sean varios los grupos de alumnos que deban realizar los proyectos, no habrá suficiente número de kits. No obstante, más adelante se muestran propuestas que pueden realizarse mediante este equipo, aunque no son las únicas, pues dejando volar un poco la imaginación es fácil encontrar nuevas posibilidades. CONOCIMIENTO DEL PLC (Control Lógico Programable) FLOWGO.

Botón de arranque/parada

Entras analógicas

Puertos serie y USB

Conector de alimentación

Salidas digitales

LED indicador de alimentación / funcionamiento

Entradas digitales

LEDs indicadores del estado de las entradas

Salidas de motores

LEDs indicadores del estado de las salidas

Page 4: Sistemas de control programables y robótica - josevicente.com · fácilmente al software Flowol, indicado para programar el autómata programable FlowGo. En el apartado de Programación

Sistemas de control programables y robótica

José Vicente Manga – Enero 2006 4

Botón arranque/parada

Con una pulsación de 2 segundos cambia el modo de control desde el ordenador al modo de control del programa o viceversa.

LED indicador de alimentación/ funcionamiento

Se ilumina permanentemente cuando el PLC está alimentado y el control se realiza desde el ordenador. Si el control lo realiza el programa almacenado en el PLC, este LED parpadea.

Puertos Serie y USB

Dispone de un puerto serie y otro USB para la conexión de datos al ordenador. Es recomendable utilizar el puerto USB.

Conector de alimentación

Permite conectar el alimentador al PLC, o bien, un grupo de cuatro pilas de 1,5V en serie, en caso de no disponer de alimentador o de un enchufe de la red eléctrica. La tensión de alimentación debe ser de 6V.

Entradas analógicas

Hay dos y necesitan un conector de tipo Jack de 3,5mm estéreo para conectar los sensores a ellas. Más adelante veremos cómo construir sensores analógicos para este PLC.

Entradas digitales

Son cuatro y a ellas se pueden conectar pulsadores, interruptores o conmutadores de cualquier tipo. Los terminales que están sobre la banda negra corresponden con el polo negativo de la corriente y están unidos eléctricamente en el interior, de modo que solo es necesaria la conexión con uno de ellos, si antes (en el modelo a controlar) hemos unido todos los polos negativos de los sensores de entrada entre ellos.

LEDs indicadores del estado de las entradas

El indicador de cada entrada se ilumina cuando sus dos polos están unidos, y permanece apagado en caso contrario. En modo de prueba, podemos hacer que se enciendan y apaguen activando y desactivando las entradas desde el ordenador, a través del programa Flowol.

LEDs indicadores del estado de las salidas

El indicador de cada salida se ilumina cuando en esa salida hay tensión eléctrica, es decir, cuando está activada, y permanece apagado en caso contrario.

Salidas digitales Son 6 y su terminal común es el polo positivo, es decir, el que está situado sobre la banda roja en cada caso. La tensión que suministran es de 6V igual que la entregada por el alimentador del PLC.

Salidas de motores

Cada una de las dos salidas de motores puede entregar 6V con una polaridad o con la polaridad contraria, para hacer que los motores giren en uno o en otro sentido. También es posible que entreguen una potencia inferior, si se programa uno de los 10 niveles de potencia disponibles, desde el 10% al 100% en escalones de 10 puntos, lo que hace que el motor pueda girar a distintas velocidades.

Periféricos de entrada digitales. A las entradas digitales es posible conectar cualquier dispositivo que permita conectar o desconectar los dos polos de la entrada correspondiente: interruptores, pulsadores, conmutadores, interruptores REED, interruptores de membrana, etc. También es posible conectar algunos dispositivos como resistencias LDR, que permitirán que el PLC detecte como conectados los polos de la entrada si su resistencia interna desciende por debajo de 4KΩ. Una resistencia superior a 5,5KΩ provoca la desconexión de los polos de entrada. Los valores de resistencia entre 4KΩ y 5,5KΩ pueden provocar resultados ambiguos.

Page 5: Sistemas de control programables y robótica - josevicente.com · fácilmente al software Flowol, indicado para programar el autómata programable FlowGo. En el apartado de Programación

Sistemas de control programables y robótica

José Vicente Manga – Enero 2006 5

Construcción de sensores analógicos. Los periféricos de entrada analógicos pueden ser sensores de iluminación, de temperatura o de rotación. No se han suministrado sensores analógicos con el PLC FlowGo, por lo que será necesario construirlos. Todos los sensores analógicos deben construirse sobre un conector Jack macho estéreo de 3,5mm de diámetro, conectando una resistencia divisora de tensión junto con la resistencia especial sensible a la temperatura o a la luz cuando se trate de este tipo de sensores.

Sensor de iluminación: Conectar una resistencia LDR entre los terminales B y C y una resistencia de 2K7 entre los terminales A y C. Sensor de temperatura: Conectar una resistencia NTC de 100KΩ entre los terminales B y C y una resistencia de 100KΩ entre los terminales A y C. Sensor de rotación: Conectar los terminales exteriores de un potenciómetro lineal de 10KΩ entre los terminales A y B y conectar el terminal del cursor del potenciómetro al terminal C del conector Jack. Utilización de las salidas. Cada salida digital está diseñada para suministrar una intensidad de corriente de 100mA, lo que supone una carga máxima para el PLC de 600mA. Las salidas de motores pueden suministrar hasta 200mA en régimen continuo. El control de la potencia de estas salidas se realiza mediante un Modulador de Anchura de Pulsos que funciona a una frecuencia de 62Hz.

A: Terminal de masa (0V) B: Tensión de referencia (2,5V) C: Tensión de medida.

Page 6: Sistemas de control programables y robótica - josevicente.com · fácilmente al software Flowol, indicado para programar el autómata programable FlowGo. En el apartado de Programación

Sistemas de control programables y robótica

José Vicente Manga – Enero 2006 6

PROGRAMACIÓN DE AUTOMATISMOS MEDIANTE DIAGRAMAS DE BLOQUES FUNCIONALES CON FLOWOL. Antes de comenzar a programar es recomendable que configuremos el interfaz (PLC) que vamos a utilizar, que en nuestro caso será FowGo. Para ello, hacemos clic dentro del menú Control en la opción Interfaz y ajustamos las opciones del cuadro de diálogo que aparece como se ve a la derecha. Finalmente hacemos clic sobre el botón Aceptar y Guardar. Ahora ya podemos conectar el PLC FlowGo al ordenador (mediante un cable USB) y comprobar que funciona correctamente, pues podemos analizar el estado de las entradas y manipular las salidas desde Flowol.

Comprobación del funcionamiento del PLC FlowGo. Tras conectar el PLC y alimentarlo, en el menú Ventana hacemos clic en una de las opciones Pantalla grande o Pantalla chica, para mostrar el cuadro de control de entradas y salidas del interfaz. Debemos comprobar que opción simular del menú Interfaz no está marcada. En caso contrario, hacemos clic en ella para retirar la marca. Mediante la opción Pantalla grande se muestran las ventanas Sensorios y Pantalla como aparecen a la derecha, de modo que si marcamos la casilla Modo de probar y hacemos clic en alguna de las casillas correspondientes a las salidas, las activamos o desactivamos en función su estado previo, apareciendo la casilla correspondiente en color rojo o gris respectivamente, y debiendo encenderse o apagarse el diodo LED correspondiente en el PLC. En el caso de los motores, dependiendo de si hacemos clic con el botón izquierdo o con el derecho del ratón, obtenemos la conexión o desconexión de la salida correspondiente con una u otra polaridad, lo que daría lugar a que el motor conectado a ella girara en uno o en otro sentido. También podemos ajustar la potencia que se entrega en cada salida de motores arrastrando el deslizador asociado a cada una, lo que debería hacer que el motor girara más o menos rápidamente.

Page 7: Sistemas de control programables y robótica - josevicente.com · fácilmente al software Flowol, indicado para programar el autómata programable FlowGo. En el apartado de Programación

Sistemas de control programables y robótica

José Vicente Manga – Enero 2006 7

Las casillas de entrada con los números 1 a 4 corresponden a las entradas digitales y, a través de ellas, podemos comprobar su estado, pues aparecerán de color gris cuando estén desactivadas y de color rojo en caso contrario. La ventana Sensorios contiene las casillas correspondientes a las entradas analógicas y desde ella se puede ajustar el tipo de sonda que se está utilizando. Haciendo clic en los botones que contienen un triángulo negro se muestra el menú de selección. Por defecto está seleccionada la opción porcentaje, pero si vamos a utilizar una sonda de temperatura, elegiremos la opción Temperatura para poder programar en función de los grados centígrados medidos por la sonda. A continuación se muestra un ejemplo de cómo aparecen las casillas correspondientes a las entradas analógicas en función del tipo de sonda elegido. Haciendo clic en el botoncito situado entre las casillas de valor y de unidades se muestran los niveles máximo y mínimo en cada caso: Temperatura: desde –10ºC hasta 110ºC. Ángulo: desde 0º hasta 360º. Posición: desde 0 hasta 100% Luz: desde 0 hasta 100%. Voltaje: desde 0V hasta 2,5V Las casillas que contienen un texto con el fondo blanco permiten que introduzcamos en ellas un texto que identifique cada entrada o salida de forma diferente a como aparece por defecto, si bien estos textos sólo aparecerán en estas ventanas. También es posible comprobar o monitorizar el funcionamiento del PLC desde la Pantalla chica, aunque no permite la elección del tipo de sonda o la modificación de los textos asociados a cada entrada o salida. A continuación se muestra esa ventana.

Escribiendo programas en Flowol. La escritura de programas en Flowol es muy sencilla, pues se realiza mediante diagramas de bloques funcionales, construyendo, bloque a bloque, el diagrama de flujo que será nuestro programa de control del PLC. Existen cuatro bloques funcionales, que serán suficientes para escribir cualquier programa: Inicio o Fin de programa, Control de salidas, Proceso y Toma de decisiones. Para comenzar a escribir el programa siempre debemos situar en el área de trabajo un bloque de Inicio. Para ello, hacemos clic en el botón y hacemos clic de nuevo en el lugar del área de trabajo donde queramos insertar el bloque. En ese momento aparece una ventana de programación por botones, en la parte inferior de la pantalla, para programar la función del bloque que acabamos de insertar.

Page 8: Sistemas de control programables y robótica - josevicente.com · fácilmente al software Flowol, indicado para programar el autómata programable FlowGo. En el apartado de Programación

Sistemas de control programables y robótica

José Vicente Manga – Enero 2006 8

Pulsemos el botón Inicio para programar el comienzo del programa. Si se tratara del comienzo de un subprograma, podemos escribir un nombre para él en

el recuadro con el fondo blanco y hacer clic en el botón Sub. En caso de no escribir un nombre para el subprograma, Flowol le asignará el nombre SubX, donde X será un número que identificará a cada subprograma de forma única. A continuación haremos clic sobre el botón del bloque funcional que corresponda y lo situaremos debajo del boque de Inicio, a una distancia suficiente, pues sino Flowol dará un error indicando que no puede situarse el bloque en ese lugar. Seguidamente, mediante la ventana de programación por botones que le corresponda, le asignaremos la función adecuada, y así sucesivamente, hasta llegar al final de nuestro programa, donde insertaremos un bloque de Inicio programado con la función Alto. Una vez colocados los bloques funcionales necesarios, procederemos a enlazarles con líneas para terminar de construir el diagrama de flujo. Para ello, hacemos clic en el botón

y, a continuación, hacemos clic sobre uno de los bloques funcionales que deseamos enlazar y, seguidamente, hacemos clic sobre el otro bloque. Repetiremos el proceso hasta enlazar todos los bloques funcionales, momento en que habremos terminado nuestro programa. Cuando debamos enlazar un bloque funcional de toma de decisiones con otros

bloques, lo haremos mediante los botones y , pues el flujo del programa tomará una dirección u otra en función de que la respuesta a la pregunta programada en el bloque de toma de decisiones sea afirmativa o no. Trabajando con subprogramas. Cuando necesitemos repetir, varias veces, un mismo fragmento del diagrama de flujo, a lo largo del programa, podemos escribir ese fragmento de forma separada, una sola vez, y llamarlo desde el programa principal cuando sea necesario. Habremos creado así un subprograma. Esto nos permite simplificar la programación. Todo subprograma comienza con un bloque de Inicio de Subprograma (Sub) y finaliza con un bloque de Fin de programa (Alto). Podemos llamar al subprograma desde el programa principal mediante el bloque funcional Proceso, haciendo clic en el botón Sub de la ventana de programación por botones correspondiente, y eligiendo el subprograma al que deseamos acceder. A continuación podemos hacer clic en Aceptar directamente o bien, introducir el número de veces que se ejecutará el subprograma en ese momento de la ejecución del programa principal. En caso de no especificar el número de veces que se ejecutará, el subprograma funcionará una vez, antes de devolver el control al programa principal. Un último detalle a tener en cuenta es que debe escribirse el diagrama del subprograma, antes de escribir el diagrama del programa principal, pues de lo contrario, no podremos programar la llamada al subprograma cuando sea necesario. Editando el diagrama de flujo.

Al hacer clic en el botón entramos en el modo de edición. En este modo, cuando hacemos clic sobre un bloque del diagrama o sobre una línea, seleccionamos ese elemento y podemos borrarlo, haciendo clic en el botón . Al mismo tiempo que seleccionamos un bloque funcional, se muestra la ventana de programación por botones, de manera que podemos borrar la función programada en el bloque y componer una nueva función. Si al hacer clic en un bloque funcional del diagrama, no soltamos el botón del ratón, podemos arrastrarlo a una nueva posición.

Page 9: Sistemas de control programables y robótica - josevicente.com · fácilmente al software Flowol, indicado para programar el autómata programable FlowGo. En el apartado de Programación

Sistemas de control programables y robótica

José Vicente Manga – Enero 2006 9

PROPUESTAS PARA EL TRABAJO CON LOS ALUMNOS UTILIZANDO FLOWGO Y FLOWOL. Una posibilidad consiste en utilizar las “mímicas” (simulaciones de mecanismos) suministradas junto con el programa Flowol, realizadas sobre modelos realizables mediante el conjunto de montaje de automatismos Computing Starter Kit. Utilizando estas mímicas solo se necesita el ordenador con el programa Flowol instalado en él para trabajar, sin embargo, considero mucho más educativo que los alumnos utilicen el PLC y construyan algún entorno que sea preciso controlar con él. Utilizando “mímicas”. En la dotación de equipos de automatismos enviada a los centros, se incluye un disquete con las mímicas para Flowol, que deben instalarse tras instalar el programa, si deseamos utilizarlas. Son doce los archivos de simulación:

BRIDLIGH: Simula un puente estrecho cuyo tráfico está regulado por un semáforo en

cada extremo. F_ARM: Se trata de la simulación de un brazo robot giratorio que realiza soldaduras. F_BARR: Es una simulación de la entrada de un aparcamiento controlada por una

barrera. F_DOOR: Simula el control automático de una puerta corredera. F_DRIER: Representa el funcionamiento de un secador de manos automático. F_DRIER2: Similar a la anterior, pero con un indicador luminoso de funcionamiento. F_FAN: En este caso se simula el funcionamiento de un calefactor de aire caliente,

donde una bombilla simula la resistencia calefactora y una resistencia NTC es el sensor de temperatura.

F_LIGHTS: Simulación de un semáforo que realiza un ciclo de cambios a partir de la

activación de un pulsador. F_MOTOR: Simula el control del funcionamiento de un motor por conteo de pasos. F_STAMP: Representa el funcionamiento de una máquina estampadora. LIGHTHO: Simula un paisaje marino con un faro que funciona cuando es de noche,

emitiendo destellos y haciendo sonar la bocina. ZEBRA: Permite simular la conexión o desconexión de la iluminación de señalización

y alumbrado de un paso de cebra.

Page 10: Sistemas de control programables y robótica - josevicente.com · fácilmente al software Flowol, indicado para programar el autómata programable FlowGo. En el apartado de Programación

Sistemas de control programables y robótica

José Vicente Manga – Enero 2006 10

Control del tráfico de un puente estrecho.

Propuesta de trabajo: Se necesita controlar el tráfico de un puente estrecho mediante semáforos colocados en sus extremos, de forma que se permita el paso de vehículos en cada sentido durante un minuto. Los semáforos deben permanecer en ámbar durante 10 segundos antes de cambiar a rojo. Utiliza las salidas 1, 2 y 3 para controlar las luces verde, ámbar y roja respectivamente, de uno de los semáforos, y las salidas 4, 5 y 6 para las luces verde, ámbar y roja del otro. Opciones adicionales: Una variante de esta propuesta consiste en hacer que no se desconecte la luz verde mientras está encendida la luz ámbar de los semáforos y, por otro lado, pueden establecerse ciclos de funcionamiento diferentes para cada semáforo, de forma que se permita la circulación en un sentido durante más tiempo que en sentido contrario.

Programa de control:

Inicio

Activar salida 1,6 desact 3,5

Tardar 50

Activar salida 2 desactivar 1

Tardar 10

Activar salida 3,4 desact 2,6

Tardar 50

Activar salida 5 desactivar 4

Tardar 10

Page 11: Sistemas de control programables y robótica - josevicente.com · fácilmente al software Flowol, indicado para programar el autómata programable FlowGo. En el apartado de Programación

Sistemas de control programables y robótica

José Vicente Manga – Enero 2006 11

Brazo robot de soldadura.

Propuesta de trabajo: Debemos programar el funcionamiento de un brazo robot giratorio, para que realice una soldadura por puntos, de manera que de 3 puntos de 0,3 segundos de duración y espaciados un segundo uno de otro. El brazo se situará en la posición de soldadura tras la activación de un pulsador y comenzará el ciclo de soldadura a continuación, regresando a la posición de partida al finalizar el ciclo. La situación del brazo en ambas posiciones será detectada por dos finales de carrera. Utiliza la entrada 2 para detectar la posición inicial del brazo y la entrada 1 para detectar la posición de soldadura. La entrada 8 debe poner en marcha el robot. El motor A girará hacia atrás para ir a la posición de soldadura y hacia adelante para regresar a la posición inicial. Opciones adicionales: Puede añadirse la comprobación de que el brazo está situado en la posición de partida antes de comenzar el desplazamiento a la posición de soldadura. Nota: Para poder usar esta mímica es necesario seleccionar No interfaz mediante la opción Interfaz del menú Control. En el caso de construir realmente este modelo, debe sustituirse la entrada 8 por la entrada 3 o la entrada 4, pues el PLC FlowGo solo dispone de 4 entradas digitales.

Programa de control:

Inicio

¿Está activada ent 8?

Activar Motor a atrás

¿Está activada ent 1?

Desactivar Motor a

Sub 1(Soldar)

Tardar 1

Activar salida 2

Tardar 0.3

Desactivar salida 2

AltoSub

1(Soldar) x 3

Activar Motor a adel

¿Está activada ent 2?

Desactivar Motor a

SI

SI

SI

NO

NO

NO

Page 12: Sistemas de control programables y robótica - josevicente.com · fácilmente al software Flowol, indicado para programar el autómata programable FlowGo. En el apartado de Programación

Sistemas de control programables y robótica

José Vicente Manga – Enero 2006 12

Control de acceso con barrera.

Propuesta de trabajo: Debemos programar el acceso a un aparcamiento mediante una barrera automática, que debe elevarse al activar un pulsador y no debe bajar hasta que una barrera luminosa detecte que el vehículo ha entrado. Al lado de la entrada se colocará un semáforo con luces verde y roja, que debe permanecer en verde desde que se levanta totalmente la barrera, hasta que la barrera comienza a bajar. El resto del tiempo estará rojo. El pulsador de entrada se conecta a la entrada 3, el final de carrera que detecta que la barrera ha bajado se conecta a la entrada 1, el final de carrera que detecta que la barrera está levantada se conecta a la entrada 2, la entrada 4 detecta si está interrumpida o no la barrera luminosa. La salida 4 enciende la barrera luminosa y la salida de motor A debe activar el giro adelante para subir la barrera y el giro hacia atrás para bajarla. Opciones adicionales: Si un vehículo va a salir del garage debe disponer de un pulsador en el interior para elevar la barrera. Por otro lado, puede complicarse el programa haciendo que la barrera no se eleve cuando un vehículo quiera entrar y no queden plazas libres, indicando esta situación mediante el parpadeo de la luz roja hasta que quede alguna plaza libre. Otra posibilidad sería hacer que la luz verde del semáforo parpadeara durante 10 segundos antes de comenzar a bajar la barrera, para avisar a los posibles usuarios.

Programa de control:

Inicio Sub 1(Bajar b)

Sub 2(Subir b)

¿Está activada ent 1?

Activar Motor a atrás

Desactivar Motor a

Alto

¿Está activada ent 2?

Activar Motor a adel

Desactivar Motor a

Alto

Sub 1(Bajar b)

¿Está activada ent 3?

Sub 2(Subir b)

Tardar 10

¿Está activada ent 4?

Activar salida 3 desactivar 2

Activar salida 2 desactivar 3

Activar salida 2,4 desact 3

NO

NO

NO

NO

SI

SI

SI

SI

Page 13: Sistemas de control programables y robótica - josevicente.com · fácilmente al software Flowol, indicado para programar el autómata programable FlowGo. En el apartado de Programación

Sistemas de control programables y robótica

José Vicente Manga – Enero 2006 13

Puerta corredera automática.

Propuesta de trabajo: Necesitamos automatizar la apertura y el cierre de una puerta corredera, de forma que sea necesario activar un pulsador para abrir la puerta, pero que la puerta se cierre automáticamente, una vez detectado el paso de la persona mediante una barrera luminosa. El pulsador de apertura se conecta a la entrada 3, el final de carrera que detecta que la puerta está abierta se conecta a la entrada 2, el final de carrera que detecta que la puerta está cerrada se conecta a la entrada 1, la entrada 4 detecta si está interrumpida o no la barrera luminosa. La salida 4 enciende la barrera luminosa y la salida de motor A debe activar el giro hacia adelante para abrir la puerta y el giro hacia atrás para cerrarla. Opciones adicionales: Si la puerta está cerrándose y se detecta el paso de otra persona, debe interrumpirse el cierre y abrirse de nuevo totalmente, para cerrarse una vez haya pasado la persona. También puede introducirse un retardo de seguridad en el cierre de la puerta, con el fin de asegurar que se hayan separado del umbral las personas que han atravesado la puerta, antes de comenzar a cerrarla.

Programa de control:

Inicio Sub 1(Abrir)

Activar Motor a adel

¿Está activada ent 2?

Desactivar Motor a

Alto

¿Está activada ent 3?

Sub 1(Abrir)

¿Está activada ent 4?

¿Está desactiva ent 4? Sub 2(Cerrar)

Sub 2(Cerrar)Activar

Motor a atrás

¿Está activada ent 1?

Desactivar Motor a

Alto

Activar salida 2

SI

NO

SI

NO

NO

SI

SI

NO

SI

NO

Page 14: Sistemas de control programables y robótica - josevicente.com · fácilmente al software Flowol, indicado para programar el autómata programable FlowGo. En el apartado de Programación

Sistemas de control programables y robótica

José Vicente Manga – Enero 2006 14

Secador de manos.

Propuesta de trabajo: Se trata de un secador de manos que debe ponerse en marcha al acercar las manos a él. Para ello, el ventilador debe conectarse cuando se interrumpa la barrera luminosa colocada ante él y desconectarse al dejar de interrumpir la barrera luminosa. La salida 2 enciende la luz de la barrera luminosa, la entrada 1 recibe la luz de la barrera y el motor A hacer girar al ventilador. Opciones adicionales: Podríamos introducir un retardo en la desconexión, de forma que si al mover las manos ante el ventilador, durante su secado, dejamos de interrumpir la barrera luminosa durante un instante, el ventilador no se detenga. Otra versión consiste en añadir un piloto luminoso, conectado a la salida 3, que estaría encendido cuando el ventilador esté parado y parpadeando cuando el ventilador funcione.

Programa de control:

Inicio

Activar salida 2

¿Está activada ent 1?

Activar Motor a adel

Desactivar Motor a

SI

NO

Page 15: Sistemas de control programables y robótica - josevicente.com · fácilmente al software Flowol, indicado para programar el autómata programable FlowGo. En el apartado de Programación

Sistemas de control programables y robótica

José Vicente Manga – Enero 2006 15

Calefactor de aire caliente.

Propuesta de trabajo: Debemos diseñar el control de un calefactor de aire caliente, de forma que se conecte el ventilador automáticamente cuando la temperatura sea inferior a un valor prefijado, y se desconecte cuando se alcance ese valor. La sonda de temperatura estará conectada a la entrada analógica 1, la resistencia calefactora se conectará a la salida 2 y el ventilador estará controlado por la salida de motor A. Opciones adicionales: Puede añadirse un pulsador, conectado, por ejemplo, a la entrada 1, que permita variar la velocidad del ventilador por pasos, cíclicamente, de forma que podamos elegir tres velocidades de giro diferentes mediante pulsaciones sucesivas.

Programa de control:

Inicio

¿Es Val 1 < 20?

Activar Motor a adel

Desactivar Motor a

Activar salida 2

Desactivar salida 2

SI

NO

Page 16: Sistemas de control programables y robótica - josevicente.com · fácilmente al software Flowol, indicado para programar el autómata programable FlowGo. En el apartado de Programación

Sistemas de control programables y robótica

José Vicente Manga – Enero 2006 16

Semáforo.

Propuesta de trabajo: Se trata de programar el funcionamiento de un semáforo para el control del paso de vehículos a través de un paso de peatones, donde se permite el paso de vehículos de forma continua, excepto cuando un peatón va a cruzar. Antes de cruzar, el peatón debe activar un pulsador para que el semáforo cambie e impida el paso de vehículos tras 30 segundos de espera, y volverá a permitir el paso de vehículos un minuto después de haberlo interrumpido. Este sistema dispone de un interruptor que, al conectarse, desactiva todo el sistema, haciendo que se apaguen todas las luces del semáforo. El interruptor se conecta a la entrada 2 y el pulsador a la entrada 1. La luz verde del semáforo se conecta a la salida 3, la ámbar a la salida 2 y la roja a la salida 1. Opciones adicionales: Una alternativa consiste en modificar la programación para que el semáforo funcione de forma automática, bloqueando y permitiendo el paso de vehículos cíclicamente, en una de las posiciones del interruptor, y sólo impida la circulación de vehículos en función del pulsador en la otra posición del interruptor. Estos dos modos de funcionamiento podrían coincidir con el día y la noche, respectivamente.

Programa de control:

Inicio

¿Está activada ent 2?

Activar salida 3 desact 1,2

¿Está activada ent 1?

Tardar 20

Activar salida 2 desact 1,3

Tardar 10

Activar salida 1 desact 2,3

Tardar 60

Desactivar salida 1,2,3

SI

NO

SI

NO

Page 17: Sistemas de control programables y robótica - josevicente.com · fácilmente al software Flowol, indicado para programar el autómata programable FlowGo. En el apartado de Programación

Sistemas de control programables y robótica

José Vicente Manga – Enero 2006 17

Control de un motor por pasos.

Propuesta de trabajo: Debemos programar el motor de una grapadora automática, de forma que sólo se ponga en marcha cuando se activen dos pulsadores alejados entre sí, lo que forzará a utilizar ambas manos, manteniéndolas así alejadas del área de trabajo de la máquina. Además el motor debe girar hasta que la corredera que presiona las grapas alcance la posición adecuada, que en este caso detectaremos mediante un pulsador conectado al eje del motor que se activará cuatro veces en cada giro. El piñón de la corredera debe girar una vuelta y, a continuación retroceder a la posición de partida. Los pulsadores de puesta en marcha se conectarán a las entradas 1 y 2, el pulsador de conteo de pasos se conecta a la entrada 3 y almacenamos el conteo en la variable n. El motor A gira hacia delante para presionar la grapa y hacia atrás para recuperar la posición inicial. Nota: Para poder usar esta mímica es necesario seleccionar No interfaz mediante la opción Interfaz del menú Control. En el caso de construir realmente este modelo, debe sustituirse la variable n por la variable x o la variable y, pues el PLC FlowGo solo puede trabajar con estas dos variables.

Programa de control:

Inicio

¿Está activada ent 1?

¿Está activada ent 2?

Activar Motor a adel

¿Está activada ent 3?

¿Está desactiva ent 3?

Fijar n = n - 1

¿Es n = 0?

Sub 1(contar)

Alto

Sub 1(contar)

Activar Motor a atrás

Sub 1(contar)

Desactivar Motor a

Fijar n = 4

SI

SI

NO

NO

SI

SI

NO

NO

SI

NO

Page 18: Sistemas de control programables y robótica - josevicente.com · fácilmente al software Flowol, indicado para programar el autómata programable FlowGo. En el apartado de Programación

Sistemas de control programables y robótica

José Vicente Manga – Enero 2006 18

Máquina estampadora.

Propuesta de trabajo: Se propone controlar el funcionamiento de una máquina estampadora de manera que realice la estampación presionando cinco veces el material contra la matriz. La máquina no se pondrá en marcha hasta que no se activen dos pulsadores alejados entre sí, como elemento de seguridad, para evitar que el operario tenga las manos próximas al área de trabajo de la máquina. Además dispondrá de una barrera luminosa delante del área de trabajo, que provocará la detención de la máquina si el operario se acerca mientras la máquina está trabajando. Los pulsadores de puesta en marcha se conectarán a las entradas 3 y 4, el pulsador de conteo de los ciclos de estampación se conecta a la entrada 1 y almacenamos el conteo en la variable n. La salida 2 enciende la luz de la barrera luminosa de seguridad y la entrada 2 detecta si la barrera se interrumpe o no. El motor A gira para desplazar la corredera de la matriz de estampación. Nota: Para poder usar esta mímica es necesario seleccionar No interfaz mediante la opción Interfaz del menú Control. En el caso de construir realmente este modelo, debe sustituirse la variable n por la variable x o la variable y, pues el PLC FlowGo solo puede trabajar con estas dos variables.

Programa de control:

Inicio Sub 1(Estampa)

Fijar n = 5

¿Está activada ent 1?

¿Está desactiva ent 1?

Fijar n = n - 1

¿Es n = 0?

Alto

¿Está activada ent 3?

¿Está activada ent 4?

Activar salida 2

Activar Motor a adel

Sub 1(Estampa)

Desactivar Motor a

Desactivar salida 2 Inicio

¿Es n > 0?

¿Está desactiva ent 2?

Páralo Todo

SI

SI

NO

NO

SI

SI

SI

NO

NO

SI

SI

NO

NO

NO

Page 19: Sistemas de control programables y robótica - josevicente.com · fácilmente al software Flowol, indicado para programar el autómata programable FlowGo. En el apartado de Programación

Sistemas de control programables y robótica

José Vicente Manga – Enero 2006 19

Faro marítimo.

Propuesta de trabajo: Debemos programar el funcionamiento de un faro marítimo de forma que emita un destello cada 5 segundos, con un segundo de duración cuando sea de noche y, además, cada minuto debe hacer sonar la bocina durante 5 segundos cuando sea de día. La iluminación del interior del faro debe encenderse automáticamente al oscurecer y apagarse al amanecer. La sonda de iluminación estará conectada a la entrada 1, la salida 1 conectará el foco del faro, la salida 2 controlará el funcionamiento de la bocina y la salida 3 se usará para conectar y desconectar la iluminación del interior del faro. Opciones adicionales: Una alternativa puede ser que el faro sólo emita destellos de noche, haciendo sonar la bocina de día.

Programa de control:

Inicio

¿Está activada ent 1?

Activar salida 1 desactivar 3

Tardar 1

Desactivar salida 1

Tardar 5

Fijar x = 1

Tardar 5

Fijar x = 0

Activar salida 1 desactivar 3

Tardar 1

Desactivar salida 1

Inicio

¿Es x = 1?

Tardar 55

Activar salida 2

Tardar 5

Desactivar salida 2

SI

NO

SI

NO

Page 20: Sistemas de control programables y robótica - josevicente.com · fácilmente al software Flowol, indicado para programar el autómata programable FlowGo. En el apartado de Programación

Sistemas de control programables y robótica

José Vicente Manga – Enero 2006 20

Paso de cebra.

Propuesta de trabajo: Se trata de hacer que la señalización luminosa de un paso de cebra se active intermitentemente. La salida 1 será la encargada de conectar y desconectar todas las lámparas. Opciones adicionales: En lugar de utilizar un ciclo de trabajo donde el tiempo que permanecen encendidas las lámparas sea igual al que permanecen apagadas, podría programarse un ciclo de trabajo en el que, cada vez, ocurrieran varias intermitencias rápidas seguidas de una intermitencia más larga.

Programa de control:

Inicio

Activar salida 1

Tardar 1

Desactivar salida 1

Tardar 1

Utilizando propuestas que los alumnos deban construir.

Todos los modelos descritos anteriormente pueden plantearse como propuestas para que los alumnos construyan el modelo, bien mediante el equipo de montaje de automatismos Computing Starter Kit o bien construyendo enteramente los modelos a programar, a partir de madera, metales..., lo que creo más educativo, aunque requiera más tiempo.

No obstante pueden plantearse muchas otras propuestas fáciles de llevar a cabo por los alumnos sin necesidad de utilizar el equipo Computing Starter Kit, en el libro de FlowGo hay algunas y en el manual de Flowol, aún más. A continuación os sugiero otras:

• Control del tráfico, mediante semáforos, en un cruce de dos calles con sentido único de circulación, utilizando diodos LED para realizar los semáforos, con resistencias limitadoras adecuadas conectadas en serie. En este caso puede ser necesario utilizar todas las salidas digitales del PLC y las salidas de motores, con el fin de poder controlar los semáforos de vehículos y los de un posible paso de peatones.

• Control del tráfico, mediante semáforos, en un cruce de dos calles con doble sentido de circulación. En este caso puede ser necesario utilizar todas las salidas digitales del PLC y las salidas de motores.

• Control automático de la iluminación de las farolas de una calle, de forma que se iluminen al hacerse de noche y se apaguen al cabo de un tiempo programado.

Page 21: Sistemas de control programables y robótica - josevicente.com · fácilmente al software Flowol, indicado para programar el autómata programable FlowGo. En el apartado de Programación

Sistemas de control programables y robótica

José Vicente Manga – Enero 2006 21

EL PLC DE FISCHERTECHNIK: FUNCIONAMIENTO, ENTRADAS Y SALIDAS. El “Intelligent Interface” de Fischertechnik es un autómata programable de características similares a FlowGo, pero con algunas diferencias importantes:

- No mantiene los programas almacenados en la memoria si falla la alimentación. - Sólo dispone de 4 salidas, aunque todas ellas pueden controlar motores totalmente. - Sólo es conectable al ordenador mediante el puerto serie RS 232. - Dispone de 8 entradas digitales y 2 entradas analógicas.

1. Conector de alimentación para una corriente continua de 9V. Al utilizar este conector se desconecta el circuito de los terminales de alimentación por batería.

2. Terminales de alimentación por batería. 3. LED rojo indicador de que hay tensión de alimentación. 4. Conector serie RS232 para la transmisión de datos desde y hacia el ordenador. 5. Salidas M1 a M4, con capacidad para conectar motores, lámparas o electroimanes

(relés, por ejemplo). Cada salida puede suministrar de forma permanente una intensidad de 250mA. La intensidad de salida está limitada por un limitador de 1ª resistente a cortocircuitos.

6. Entradas digitales E1 a E8 a las que puede conectarse cualquier tipo de dispositivo que conecte o desconecte los dos polos de la entrada correspondiente, como interruptores, pulsadores, conmutadores, etc.

7. Entradas analógicas EX y EY con capacidad para conectar a ellas sensores realizados con resistencias LDR, NTC y potenciómetros. Están diseñadas para realizar medidas entre 0 y 5KΩ. La resistencia conectada a ellas se convierte en un valor numérico entre 0 y 1024, y tienen una velocidad de exploración de 20ms. Puede ocurrir un error de medida entorno al 2%.

8. Regleta interna a la que puede conectarse un módulo de ampliación para duplicar el número de entradas y salidas digitales.

- +

Page 22: Sistemas de control programables y robótica - josevicente.com · fácilmente al software Flowol, indicado para programar el autómata programable FlowGo. En el apartado de Programación

Sistemas de control programables y robótica

José Vicente Manga – Enero 2006 22

PROGRAMACIÓN DE ROBOTS MEDIANTE DIAGRAMAS DE BLOQUES FUNCIONALES CON LLWIN. La programación con el software LLWin es similar a la programación con Flowol, ya que ambos utilizan diagramas de bloques funcionales. Sin embargo, LLWin es un entorno más complejo, y a la vez más potente, pues incluye más bloques funcionales, lo que da mayor facilidad a la programación. En cuanto al entorno del programa, inicialmente puede ser algo más engorroso de utilizar que Flowol, por lo que es muy recomendable que se utilice después de haber programado con Flowol, pues así, no todo será nuevo para los alumnos y les costará menos aprender su manejo. Construyendo el programa principal Debemos asegurarnos de haber pulsado el botón en la barra de herramientas de LLWin. Seguidamente ya podemos ir arrastrando bloques funcionales desde la ventana de bloques funcionales hasta el área de trabajo. Construyendo subprogramas Para construir un subprograma en LLWin procederemos de forma similar a cuando construimos el programa principal, pero asegurándonos de haber pulsado el botón en la barra de herramientas de LLWin y haber introducido un nombre para él, en el cuadro de diálogo que se habrá mostrado. El diagrama de todo subprograma debe comenzar con el bloque funcional de Inicio de subprograma y finalizar con el bloque funcional de Fin de subprograma. Una vez escrito el subprograma es necesario ponerle “conectores” antes de poder utilizarlo desde el programa principal. Para ello, pulsamos el botón en la barra de herramientas de LLWin y arrastramos los circulitos marcados con Entr.1 y Sal.1 desde el margen izquierdo hasta colocarlos sobre dos de las rayitas que aparecen en torno al rectángulo que representa al subprograma que hemos realizado. Cuando hayamos terminado pulsamos el botón para ir al programa principal, o el botón para escribir un subprograma nuevo o editar uno ya existente. Bloques funcionales disponibles en LLWin

Salida Permite el control de las salidas M1 a M4.

Entrada Permite la exploración de los sensores de entrada conectados a las entradas digitales E1 a E8. El flujo del programa se bifurca en función del estado de las entradas. Para explorar las entradas analógicas EX y EY es necesario asignar su valor a una variable, y después, evaluar el contenido de esa variable mediante una comparación.

Arranque Pone en marcha el programa que hayamos escrito.

Fin Detiene el programa o subprograma en el que sen encuentre, al llegar su ejecución al punto en que se encuentre.

Page 23: Sistemas de control programables y robótica - josevicente.com · fácilmente al software Flowol, indicado para programar el autómata programable FlowGo. En el apartado de Programación

Sistemas de control programables y robótica

José Vicente Manga – Enero 2006 23

Parada de emergencia Detiene todos los programas que se estén ejecutando.

Comienzo de subprograma Debe colocarse al principio del diagrama de bloques de cada subprograma.

Fin de subprograma Debe colocarse al final del diagrama de cada subprograma.

Reset Lleva la ejecución de todos los programas al bloque de arranque y desconecta todas las salidas. Sólo puede haber un bloque de Reset en un proyecto de LLWin.

Terminal Sirve para indicar e introducir valores al programa durante el modo de funcionamiento On-Line (estando el PLC conectado al ordenador).

Display Sirve para visualizar el contenido de una variable o de una entrada analógica en uno de los displays del bloque terminal.

Mensaje Muestra un texto de una longitud máxima de 17 caracteres en el campo de texto del bloque funcional terminal.

Mostrar valores Permite mostrar, cuando se trabaja en modo On-Line, el contenido de variables o entradas digitales o analógicas durante el funcionamiento del programa. Este bloque se inserta sin conectar con ningún otro bloque del programa.

Variable +/- Permite incrementar o decrementar en una unidad el contenido de una variable.

Asignación Asigna un valor a una variable. El valor puede ser una entrada del PLC, analógica o digital, un número, el contenido de otra variable o el resultado del cálculo de una expresión.

Comparación Mediante este bloque se evalúa una condición, bifurcándose el flujo del programa en función de si se cumple o no.

Pitido Emite una señal sonora de la frecuencia elegida, a través del altavoz interno del ordenador.

Esperar Introduce un retardo entre la ejecución de dos bloques funcionales del programa.

Texto Permite introducir un texto en cualquier lugar, a modo de comentario o etiqueta informativa.

Consideraciones sobre las entradas Además de las entradas analógicas y digitales que coinciden con las del PLC, E1 a E16, EX y EY (por si se conecta el módulo que duplica el módulo de entradas en el PLC), LLWin dispone de otras entradas virtuales, accesibles desde el bloque funcional Terminal que pueden utilizarse para trabajar en modo On-Line, es decir, con conexión permanente entre el PLC y el ordenador. Estas entradas son las E17 a E21 cuyo estado puede modificarse

Page 24: Sistemas de control programables y robótica - josevicente.com · fácilmente al software Flowol, indicado para programar el autómata programable FlowGo. En el apartado de Programación

Sistemas de control programables y robótica

José Vicente Manga – Enero 2006 24

mediante interruptores virtuales, y E22 a E26 cuyo estado puede modificarse mediante pulsadores virtuales. Por otro lado, las entradas E31 a E38 representan el sentido de giro a izquierda de los motores conectados a las salidas M1 a M8, y las entradas virtuales E41 a E48 el sentido de giro a derechas de los motores conectados a las mismas salidas, de forma que cuando un motor gira a la izquierda se almacena un 1 en la entrada E3x correspondiente, estando la entrada E4x equivalente a 0. Esto permite bifurcar el flujo del programa en función del sentido de giro de un motor. Como ya se apuntó anteriormente, el flujo del programa se bifurca en función del estado de las entradas.

Para explorar las entradas analógicas EX y EY es necesario asignar su valor a una variable, y después, evaluar el contenido de esa variable mediante una comparación. Los parámetros del bloque funcional Terminal Estos parámetros son variables a las que se les puede modificar el valor sobre la marcha, mientras se ejecuta el programa (si trabajamos en modo On-Line), desde el bloque funcional Terminal. Su uso es similar al de cualquier otra variable. Insertando bloques funcionales

Debemos asegurarnos de que tenemos pulsado el botón en la barra de herramientas de LLWin. En la ventana de bloques funcionales hacemos clic sobre el bloque que nos interesa y los arrastramos al área de trabajo. Al soltarlo se abre un cuadro de diálogo que nos permite programar la función que deberá cumplir. Al final pulsamos el botón Aceptar en ese cuadro. Uniendo bloques funcionales para formar el diagrama Si al arrastrar un bloque funcional desde la ventana de bloques funcionales, pasamos con uno de sus terminales sobre el terminal de otro bloque del área de trabajo al que deseamos unirle, deteniéndonos un instante, al soltar el nuevo bloque quedará unido al anterior automáticamente. En caso de no unirles así, debemos asegurarnos de tener pulsado el botón en la barra de herramientas de LLWin, y vamos haciendo clic con el puntero en forma de cruz, sucesivamente, sobre los terminales de los bloques que deseamos unir. Borrando bloques en el diagrama Hacemos clic sobre el botón en la barra de herramientas de LLWin, y seguidamente hacemos clic sobre los bloques que deseamos eliminar. Borrado líneas de unión entre bloques en el diagrama Hacemos clic sobre el botón en la barra de herramientas de LLWin y, seguidamente, hacemos clic sobre las líneas que deseamos eliminar. Puesta en marcha y parada del programa

Para ejecutar el programa que hayamos realizado, es necesario pulsar el botón en la barra de herramientas de LLWin. Cuando descargamos el programa en el PLC de Fischertechnik se pone en funcionamiento de forma automática, por lo que si no deseamos que el robot comience a trabajar inmediatamente, deberemos haber programado la condición de no avanzar en la ejecución del diagrama de programación hasta no activarse o desactivarse alguna entrada.

Page 25: Sistemas de control programables y robótica - josevicente.com · fácilmente al software Flowol, indicado para programar el autómata programable FlowGo. En el apartado de Programación

Sistemas de control programables y robótica

José Vicente Manga – Enero 2006 25

PROPUESTAS DE TRABAJO CON LOS ALUMNOS UTILIZANDO LOS EQUIPOS DE ROBÓTICA DE FISCHERTECHNIK, SUS PLCs Y EL SOFTWARE LLWIN. A continuación aparecen varias propuestas de trabajo sobre robótica, con los alumnos de cuarto curso de la E.S.O. tal y como yo se las he entregado a ellos para que las desarrollen. Quiero hacer notar que aún suministrándoles las propuestas con las instrucciones así de detalladas y apoyándose en el manual de montaje de cada tipo de robot de Fischertechnik, los alumnos encuentran algunas dificultades. En los discos que acompañan a los equipos de robótica están los programas de control de los robots, realizados con el software LLWin, que pueden servir de muestra para analizar cómo se han desarrollado, pero que no recomiendo que se pongan a disposición de los alumnos, pues no tendría mucho sentido, entonces, encomendarles los proyectos propuestos. Por último, quiero llamar la atención sobre la instalación del software LLWin, pues por defecto instala también los programas de control de robots a los que me refiero en el párrafo anterior, por lo que es recomendable elegir la instalación personalizada y quitar las marcas que provocan la instalación de los ejemplos que acompañan a LLWin. En caso contrario, se deben borrar las carpetas que contienen los archivos de esos programas, que estarán instaladas en la carpeta PROYECTOS EN CASTELLANO, dentro de la carpeta LLWin 3.06 que, a su vez, se encontrará en la carpeta Archivos de programa del disco duro.

Page 26: Sistemas de control programables y robótica - josevicente.com · fácilmente al software Flowol, indicado para programar el autómata programable FlowGo. En el apartado de Programación

Sistemas de control programables y robótica

José Vicente Manga – Enero 2006 26

Puerta neumática automática

Funcionamiento: Al empujar ligeramente la puerta, debe abrirse completamente y, una vez abierta, si se interrumpe la barrera fotoeléctrica se cerrará de nuevo. Notas previas a la programación: Para realizar la programación del autómata programable tendremos en cuenta que: § La salida M1se conectará a la electroválvula que debe abrir el paso de aire hacia el

cilindro para que se abra la puerta. § La salida M2 se conectará a la electroválvula que debe abrir el paso de aire hacia el

cilindro para que se cierre la puerta. § La salida M3 será la encargada de iluminar la lámpara de la barrera fotoeléctrica. § El funcionamiento del compresor se controlará a través de la salida M4. § El pulsador que actúa como final de carrera para detectar que la puerta está cerrada, se

conectará a la entrada E1en la posición de contacto normalmente abierto. § El fototransistor de la barrera fotoeléctrica estará conectado a la entrada E2. § Además, se debe tener en cuenta que el cilindro será manipulado por dos

electroválvulas de 3/2 vías, por lo que será necesario que una esté activada y la otra no para que el vástago del cilindro avance y viceversa para que retroceda.

§ Cuando la puerta esté cerrada, las dos electroválvulas deben estar desactivadas. § Cuando la puerta esté abierta, dado que no existe un final de carrera que detecte esta

posición, la electroválvula que permita que la puerta se abra estará activada y la otra no.

Programación: El programa debe comportarse de la siguiente forma:

1. El compresor se pone en marcha. 2. Se conecta la lámpara de la barrera fotoeléctrica. 3. Esperamos a que la presión en el compresor alcance el nivel suficiente (unos 6 s.) 4. Si la puerta está abierta, debe cerrarse. 5. No ocurre nada hasta que el contacto del final de carrera se abra. 6. Si se abre el contacto del final de carrera, la puerta debe abrirse completamente. 7. La puerta permanecerá abierta hasta que se interrumpa la barrera luminosa. 8. En cuanto se interrumpa la barrera luminosa, la perta debe cerrarse y esperar a que se

abra de nuevo el contacto del final de carrera.

Page 27: Sistemas de control programables y robótica - josevicente.com · fácilmente al software Flowol, indicado para programar el autómata programable FlowGo. En el apartado de Programación

Sistemas de control programables y robótica

José Vicente Manga – Enero 2006 27

Robot de soldadura

Funcionamiento: El robot debe ser capaz de soldar, de forma automática, la tapa de un barril mediante tres puntos de soldadura. Comenzará el ciclo de soldadura cuando se active un pulsador, lo que hará que se desplace desde la posición inicial de reposo hasta la primera posición de soldadura, realice la soldadura, se desplace a la segunda posición de soldadura, realice la segunda soldadura, se desplace a la tercera posición de soldadura, realice la tercera soldadura y, finalmente, regrese a la posición inicial . Notas previas a la programación: § El motor M1 hace girar el cuerpo del robot y, con él, el brazo soldador. § La entrada E1 detecta la posición inicial del cuerpo del robot. § La variable Z2 almacena el número de pasos que se haya desplazado el cuerpo del

robot. Será puesta a cero cuando el cuerpo del robot esté en la posición inicial. § El motor M2 hace que el brazo de soldadura avance o retroceda. § La entrada E3 detecta la posición inicial del brazo de soldadura cuando está retraído. § La variable Z4 almacena el número de pasos que se haya desplazado el brazo del

robot. Será puesta a cero cuando el brazo de soldadura esté en la posición inicial. § El motor M3 hace subir o bajar el cabezal de soldadura. § La entrada E5 detecta la posición inicial del cabezal de soldadura en sentido vertical. § La variable Z6 almacena el número de pasos que se haya desplazado el cabezal de

soldadura. Será puesta a cero cuando el cabezal esté en la posición inicial. § La salida M4 encenderá o apagará la lámpara que simulará la chispa en el extremo del

electrodo, mientras se produce la soldadura. § La entrada E2 se utilizará para contar los impulsos generados al girar el motor M1. § La entrada E4 será la utilizada para contar los impulsos generados por el motor M2. § La entrada E6 permitirá el contaje de los impulsos generados durante el giro de M3.

§ La entrada E8 permitirá el inicio del ciclo de soldadura del barril.

§ La variable VAR1 será utilizada para almacenar el estado en que se encuentra el

proceso de soldadura. Al iniciarse el programa debe ponerse a cero. § La variable VAR2 se utilizará como variable auxiliar, para el control de las líneas de

programación de los motores M2 y M3, dentro del subprograma de posicionamiento del robot.

Realización del programa: Deben escribirse primero las líneas de programación de cada subprograma y, posteriormente, el programa principal. Programa principal:

1. El robot no hará nada hasta que se active un pulsador (E8). Cuando se active ese pulsador se realizarán, de forma secuencial, las tres soldaduras del barril.

2. Ponemos la variable VAR1 a cero. 3. Si la variable VAR1 es igual a cero, el robot debe situarse en la posición inicial, es

decir:

Page 28: Sistemas de control programables y robótica - josevicente.com · fácilmente al software Flowol, indicado para programar el autómata programable FlowGo. En el apartado de Programación

Sistemas de control programables y robótica

José Vicente Manga – Enero 2006 28

a. Llevamos el cabezal de soldadura a su posición inicial (Subprograma PosInicialM3).

b. Llevamos el brazo de soldadura a su posición inicial (Subprograma PosInicialM2).

c. Llevamos el cuerpo del robot a su posición inicial (Subprograma PosInicialM1).

d. Incrementamos en una unidad la variable VAR1 y volvemos al paso 3. 4. Si la variable VAR1 es igual a 1:

a. el robot si sitúa en la primera posición de soldadura, que correspondería con 40 pasos para el cuerpo, 112 pasos para el brazo y 82 para el cabezal, contados a partir de la posición inicial del robot. El desplazamiento a esa posición será controlado por un subprograma dedicado al posicionamiento del robot. Antes de saltar a ese subprograma debemos dar los valores adecuados a las variables utilizadas como referencia de las posiciones del cuerpo, el brazo y el cabezal, que serán, respectivamente, VAR11, VAR12 y VAR13).

b. Incrementamos VAR1 en una unidad y volvemos al paso 3. 5. Si VAR1=2:

a. El robot realiza la primera soldadura. La realización de la soldadura será controlada por un subprograma.

b. Incrementamos el valor de VAR1 en una unidad y volvemos al paso 3. 6. Tras finalizar la primera soldadura, el brazo del robot debe retraerse un poco, antes de

pasar a la posición de la siguiente soldadura (si VAR1=3). Esto se hace para evitar que el brazo golpee contra el barril al cambiar la posición del robot:

a. Basta con introducir el valor adecuado para VAR12, que podrá ser alrededor de 85, y saltar al subprograma de posicionamiento.

b. Incrementamos VAR1 en una unidad y volvemos al paso 3. 7. Si la variable VAR1 es igual a 4:

a. el robot se sitúa en la segunda posición de soldadura: posición del cuerpo (VAR11) = 46, posición del brazo (VAR12) = 98 y posición del cabezal (VAR13) = 84.

b. Se incrementa VAR1. 8. Si VAR1=5:

a. El robot realiza la segunda soldadura. Utilizaremos el mismo subprograma de la primera soldadura.

b. Incrementamos de nuevo VAR1 y volvemos al paso 3. 9. Si VAR1=6:

a. Retraemos el brazo del robot antes de cambiar a la tercera posición de soldadura de la misma forma que en el paso 6.

b. Volvemos a incrementar VAR1 y vamos de nuevo al paso 3. 10. Si VAR1=7:

a. El robot se sitúa en la tercera posición de soldadura: VAR11=53, VAR12=112 y VAR13=84.

b. Se incrementa VAR1. 11. Si VAR1=8:

a. Se realiza la tercera soldadura de la misma forma que las dos anteriores. b. Incrementamos VAR1 y volvemos al paso 3.

12. El robot vuelve a su posición inicial (si VAR1=9) y espera a recibir la orden de soldar un nuevo barril.

Page 29: Sistemas de control programables y robótica - josevicente.com · fácilmente al software Flowol, indicado para programar el autómata programable FlowGo. En el apartado de Programación

Sistemas de control programables y robótica

José Vicente Manga – Enero 2006 29

Subprograma PosIncialM1: 1. Conectamos el motor M1 haciéndole retroceder. 2. Si el final de carrera situado al comienzo del recorrido del cuerpo del robot (E1)

está a cero, esperamos. En caso contrario, continuamos en el paso siguiente. 3. Desconectamos el motor M1. 4. Inicializamos el contador de pasos del desplazamiento del cuerpo del robot (Z2=0).

Los subprogramas PosInicialM2 y PosInicialM3 son iguales al anterior, sustituyendo en ellos los motores y los parámetros correspondientes por los adecuados en cada caso. Subprograma soldadura: La lámpara instalada en el cabezal de soldadura (salida M4), se encenderá y apagará repetidamente durante un tiempo prefijado. Utilizaremos la variable del terminal ED para introducir el número que determine el tiempo que durará la soldadura, y la variable VAR4 como variable auxiliar para ir contando desde cero hasta alcanzar el valor de ED.

1. Ponemos VAR4 a cero. 2. Conectamos la lámpara. 3. Incrementamos VAR4 en una unidad. 4. Desconectamos la lámpara. 5. Comprobamos si VAR4 es igual a ED. Si ambas son iguales, finalizamos el

subprograma y se devuelve el control al programa principal. Si no son iguales, volvemos al paso 2 anterior.

Subprograma posicionamiento: Este subprograma estará formado por tres líneas de programación que se ejecutarán simultáneamente, una para cada motor de posicionamiento. La línea de programación del motor M1 será la situada directamente entre los conectores de comienzo y final del subprograma. Las dos líneas de programación restantes tendrán su propio inicio y funcionarán de forma separada y simultánea, pero no comenzarán a realizar su función hasta que la línea de programación del motor M1 las de permiso (poner VAR2 a 1). A continuación se muestra la estructura de la línea de programación del posicionamiento del cuerpo del robot (M1): 1. Hacemos que VAR2 sea 1, para que las líneas de programación del posicionamiento de

M2 y M3 comiencen a trabajar. 2. Esperamos un poco (menos de un segundo) y hacemos que VAR2 sea cero de nuevo. 3. Si la posición solicitada para M1 (VAR11) es menor que la actual (Z2):

a. Ponemos en marcha M1 para que avance. b. Contamos los pasos que genera E2 (a través de Z2) hasta alcanzar el número solicitado

(VAR11). c. Desconectamos M1.

4. Si la posición solicitada para M1 (VAR11) es mayor que la actual (Z2): a. Ponemos en marcha M1 para que retroceda. b. Contamos los pasos que genera E2 (a través de Z2) hasta alcanzar el número solicitado

(VAR11). c. Desconectamos M1.

5. Si la posición solicitada para M1 (VAR11) es igual que la actual (Z2) no se modifica la posición del cuerpo del robot.

6. Tras la modificación que se haya realizado al cumplirse alguna de las tres condiciones anteriores, debemos comprobar si los motores M2 y M3 siguen en marcha o, por el contrario, ya han alcanzado las nuevas posiciones. Si alguno de los dos está aún en

Page 30: Sistemas de control programables y robótica - josevicente.com · fácilmente al software Flowol, indicado para programar el autómata programable FlowGo. En el apartado de Programación

Sistemas de control programables y robótica

José Vicente Manga – Enero 2006 30

marcha, debemos esperar antes de finalizar el subprograma de posicionamiento. Si los dos están detenidos, finalizamos el subprograma de posicionamiento, pasando el control al programa principal.

Las líneas de programación para el control de la posición del brazo y del cabezal son similares a la anterior, con la salvedad de que cada una tiene su propio inicio y no deben comenzar la modificación de la posición de los motores, hasta que VAR2 esté a 1. Lógicamente, las variables utilizadas en esas líneas de programación serán las correspondientes a los parámetros de cada motor y, una vez realizado el posicionamiento solicitado, deben volver al principio y esperar hasta que VAR2 pase de nuevo a 1.

Page 31: Sistemas de control programables y robótica - josevicente.com · fácilmente al software Flowol, indicado para programar el autómata programable FlowGo. En el apartado de Programación

Sistemas de control programables y robótica

José Vicente Manga – Enero 2006 31

Seguidor de pistas Funcionamiento: El robot debe desplazarse a lo largo de una pista de color negro de 20mm de anchura, siguiendo las evoluciones de la misma. Si la pista desaparece bajo el robot, debido probablemente a que se ha llegado al final o se ha producido un cambio de dirección brusco, el robot debe girar sobre sí mismo, comprobando si ha encontrado la pista a cada paso que se desplace, y continuar avanzando a lo largo de la pista en cuanto la localice. Si, tras haber realizado un giro de 360º, no encuentra la pista, debe avanzar un poco en línea recta y girar de nuevo y así sucesivamente hasta encontrar la pista. Para conseguir este funcionamiento, el robot incorporará una lámpara que ilumine la pista y sus alrededores, y se colocarán dos fototransistores, separados uno de otro alrededor de 1cm., que “verán” la luz reflejada en cada momento y harán que el funcionamiento de los motores sea el adecuado para poder seguir el trazado de la pista. Notas previas a la programación: Para escribir el programa que permita el funcionamiento descrito anteriormente, tendremos en cuenta que: § Desde que encendemos la lámpara que ilumina la pista, hasta que los fototransistores

entregan la señal adecuada, transcurre un pequeño intervalo de tiempo, por lo que habrá que esperar un poco desde que se encienda la lámpara hasta que comience a funcionar el resto del programa.

§ Conectaremos el fototransistor derecho a la entrada E3 y el izquierdo a E4. Cuando

estén sobre la pista entregarán un cero y cuando no lo estén, un 1. § Conectaremos el motor derecho a la salida M1 y el izquierdo a M2. § Utilizaremos la entrada E1 para detectar los pasos generados por el giro del motor M1,

y la entrada E2 para detectar los pasos generados por el giro del motor M2. § La lámpara que ilumina la pista se conectará a la salida M3.

§ Si los dos fototransistores están sobre la pista, ambos motores deben avanzar. § Si sólo el fototransistor izquierdo está sobre la pista, el motor derecho debe avanzar y

el izquierdo estará parado. § Si sólo el fototransistor derecho está sobre la pista, el motor izquierdo debe avanzar y

el derecho estará parado. § Si ninguno de los fototransistores está sobre la pista, debe iniciarse el proceso de

búsqueda para localizar la pista de nuevo y continuar avanzado a lo largo de ella. § Utilizaremos la variable VAR1 como variable auxiliar para contar los pasos dados

durante el proceso de búsqueda.

Page 32: Sistemas de control programables y robótica - josevicente.com · fácilmente al software Flowol, indicado para programar el autómata programable FlowGo. En el apartado de Programación

Sistemas de control programables y robótica

José Vicente Manga – Enero 2006 32

Realización del programa: Deben escribirse primero las líneas de programación de cada subprograma y, posteriormente, el programa principal. Programa principal: 1. El robot no se moverá hasta que se desbloquee el pulsador conectado a la entrada E8. 2. Conectamos la lámpara que ilumina la pista (M3). 3. Esperamos un segundo antes de continuar. 4. Si el fototransistor derecho está sobre la pista:

a. Si el fototransistor izquierdo está sobre la pista: i. Hacemos que avance el motor M1. ii. Hacemos avanzar al motor M2. iii. Volvemos a comprobar la posición.

b. Si el fototransistor izquierdo no está sobre la pista: i. Paramos el motor M1. ii. Hacemos que avance M2. iii. Volvemos a comprobar la posición.

5. Si el fototransistor izquierdo está sobre la pista: a. Paramos el motor M2. b. Hacemos que avance M1. c. Volvemos a comprobar la posición.

6. Si ninguno de los fototransistores está sobre la pista: a. Paramos los motores. b. Iniciamos la búsqueda de la pista (subprograma Búsqueda). c. Al regresar de la búsqueda, volvemos a comprobar la posición.

Subprograma Búsqueda: 7. Hacemos avanzar al motor M1 y retroceder a M2 hasta que se genere un paso en E1

(Flanco). 8. Incrementamos VAR1 en una unidad. 9. Si la variable VAR1 indica que no se ha completado el giro de 360º:

a. Comprobamos si alguno de los fototransistores está sobre la pista: i. Si es así, terminamos el subprograma devolviendo el control al programa

principal. ii. Si no es así, volvemos al paso 1.

10. Si la variable VAR1 indica que se ha completado el giro de 360º: a. Comprobamos si alguno de los fototransistores está sobre la pista:

i. Si es así, terminamos el subprograma devolviendo el control al programa principal.

ii. Si no es así, hacemos que se repitan las siguientes acciones tres veces, a no ser que encontremos antes la pista: ! Hacemos avanzar ambos motores hasta detectar un paso en E1 (Flanco) ! Paramos ambos motores. ! Incrementamos VAR1. ! Comprobamos si alguno de los fototransistores está sobre la pista y si lo está

salimos del subprograma y devolvemos el control al programa principal. iii. Ponemos VAR1 a cero. iv. Volvemos al paso 1.

Page 33: Sistemas de control programables y robótica - josevicente.com · fácilmente al software Flowol, indicado para programar el autómata programable FlowGo. En el apartado de Programación

Sistemas de control programables y robótica

José Vicente Manga – Enero 2006 33

Transporte sin conductor

Funcionamiento: El robot debe desplazarse a lo largo de una pista negra. Al final de la pista recoge un palet, gira 180º y regresa a la pista. Avanza hasta que detecta el final de la pista y deposita allí el palet. A continuación vuelve a girar y trae otro palet y así sucesivamente. Notas previas a la programación: Para escribir el programa que permita el funcionamiento descrito anteriormente, tendremos en cuenta que: § El robot debe estar parado hasta que se le coloque sobre la pista, momento en que se

pondrá automáticamente en marcha. Cuando esté sobre la pista, los dos fototransistores estarán a cero.

§ Desde que encendemos la lámpara que ilumina la pista, hasta que los fototransistores entregan la señal adecuada, transcurre un pequeño intervalo de tiempo, por lo que habrá que esperar un poco desde que se encienda la lámpara hasta que comience a funcionar el resto del programa.

§ Conectaremos el fototransistor derecho a la entrada E3 y el izquierdo a E4. Cuando

estén sobre la pista entregarán un cero y cuando no lo estén, un 1. § Conectaremos el motor de arrastre derecho a la salida M1 y el izquierdo a M2. § Utilizaremos la entrada E1 para detectar los pasos generados por el giro del motor M1,

y la entrada E2 para detectar los pasos generados por el giro del motor M2. § La lámpara que ilumina la pista se conectará a la salida M3. § La salida M4 se utilizará para controlar el motor de la horquilla elevadora. § La entrada E5 se conectará al final de carrera que detecte la posición superior de la

horquilla elevadora. § La entrada E6 se conectará al final de carrera que detecte la posición inferior de la

horquilla elevadora. § Si los dos fototransistores están sobre la pista, ambos motores deben avanzar. § Si sólo el fototransistor izquierdo está sobre la pista, el motor derecho debe avanzar y

el izquierdo estará parado. § Si sólo el fototransistor derecho está sobre la pista, el motor izquierdo debe avanzar y

el derecho estará parado. § La variable VAR1 se utilizará para almacenar la fase en que se encuentra el robot en

cada momento. § Utilizaremos la variable del terminal EA para almacenar el número de pasos que debe

avanzar el robot al final de la pista para cargar (o descargar) el palet. § En la variable del terminal EB almacenaremos el número de pasos que debe retroceder

el robot después de haber cargado (o descargado) el palet, antes de girar para volver a la pista.

Page 34: Sistemas de control programables y robótica - josevicente.com · fácilmente al software Flowol, indicado para programar el autómata programable FlowGo. En el apartado de Programación

Sistemas de control programables y robótica

José Vicente Manga – Enero 2006 34

Realización del programa: Deben escribirse primero las líneas de programación de cada subprograma y, posteriormente, el programa principal. Programa principal: 1. Encendemos la lámpara que ilumina la pista y sus alrededores. 2. Esperamos un poco para que puedan reaccionar los fototransistores. 3. Si el robot está sobre la pista inicia la secuencia de operaciones:

a. Si VAR1 es cero, baja la horquilla (subprograma bajar), incrementa VAR1 y vuelve a comprobar el valor de VAR1 para realizar la siguiente operación.

b. Si VAR1 es 1, recorre la pista hasta el final y se detiene allí (subprograma desplazar), incrementa VAR1 y vuelve a comprobar el valor de VAR1 para realizar la siguiente operación.

c. Si VAR1 es 2, avanza los pasos programados en EA (subprograma avanzar), incrementa VAR1 y vuelve a comprobar el valor de VAR1 para realizar la siguiente operación.

d. Si VAR1 es 3, sube la horquilla (subprograma elevar), incrementa VAR1 y vuelve a comprobar el valor de VAR1 para realizar la siguiente operación.

e. Si VAR1 es 4, retrocede los pasos programados en EB (subprograma retroceder), incrementa VAR1 y vuelve a comprobar el valor de VAR1 para realizar la siguiente operación.

f. Si VAR1 es 5, gira 180º sobre sí mismo y se detiene (subprograma gira), incrementa VAR1 y vuelve a comprobar el valor de VAR1 para realizar la siguiente operación.

g. Si VAR1 es 6, recorre de nuevo la pista en sentido contrario y se detiene al llegar al final (subprograma desplazar), incrementa VAR1 y vuelve a comprobar el valor de VAR1 para realizar la siguiente operación.

h. Si VAR1 es 7, avanza los pasos programados en EA (subprograma avanzar), incrementa VAR1 y vuelve a comprobar el valor de VAR1 para realizar la siguiente operación.

i. Si VAR1 es 8, baja la horquilla (subprograma bajar), incrementa VAR1 y vuelve a comprobar el valor de VAR1 para realizar la siguiente operación.

j. Si VAR1 es 9, retrocede el número de pasos programado en EB (subprograma retroceder), incrementa VAR1 y vuelve a comprobar el valor de VAR1 para realizar la siguiente operación.

k. Si VAR1 es 10, gira 180º sobre sí mismo y se detiene (subprograma girar), incrementa VAR1 y vuelve a comprobar el valor de VAR1 para realizar la siguiente operación.

l. Si VAR1 es mayor que 10, ponemos VAR1 a cero, y volvemos a comprobar el valor de VAR1 para iniciar un nuevo ciclo de transporte.

Subprograma desplazar: 1. Si los dos fototransistores están sobre la pista:

a. Ponemos en marcha los dos motores, izquierdo y derecho, en la dirección de avance. b. Comprobamos de nuevo la posición de los fototransistores.

2. Si sólo el fototransistor derecho está sobre la pista: a. Ponemos en marcha el motor izquierdo, en la dirección de avance, y paramos el

derecho. b. Comprobamos de nuevo la posición de los fototransistores.

3. Si sólo el fototransistor izquierdo está sobre la pista: a. Ponemos en marcha el motor derecho, en la dirección de avance, y paramos el

izquierdo.

Page 35: Sistemas de control programables y robótica - josevicente.com · fácilmente al software Flowol, indicado para programar el autómata programable FlowGo. En el apartado de Programación

Sistemas de control programables y robótica

José Vicente Manga – Enero 2006 35

b. Comprobamos de nuevo la posición de los fototransistores. 4. Si ninguno de los fototransistores está sobre la pista (caso de llegar al final de la pista):

a. Paramos los dos motores y salimos del subprograma, devolviendo el control al programa principal.

Subprograma avanzar: 1. Ponemos en marcha los motores izquierdo y derecho, en la dirección de avance. 2. Esperamos a que se hayan generado los pasos programados en la variable del terminal

EA. 3. Paramos los dos motores, ponemos a cero la variable intermedia utilizada para contar los

pasos y salimos del subprograma devolviendo el control al programa principal. Subprograma retroceder: 1. Ponemos en marcha los motores izquierdo y derecho, en la dirección de retroceso. 2. Esperamos a que se hayan generado los pasos programados en la variable del terminal EB. 3. Paramos los dos motores, ponemos a cero la variable intermedia utilizada para contar los

pasos y salimos del subprograma devolviendo el control al programa principal. Subprograma elevar: 1. Ponemos en marcha el motor de la horquilla en la dirección de elevación. 2. Mantenemos el motor en marcha hasta que el final de carrera correspondiente se active. 3. Paramos el motor de la horquilla y salimos del subprograma, devolviendo el control al

programa principal. Subprograma bajar: 1. Ponemos en marcha el motor de la horquilla en la dirección de descenso. 2. Mantenemos el motor en marcha hasta que el final de carrera correspondiente se active. 3. Paramos el motor de la horquilla y salimos del subprograma, devolviendo el control al

programa principal. Subprograma girar: 1. Ponemos en marcha los motores izquierdo y derecho, uno en cada dirección. 2. Comprobamos la posición de los fototransistores 3. Si ambos fototransistores están sobre la pista:

a. Paramos ambos motores y salimos del subprograma, devolviendo el control al programa principal.

4. Si no están ambos fototransistores sobre la pista: a. Dejamos que siga el giro y seguimos comprobando la posición de los fototransitores.

Page 36: Sistemas de control programables y robótica - josevicente.com · fácilmente al software Flowol, indicado para programar el autómata programable FlowGo. En el apartado de Programación

Sistemas de control programables y robótica

José Vicente Manga – Enero 2006 36

Robot de columna Funcionamiento: El robot, partiendo de su posición inicial (cuerpo girado totalmente a la izquierda, brazo totalmente retraído y elevado, y pinza abierta), coge un barril de la posición 1 y lo coloca en la posición 2. A continuación, recoge un segundo barril de la posición 3 y lo apila encima del primer barril (posición 4). Seguidamente, vuelve a la posición inicial y, desde allí, devuelve los barriles a sus posiciones originales. Notas previas a la programación: Para escribir el programa que permita el funcionamiento descrito anteriormente, tendremos en cuenta que: § La salida M1 controlará el motor encargado del movimiento de giro del cuerpo del

robot. § La salida M2 controlará el motor encargado del desplazamiento del brazo en sentido

horizontal. § La salida M3 será la encargada de controlar el motor que mueve el brazo en sentido

vertical. § La salida M4 controlará el motor que permite abrir y cerrar la pinza. § A la entrada E1 debe conectase el final de carrera que detecte la posición inicial del

cuerpo. § A la entrada E3 debe conectarse el final de carrera que detecte la posición inicial del

brazo en sentido horizontal. § A la entrada E5 debe conectarse el final de carrera que detecte la posición inicial del

brazo en sentido vertical. § A la entrada E7 debe conectarse el final de carrera que detecte la posición de total

apertura de la pinza. § Al final del desplazamiento que pueda producirse en cada parte del robot no se

colocarán finales de carrera capaces de advertir de la llegada a esa posición, por lo que habrá que programar los movimientos por pasos contados a partir de la posición inicial, o bien, contados a partir de posiciones conocidas ocupadas en un momento anterior, que puedan servir de referencia.

§ El pulsador encargado de detectar la generación de pasos durante el desplazamiento del cuerpo, se conectará a la entrada E2.

§ El pulsador encargado de detectar la generación de pasos durante el desplazamiento del brazo en sentido horizontal, se conectará a la entrada E4.

§ El pulsador utilizado para detectar la generación de pasos durante el desplazamiento del brazo en sentido vertical, se conectará a la entrada E6.

§ El pulsador utilizado para detectar la generación de pasos durante el movimiento de cierre de la pinza, se conectará a la entrada E8.

§ Para el contaje de los pasos generados en el desplazamiento de cada motor, se utilizará la variable auxiliar Z seguida del número que corresponda a la variable utilizada en la detección de los pulsos correspondientes a cada motor (Z2, Z4, Z6 y Z8).

§ La variable VAR1 será la encargada de almacenar el número de la operación que se está realizando en cada momento.

§ La variable VAR11 contendrá el número de pasos que debe avanzar o retroceder el motor M1 en cada desplazamiento. La variable VAR12 almacenará el número de pasos que debe avanzar o retroceder el motor M2 en cada momento. En la variable VAR13 introduciremos el número de pasos que debe avanzar o retroceder el motor M3 en cada desplazamiento. La variable del terminal EA almacenará el número de pasos que debe avanzar el motor M4 para cerrar la pinza.

Page 37: Sistemas de control programables y robótica - josevicente.com · fácilmente al software Flowol, indicado para programar el autómata programable FlowGo. En el apartado de Programación

Sistemas de control programables y robótica

José Vicente Manga – Enero 2006 37

El robot debe realizar las siguientes operaciones, de forma secuencial: Al comenzar el programa, el robot espera unos segundos inmóvil y, después, se sitúa en su posición inicial (cuerpo totalmente girado hacia la izquierda, brazo totalmente retraído y elevado, y pinza completamente abierta). A continuación, se desplaza hasta dejar situada la pinza en torno al primer barril. Seguidamente cierra la pinza y el brazo se eleva totalmente antes de desplazarse hacia la posición de destino del barril. Se desplaza a la posición de destino del barril, abre la pinza y vuelve a elevar el brazo totalmente. Ahora avanzará hasta que la pinza se sitúe en torno al segundo barril y la cerrará para cogerlo. Seguidamente elevará el brazo totalmente y se desplazará a la posición adecuada para colocar el segundo barril sobre el primero. Abrirá la pinza totalmente, elevará el brazo y volverá a la posición inicial. En esta posición esperará unos segundos y, a continuación se desplazará a la posición en la que depositó el segundo barril, cerrará la pinza en torno a él, elevará el brazo totalmente y se desplazará a la posición en la que estaba ese barril en el primer momento, dejándole allí. Seguidamente, elevará el brazo totalmente y se desplazará a la posición en la que se encuentra el otro barril, cerrará la pinza en torno a él, elevará el brazo totalmente y se desplazará a la posición que ocupaba el barril al principio. A continuación, soltará el barril, elevará el brazo totalmente y regresará a la posición inicial, donde esperará unos segundos e iniciará de nuevo el ciclo de trabajo completo. Realización del programa: Deben escribirse primero las líneas de programación de cada subprograma y, posteriormente, el programa principal. Además, introduciremos, a través del terminal, el número de pasos para el cierre de la pinza, en la variable EA. Programa principal: 1. Ponemos VAR1 a cero. 2. Espera unos segundos. A continuación, interrogaremos sobre el contenido de VAR1 y haremos que el robot realice la operación que corresponda: 3. Si VAR1=0, hacemos que el robot se sitúe en la posición inicial, es decir:

a. Abre completamente la pinza (subprograma AbrirPinza). b. Eleva totalmente el brazo (subprograma SubeBrazo). c. Retrae completamente el brazo (subprograma RecogeBrazo). d. Gira el cuerpo totalmente a la izquierda (subprograma PosInicialM1) e. Se incrementa el contenido de la variable VAR1 y regresa para hacer una nueva

comprobación del contenido de VAR1. 4. Si VAR1=1, el robot se desplaza hasta la posición que ocupa el primer barril:

a. Introducimos en la variable VAR11 el número de pasos que deben generarse en el desplazamiento del cuerpo del robot.

b. Introducimos en la variable VAR12 el número de pasos que deben generarse en el desplazamiento horizontal del brazo del robot.

c. Introducimos en la variable VAR13 el número de pasos que deben generarse en el desplazamiento vertical del brazo del robot.

d. Ponemos en marcha el subprograma Posicionar, encargado de llevar al robot a la posición definida por el contenido de las variables VAR11, VAR12 y VAR13.

e. Se incrementa el contenido de la variable VAR1 y regresa para hacer una nueva comprobación del contenido de VAR1.

5. Si VAR1=2, el robot cerrará la pinza en torno al barril (subprograma CerrarPinza), se incrementa el contenido de la variable VAR1 y regresa para comprobar de nuevo el contenido de VAR1.

Page 38: Sistemas de control programables y robótica - josevicente.com · fácilmente al software Flowol, indicado para programar el autómata programable FlowGo. En el apartado de Programación

Sistemas de control programables y robótica

José Vicente Manga – Enero 2006 38

6. Si VAR1=3, el robot elevará completamente el brazo (subprograma SubeBrazo), se incrementa el contenido de la variable VAR1 y regresa para comprobar de nuevo el contenido de VAR1.

7. Si VAR1=4, el robot se desplazará a la posición en la que debe depositar el barril: a. Introducimos en la variable VAR11 el número de pasos que deben generarse en el

desplazamiento del cuerpo del robot, contados desde la posición inicial hasta la nueva posición.

b. Introducimos en la variable VAR12 el número de pasos que deben generarse en el desplazamiento horizontal del brazo del robot, contados desde la posición inicial hasta la nueva posición.

c. Introducimos en la variable VAR13 el número de pasos que deben generarse en el desplazamiento vertical del brazo del robot, desde la posición inicial hasta la nueva posición.

d. Ponemos en marcha el subprograma Posicionar, encargado de llevar al robot a la posición definida por el contenido de las variables VAR11, VAR12 y VAR13.

e. Se incrementa el contenido de la variable VAR1 y regresa para hacer una nueva comprobación del contenido de VAR1.

8. Si VAR1=5, el robot deja el barril en esa posición (subprograma AbrirPinza), se incrementa el contenido de la variable VAR1 y regresa para comprobar de nuevo el contenido de VAR1.

9. Si VAR1=6, el robot eleva totalmente el brazo (subprograma SubeBrazo), se incrementa el contenido de la variable VAR1 y regresa para comprobar de nuevo el contenido de VAR1.

10. Si VAR1=7, el robot se desplaza a la posición del segundo barril: a. Introducimos en la variable VAR11 el número de pasos que deben generarse en el

desplazamiento del cuerpo del robot, contados desde la posición inicial hasta la nueva posición.

b. Introducimos en la variable VAR12 el número de pasos que deben generarse en el desplazamiento horizontal del brazo del robot, contados desde la posición inicial hasta la nueva posición.

c. Introducimos en la variable VAR13 el número de pasos que deben generarse en el desplazamiento vertical del brazo del robot, contados desde la posición inicial hasta la nueva posición.

d. Ponemos en marcha el subprograma Posicionar, encargado de llevar al robot a la posición definida por el contenido de las variables VAR11, VAR12 y VAR13.

e. Se incrementa el contenido de la variable VAR1 y regresa para hacer una nueva comprobación del contenido de VAR1.

11. Si VAR1=8, el robot cierra la pinza en torno al barril (subprograma CerrarPinza), se incrementa el contenido de la variable VAR1 y regresa para comprobar de nuevo el contenido de VAR1.

12. Si VAR1=9, el robot eleva el brazo completamente (subprograma SubeBrazo), se incrementa el contenido de la variable VAR1 y regresa para comprobar de nuevo el contenido de VAR1.

13. Si VAR1=10, el robot sitúa el barril que lleva sujeto en la pinza, sobre el otro barril: a. Introducimos en la variable VAR11 el número de pasos que deben generarse en el

desplazamiento del cuerpo del robot, contados desde la posición inicial hasta la nueva posición.

b. Introducimos en la variable VAR12 el número de pasos que deben generarse en el desplazamiento horizontal del brazo del robot, contados desde la posición inicial hasta la nueva posición.

Page 39: Sistemas de control programables y robótica - josevicente.com · fácilmente al software Flowol, indicado para programar el autómata programable FlowGo. En el apartado de Programación

Sistemas de control programables y robótica

José Vicente Manga – Enero 2006 39

c. Introducimos en la variable VAR13 el número de pasos que deben generarse en el desplazamiento vertical del brazo del robot, contados desde la posición inicial hasta la nueva posición.

d. Ponemos en marcha el subprograma Posicionar, encargado de llevar al robot a la posición definida por el contenido de las variables VAR11, VAR12 y VAR13.

e. Se incrementa el contenido de la variable VAR1 y regresa para hacer una nueva comprobación del contenido de VAR1.

14. Si VAR1=11, el robot suelta el barril, dejándole en la nueva posición (subprograma AbrirPinza), se incrementa el contenido de la variable VAR1 y regresa para comprobar de nuevo el contenido de VAR1.

15. Si VAR1=12, el robot eleva completamente el brazo (subprograma SubeBrazo), se incrementa el contenido de la variable VAR1 y regresa para comprobar de nuevo el contenido de VAR1.

16. Si VAR1=13, el robot vuelve a la posición inicial y espera unos segundos: a. Abre completamente la pinza (subprograma AbrirPinza). b. Eleva totalmente el brazo (subprograma SubeBrazo). c. Retrae completamente el brazo (subprograma RecogeBrazo). d. Gira el cuerpo totalmente a la izquierda (subprograma PosInicialM1) e. Se incrementa el contenido de la variable VAR1 y el programa regresa al paso 2.

17. Si VAR1=14, el robot se sitúa en la posición del barril que está encima del otro: a. Introducimos en la variable VAR11 el número de pasos que deben generarse en el

desplazamiento del cuerpo del robot, contados desde la posición inicial hasta la nueva posición.

b. Introducimos en la variable VAR12 el número de pasos que deben generarse en el desplazamiento horizontal del brazo del robot, contados desde la posición inicial hasta la nueva posición.

c. Introducimos en la variable VAR13 el número de pasos que deben generarse en el desplazamiento vertical del brazo del robot, contados desde la posición inicial hasta la nueva posición.

d. Ponemos en marcha el subprograma Posicionar, encargado de llevar al robot a la posición definida por el contenido de las variables VAR11, VAR12 y VAR13.

e. Se incrementa el contenido de la variable VAR1 y regresa para hacer una nueva comprobación del contenido de VAR1.

18. Si VAR1=15, el robot cierra la pinza en torno al barril (subprograma CerrarPinza), se incrementa el contenido de la variable VAR1 y regresa para comprobar de nuevo el contenido de VAR1.

19. Si VAR1=16, el robot eleva completamente el brazo (subprograma SubeBrazo), se incrementa el contenido de la variable VAR1 y regresa para comprobar de nuevo el contenido de VAR1.

20. Si VAR1=17, el robot se sitúa en la posición que ocupaba el segundo barril al principio: a. Introducimos en la variable VAR11 el número de pasos que deben generarse en el

desplazamiento del cuerpo del robot, contados desde la posición inicial hasta la nueva posición.

b. Introducimos en la variable VAR12 el número de pasos que deben generarse en el desplazamiento horizontal del brazo del robot, contados desde la posición inicial hasta la nueva posición.

c. Introducimos en la variable VAR13 el número de pasos que deben generarse en el desplazamiento vertical del brazo del robot, contados desde la posición inicial hasta la nueva posición.

d. Ponemos en marcha el subprograma Posicionar, encargado de llevar al robot a la

Page 40: Sistemas de control programables y robótica - josevicente.com · fácilmente al software Flowol, indicado para programar el autómata programable FlowGo. En el apartado de Programación

Sistemas de control programables y robótica

José Vicente Manga – Enero 2006 40

posición definida por el contenido de las variables VAR11, VAR12 y VAR13. e. Se incrementa el contenido de la variable VAR1 y regresa para hacer una nueva

comprobación del contenido de VAR1. 21. Si VAR1=18, el robot deja el barril en ese lugar (subprograma AbrirPinza), se incrementa

el contenido de la variable VAR1 y regresa para comprobar de nuevo el contenido de VAR1.

22. Si VAR1=19, el robot eleva completamente el brazo (subprograma SubeBrazo), se incrementa el contenido de la variable VAR1 y regresa para comprobar de nuevo el contenido de VAR1.

23. Si VAR1=20, el robot se sitúa en la posición que ocupa el primer barril: a. Introducimos en la variable VAR11 el número de pasos que deben generarse en el

desplazamiento del cuerpo del robot, contados desde la posición inicial hasta la nueva posición.

b. Introducimos en la variable VAR12 el número de pasos que deben generarse en el desplazamiento horizontal del brazo del robot, contados desde la posición inicial hasta la nueva posición.

c. Introducimos en la variable VAR13 el número de pasos que deben generarse en el desplazamiento vertical del brazo del robot, contados desde la posición inicial hasta la nueva posición.

d. Ponemos en marcha el subprograma Posicionar, encargado de llevar al robot a la posición definida por el contenido de las variables VAR11, VAR12 y VAR13.

e. Se incrementa el contenido de la variable VAR1 y regresa para hacer una nueva comprobación del contenido de VAR1.

24. Si VAR1=21, el robot coge el barril (subprograma CerrarPinza), se incrementa el contenido de la variable VAR1 y regresa para comprobar de nuevo el contenido de VAR1.

25. Si VAR1=22, el robot eleva completamente el brazo (subprograma SubeBrazo), se incrementa el contenido de la variable VAR1 y regresa para comprobar de nuevo el contenido de VAR1.

26. Si VAR1=23, el robot se sitúa en la posición que ocupaba el primer barril al principio: a. Introducimos en la variable VAR11 el número de pasos que deben generarse en el

desplazamiento del cuerpo del robot, contados desde la posición inicial hasta la nueva posición.

b. Introducimos en la variable VAR12 el número de pasos que deben generarse en el desplazamiento horizontal del brazo del robot, contados desde la posición inicial hasta la nueva posición.

c. Introducimos en la variable VAR13 el número de pasos que deben generarse en el desplazamiento vertical del brazo del robot, contados desde la posición inicial hasta la nueva posición.

d. Ponemos en marcha el subprograma Posicionar, encargado de llevar al robot a la posición definida por el contenido de las variables VAR11, VAR12 y VAR13.

e. Se incrementa el contenido de la variable VAR1 y regresa para hacer una nueva comprobación del contenido de VAR1.

27. Si VAR1=24, el robot deja el barril en ese lugar (subprograma AbrirPinza), se incrementa el contenido de la variable VAR1 y regresa para comprobar de nuevo el contenido de VAR1.

28. Si VAR1=25, el robot eleva completamente el brazo (subprograma SubeBrazo), se incrementa el contenido de la variable VAR1 y el programa regresa al paso 1, para comenzar un nuevo ciclo de trabajo.

Page 41: Sistemas de control programables y robótica - josevicente.com · fácilmente al software Flowol, indicado para programar el autómata programable FlowGo. En el apartado de Programación

Sistemas de control programables y robótica

José Vicente Manga – Enero 2006 41

Subprograma AbrirPinza: 1. Ponemos en marcha el motor M4 en la dirección de apertura de la pinza. 2. Si se ha activado el final de carrera que detecta la apertura completa de la pinza:

a. Paramos el motor M4. b. Finalizamos el subprograma y devolvemos el control al programa principal.

3. Si no se ha activado el final de carrera que detecta la apertura completa de la pinza, realizamos una nueva comprobación del estado de ese final de carrera.

Subprograma CerrarPinza: 1. Ponemos en marcha el motor M4 en la dirección de cierre de la pinza. 2. Contamos los pasos que se van generando hasta alcanzar el número contenido en la

variable del terminal EA. 3. Detenemos el motor M4. 4. Finalizamos el subprograma y devolvemos el control al programa principal. Subprograma SubeBrazo: 1. Ponemos en marcha el motor M3 en la dirección de subida del brazo. 2. Si se ha activado el final de carrera que detecta que se ha alcanzado la posición superior

del brazo: a. Paramos el motor M3. b. Ponemos a cero la variable auxiliar Z6. c. Finalizamos el subprograma y devolvemos el control al programa principal.

3. Si no se ha activado el final de carrera que detecta la apertura completa de la pinza, realizamos una nueva comprobación del estado de ese final de carrera.

Subprograma RecogeBrazo: 1. Ponemos en marcha el motor M2 en la dirección en la que se retrae el brazo del robot. 2. Si el final de carrera que detecta el retraimiento completo del brazo está activado:

a. Paramos el motor M2. b. Ponemos a cero la variable auxiliar Z4. c. Finalizamos el subprograma y devolvemos el control al programa principal.

3. Si no se ha activado el final de carrera que detecta el retraimiento completo del brazo, hacemos una nueva comprobación del estado de ese final de carrera.

Subprograma PosInicialM1: 1. Ponemos en marcha el motor M1 en la dirección en que el cuerpo gira hacia la izquierda. 2. Si el final de carrera que detecta la posición inicial del cuerpo está activado:

a. Paramos el motor M1. b. Ponemos a cero la variable auxiliar Z1. c. Finalizamos el subprograma y devolvemos el control al programa principal.

3. Si no se ha activado el final de carrera que detecta la posición inicial del cuerpo, hacemos una nueva comprobación del estado de ese final de carrera.

Subprograma Posicionar: Este subprograma estará formado por tres líneas de programación que se ejecutarán simultáneamente, una para cada motor de posicionamiento. La línea de programación del motor M1 será la situada directamente entre los conectores de comienzo y final del subprograma. Las dos líneas de programación restantes tendrán su propio inicio y funcionarán de forma separada y simultánea, pero no comenzarán a realizar su función hasta que la línea de programación del motor M1 las de permiso (poner VAR2 a 1).

Page 42: Sistemas de control programables y robótica - josevicente.com · fácilmente al software Flowol, indicado para programar el autómata programable FlowGo. En el apartado de Programación

Sistemas de control programables y robótica

José Vicente Manga – Enero 2006 42

A continuación se muestra la estructura de la línea de programación del posicionamiento del cuerpo del robot (M1): 1. Hacemos que VAR2 tenga el valor 1. 2. Si el número de pasos que debe girar el cuerpo del robot (VAR11) es igual al contenido de

la variable auxiliar Z2: a. Paramos el motor M1. b. Esperamos mientras alguno de los motores M2 o M3 sigan funcionando. c. Cuando M2 y M3 hayan dejado de funcionar, ponemos VAR2 a cero, terminamos el

subprograma y devolvemos el control al programa principal. 3. Si el número de pasos que debe girar el cuerpo del robot (VAR11) es mayor que el

contenido de la variable auxiliar Z2: a. Ponemos en marcha el motor M1 en la dirección en la que desplace el cuerpo del robot

hacia la izquierda. b. Contamos los pasos recorridos hasta que la variable auxiliar Z2 contenga el mismo

valor que la variable VAR11, que indica la posición solicitada. c. Paramos el motor M1. d. Esperamos mientras alguno de los motores M2 o M3 sigan funcionando. e. Cuando M2 y M3 hayan dejado de funcionar, ponemos VAR2 a cero, terminamos el

subprograma y devolvemos el control al programa principal. 4. Si el número de pasos que debe girar el cuerpo del robot (VAR11) es menor que el

contenido de la variable auxiliar Z2: a. Ponemos en marcha el motor M1 en la dirección en la que desplace el cuerpo del robot

hacia la derecha. b. Contamos los pasos recorridos hasta que la variable auxiliar Z2 contenga el mismo

valor que la variable VAR11, que indica la posición solicitada. c. Paramos el motor M1. d. Esperamos mientras alguno de los motores M2 o M3 sigan funcionando. e. Cuando M2 y M3 hayan dejado de funcionar, ponemos VAR2 a cero, terminamos el

subprograma y devolvemos el control al programa principal. A continuación se muestra la línea de programación correspondiente al posicionamiento horizontal del brazo del robot (motor M2), que formará parte del subprograma de posicionamiento: 1. Comenzamos la línea de programación con el bloque de Inicio. 2. Si VAR2 no es igual a 1, esperamos hasta que lo sea. 3. Si VAR2=1, continuamos la ejecución del programa:

a. Si el número de pasos que debe adelantarse el brazo del robot (VAR12) es igual al contenido de la variable auxiliar Z4: i. Paramos el motor M2. ii. Volvemos al paso 2.

b. Si el número de pasos que debe adelantarse el brazo del robot (VAR12) es mayor que el contenido de la variable auxiliar Z4: i. Ponemos en marcha el motor M2 en la dirección en la que avance el brazo del

robot. ii. Contamos los pasos recorridos hasta que la variable auxiliar Z4 contenga el mismo

valor que la variable VAR12, que indica la posición solicitada. iii. Paramos el motor M2. iv. Volvemos al paso 2.

c. Si el número de pasos que debe adelantarse el brazo del robot (VAR12) es menor que el contenido de la variable auxiliar Z4:

Page 43: Sistemas de control programables y robótica - josevicente.com · fácilmente al software Flowol, indicado para programar el autómata programable FlowGo. En el apartado de Programación

Sistemas de control programables y robótica

José Vicente Manga – Enero 2006 43

i. Ponemos en marcha el motor M2 en la dirección en la que retroceda el brazo del robot.

ii. Contamos los pasos recorridos hasta que la variable auxiliar Z4 contenga el mismo valor que la variable VAR12, que indica la posición solicitada.

iii. Paramos el motor M2. iv. Volvemos al paso 2.

La línea de programación correspondiente al posicionamiento vertical del brazo del robot (motor M3) es similar a la del motor M2, sustituyendo las variables que intervienen en el proceso, por las asociadas al funcionamiento del motor M3.

Page 44: Sistemas de control programables y robótica - josevicente.com · fácilmente al software Flowol, indicado para programar el autómata programable FlowGo. En el apartado de Programación

Sistemas de control programables y robótica

José Vicente Manga – Enero 2006 44

Robot móvil con detección de bordes Funcionamiento: El robot debe desplazarse, sobre la superficie de una mesa, hacia delante en línea recta, pero al detectar el fin de la mesa por su lado izquierdo debe retroceder un poco, girar hacia la derecha sobre sí mismo y avanzar de nuevo. Si detecta el fin de la mesa por su lado derecho debe retroceder un poco, girar a la izquierda sobre sí mismo y seguir avanzando. Notas previas a la programación:

Para realizar la programación del autómata tendremos en cuenta que: § La salida M1 se conecta al motor derecho. § La salida M2 se conecta al motor izquierdo. § La entrada E1 se conectará al final de carrera encargado de detectar los pasos

producidos al girar la rueda tractora derecha. § La entrada E2 se conectará al final de carrera encargado de detectar los pasos

producidos al girar la rueda tractora izquierda. § A la entrada E3 conectaremos el final de carrera asociado a la rueda detectora derecha. § A la entrada E4 se conectará el final de carrera asociado a la rueda detectora izquierda. § El robot dispondrá de un pulsador de parada (reset) conectado a la entrada E8 que

permitirá que el programa que controla al robot se detenga o se ponga en marcha, en función del estado del pulsador.

§ Usaremos la variable V10 para almacenar los pasos que deben producirse en una rueda al retroceder tras encontrar un obstáculo, o para determinar la longitud del giro cuando el robot deba girar para corregir la trayectoria.

§ La variable intermedia Z2 se utilizará para el contaje de los pasos producidos en las ruedas tractoras.

Con el fin de clarificar el programa al máximo, la programación se realizará utilizando

subprogramas: Adelante, Retroceder, Izquierda y Derecha, además del programa principal. Programación: Deben escribirse primero las líneas de programación de cada subprograma y, posteriormente, el programa principal. Programa principal:

1. El robot no hará nada hasta que se desactive el pulsador conectado a la entrada E8. Al desactivarse ese pulsador, comenzará a desplazarse.

2. Si la entrada E3 no detecta un borde se comprueba la entrada E4. 3. Si la entrada E4 no detecta un borde el robot avanza (subprograma ADELANTE).

Y el programa principal regresa al principio para seguir controlando las evoluciones del robot.

4. Si la entrada E3 detecta un borde (precipicio en el lado derecho): a. Cargamos la variable V10 con el número de pasos que debe retroceder el robot

(por ejemplo 10). b. Hacemos que retroceda (subprograma RETROCEDER). c. Cargamos la variable V10 con el número de pasos que correspondan al tamaño

del giro que deseemos que se produzca (por ejemplo 10). d. Hacemos que gire hacia la izquierda (subprograma IZQUIERDA). e. Llevamos el programa de nuevo al principio para continuar verificando las

evoluciones del robot.

Page 45: Sistemas de control programables y robótica - josevicente.com · fácilmente al software Flowol, indicado para programar el autómata programable FlowGo. En el apartado de Programación

Sistemas de control programables y robótica

José Vicente Manga – Enero 2006 45

5. Si la entrada E4 detecta un borde (precipicio en el lado izquierdo): a. Cargamos la variable V10 con el número de pasos que debe retroceder el robot

(por ejemplo 10). b. Hacemos que retroceda (subprograma RETROCEDER). c. Cargamos la variable V10 con el número de pasos que correspondan al tamaño

del giro que deseemos que se produzca (por ejemplo 15). d. Hacemos que gire hacia la derecha (subprograma DERECHA). e. Llevamos el programa de nuevo al principio para continuar verificando las

evoluciones del robot. Subprograma ADELANTE:

1. Ponemos en marcha los dos motores en la dirección de avance del robot. Subprograma RETROCEDER:

2. Ponemos en marcha los dos motores en la dirección de retroceso del robot. 3. Ponemos la variable intermedia Z2 a cero. 4. Esperamos hasta que en la entrada E2 se haya detectado un número de pasos igual

al valor de V10. 5. Paramos ambos motores.

Subprograma IZQUIERDA:

1. Ponemos en marcha el motor derecho en la dirección de avance. 2. Ponemos en marcha el motor izquierdo en la dirección de retroceso. 3. Ponemos la variable intermedia Z2 a cero. 4. Esperamos hasta que en la entrada E2 se haya detectado un número de pasos igual

al valor de V10. 5. Paramos ambos motores.

Subprograma DERECHA:

1. Ponemos en marcha el motor derecho en la dirección de retroceso. 2. Ponemos en marcha el motor izquierdo en la dirección de avance. 3. Ponemos la variable intermedia Z2 a cero. 4. Esperamos hasta que en la entrada E2 se haya detectado un número de pasos igual

al valor de V10. 5. Paramos ambos motores.

Page 46: Sistemas de control programables y robótica - josevicente.com · fácilmente al software Flowol, indicado para programar el autómata programable FlowGo. En el apartado de Programación

Sistemas de control programables y robótica

José Vicente Manga – Enero 2006 46

Brazo transportador neumático Funcionamiento: Se encuentre donde se encuentre, el brazo debe girar hacia la posición A con la pinza abierta, coger la pieza que se encuentra en esa posición y llevarla hasta la posición B soltándola allí. A continuación regresa a la posición A y, tras una espera de 10 segundos, devuelve la pieza de la posición B a la posición A, pasando a situarse después en la posición B. Para que el brazo realice el ciclo descrito anteriormente debe disponerse de un pulsador que marque el inicio del ciclo al ser pulsado. Notas previas a la programación:

Para realizar la programación del autómata tendremos en cuenta que: § La salida M1 se conectará a la electroválvula M1, encargada de controlar el flujo de

aire que permite extender el vástago del cilindro Z1. § La salida M2 estará conectada a la electroválvula M2, encargada de controlar el flujo

de aire que hace retraerse al vástago del cilindro Z1. § La salida M3 debe conectarse a la electroválvula M3, encargada de abrir o cerrar el

paso de aire hacia el cilindro Z2. § La salida M4 estará conectada al motor del compresor. § Utilizaremos la variable V1 para ir almacenando el número de la operación que debe

realizar el robot en cada momento. § El robot dispondrá de un pulsador conectado a la entrada E8 que permitirá que el robot

realice un ciclo de trabajo, cada vez que, estando en reposo, se active el pulsador. § Puede completarse la programación añadiendo un sonido diferente para la apertura o

el cierre de la pinza y también para el posicionamiento en la plataforma A o en la B.

Con el fin de clarificar el programa al máximo, la programación se realizará utilizando subprogramas: Abrir, Cerrar, Pos_A y Pos_B, además del programa principal. Programación: Deben escribirse primero las líneas de programación de cada subprograma y, posteriormente, el programa principal. Programa principal:

1. Conectamos el motor del compresor activando la salida M4. 2. Esperamos 5 o 6 segundos antes de continuar para dar tiempo a que aumente la

presión del aire en el depósito. 3. Comprobamos el estado del pulsador conectado a la entrada E8 y, si está desactivado,

continuamos comprobando su estado. Cuando se active, continúa la ejecución del programa.

4. Ponemos la variable V1 a cero. 5. Comprobamos el valor de la variable V1 y hacemos que el robot realice alguna de las

operaciones siguientes en función del contenido almacenado en ella: a. Si V1=0, el robot abre la pinza (subprograma ABRIR) e incrementamos el

valor de V1 en una unidad. b. Si V1=1, el robot se desplaza a la posición A (subprograma POS_A) y se

incrementa el valor de V1 en una unidad. c. Si V1=2, se cierra la pinza (subprograma CERRAR) y se incrementa V1 en

una unidad.

Page 47: Sistemas de control programables y robótica - josevicente.com · fácilmente al software Flowol, indicado para programar el autómata programable FlowGo. En el apartado de Programación

Sistemas de control programables y robótica

José Vicente Manga – Enero 2006 47

d. Si V1=3, el brazo se desplaza a la posición B (subprograma POS_B) y se incrementa en una unidad el contenido de la variable V1.

e. Si V1=4, ocurre igual que cuando V1=0. f. Si V1=5, ocurre lo mismo que cuando V1=1. g. Si V1=6, el programa se detiene durante 10 segundos y, al reanudarse, se

incrementa en una unidad el contenido de V1. h. Si V1=7, ocurre lo mismo que cuando V1=3. i. Si V1=8, ocurre lo mismo que cuando V1=2. j. Si V1=9, ocurre lo mismo que cuando V1=1. k. Si V1=10, ocurre lo mismo que cuando V1=0. l. Si V1=11, el brazo se desplaza a la posición B (subprograma POS_B) y, a

continuación, volvemos a comprobar el estado del pulsador conectado a la entrada E8, para repetir un nuevo ciclo en caso de que se active.

Subprograma ABRIR:

1. Nos aseguramos de que se desconecta la electroválvula M3 que provoca el cierre de la pinza para que el vástago del cilindro Z2 avance por efecto del muelle, abriendo así la pinza.

2. Esperamos un par de segundos para garantizar que el vástago del cilindro ha completado su recorrido.

Subprograma CERRAR:

1. Conectamos la electroválvula M3 que provoca el retroceso del vástago del cilindro Z2. 2. Esperamos un par de segundos para garantizar que el vástago del cilindro ha

completado su recorrido, cerrando la pinza. Subprograma POS_A:

1. Desconectamos la electroválvula M2 que provoca el retroceso del vástago del cilindro Z1.

2. Conectamos la electroválvula M1 que provoca el avance del vástago del cilindro Z1. 3. Esperamos un par de segundos para garantizar que el vástago del cilindro ha

completado su recorrido, haciendo que el brazo se sitúe en la posición A. Subprograma POS_B:

1. Desconectamos la electroválvula M1 que provoca el avance del vástago del cilindro Z1.

2. Conectamos la electroválvula M2 que provoca el retroceso del vástago del cilindro Z1. 3. Esperamos un par de segundos para garantizar que el vástago del cilindro ha

completado su recorrido, haciendo que el brazo se sitúe en la posición A.

Page 48: Sistemas de control programables y robótica - josevicente.com · fácilmente al software Flowol, indicado para programar el autómata programable FlowGo. En el apartado de Programación

Sistemas de control programables y robótica

José Vicente Manga – Enero 2006 48

Instalación clasificadora neumática Funcionamiento: Esta instalación debe clasificar piezas blancas y negras, enviando las blancas al contenedor de la izquierda y las negras al de la derecha.

Las piezas se desplazan desde el depósito, impulsadas por la corredera accionada por el motor M4, pasando bajo la barrera óptica de reflexión directa. Esta barrera debe estar enfocada de manera que la entrada E1 indique “0” lógico ante una pieza negra y “1” lógico ante una pieza blanca. Para ello habrá que utilizar el diagnóstico de interfaz de LLWin.

El motor del compresor y la lámpara de la barrera luminosa deben conectarse directamente a la línea de alimentación, al no disponer de salidas suficientes para poder controlarles desde el programa, por lo que estarán permanentemente conectados. Notas previas a la programación:

Para realizar la programación del autómata tendremos en cuenta que: § La salida M1 se conectará a la electroválvula M1, encargada de hacer retroceder al

vástago del cilindro Z1. § La salida M2 debe conectarse a la electroválvula M2, encargada de hacer avanzar el

vástago del cilindro Z2. § La electroválvula M3 estará conectada a la salida M3, y será la encargada de llevar los

cilindros a su posición inicial, haciendo retroceder el vástago de Z2 y avanzar el vástago de Z1.

§ La salida M4 controlará el motor de la corredera que impulsa las piezas desde el depósito.

§ La entrada E1 estará conectada al fototransistor de la barrera luminosa, con el fin de detectar el color de cada pieza.

§ La entrada E2 debe conectarse al final de carrera que detecta cuando la corredera está en la posición más retrasada.

§ A la entrada E8 conectaremos un pulsador de forma que el ciclo de clasificación no se ponga en marcha hasta que sea pulsado. El ciclo de clasificación debe tener una duración suficiente para clasificar todas las piezas que quepan en el depósito cuando esté lleno.

§ Utilizaremos la variable V1 para almacenar el número de piezas clasificadas.

Con el fin de clarificar el programa al máximo, la programación se realizará utilizando subprogramas: Inicio, Empujar, Izquierda y Derecha, además del programa principal. Programación: Deben escribirse primero las líneas de programación de cada subprograma y, posteriormente, el programa principal. Programa principal:

1. Desplazar la corredera y los cilindros a la posición inicial (subprograma INICIO). 2. Comprobamos el estado del pulsador conectado a la entrada E8 y, si está desactivado,

continuamos comprobando su estado. Cuando se active, continúa la ejecución del programa.

3. Ponemos la variable V1 a cero. 4. Comprobamos el valor de V1, volviendo al inicio del programa cuando se hayan

clasificado todas las piezas que quepan en el depósito, y permitiendo la continuación del programa en caso contrario.

Page 49: Sistemas de control programables y robótica - josevicente.com · fácilmente al software Flowol, indicado para programar el autómata programable FlowGo. En el apartado de Programación

Sistemas de control programables y robótica

José Vicente Manga – Enero 2006 49

5. Comprobamos el color de la pieza que se encuentre bajo el sensor y si es blanca: a. Incrementamos el valor de V1 en una unidad. b. Empujamos para arrastrar la pieza bajo la horquilla clasificadora (subprograma

EMPUJAR). c. Desplazamos la horquilla hacia el contenedor de la izquierda y, tras una espera

de un segundo, devolvemos la horquilla a la posición central (subprograma IZQUIERDA).

d. Volvemos al punto 4, para comprobar el valor de V1 y actuar en consecuencia. 6. Si al realizar la comprobación del color de la pieza resulta negra:

a. Incrementamos el valor de V1 en una unidad. b. Empujamos para arrastrar la pieza bajo la horquilla clasificadora (subprograma

EMPUJAR). c. Desplazamos la horquilla hacia el contenedor de la derecha y, tras una espera

de un segundo, devolvemos la horquilla a la posición central (subprograma DERECHA).

d. Volvemos al punto 4, para comprobar el valor de V1 y actuar en consecuencia. Subprograma INICIO:

1. Conectamos, durante dos segundos, la electroválvula M3, encargada de hacer pasar el aire comprimido para llevar a ambos cilindros a sus posiciones iniciales.

2. Si el sensor de la corredera (E2) no está pulsado, conectamos el motor M4, que acciona la corredera y le dejamos conectado hasta que se detecte un cambio en el final de carrera E2, momento en que debe desconectarse.

Subprograma EMPUJAR:

1. Conectamos el motor M4, que acciona la corredera y le dejamos conectado hasta que se detecte un cambio en el final de carrera E2, momento en que debe desconectarse.

Subprograma IZQUIERDA:

1. Conectamos, durante dos segundos, la electroválvula M2, encargada de hacer avanzar el vástago del cilindro Z2.

2. Esperamos un segundo para garantizar que la pieza cae en el contenedor. 3. Conectamos, durante dos segundos, la electroválvula M3, encargada de hacer pasar el

aire comprimido para llevar a ambos cilindros a sus posiciones iniciales. Subprograma DERECHA:

1. Conectamos, durante dos segundos, la electroválvula M1, encargada de hacer retroceder el vástago del cilindro Z1.

2. Esperamos un segundo para garantizar que la pieza cae en el contenedor. 3. Conectamos, durante dos segundos, la electroválvula M3, encargada de hacer pasar el

aire comprimido para llevar a ambos cilindros a sus posiciones iniciales.

Page 50: Sistemas de control programables y robótica - josevicente.com · fácilmente al software Flowol, indicado para programar el autómata programable FlowGo. En el apartado de Programación

Sistemas de control programables y robótica

José Vicente Manga – Enero 2006 50

Brazo robot orientable Funcionamiento: El robot debe ser capaz de coger un barril amarillo de una plataforma y depositarlo en la otra. El ciclo de trabajo completo que debe realizar será: estando posicionada la pinza sobre la plataforma derecha, y tras la pulsación de puesta en marcha (E8), debe girar hacia la plataforma izquierda, coger el barril que se encuentra en ella y depositarlo en la plataforma derecha, posicionándose la pinza sobre la plataforma izquierda. Tras una espera de 10 segundos, debe recoger el barril de la plataforma derecha y devolverlo a su posición inicial, volviendo la pinza a colocarse sobre la plataforma derecha. Notas previas a la programación: Antes de comenzar a programar debe comprobarse si el sentido de giro de los motores es el adecuado y, si no es así, deben cambiarse los polos. Para ello utilizaremos el diagnóstico de interfaz de LLWin. § La salida M1 se conectará al motor encargado de hacer girar la pinza. § La salida M2 controlará el motor encargado de abrir y cerrar la pinza. § La entrada E1 debe conectarse al final de carrera que detecta la llegada de la pinza a la

plataforma derecha. § La entrada E2 detectará la llegada de la pinza a la plataforma izquierda. § La entrada E3 se conectará al final de carrera que detecta si la pinza está abierta. § La entrada E4 será la encargada de contar los pasos durante el cierre de la pinza. § La entrada E8 hará que comience el ciclo de trabajo del robot. § En la variable del terminal EA colocaremos el número de pasos que deben producirse

al cerrarse la pinza. § La variable intermedia Z4 será utilizada para en contaje de los pasos producidos

durante el cierre de la pinza. § Puede completarse la programación añadiendo un sonido diferente para la apertura o

el cierre de la pinza y también para el posicionamiento en la plataforma izquierda o en la derecha.

Con el fin de clarificar el programa al máximo, la programación se realizará utilizando

subprogramas: Abrir, Cerrar, Izquierda y Derecha, además del programa principal.

Programación: Deben escribirse primero las líneas de programación de cada subprograma y, posteriormente, el programa principal. Programa principal:

1. Nos aseguramos de que la pinza está abierta (subprograma ABRIR). 2. Nos aseguramos de que la pinza está sobre la plataforma derecha (subprograma

DERECHA). 3. Comprobamos el estado del pulsador conectado a la entrada E8 y, si está desactivado,

continuamos comprobando su estado. Cuando se active, continúa la ejecución del programa.

4. Hacemos que el brazo gire hacia la plataforma izquierda (subprograma IZQUIERDA). 5. Cerramos la pinza para coger el barril (subprograma CERRAR). 6. Giramos el brazo hacia la plataforma derecha (subprograma DERECHA). 7. Abrimos la pinza para dejar el barril (subprograma ABRIR).

Page 51: Sistemas de control programables y robótica - josevicente.com · fácilmente al software Flowol, indicado para programar el autómata programable FlowGo. En el apartado de Programación

Sistemas de control programables y robótica

José Vicente Manga – Enero 2006 51

8. El brazo gira de nuevo hacia la plataforma izquierda (subprograma IZQUIERDA). 9. Esperamos 10 segundos y repetimos el ciclo anterior, pero al revés. 10. Al finalizar el ciclo, el programa debe volver al punto 3 para esperar a una nueva

orden de trabajo. Subprograma ABRIR:

1. Hacemos girar al motor M2, que controla la apertura de la pinza, en la dirección de apertura hasta que el final de carrera E3 se active.

2. Ponemos la variable Z4 a cero para que pueda realizarse el contaje de pasos durante el cierre posterior de la pinza.

Subprograma CERRAR:

1. Conectamos el motor M2, que controla la apertura y el cierre de la pinza, en la dirección de cierre.

2. Esperamos, contando los pasos que se van produciendo al cerrar (E4), hasta que se alcance el número de pasos almacenado en la variable EA.

3. Desconectamos el motor M2. Subprograma IZQUIERDA:

1. Conectamos el motor M1, encargado del giro de la pinza, en la dirección adecuada para situar la pinza sobre la plataforma izquierda.

2. Cuando el final de carrera E2 detecte que la pinza ha llegado a su destino, desconectamos el motor M1.

Subprograma DERECHA:

1. Conectamos el motor M1, encargado del giro de la pinza, en la dirección adecuada para situar la pinza sobre la plataforma derecha.

2. Cuando el final de carrera E1 detecte que la pinza ha llegado a su destino, desconectamos el motor M1.