viernes, 25 de mayo de 2018

CONTROL DE PERSIANAS

CONTROL DE PERSIANAS CON LOGO

Hola de nuevo. En ésta ocasión voy a describir un programa para el control de una persiana, toldo, cortina, cierre o estor, usando el microautómata LOGO. En realidad el control de una persiana es algo que no es excesivamente complejo. Un motor estándar de persiana tiene solo cuatro cables: Un cable para la subida, otro para la bajada, el comun y el cable de tierra. En cuanto a los colores de los cables suelen ser: Rojo o marrón para la subida, negro para la bajada, azul para el común (neutro) y amarillo-verde para la conexión a tierra. Figura 1. El color de los dos primeros puede llegar a variar y dependerá de cada fabricante, sin embargo el color de los otros dos (neutro y tierra) si que es respetado conforme a la normativa vigente.

EL PRIMER PROBLEMA

El problema del control de las persianas con un microautómata como el LOGO, son, curiosamente, los finales de carrera. ¿Y eso por qué? te preguntarás. Los motores de persiana, tienen los finales de carrera incorporados en el propio motor, son finales de carrera regulables y no se pueden extrapolar al exterior. Es decir, que no se pueden sacar los cables de los finales de carrera, para conectarlos a las entradas del LOGO. Salvo que se desmonte el motor y se modifiquen los finales de carrera, aunque eso suele invalidar la garantía del motor, por lo que ante cualquier problema de éste, será el usuario quien tenga que pagar la reparación del motor. La mayoría de los programas que he visto para el control de persianas, incorporan finales de carrera, figura 2. Esos finales de carrera (elipses rojas en la figura 2) son los encargados de apagar la función que conecta la salida correspondiente del LOGO para mover la persiana. Sin embargo, el programa de la figura 2 funciona perfectamente pero solo si lo simulamos en el ordenador, ya que somos nosotros mismos quienes activamos, o descativamos manualmente, los finales de carrera. Pero al introducirlo en la memoria del LOGO tal cual está, las entradas en donde supuestamente se deberían conectar los finales de carrera, no tenemos ningún cable que conectar, porque sencillamente del motor no salen los cables de esos finales de carrera. Consecuencia, la salida se queda permanentemente conectada.

Imaginemos que la persiana está bajada, al pulsar el botón de subida la persiana subirá normalmente, y cuando el final de carrera del motor actue la persiana se detendrá. Hasta aquí todo correcto. Pero la salida del LOGO se habrá quedado conectada, porque al programa no le llegará ninguna señal eléctrica que le diga que tiene que desconectar la salida en cuestión. Por eso, cuando se pulse el botón de bajada, la persiana intentará bajar, pero la salida, aún activa, se lo impedirá, por lo que la persiana no funcionará correctamente.

UNA POSIBLE SOLUCIÓN

Entonces, ¿qué hacer sin tener que desmontar el motor ni perder la garantía? La posible solución está en olvidarse de los finales de carrera en el programa, y dejar que éstos actúen directamente sobre el motor pero sin influir en el programa. Esa posible solución consiste en controlar cuanto tarda la persiana en bajar desde la posición completamente arriba, hasta la posición completamente abajo y viceversa, y anotar esos dos tiempos. Previamente, habrá que ajustar los finales de carrera convenientemente, para que la persiana suba y baje hasta el nivel que nosotros queramos. Cuando esas dos operaciones, el ajuste los finales de carrera y lo que tarda la persiana en bajar y subir del todo estén hechas, podemos proceder a construir el programa.

Lo primero que voy hacer es describir las funciones a insertar en el lienzo de programación del LOGO Soft Confort, para la subida de la persiana, así es que vamos a ello. Primeramente inserto una entrada y una salida, (I1 y Q1) y configuro esa entrada como pulsador normalmente abierto. Luego insertaré las siguientes funciones: Un Relé de Impulsos (B001), una puerta AND con Evaluación de Flanco Positivo (B002) y un Retardo a la Desconexión con Memoria (B003). También insertaré un Contador Adelante/Atrás (B004), dos Puertas NOT (B005 y B006) y otras dos puertas AND con Evaluación de Flanco Positivo (B007 y B008). Una vez insertadas todas esas funciones, tendremos algo parecido a lo que muestra la figura 3.

Lo siguiente es ajustar el tiempo de la función B003 (Retardo a la Desconexión) con el mismo tiempo que tarda la persiana en ir de la posición completamente abajo a la posición completamente arriba. Imaginemos que la persiana tarda 8 segundos en realizar ese recorrido, pues ese es el tiempo que pondremos en la función B003. Así es que hacemos clic, con el botón secundario del ratón, sobre la función B003 y del menú que se despliega seleccionamos la opción Propiedades. En la ventana que se muestra, figura 4, ajustamos en el apartado "Retardo a la desconexión" esos 8 segundos, tal y como se ve en la figura 4. Por último, pulsamos sobre Aceptar y ya tenemos el tiempo ajustado.

Ahora vamos a configurar el Contador Adelante/Atrás (B004), repitiendo los mismos pasos, es decir, hacemos clic, con el botón derecho del ratón, hasta desplegar el menú contextual y seleccionamos la opción Propiedades. En la ventana que aparece, ajustamos a 2 el apartado "Límite de conexión", figura 5, y hacemos clic en Aceptar para cerrar la ventana. Ahora te preguntarás ¿y ese contador para qué? Ese contador lo he puesto para poder parar la persiana en posiciones intermedias. Cuando la persiana está bajada, al pulsar para levantarla, se inicia el tiempo en el temporizador B003. Cuando ese tiempo llega a los 8 segundos, la persiana habrá llegado arriba del todo, y a la vez la salida Q1 se habrá desactivado. Pero, ¿y si se quiere parar la persiana en una posición intermedia? Pues sin ese contador no se puede. Así es que lo que el contador hace es contar las veces que se pulsa el pulsador. Cuando se pulsa el pulsador la primera vez, el contador cuenta 1. Si la persiana está subiendo y se vuelve a pulsar el pulsador de subida, el contador B004, aumentará en 1 su cuenta y sumará ese 1 al que ya tenía, con lo cual su valor actual será de 2. Como su límite de conexión está activado en 2, en ese momento el contador activará su salida desconectando el retardo a la desconexión (B003) reseteándolo, lo que provocará la parada de la persiana y el reseteo del contador B004. Al volver a pulsar el pulsador, la persiana reanudará su recorrido, el contador volvera a contar 1 y el tiempo en la función B003 comenzará de nuevo. Si no se pulsa otra vez el pulsador, la persiana seguirá su recorrido hasta que el final de carrera detenga a la persiana. El tiempo en la función B003, continuará y mantendrá la salida Q1 conectada, hasta que se cumpla el tiempo programado de 8 segundos. En ese momento la salida se desconectará y el programa quedará listo para una nueva operación.

Las puertas NOT B005 y B006, son las encargadas de desconectar las funciones B004 y B001 respectivamente. Cuando la salida Q1 está desactivada, en la salida de ambas puertas NOT tenemos un 1 lógico. Las puertas AND con evaluación de flanco positivo (B007 y B008) evitan que mientras la salida Q1 esté desactivada, las entradas RESET de las funciones B001 y B004 estén activadas. Cuando se activa la persiana, en las salidas de cada una de las puertas NOT tendremos un cero lógico, con lo que ambas funciones (B001 y B004) estarán operativas, pero al apagarse la salida Q1, en cada una de las puertas NOT tendremos un cero en sus entradas y un uno en sus salidas. En ese momento, las puertas AND con evaluación de flanco positivo (B007 y B008) dejarán pasar un pulso de corriente, (un flanco) más que suficiente como para desconectar la función B001, y poner a cero la función B004, sin que sus respectivas entradas RESET se queden activadas. De ésta forma, tendremos las funciones B001 y B004 completamente desactivadas y preparadas para otra operación. Lo siguiente es proceder conexionar todos los bloques, hasta tener lo que muestra la figura 6.

Lo que acabo de programar es para poder subir la persiana, para la acción de la bajada el programa es el mismo, por lo que solo habrá que replicar todas las funciones, con un simple copia y pega. Después de hacer el copia/pega, tendremos lo que muestra la figura 7. El propio software se encargará de renombrar cada uno de los bloques copiados y pegados, por lo que en ese sentido no habrá problemas. Si ahora lo simulamos, podremos ver como los temporizadores B003 y B011 desconectan las salidas respectivas (Q1 y Q2) cada vez que pasa el tiempo programado en ellas, o cada vez que se pulsa una segunda vez sobre los pulsadores conectados a las entradas I1 (para subir) e I2 (para bajar). El programa garantiza que ninguna salida (Q1 y Q2) se queden conectadas impidiendo el funcionamiento normal de la persiana.

Se puede ver claramente, que en éste programa he prescindido de insertar las entradas correspondientes a los finales de carrera, ya que los bloques B005, B006, B013 y B016 desconectan las funciones que activan las salidas Q1 y Q2 respectivamente, que de otro modo, se quedarían activadas impidiendo que la persiana funcionase correctamente. Este programa lo he probado en una persiana real motorizada, y ha funcionado sin ningún problema. Lo único que tuve que hacer es cambiar los tiempos de 8 segundos, por los que necesitaba la persiana donde lo probé, que fueron de 9,5 segundos para la subida y de 8,75 segundos para la bajada.
Ésta programación es para ilustrar que cuando se hace un programa para controlar sistemas eléctricos, hay que hacerlo de forma que se ciña a la realidad. En un motor de persiana, como ya he dicho, los finales de carrera no se pueden conectar a ninguna entrada del LOGO, sin modificar el motor. Por eso, si se incluyen en el programa de control de persiana los finales de carrera, éste funcionará bien SOLO si se simula en el ordenador, y actuando manualmente sobre los finales de carrera. Pero en una persiana real no funcionará correctamente, si el programa se inserta en la memoria del LOGO con los finales de carrera.

Y para terminar solo me queda dar un consejo: Siempre que se haga un programa para controlar un sistema eléctrico, un motor o cualquier otro dispositivo eléctrico, debe hacerse ciñéndose a la realidad, comprobando su funcionamiento real y que el programa se ajusta a esa realidad, aunque dicho programa nunca vaya a funcionar en la vida real. Es una buena fórmula para acostumbrarse a tener una buena práxis.
Hasta la próxima.

Ángel Tejedor
Técnico en Automatización
y en Domótica X10 
 
ACTUALIZACIÓN: Hace unos días Anónimo me escribió un correo diciéndome que el programa tenía un defecto, y es que, por ejemplo, si se pulsaba la tecla de subir y mientras la persiana estuviese subiendo, se pulsase la tecla de bajar el motor entraría en cortocircuito porque estarían funcionando las dos salidas simultaneamente. Y lo mismo sucedía al contrario. Revisé el programa y efectivamente tenía razón, así es que le he incorporado a cada una de las entradas un enclavamiento, para impedir esa situación. Sin embargo tengo que decir que eso no podría ocurrir en la vida real, porque los pulsadores de persiana llevan incorporado un enclavamiento mecánico en el propio mecanismo. De tal manera que si pulsamos la tecla de subir, mientras estemos pulsándola, la tecla de bajar estará bloqueada por ese enclavamiento mecánico.
No obstante he incorporado el enclavamiento en el programa para que sea más seguro su funcionamiento, y el resultado es este:
Lo que están señalado las flechas rojas en la figura 8, es la modificación hecha. Son los bloques B018 y B017. Esos bloques puertas AND con la particularidad de que una de sus entradas (la que tiene el punto negro) está negada, De ésta manera si la salida Q1 está activa el pulsador conectado a I2 no tendrá ningún efecto al ser pulsada. Y lo mismo en la salida Q2 con la entrada I1.
Solo quiero darle las gracias a Anónimo que se dio cuenta del fallo.
 
 
 
Ángel Tejedor
Técnico en Automatización
y en Domótica X10

 



1 comentario: