You are on page 1of 51

CURSO

SISTEMAS DE CONTROL PROGRAMABLES



Y

ROBTICA



PARA PROFESORES DE TECNOLOGA DE LA E.S.O.





Por Jos Vicente Manga
Sistemas de control programables y robtica
Jos Vicente Manga Enero 2006 2
LOS SISTEMAS DE CONTROL PROGRAMABLES: ENTRADA, CONTROL Y
SALIDA. REALIMENTACIN.

En primer lugar debemos tener una idea, lo ms clara posible, de lo que es un sistema
de control programable y cules pueden ser sus aplicaciones.
Un sistema de control programable es, bsicamente, un circuito electrnico que
almacena un programa informtico capaz de controlar el funcionamiento de algn dispositivo
o actuador, en funcin de la informacin recibida a travs de los sensores que tenga
conectados. En este sistema distinguimos tres mdulos bsicos:
1. Entrada: constituido por los sensores, que podrn ser analgicos (sondas de
temperatura, de iluminacin,...) o digitales (interruptores, conmutadores,
pulsadores,...), y los circuitos encargados de adaptar las seales de entrada de los
sensores para que puedan ser procesadas por el mdulo de control.
2. Control: se trata del circuito electrnico que almacena el programa informtico y
procesa las seales 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.






Dispondramos de un control muy limitado si no pudiera modificarse el
funcionamiento de los dispositivos de salida, en funcin de algunas variables, que modifiquen
su valor debido al propio funcionamiento de la mquina o del proceso que deseamos
controlar. Gracias a los sensores conectados al mdulo de entrada, podemos hacer que el
programa evale las condiciones de funcionamiento, pudiendo tomar decisiones que
modifiquen el modo de operacin de la mquina o del proceso que se controla.
Podemos considerar, de forma general, que la realimentacin consiste en la toma de
muestras en la salida, a travs de los dispositivos de entrada, para su evaluacin, con el fin de
tomar decisiones que afectan al funcionamiento de todo el sistema.
Un ejemplo muy sencillo podra ser el de un horno para cocer cermica, controlado
por un sistema de control programable que dispone de una sonda de temperatura instalada
dentro del horno y conectada a al mdulo de entrada, un rel conectado a al mdulo 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 funcin de la temperatura detectada por la sonda
y el tiempo transcurrido, de forma que se someta a la cermica a diferentes temperaturas a lo
largo del tiempo de coccin.


ENTRADA
(Sensores)
CONTROL
(Procesador y memoria)
SALIDA
(Actuadores)
Sistemas de control programables y robtica
Jos Vicente Manga Enero 2006 3
EL EQUIPO DE CONSTRUCCIN DE AUTOMATISMOS COMPUTING STARTER
KIT

Contiene las piezas necesarias para construir 8 modelos de mquinas que pueden
controlarse mediante un autmata programable, propuestos en el manual de instrucciones de
montaje, si bien es posible montar otros modelos diferentes utilizando la imaginacin.
En principio, el control de estos modelos, se sugiere en los manuales que acompaan
al Kit, se consigue mediante el interfaz de Fischertechnik, sin embargo es recomendable
utilizar el autmata programable FlowGo, debido a que en l, una vez almacenado el
programa de control, no desaparece al cesar la alimentacin de corriente.
En el cuaderno adjunto al Kit aparecen unas indicaciones que describen cmo
programar los distintos modelos en base a unas tareas propuestas. Todas esas indicaciones
estn dirigidas a la programacin mediante el software Llwin, pero pueden adaptarse
fcilmente al software Flowol, indicado para programar el autmata programable FlowGo.
En el apartado de Programacin... con Flowol se proponen otras tareas de
programacin para los modelos de mquinas citados anteriormente y algunos ms incluidos
en las mmicas suministradas con el programa, y se sugieren los diagramas de
programacin utilizando el software Flowol.
Con el fin de alargar la vida til del Kit de construccin de automatismos, recomiendo
que no se use si no es estrictamente necesario, sustituyndolo por estructuras que fabriquen
los propios alumnos con materiales de uso comn, motores, rels u otros componentes
electrnicos convencionales. El motivo es que no es difcil que los alumnos pierdan alguna de
las piezas del Kit, lo que llevara a no poder utilizarlo hasta reponer la pieza perdida. Adems,
con la dotacin actual, cuando sean varios los grupos de alumnos que deban realizar los
proyectos, no habr suficiente nmero de kits.
No obstante, ms adelante se muestran propuestas que pueden realizarse mediante este
equipo, aunque no son las nicas, pues dejando volar un poco la imaginacin es fcil
encontrar nuevas posibilidades.

CONOCIMIENTO DEL PLC (Control Lgico Programable) FLOWGO.





Botn de
arranque/parada
Entras analgicas
Puertos serie y
USB
Conector de
alimentacin
Salidas digitales
LED indicador
de alimentacin /
funcionamiento
Entradas
digitales
LEDs indicadores del
estado de las entradas
Salidas de
motores
LEDs indicadores del
estado de las salidas
Sistemas de control programables y robtica
Jos Vicente Manga Enero 2006 4

Botn
arranque/parada
Con una pulsacin de 2 segundos cambia el modo de control desde el
ordenador al modo de control del programa o viceversa.
LED indicador
de alimentacin/
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 conexin de datos al
ordenador. Es recomendable utilizar el puerto USB.
Conector de
alimentacin
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 elctrica. La tensin de alimentacin debe ser de 6V.
Entradas
analgicas
Hay dos y necesitan un conector de tipo Jack de 3,5mm estreo para
conectar los sensores a ellas. Ms adelante veremos cmo construir
sensores analgicos para este PLC.
Entradas
digitales
Son cuatro y a ellas se pueden conectar pulsadores, interruptores o
conmutadores de cualquier tipo. Los terminales que estn sobre la banda
negra corresponden con el polo negativo de la corriente y estn unidos
elctricamente en el interior, de modo que solo es necesaria la conexin
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 estn
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 travs del programa Flowol.
LEDs
indicadores del
estado de las
salidas
El indicador de cada salida se ilumina cuando en esa salida hay tensin
elctrica, es decir, cuando est activada, y permanece apagado en caso
contrario.
Salidas digitales Son 6 y su terminal comn es el polo positivo, es decir, el que est situado
sobre la banda roja en cada caso. La tensin 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. Tambin 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.


Perifricos 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. Tambin es posible
conectar algunos dispositivos como resistencias LDR, que permitirn 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 desconexin de los polos de entrada. Los
valores de resistencia entre 4K y 5,5K pueden provocar resultados ambiguos.


Sistemas de control programables y robtica
Jos Vicente Manga Enero 2006 5
Construccin de sensores analgicos.
Los perifricos de entrada analgicos pueden ser sensores de iluminacin, de
temperatura o de rotacin.
No se han suministrado sensores analgicos con el PLC FlowGo, por lo que ser
necesario construirlos.
Todos los sensores analgicos deben construirse sobre un conector Jack macho estreo
de 3,5mm de dimetro, conectando una resistencia divisora de tensin junto con la resistencia
especial sensible a la temperatura o a la luz cuando se trate de este tipo de sensores.


Sensor de iluminacin: 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 rotacin: Conectar los terminales exteriores de un potencimetro lineal de
10K entre los terminales A y B y conectar el terminal del cursor del potencimetro al
terminal C del conector Jack.


Utilizacin de las salidas.
Cada salida digital est diseada para suministrar una intensidad de corriente de
100mA, lo que supone una carga mxima para el PLC de 600mA.
Las salidas de motores pueden suministrar hasta 200mA en rgimen 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: Tensin de referencia (2,5V)
C: Tensin de medida.
Sistemas de control programables y robtica
Jos Vicente Manga Enero 2006 6
PROGRAMACIN 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
opcin Interfaz y ajustamos las
opciones del cuadro de dilogo que
aparece como se ve a la derecha.
Finalmente hacemos clic sobre el
botn 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.


Comprobacin 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 opcin simular del men Interfaz no est
marcada. En caso contrario, hacemos clic en ella para retirar la marca.

Mediante la opcin
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 funcin 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 botn izquierdo o
con el derecho del ratn, obtenemos la conexin o desconexin de la salida correspondiente
con una u otra polaridad, lo que dara lugar a que el motor conectado a ella girara en uno o en
otro sentido. Tambin podemos ajustar la potencia que se entrega en cada salida de motores
arrastrando el deslizador asociado a cada una, lo que debera hacer que el motor girara ms o
menos rpidamente.
Sistemas de control programables y robtica
Jos Vicente Manga Enero 2006 7
Las casillas de entrada con los nmeros 1 a 4 corresponden a las entradas digitales y, a
travs de ellas, podemos comprobar su estado, pues aparecern de color gris cuando estn
desactivadas y de color rojo en caso contrario.
La ventana Sensorios contiene las casillas correspondientes a las
entradas analgicas y desde ella se puede ajustar el tipo de sonda que se est
utilizando. Haciendo clic en los botones que contienen un tringulo negro se
muestra el men de seleccin. Por defecto est seleccionada la opcin
porcentaje, pero si vamos a utilizar una sonda de temperatura, elegiremos la
opcin Temperatura para poder programar en funcin de los grados
centgrados medidos por la sonda.
A continuacin se muestra un ejemplo de cmo aparecen las casillas correspondientes
a las entradas analgicas en funcin del tipo de sonda elegido.
Haciendo clic en el botoncito situado entre las casillas de valor y
de unidades se muestran los niveles mximo y mnimo en cada
caso:
Temperatura: desde 10C hasta 110C.
ngulo: desde 0 hasta 360.
Posicin: 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 slo aparecern en estas ventanas.
Tambin es posible comprobar o monitorizar el funcionamiento del PLC desde la
Pantalla chica, aunque no permite la eleccin del tipo de sonda o la modificacin de los
textos asociados a cada entrada o salida. A continuacin 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 sern 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 botn y hacemos clic de nuevo
en el lugar del rea de trabajo donde queramos insertar el bloque. En ese momento
aparece una ventana de programacin por botones, en la parte inferior de la pantalla,
para programar la funcin del bloque que acabamos de insertar.



Sistemas de control programables y robtica
Jos Vicente Manga Enero 2006 8
Pulsemos el botn 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 botn Sub. En caso de no escribir un
nombre para el subprograma, Flowol le asignar el nombre SubX, donde X ser un nmero
que identificar a cada subprograma de forma nica.
A continuacin haremos clic sobre el botn 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 programacin por botones que le corresponda, le asignaremos la funcin
adecuada, y as sucesivamente, hasta llegar al final de nuestro programa, donde insertaremos
un bloque de Inicio programado con la funcin Alto.
Una vez colocados los bloques funcionales necesarios, procederemos a enlazarles con
lneas para terminar de construir el diagrama de flujo. Para ello, hacemos clic en el botn
y, a continuacin, 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
direccin u otra en funcin 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 programacin.
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 botn Sub de la ventana de programacin por botones
correspondiente, y eligiendo el subprograma al que deseamos acceder. A continuacin
podemos hacer clic en Aceptar directamente o bien, introducir el nmero de veces que se
ejecutar el subprograma en ese momento de la ejecucin del programa principal. En caso de
no especificar el nmero 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 botn entramos en el modo de edicin. En este modo, cuando
hacemos clic sobre un bloque del diagrama o sobre una lnea, seleccionamos ese elemento y
podemos borrarlo, haciendo clic en el botn . Al mismo tiempo que seleccionamos un
bloque funcional, se muestra la ventana de programacin por botones, de manera que
podemos borrar la funcin programada en el bloque y componer una nueva funcin.
Si al hacer clic en un bloque funcional del diagrama, no soltamos el botn del ratn,
podemos arrastrarlo a una nueva posicin.

Sistemas de control programables y robtica
Jos Vicente Manga Enero 2006 9
PROPUESTAS PARA EL TRABAJO CON LOS ALUMNOS UTILIZANDO
FLOWGO Y FLOWOL.

Una posibilidad consiste en utilizar las mmicas (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 mmicas solo
se necesita el ordenador con el programa Flowol instalado en l para trabajar, sin embargo,
considero mucho ms educativo que los alumnos utilicen el PLC y construyan algn entorno
que sea preciso controlar con l.

Utilizando mmicas.
En la dotacin de equipos de automatismos enviada a los centros, se incluye un
disquete con las mmicas para Flowol, que deben instalarse tras instalar el programa, si
deseamos utilizarlas. Son doce los archivos de simulacin:

BRIDLIGH: Simula un puente estrecho cuyo trfico est regulado por un semforo en
cada extremo.

F_ARM: Se trata de la simulacin de un brazo robot giratorio que realiza soldaduras.

F_BARR: Es una simulacin de la entrada de un aparcamiento controlada por una
barrera.

F_DOOR: Simula el control automtico de una puerta corredera.

F_DRIER: Representa el funcionamiento de un secador de manos automtico.

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: Simulacin de un semforo que realiza un ciclo de cambios a partir de la
activacin de un pulsador.

F_MOTOR: Simula el control del funcionamiento de un motor por conteo de pasos.

F_STAMP: Representa el funcionamiento de una mquina 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 conexin o desconexin de la iluminacin de sealizacin
y alumbrado de un paso de cebra.
Sistemas de control programables y robtica
Jos Vicente Manga Enero 2006 10

Control del trfico de un puente estrecho.


Propuesta de trabajo: Se necesita
controlar el trfico de un puente estrecho
mediante semforos colocados en sus
extremos, de forma que se permita el paso de
vehculos en cada sentido durante un minuto.
Los semforos 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 semforos, 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 semforos y,
por otro lado, pueden establecerse ciclos de
funcionamiento diferentes para cada
semforo, de forma que se permita la
circulacin en un sentido durante ms 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


Sistemas de control programables y robtica
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 duracin y espaciados un
segundo uno de otro. El brazo se situar en la
posicin de soldadura tras la activacin de un
pulsador y comenzar el ciclo de soldadura a
continuacin, regresando a la posicin de
partida al finalizar el ciclo. La situacin del
brazo en ambas posiciones ser detectada por
dos finales de carrera.
Utiliza la entrada 2 para detectar la posicin
inicial del brazo y la entrada 1 para detectar la
posicin de soldadura. La entrada 8 debe
poner en marcha el robot. El motor A girar
hacia atrs para ir a la posicin de soldadura y
hacia adelante para regresar a la posicin
inicial.

Opciones adicionales: Puede aadirse
la comprobacin de que el brazo est situado
en la posicin de partida antes de comenzar el
desplazamiento a la posicin de soldadura.

Nota: Para poder usar esta mmica es
necesario seleccionar No interfaz mediante la
opcin 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 atrs
Est
activada ent 1?
Desactivar
Motor a
Sub 1(Soldar)
Tardar 1
Activar
salida 2
Tardar 0.3
Desactivar
salida 2
Alto
Sub
1(Soldar) x 3
Activar
Motor a adel
Est
activada ent 2?
Desactivar
Motor a
SI
SI
SI
NO
NO
NO


Sistemas de control programables y robtica
Jos Vicente Manga Enero 2006 12
Control de acceso con barrera.

Propuesta de trabajo: Debemos
programar el acceso a un aparcamiento
mediante una barrera automtica, que debe
elevarse al activar un pulsador y no debe bajar
hasta que una barrera luminosa detecte que el
vehculo ha entrado. Al lado de la entrada se
colocar un semforo 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 atrs para bajarla.

Opciones adicionales: Si un vehculo
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
vehculo quiera entrar y no queden plazas
libres, indicando esta situacin mediante el
parpadeo de la luz roja hasta que quede
alguna plaza libre.
Otra posibilidad sera hacer que la luz verde
del semforo 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 atrs
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


Sistemas de control programables y robtica
Jos Vicente Manga Enero 2006 13

Puerta corredera automtica.

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 automticamente, 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 atrs para cerrarla.

Opciones adicionales: Si la puerta est
cerrndose 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.
Tambin 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 atrs
Est
activada ent 1?
Desactivar
Motor a
Alto
Activar
salida 2
SI
NO
SI
NO
NO
SI
SI
NO
SI
NO


Sistemas de control programables y robtica
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: Podramos
introducir un retardo en la desconexin, 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 versin consiste en aadir un piloto
luminoso, conectado a la salida 3, que estara
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


Sistemas de control programables y robtica
Jos Vicente Manga Enero 2006 15

Calefactor de aire caliente.

Propuesta de trabajo: Debemos disear
el control de un calefactor de aire caliente, de
forma que se conecte el ventilador
automticamente 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 analgica 1, la
resistencia calefactora se conectar a la salida
2 y el ventilador estar controlado por la
salida de motor A.

Opciones adicionales: Puede aadirse
un pulsador, conectado, por ejemplo, a la
entrada 1, que permita variar la velocidad del
ventilador por pasos, cclicamente, 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


Sistemas de control programables y robtica
Jos Vicente Manga Enero 2006 16

Semforo.

Propuesta de trabajo: Se trata de
programar el funcionamiento de un semforo
para el control del paso de vehculos a travs
de un paso de peatones, donde se permite el
paso de vehculos de forma continua, excepto
cuando un peatn va a cruzar. Antes de
cruzar, el peatn debe activar un pulsador
para que el semforo cambie e impida el paso
de vehculos tras 30 segundos de espera, y
volver a permitir el paso de vehculos un
minuto despus de haberlo interrumpido. Este
sistema dispone de un interruptor que, al
conectarse, desactiva todo el sistema,
haciendo que se apaguen todas las luces del
semforo.
El interruptor se conecta a la entrada 2
y el pulsador a la entrada 1. La luz verde del
semforo 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 programacin para
que el semforo funcione de forma
automtica, bloqueando y permitiendo el paso
de vehculos cclicamente, en una de las
posiciones del interruptor, y slo impida la
circulacin de vehculos en funcin del
pulsador en la otra posicin del interruptor.
Estos dos modos de funcionamiento podran
coincidir con el da 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


Sistemas de control programables y robtica
Jos Vicente Manga Enero 2006 17

Control de un motor por pasos.


Propuesta de trabajo: Debemos
programar el motor de una grapadora
automtica, de forma que slo se ponga en
marcha cuando se activen dos pulsadores
alejados entre s, lo que forzar a utilizar
ambas manos, mantenindolas as alejadas del
rea de trabajo de la mquina. Adems el
motor debe girar hasta que la corredera que
presiona las grapas alcance la posicin
adecuada, que en este caso detectaremos
mediante un pulsador conectado al eje del
motor que se activar cuatro veces en cada
giro. El pin de la corredera debe girar una
vuelta y, a continuacin retroceder a la
posicin de partida.
Los pulsadores de puesta en marcha se
conectarn 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 atrs para recuperar la posicin
inicial.

Nota: Para poder usar esta mmica es
necesario seleccionar No interfaz mediante la
opcin 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 atrs
Sub 1(contar)
Desactivar
Motor a
Fijar n = 4
SI
SI
NO
NO
SI
SI
NO
NO
SI
NO


Sistemas de control programables y robtica
Jos Vicente Manga Enero 2006 18

Mquina estampadora.


Propuesta de trabajo: Se propone
controlar el funcionamiento de una mquina
estampadora de manera que realice la
estampacin presionando cinco veces el
material contra la matriz. La mquina 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 prximas al rea de trabajo de la
mquina. Adems dispondr de una barrera
luminosa delante del rea de trabajo, que
provocar la detencin de la mquina si el
operario se acerca mientras la mquina est
trabajando.
Los pulsadores de puesta en marcha se
conectarn a las entradas 3 y 4, el pulsador de
conteo de los ciclos de estampacin 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 estampacin.

Nota: Para poder usar esta mmica es
necesario seleccionar No interfaz mediante la
opcin 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?
Pralo Todo
SI
SI
NO
NO
SI
SI
SI
NO
NO
SI
SI
NO
NO
NO


Sistemas de control programables y robtica
Jos Vicente Manga Enero 2006 19

Faro martimo.


Propuesta de trabajo: Debemos
programar el funcionamiento de un faro
martimo de forma que emita un destello cada
5 segundos, con un segundo de duracin
cuando sea de noche y, adems, cada minuto
debe hacer sonar la bocina durante 5 segundos
cuando sea de da. La iluminacin del interior
del faro debe encenderse automticamente al
oscurecer y apagarse al amanecer.
La sonda de iluminacin 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
iluminacin del interior del faro.

Opciones adicionales: Una alternativa
puede ser que el faro slo emita destellos de
noche, haciendo sonar la bocina de da.
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

Sistemas de control programables y robtica
Jos Vicente Manga Enero 2006 20
Paso de cebra.


Propuesta de trabajo: Se trata de hacer
que la sealizacin luminosa de un paso de
cebra se active intermitentemente.
La salida 1 ser la encargada de
conectar y desconectar todas las lmparas.

Opciones adicionales: En lugar de
utilizar un ciclo de trabajo donde el tiempo
que permanecen encendidas las lmparas sea
igual al que permanecen apagadas, podra
programarse un ciclo de trabajo en el que,
cada vez, ocurrieran varias intermitencias
rpidas seguidas de una intermitencia ms
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 ms educativo, aunque requiera ms tiempo.
No obstante pueden plantearse muchas otras propuestas fciles 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, an ms. A continuacin os sugiero otras:
Control del trfico, mediante semforos, en un cruce de dos calles con sentido nico
de circulacin, utilizando diodos LED para realizar los semforos, 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 semforos de vehculos y los de un posible paso de peatones.
Control del trfico, mediante semforos, en un cruce de dos calles con doble sentido
de circulacin. En este caso puede ser necesario utilizar todas las salidas digitales del
PLC y las salidas de motores.
Control automtico de la iluminacin de las farolas de una calle, de forma que se
iluminen al hacerse de noche y se apaguen al cabo de un tiempo programado.
Sistemas de control programables y robtica
Jos Vicente Manga Enero 2006 21
EL PLC DE FISCHERTECHNIK: FUNCIONAMIENTO, ENTRADAS Y SALIDAS.

El Intelligent Interface de Fischertechnik es un autmata programable de
caractersticas similares a FlowGo, pero con algunas diferencias importantes:
- No mantiene los programas almacenados en la memoria si falla la alimentacin.
- Slo dispone de 4 salidas, aunque todas ellas pueden controlar motores totalmente.
- Slo es conectable al ordenador mediante el puerto serie RS 232.
- Dispone de 8 entradas digitales y 2 entradas analgicas.



1. Conector de alimentacin para una corriente continua de 9V. Al utilizar este
conector se desconecta el circuito de los terminales de alimentacin por batera.
2. Terminales de alimentacin por batera.
3. LED rojo indicador de que hay tensin de alimentacin.
4. Conector serie RS232 para la transmisin de datos desde y hacia el ordenador.
5. Salidas M1 a M4, con capacidad para conectar motores, lmparas o electroimanes
(rels, 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 analgicas EX y EY con capacidad para conectar a ellas sensores
realizados con resistencias LDR, NTC y potencimetros. Estn diseadas para
realizar medidas entre 0 y 5K. La resistencia conectada a ellas se convierte en un
valor numrico entre 0 y 1024, y tienen una velocidad de exploracin de 20ms.
Puede ocurrir un error de medida entorno al 2%.
8. Regleta interna a la que puede conectarse un mdulo de ampliacin para duplicar
el nmero de entradas y salidas digitales.

-
+
Sistemas de control programables y robtica
Jos Vicente Manga Enero 2006 22
PROGRAMACIN DE ROBOTS MEDIANTE DIAGRAMAS DE BLOQUES
FUNCIONALES CON LLWIN.

La programacin con el software LLWin es similar a la programacin con Flowol, ya
que ambos utilizan diagramas de bloques funcionales. Sin embargo, LLWin es un entorno
ms complejo, y a la vez ms potente, pues incluye ms bloques funcionales, lo que da mayor
facilidad a la programacin.
En cuanto al entorno del programa, inicialmente puede ser algo ms engorroso de
utilizar que Flowol, por lo que es muy recomendable que se utilice despus 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 botn 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 asegurndonos de haber pulsado el botn en la
barra de herramientas de LLWin y haber introducido un nombre para l, en el cuadro de
dilogo 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 botn 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 rectngulo
que representa al subprograma que hemos realizado. Cuando hayamos terminado pulsamos el
botn para ir al programa principal, o el botn 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 exploracin de los sensores de entrada conectados a las entradas digitales
E1 a E8. El flujo del programa se bifurca en funcin del estado de las entradas. Para
explorar las entradas analgicas EX y EY es necesario asignar su valor a una
variable, y despus, evaluar el contenido de esa variable mediante una comparacin.

Arranque
Pone en marcha el programa que hayamos escrito.

Fin
Detiene el programa o subprograma en el que sen encuentre, al llegar su ejecucin al
punto en que se encuentre.
Sistemas de control programables y robtica
Jos Vicente Manga Enero 2006 23

Parada de emergencia
Detiene todos los programas que se estn 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 ejecucin de todos los programas al bloque de arranque y desconecta todas
las salidas. Slo 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 analgica en uno
de los displays del bloque terminal.

Mensaje
Muestra un texto de una longitud mxima 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 analgicas durante el funcionamiento del programa. Este bloque
se inserta sin conectar con ningn otro bloque del programa.

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

Asignacin
Asigna un valor a una variable. El valor puede ser una entrada del PLC, analgica o
digital, un nmero, el contenido de otra variable o el resultado del clculo de una
expresin.

Comparacin
Mediante este bloque se evala una condicin, bifurcndose el flujo del programa en
funcin de si se cumple o no.

Pitido
Emite una seal sonora de la frecuencia elegida, a travs del altavoz interno del
ordenador.

Esperar
Introduce un retardo entre la ejecucin 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
Adems de las entradas analgicas y digitales que coinciden con las del PLC, E1 a
E16, EX y EY (por si se conecta el mdulo que duplica el mdulo 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 conexin permanente entre
el PLC y el ordenador. Estas entradas son las E17 a E21 cuyo estado puede modificarse
Sistemas de control programables y robtica
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 funcin del
sentido de giro de un motor.
Como ya se apunt anteriormente, el flujo del programa se bifurca en funcin del
estado de las entradas.
Para explorar las entradas analgicas EX y EY es necesario asignar su valor a una
variable, y despus, evaluar el contenido de esa variable mediante una comparacin.

Los parmetros del bloque funcional Terminal
Estos parmetros 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.

I nsertando bloques funcionales
Debemos asegurarnos de que tenemos pulsado el botn 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 dilogo que nos permite
programar la funcin que deber cumplir. Al final pulsamos el botn 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, detenindonos un instante, al soltar el nuevo bloque quedar unido al anterior
automticamente.
En caso de no unirles as, debemos asegurarnos de tener pulsado el botn 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 botn en la barra de herramientas de LLWin, y
seguidamente hacemos clic sobre los bloques que deseamos eliminar.

Borrado lneas de unin entre bloques en el diagrama
Hacemos clic sobre el botn en la barra de herramientas de LLWin y,
seguidamente, hacemos clic sobre las lneas que deseamos eliminar.

Puesta en marcha y parada del programa
Para ejecutar el programa que hayamos realizado, es necesario pulsar el botn en la
barra de herramientas de LLWin.
Cuando descargamos el programa en el PLC de Fischertechnik se pone en
funcionamiento de forma automtica, por lo que si no deseamos que el robot comience a
trabajar inmediatamente, deberemos haber programado la condicin de no avanzar en la
ejecucin del diagrama de programacin hasta no activarse o desactivarse alguna entrada.
Sistemas de control programables y robtica
Jos Vicente Manga Enero 2006 25
PROPUESTAS DE TRABAJO CON LOS ALUMNOS UTILIZANDO LOS EQUIPOS
DE ROBTICA DE FISCHERTECHNIK, SUS PLCs Y EL SOFTWARE LLWIN.

A continuacin aparecen varias propuestas de trabajo sobre robtica, 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 an suministrndoles las propuestas con las instrucciones as de
detalladas y apoyndose en el manual de montaje de cada tipo de robot de Fischertechnik, los
alumnos encuentran algunas dificultades.
En los discos que acompaan a los equipos de robtica estn los programas de control
de los robots, realizados con el software LLWin, que pueden servir de muestra para analizar
cmo se han desarrollado, pero que no recomiendo que se pongan a disposicin de los
alumnos, pues no tendra mucho sentido, entonces, encomendarles los proyectos propuestos.
Por ltimo, quiero llamar la atencin sobre la instalacin del software LLWin, pues
por defecto instala tambin los programas de control de robots a los que me refiero en el
prrafo anterior, por lo que es recomendable elegir la instalacin personalizada y quitar las
marcas que provocan la instalacin de los ejemplos que acompaan a LLWin. En caso
contrario, se deben borrar las carpetas que contienen los archivos de esos programas, que
estarn 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.
Sistemas de control programables y robtica
Jos Vicente Manga Enero 2006 26

Puerta neumtica automtica

Funcionamiento:
Al empujar ligeramente la puerta, debe abrirse completamente y, una vez abierta, si se
interrumpe la barrera fotoelctrica se cerrar de nuevo.

Notas previas a la programacin:
Para realizar la programacin del autmata programable tendremos en cuenta que:
La salida M1se conectar a la electrovlvula que debe abrir el paso de aire hacia el
cilindro para que se abra la puerta.
La salida M2 se conectar a la electrovlvula 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 lmpara de la barrera fotoelctrica.
El funcionamiento del compresor se controlar a travs de la salida M4.
El pulsador que acta como final de carrera para detectar que la puerta est cerrada, se
conectar a la entrada E1en la posicin de contacto normalmente abierto.
El fototransistor de la barrera fotoelctrica estar conectado a la entrada E2.
Adems, se debe tener en cuenta que el cilindro ser manipulado por dos
electrovlvulas de 3/2 vas, por lo que ser necesario que una est activada y la otra no
para que el vstago del cilindro avance y viceversa para que retroceda.
Cuando la puerta est cerrada, las dos electrovlvulas deben estar desactivadas.
Cuando la puerta est abierta, dado que no existe un final de carrera que detecte esta
posicin, la electrovlvula que permita que la puerta se abra estar activada y la otra
no.

Programacin:
El programa debe comportarse de la siguiente forma:
1. El compresor se pone en marcha.
2. Se conecta la lmpara de la barrera fotoelctrica.
3. Esperamos a que la presin 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.



Sistemas de control programables y robtica
Jos Vicente Manga Enero 2006 27

Robot de soldadura
Funcionamiento:
El robot debe ser capaz de soldar, de forma automtica, 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 posicin inicial de reposo hasta la primera posicin de
soldadura, realice la soldadura, se desplace a la segunda posicin de soldadura, realice la
segunda soldadura, se desplace a la tercera posicin de soldadura, realice la tercera soldadura
y, finalmente, regrese a la posicin inicial .

Notas previas a la programacin:
El motor M1 hace girar el cuerpo del robot y, con l, el brazo soldador.
La entrada E1 detecta la posicin inicial del cuerpo del robot.
La variable Z2 almacena el nmero de pasos que se haya desplazado el cuerpo del
robot. Ser puesta a cero cuando el cuerpo del robot est en la posicin inicial.

El motor M2 hace que el brazo de soldadura avance o retroceda.
La entrada E3 detecta la posicin inicial del brazo de soldadura cuando est retrado.
La variable Z4 almacena el nmero de pasos que se haya desplazado el brazo del
robot. Ser puesta a cero cuando el brazo de soldadura est en la posicin inicial.

El motor M3 hace subir o bajar el cabezal de soldadura.
La entrada E5 detecta la posicin inicial del cabezal de soldadura en sentido vertical.
La variable Z6 almacena el nmero de pasos que se haya desplazado el cabezal de
soldadura. Ser puesta a cero cuando el cabezal est en la posicin inicial.

La salida M4 encender o apagar la lmpara 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 lneas de
programacin de los motores M2 y M3, dentro del subprograma de posicionamiento
del robot.

Realizacin del programa:
Deben escribirse primero las lneas de programacin 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 realizarn, 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 posicin inicial, es
decir:
Sistemas de control programables y robtica
Jos Vicente Manga Enero 2006 28
a. Llevamos el cabezal de soldadura a su posicin inicial (Subprograma
PosInicialM3).
b. Llevamos el brazo de soldadura a su posicin inicial (Subprograma
PosInicialM2).
c. Llevamos el cuerpo del robot a su posicin 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 sita en la primera posicin de soldadura, que correspondera con 40
pasos para el cuerpo, 112 pasos para el brazo y 82 para el cabezal, contados a
partir de la posicin inicial del robot. El desplazamiento a esa posicin 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 sern, 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 realizacin 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 posicin de la siguiente soldadura (si VAR1=3). Esto se hace para evitar que
el brazo golpee contra el barril al cambiar la posicin 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 sita en la segunda posicin de soldadura: posicin del cuerpo
(VAR11) = 46, posicin del brazo (VAR12) = 98 y posicin 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 posicin 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 sita en la tercera posicin 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 posicin inicial (si VAR1=9) y espera a recibir la orden de soldar
un nuevo barril.

Sistemas de control programables y robtica
Jos Vicente Manga Enero 2006 29
Subprograma PosIncialM1:
1. Conectamos el motor M1 hacindole 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 parmetros correspondientes por los adecuados en cada caso.

Subprograma soldadura:
La lmpara 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 nmero 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 lmpara.
3. Incrementamos VAR4 en una unidad.
4. Desconectamos la lmpara.
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 lneas de programacin que se ejecutarn
simultneamente, una para cada motor de posicionamiento. La lnea de programacin del
motor M1 ser la situada directamente entre los conectores de comienzo y final del
subprograma. Las dos lneas de programacin restantes tendrn su propio inicio y funcionarn
de forma separada y simultnea, pero no comenzarn a realizar su funcin hasta que la lnea
de programacin del motor M1 las de permiso (poner VAR2 a 1).
A continuacin se muestra la estructura de la lnea de programacin del posicionamiento
del cuerpo del robot (M1):
1. Hacemos que VAR2 sea 1, para que las lneas de programacin 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 posicin 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 travs de Z2) hasta alcanzar el nmero solicitado
(VAR11).
c. Desconectamos M1.
4. Si la posicin 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 travs de Z2) hasta alcanzar el nmero solicitado
(VAR11).
c. Desconectamos M1.
5. Si la posicin solicitada para M1 (VAR11) es igual que la actual (Z2) no se modifica la
posicin del cuerpo del robot.
6. Tras la modificacin 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 an en
Sistemas de control programables y robtica
Jos Vicente Manga Enero 2006 30
marcha, debemos esperar antes de finalizar el subprograma de posicionamiento. Si los dos
estn detenidos, finalizamos el subprograma de posicionamiento, pasando el control al
programa principal.

Las lneas de programacin para el control de la posicin 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 modificacin de la posicin de los motores, hasta que VAR2 est a 1.
Lgicamente, las variables utilizadas en esas lneas de programacin sern las
correspondientes a los parmetros de cada motor y, una vez realizado el posicionamiento
solicitado, deben volver al principio y esperar hasta que VAR2 pase de nuevo a 1.
Sistemas de control programables y robtica
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 direccin 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 lnea recta y girar
de nuevo y as sucesivamente hasta encontrar la pista.
Para conseguir este funcionamiento, el robot incorporar una lmpara que ilumine la pista
y sus alrededores, y se colocarn dos fototransistores, separados uno de otro alrededor de
1cm., que vern la luz reflejada en cada momento y harn que el funcionamiento de los
motores sea el adecuado para poder seguir el trazado de la pista.

Notas previas a la programacin:
Para escribir el programa que permita el funcionamiento descrito anteriormente,
tendremos en cuenta que:
Desde que encendemos la lmpara que ilumina la pista, hasta que los fototransistores
entregan la seal adecuada, transcurre un pequeo intervalo de tiempo, por lo que
habr que esperar un poco desde que se encienda la lmpara hasta que comience a
funcionar el resto del programa.

Conectaremos el fototransistor derecho a la entrada E3 y el izquierdo a E4. Cuando
estn sobre la pista entregarn un cero y cuando no lo estn, 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 lmpara que ilumina la pista se conectar a la salida M3.

Si los dos fototransistores estn sobre la pista, ambos motores deben avanzar.
Si slo el fototransistor izquierdo est sobre la pista, el motor derecho debe avanzar y
el izquierdo estar parado.
Si slo 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
bsqueda 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 bsqueda.

Sistemas de control programables y robtica
Jos Vicente Manga Enero 2006 32
Realizacin del programa:
Deben escribirse primero las lneas de programacin 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 lmpara 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 posicin.
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 posicin.
5. Si el fototransistor izquierdo est sobre la pista:
a. Paramos el motor M2.
b. Hacemos que avance M1.
c. Volvemos a comprobar la posicin.
6. Si ninguno de los fototransistores est sobre la pista:
a. Paramos los motores.
b. Iniciamos la bsqueda de la pista (subprograma Bsqueda).
c. Al regresar de la bsqueda, volvemos a comprobar la posicin.

Subprograma Bsqueda:
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.

Sistemas de control programables y robtica
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 continuacin vuelve a girar y trae otro palet y as sucesivamente.

Notas previas a la programacin:
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 automticamente en marcha. Cuando est sobre la pista, los dos
fototransistores estarn a cero.
Desde que encendemos la lmpara que ilumina la pista, hasta que los fototransistores
entregan la seal adecuada, transcurre un pequeo intervalo de tiempo, por lo que
habr que esperar un poco desde que se encienda la lmpara hasta que comience a
funcionar el resto del programa.

Conectaremos el fototransistor derecho a la entrada E3 y el izquierdo a E4. Cuando
estn sobre la pista entregarn un cero y cuando no lo estn, 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 lmpara 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 posicin superior de la
horquilla elevadora.
La entrada E6 se conectar al final de carrera que detecte la posicin inferior de la
horquilla elevadora.

Si los dos fototransistores estn sobre la pista, ambos motores deben avanzar.
Si slo el fototransistor izquierdo est sobre la pista, el motor derecho debe avanzar y
el izquierdo estar parado.
Si slo 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 nmero 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 nmero de pasos que debe retroceder
el robot despus de haber cargado (o descargado) el palet, antes de girar para volver a
la pista.

Sistemas de control programables y robtica
Jos Vicente Manga Enero 2006 34
Realizacin del programa:
Deben escribirse primero las lneas de programacin de cada subprograma y,
posteriormente, el programa principal.

Programa principal:
1. Encendemos la lmpara 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 operacin.
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
operacin.
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
operacin.
d. Si VAR1 es 3, sube la horquilla (subprograma elevar), incrementa VAR1 y vuelve a
comprobar el valor de VAR1 para realizar la siguiente operacin.
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
operacin.
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 operacin.
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 operacin.
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
operacin.
i. Si VAR1 es 8, baja la horquilla (subprograma bajar), incrementa VAR1 y vuelve a
comprobar el valor de VAR1 para realizar la siguiente operacin.
j. Si VAR1 es 9, retrocede el nmero de pasos programado en EB (subprograma
retroceder), incrementa VAR1 y vuelve a comprobar el valor de VAR1 para realizar la
siguiente operacin.
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 operacin.
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 estn sobre la pista:
a. Ponemos en marcha los dos motores, izquierdo y derecho, en la direccin de avance.
b. Comprobamos de nuevo la posicin de los fototransistores.
2. Si slo el fototransistor derecho est sobre la pista:
a. Ponemos en marcha el motor izquierdo, en la direccin de avance, y paramos el
derecho.
b. Comprobamos de nuevo la posicin de los fototransistores.
3. Si slo el fototransistor izquierdo est sobre la pista:
a. Ponemos en marcha el motor derecho, en la direccin de avance, y paramos el
izquierdo.
Sistemas de control programables y robtica
Jos Vicente Manga Enero 2006 35
b. Comprobamos de nuevo la posicin 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 direccin 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 direccin 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 direccin de elevacin.
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 direccin 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 direccin.
2. Comprobamos la posicin de los fototransistores
3. Si ambos fototransistores estn sobre la pista:
a. Paramos ambos motores y salimos del subprograma, devolviendo el control al
programa principal.
4. Si no estn ambos fototransistores sobre la pista:
a. Dejamos que siga el giro y seguimos comprobando la posicin de los fototransitores.

Sistemas de control programables y robtica
Jos Vicente Manga Enero 2006 36
Robot de columna
Funcionamiento:
El robot, partiendo de su posicin inicial (cuerpo girado totalmente a la izquierda, brazo
totalmente retrado y elevado, y pinza abierta), coge un barril de la posicin 1 y lo coloca en
la posicin 2. A continuacin, recoge un segundo barril de la posicin 3 y lo apila encima del
primer barril (posicin 4). Seguidamente, vuelve a la posicin inicial y, desde all, devuelve
los barriles a sus posiciones originales.

Notas previas a la programacin:
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 posicin inicial del
cuerpo.
A la entrada E3 debe conectarse el final de carrera que detecte la posicin inicial del
brazo en sentido horizontal.
A la entrada E5 debe conectarse el final de carrera que detecte la posicin inicial del
brazo en sentido vertical.
A la entrada E7 debe conectarse el final de carrera que detecte la posicin de total
apertura de la pinza.
Al final del desplazamiento que pueda producirse en cada parte del robot no se
colocarn finales de carrera capaces de advertir de la llegada a esa posicin, por lo que
habr que programar los movimientos por pasos contados a partir de la posicin
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 generacin de pasos durante el desplazamiento
del cuerpo, se conectar a la entrada E2.
El pulsador encargado de detectar la generacin de pasos durante el desplazamiento
del brazo en sentido horizontal, se conectar a la entrada E4.
El pulsador utilizado para detectar la generacin de pasos durante el desplazamiento
del brazo en sentido vertical, se conectar a la entrada E6.
El pulsador utilizado para detectar la generacin 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 nmero que corresponda a la variable utilizada en la
deteccin de los pulsos correspondientes a cada motor (Z2, Z4, Z6 y Z8).
La variable VAR1 ser la encargada de almacenar el nmero de la operacin que se
est realizando en cada momento.
La variable VAR11 contendr el nmero de pasos que debe avanzar o retroceder el
motor M1 en cada desplazamiento. La variable VAR12 almacenar el nmero de
pasos que debe avanzar o retroceder el motor M2 en cada momento. En la variable
VAR13 introduciremos el nmero de pasos que debe avanzar o retroceder el motor
M3 en cada desplazamiento. La variable del terminal EA almacenar el nmero de
pasos que debe avanzar el motor M4 para cerrar la pinza.
Sistemas de control programables y robtica
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 inmvil y, despus, se sita en
su posicin inicial (cuerpo totalmente girado hacia la izquierda, brazo totalmente retrado y
elevado, y pinza completamente abierta). A continuacin, 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 posicin de destino del barril. Se desplaza a la posicin de
destino del barril, abre la pinza y vuelve a elevar el brazo totalmente. Ahora avanzar hasta
que la pinza se site en torno al segundo barril y la cerrar para cogerlo. Seguidamente
elevar el brazo totalmente y se desplazar a la posicin adecuada para colocar el segundo
barril sobre el primero. Abrir la pinza totalmente, elevar el brazo y volver a la posicin
inicial. En esta posicin esperar unos segundos y, a continuacin se desplazar a la posicin
en la que deposit el segundo barril, cerrar la pinza en torno a l, elevar el brazo totalmente
y se desplazar a la posicin en la que estaba ese barril en el primer momento, dejndole all.
Seguidamente, elevar el brazo totalmente y se desplazar a la posicin en la que se encuentra
el otro barril, cerrar la pinza en torno a l, elevar el brazo totalmente y se desplazar a la
posicin que ocupaba el barril al principio. A continuacin, soltar el barril, elevar el brazo
totalmente y regresar a la posicin inicial, donde esperar unos segundos e iniciar de nuevo
el ciclo de trabajo completo.

Realizacin del programa:
Deben escribirse primero las lneas de programacin de cada subprograma y,
posteriormente, el programa principal. Adems, introduciremos, a travs del terminal, el
nmero de pasos para el cierre de la pinza, en la variable EA.

Programa principal:
1. Ponemos VAR1 a cero.
2. Espera unos segundos.
A continuacin, interrogaremos sobre el contenido de VAR1 y haremos que el robot realice la
operacin que corresponda:
3. Si VAR1=0, hacemos que el robot se site en la posicin 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
comprobacin del contenido de VAR1.
4. Si VAR1=1, el robot se desplaza hasta la posicin que ocupa el primer barril:
a. Introducimos en la variable VAR11 el nmero de pasos que deben generarse en el
desplazamiento del cuerpo del robot.
b. Introducimos en la variable VAR12 el nmero de pasos que deben generarse en el
desplazamiento horizontal del brazo del robot.
c. Introducimos en la variable VAR13 el nmero 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
posicin 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
comprobacin 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.
Sistemas de control programables y robtica
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 posicin en la que debe depositar el barril:
a. Introducimos en la variable VAR11 el nmero de pasos que deben generarse en el
desplazamiento del cuerpo del robot, contados desde la posicin inicial hasta la nueva
posicin.
b. Introducimos en la variable VAR12 el nmero de pasos que deben generarse en el
desplazamiento horizontal del brazo del robot, contados desde la posicin inicial hasta
la nueva posicin.
c. Introducimos en la variable VAR13 el nmero de pasos que deben generarse en el
desplazamiento vertical del brazo del robot, desde la posicin inicial hasta la nueva
posicin.
d. Ponemos en marcha el subprograma Posicionar, encargado de llevar al robot a la
posicin 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
comprobacin del contenido de VAR1.
8. Si VAR1=5, el robot deja el barril en esa posicin (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 posicin del segundo barril:
a. Introducimos en la variable VAR11 el nmero de pasos que deben generarse en el
desplazamiento del cuerpo del robot, contados desde la posicin inicial hasta la nueva
posicin.
b. Introducimos en la variable VAR12 el nmero de pasos que deben generarse en el
desplazamiento horizontal del brazo del robot, contados desde la posicin inicial hasta
la nueva posicin.
c. Introducimos en la variable VAR13 el nmero de pasos que deben generarse en el
desplazamiento vertical del brazo del robot, contados desde la posicin inicial hasta la
nueva posicin.
d. Ponemos en marcha el subprograma Posicionar, encargado de llevar al robot a la
posicin 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
comprobacin 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 sita el barril que lleva sujeto en la pinza, sobre el otro barril:
a. Introducimos en la variable VAR11 el nmero de pasos que deben generarse en el
desplazamiento del cuerpo del robot, contados desde la posicin inicial hasta la nueva
posicin.
b. Introducimos en la variable VAR12 el nmero de pasos que deben generarse en el
desplazamiento horizontal del brazo del robot, contados desde la posicin inicial hasta
la nueva posicin.
Sistemas de control programables y robtica
Jos Vicente Manga Enero 2006 39
c. Introducimos en la variable VAR13 el nmero de pasos que deben generarse en el
desplazamiento vertical del brazo del robot, contados desde la posicin inicial hasta la
nueva posicin.
d. Ponemos en marcha el subprograma Posicionar, encargado de llevar al robot a la
posicin 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
comprobacin del contenido de VAR1.
14. Si VAR1=11, el robot suelta el barril, dejndole en la nueva posicin (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 posicin 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 sita en la posicin del barril que est encima del otro:
a. Introducimos en la variable VAR11 el nmero de pasos que deben generarse en el
desplazamiento del cuerpo del robot, contados desde la posicin inicial hasta la nueva
posicin.
b. Introducimos en la variable VAR12 el nmero de pasos que deben generarse en el
desplazamiento horizontal del brazo del robot, contados desde la posicin inicial hasta
la nueva posicin.
c. Introducimos en la variable VAR13 el nmero de pasos que deben generarse en el
desplazamiento vertical del brazo del robot, contados desde la posicin inicial hasta la
nueva posicin.
d. Ponemos en marcha el subprograma Posicionar, encargado de llevar al robot a la
posicin 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
comprobacin 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 sita en la posicin que ocupaba el segundo barril al principio:
a. Introducimos en la variable VAR11 el nmero de pasos que deben generarse en el
desplazamiento del cuerpo del robot, contados desde la posicin inicial hasta la nueva
posicin.
b. Introducimos en la variable VAR12 el nmero de pasos que deben generarse en el
desplazamiento horizontal del brazo del robot, contados desde la posicin inicial hasta
la nueva posicin.
c. Introducimos en la variable VAR13 el nmero de pasos que deben generarse en el
desplazamiento vertical del brazo del robot, contados desde la posicin inicial hasta la
nueva posicin.
d. Ponemos en marcha el subprograma Posicionar, encargado de llevar al robot a la
Sistemas de control programables y robtica
Jos Vicente Manga Enero 2006 40
posicin 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
comprobacin 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 sita en la posicin que ocupa el primer barril:
a. Introducimos en la variable VAR11 el nmero de pasos que deben generarse en el
desplazamiento del cuerpo del robot, contados desde la posicin inicial hasta la nueva
posicin.
b. Introducimos en la variable VAR12 el nmero de pasos que deben generarse en el
desplazamiento horizontal del brazo del robot, contados desde la posicin inicial hasta
la nueva posicin.
c. Introducimos en la variable VAR13 el nmero de pasos que deben generarse en el
desplazamiento vertical del brazo del robot, contados desde la posicin inicial hasta la
nueva posicin.
d. Ponemos en marcha el subprograma Posicionar, encargado de llevar al robot a la
posicin 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
comprobacin 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 sita en la posicin que ocupaba el primer barril al principio:
a. Introducimos en la variable VAR11 el nmero de pasos que deben generarse en el
desplazamiento del cuerpo del robot, contados desde la posicin inicial hasta la nueva
posicin.
b. Introducimos en la variable VAR12 el nmero de pasos que deben generarse en el
desplazamiento horizontal del brazo del robot, contados desde la posicin inicial hasta
la nueva posicin.
c. Introducimos en la variable VAR13 el nmero de pasos que deben generarse en el
desplazamiento vertical del brazo del robot, contados desde la posicin inicial hasta la
nueva posicin.
d. Ponemos en marcha el subprograma Posicionar, encargado de llevar al robot a la
posicin 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
comprobacin 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.

Sistemas de control programables y robtica
Jos Vicente Manga Enero 2006 41
Subprograma AbrirPinza:
1. Ponemos en marcha el motor M4 en la direccin 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 comprobacin del estado de ese final de carrera.

Subprograma CerrarPinza:
1. Ponemos en marcha el motor M4 en la direccin de cierre de la pinza.
2. Contamos los pasos que se van generando hasta alcanzar el nmero 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 direccin de subida del brazo.
2. Si se ha activado el final de carrera que detecta que se ha alcanzado la posicin 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 comprobacin del estado de ese final de carrera.

Subprograma RecogeBrazo:
1. Ponemos en marcha el motor M2 en la direccin 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 comprobacin del estado de ese final de carrera.

Subprograma PosInicialM1:
1. Ponemos en marcha el motor M1 en la direccin en que el cuerpo gira hacia la izquierda.
2. Si el final de carrera que detecta la posicin 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 posicin inicial del cuerpo, hacemos
una nueva comprobacin del estado de ese final de carrera.

Subprograma Posicionar:
Este subprograma estar formado por tres lneas de programacin que se ejecutarn
simultneamente, una para cada motor de posicionamiento. La lnea de programacin del
motor M1 ser la situada directamente entre los conectores de comienzo y final del
subprograma. Las dos lneas de programacin restantes tendrn su propio inicio y funcionarn
de forma separada y simultnea, pero no comenzarn a realizar su funcin hasta que la lnea
de programacin del motor M1 las de permiso (poner VAR2 a 1).
Sistemas de control programables y robtica
Jos Vicente Manga Enero 2006 42
A continuacin se muestra la estructura de la lnea de programacin del posicionamiento
del cuerpo del robot (M1):
1. Hacemos que VAR2 tenga el valor 1.
2. Si el nmero 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 nmero 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 direccin 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 posicin 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 nmero 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 direccin 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 posicin 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 continuacin se muestra la lnea de programacin correspondiente al posicionamiento
horizontal del brazo del robot (motor M2), que formar parte del subprograma de
posicionamiento:
1. Comenzamos la lnea de programacin con el bloque de Inicio.
2. Si VAR2 no es igual a 1, esperamos hasta que lo sea.
3. Si VAR2=1, continuamos la ejecucin del programa:
a. Si el nmero 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 nmero 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 direccin 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 posicin solicitada.
iii. Paramos el motor M2.
iv. Volvemos al paso 2.
c. Si el nmero de pasos que debe adelantarse el brazo del robot (VAR12) es menor que
el contenido de la variable auxiliar Z4:
Sistemas de control programables y robtica
Jos Vicente Manga Enero 2006 43
i. Ponemos en marcha el motor M2 en la direccin 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 posicin solicitada.
iii. Paramos el motor M2.
iv. Volvemos al paso 2.

La lnea de programacin 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.

Sistemas de control programables y robtica
Jos Vicente Manga Enero 2006 44
Robot mvil con deteccin de bordes

Funcionamiento:
El robot debe desplazarse, sobre la superficie de una mesa, hacia delante en lnea
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 programacin:
Para realizar la programacin del autmata 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
funcin del estado del pulsador.
Usaremos la variable V10 para almacenar los pasos que deben producirse en una rueda
al retroceder tras encontrar un obstculo, 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 mximo, la programacin se realizar utilizando
subprogramas: Adelante, Retroceder, Izquierda y Derecha, adems del programa principal.

Programacin:
Deben escribirse primero las lneas de programacin 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 nmero de pasos que debe retroceder el robot
(por ejemplo 10).
b. Hacemos que retroceda (subprograma RETROCEDER).
c. Cargamos la variable V10 con el nmero de pasos que correspondan al tamao
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.
Sistemas de control programables y robtica
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 nmero de pasos que debe retroceder el robot
(por ejemplo 10).
b. Hacemos que retroceda (subprograma RETROCEDER).
c. Cargamos la variable V10 con el nmero de pasos que correspondan al tamao
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 direccin de avance del robot.

Subprograma RETROCEDER:
2. Ponemos en marcha los dos motores en la direccin de retroceso del robot.
3. Ponemos la variable intermedia Z2 a cero.
4. Esperamos hasta que en la entrada E2 se haya detectado un nmero de pasos igual
al valor de V10.
5. Paramos ambos motores.

Subprograma IZQUIERDA:
1. Ponemos en marcha el motor derecho en la direccin de avance.
2. Ponemos en marcha el motor izquierdo en la direccin de retroceso.
3. Ponemos la variable intermedia Z2 a cero.
4. Esperamos hasta que en la entrada E2 se haya detectado un nmero de pasos igual
al valor de V10.
5. Paramos ambos motores.

Subprograma DERECHA:
1. Ponemos en marcha el motor derecho en la direccin de retroceso.
2. Ponemos en marcha el motor izquierdo en la direccin de avance.
3. Ponemos la variable intermedia Z2 a cero.
4. Esperamos hasta que en la entrada E2 se haya detectado un nmero de pasos igual
al valor de V10.
5. Paramos ambos motores.

Sistemas de control programables y robtica
Jos Vicente Manga Enero 2006 46
Brazo transportador neumtico

Funcionamiento:
Se encuentre donde se encuentre, el brazo debe girar hacia la posicin A con la pinza
abierta, coger la pieza que se encuentra en esa posicin y llevarla hasta la posicin B
soltndola all. A continuacin regresa a la posicin A y, tras una espera de 10 segundos,
devuelve la pieza de la posicin B a la posicin A, pasando a situarse despus en la posicin
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 programacin:
Para realizar la programacin del autmata tendremos en cuenta que:
La salida M1 se conectar a la electrovlvula M1, encargada de controlar el flujo de
aire que permite extender el vstago del cilindro Z1.
La salida M2 estar conectada a la electrovlvula M2, encargada de controlar el flujo
de aire que hace retraerse al vstago del cilindro Z1.
La salida M3 debe conectarse a la electrovlvula 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 nmero de la operacin 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 programacin aadiendo un sonido diferente para la apertura o
el cierre de la pinza y tambin para el posicionamiento en la plataforma A o en la B.

Con el fin de clarificar el programa al mximo, la programacin se realizar utilizando
subprogramas: Abrir, Cerrar, Pos_A y Pos_B, adems del programa principal.

Programacin:
Deben escribirse primero las lneas de programacin 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
presin del aire en el depsito.
3. Comprobamos el estado del pulsador conectado a la entrada E8 y, si est desactivado,
continuamos comprobando su estado. Cuando se active, contina la ejecucin 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 funcin 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 posicin 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.
Sistemas de control programables y robtica
Jos Vicente Manga Enero 2006 47
d. Si V1=3, el brazo se desplaza a la posicin 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 posicin B (subprograma POS_B) y, a
continuacin, 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 electrovlvula M3 que
provoca el cierre de la pinza para que el vstago del cilindro Z2
avance por efecto del muelle, abriendo as la pinza.
2. Esperamos un par de segundos para garantizar que el vstago del
cilindro ha completado su recorrido.

Subprograma CERRAR:
1. Conectamos la electrovlvula M3 que provoca el retroceso del vstago del cilindro Z2.
2. Esperamos un par de segundos para garantizar que el vstago del cilindro ha
completado su recorrido, cerrando la pinza.

Subprograma POS_A:
1. Desconectamos la electrovlvula M2 que provoca el retroceso del vstago del cilindro
Z1.
2. Conectamos la electrovlvula M1 que provoca el avance del vstago del cilindro Z1.
3. Esperamos un par de segundos para garantizar que el vstago del cilindro ha
completado su recorrido, haciendo que el brazo se site en la posicin A.

Subprograma POS_B:
1. Desconectamos la electrovlvula M1 que provoca el avance del vstago del cilindro
Z1.
2. Conectamos la electrovlvula M2 que provoca el retroceso del vstago del cilindro Z1.
3. Esperamos un par de segundos para garantizar que el vstago del cilindro ha
completado su recorrido, haciendo que el brazo se site en la posicin A.

Sistemas de control programables y robtica
Jos Vicente Manga Enero 2006 48
Instalacin clasificadora neumtica

Funcionamiento:
Esta instalacin 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 depsito, impulsadas por la corredera accionada por
el motor M4, pasando bajo la barrera ptica de reflexin directa. Esta barrera debe estar
enfocada de manera que la entrada E1 indique 0 lgico ante una pieza negra y 1 lgico
ante una pieza blanca. Para ello habr que utilizar el diagnstico de interfaz de LLWin.
El motor del compresor y la lmpara de la barrera luminosa deben conectarse
directamente a la lnea de alimentacin, al no disponer de salidas suficientes para poder
controlarles desde el programa, por lo que estarn permanentemente conectados.

Notas previas a la programacin:
Para realizar la programacin del autmata tendremos en cuenta que:
La salida M1 se conectar a la electrovlvula M1, encargada de hacer retroceder al
vstago del cilindro Z1.
La salida M2 debe conectarse a la electrovlvula M2, encargada de hacer avanzar el
vstago del cilindro Z2.
La electrovlvula M3 estar conectada a la salida M3, y ser la encargada de llevar los
cilindros a su posicin inicial, haciendo retroceder el vstago de Z2 y avanzar el
vstago de Z1.
La salida M4 controlar el motor de la corredera que impulsa las piezas desde el
depsito.
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 posicin ms retrasada.
A la entrada E8 conectaremos un pulsador de forma que el ciclo de clasificacin no se
ponga en marcha hasta que sea pulsado. El ciclo de clasificacin debe tener una
duracin suficiente para clasificar todas las piezas que quepan en el depsito cuando
est lleno.
Utilizaremos la variable V1 para almacenar el nmero de piezas clasificadas.

Con el fin de clarificar el programa al mximo, la programacin se realizar utilizando
subprogramas: Inicio, Empujar, Izquierda y Derecha, adems del programa principal.

Programacin:
Deben escribirse primero las lneas de programacin de cada subprograma y,
posteriormente, el programa principal.

Programa principal:
1. Desplazar la corredera y los cilindros a la posicin 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, contina la ejecucin 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 depsito, y permitiendo la continuacin
del programa en caso contrario.
Sistemas de control programables y robtica
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 posicin central (subprograma
IZQUIERDA).
d. Volvemos al punto 4, para comprobar el valor de V1 y actuar en consecuencia.
6. Si al realizar la comprobacin 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 posicin 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 electrovlvula 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 electrovlvula M2, encargada de hacer avanzar
el vstago del cilindro Z2.
2. Esperamos un segundo para garantizar que la pieza cae en el contenedor.
3. Conectamos, durante dos segundos, la electrovlvula 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 electrovlvula M1, encargada de hacer
retroceder el vstago del cilindro Z1.
2. Esperamos un segundo para garantizar que la pieza cae en el contenedor.
3. Conectamos, durante dos segundos, la electrovlvula M3, encargada de hacer pasar el
aire comprimido para llevar a ambos cilindros a sus posiciones iniciales.

Sistemas de control programables y robtica
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 pulsacin 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, posicionndose la pinza sobre la plataforma izquierda. Tras una espera de 10
segundos, debe recoger el barril de la plataforma derecha y devolverlo a su posicin inicial,
volviendo la pinza a colocarse sobre la plataforma derecha.

Notas previas a la programacin:
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 diagnstico
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 nmero 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 programacin aadiendo un sonido diferente para la apertura o
el cierre de la pinza y tambin para el posicionamiento en la plataforma izquierda o en
la derecha.

Con el fin de clarificar el programa al mximo, la programacin se realizar utilizando
subprogramas: Abrir, Cerrar, Izquierda y Derecha, adems del programa
principal.

Programacin:
Deben escribirse primero las lneas de programacin 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, contina la ejecucin 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).
Sistemas de control programables y robtica
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 revs.
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 direccin 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
direccin de cierre.
2. Esperamos, contando los pasos que se van produciendo al cerrar (E4), hasta que se
alcance el nmero 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 direccin 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 direccin 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.

You might also like