martes, 14 de julio de 2015

3º PARTE. LOS FLANCOS

DESCRIPCIÓN DE LOS FLANCOS


En la entrada anterior, terminé diciendo que en la siguiente entrada iba a explicar que es eso
de los flancos. Pues bien, vamos a verlo. Aparte de las puertas lógicas y funciones digitales ya vistas, el software LOGO Soft Confort, tiene otras dos puertas lógicas ubicadas en la librería de las funciones básicas, y que nos pueden solucionar mucho la vida a la hora de realizar programas para automatismos. Esas puertas se llaman AND con Evaluación de Flancos y NAND con Evaluación de Flancos.


En las dos imágenes de la derecha se puede observar el aspecto que tienen esas puertas en el LOGO. La imagen de arriba representa al flanco positivo y la imagen que está debajo es el flanco negativo. Básicamente el funcionamiento de esas dos puertas es idéntico a como funcionan sus puertas análogas, es decir la puerta lógica AND y la NAND. Nótese que la puerta NAND con evaluación de flancos, también tiene su salida negada.

La diferencia con las puertas AND y NAND estriba en que la puerta AND, con evaluación de flancos, su salida tomará el valor 1 solo cuando en la entrada, o entradas ocupadas, tengan el estado 1 y por lo menos una de ellas hubiese tenido el estado cero en el ciclo anterior de programa. La salida permanecerá con el estado 1 durante un ciclo de programa. En la puerta NAND con evaluación de flancos, la salida permanece a 1 durante exactamente un ciclo de programa, debiéndose poner de nuevo a cero en el ciclo siguiente como mínimo, antes de poder adoptar otra vez el estado 1. ¿Vaya lío ¿no? Pues no, no es tan complicado, pero así es como lo explica Siemens en la ayuda del programa.

Para entenderlo mejor hay que hacerse la siguiente pregunta ¿Qué es, o qué se entiende por un flanco? La variables boleanas, aparte de tener dos estados (activado o desactivado) y que pueden ser estables o momentáneos, hay otros dos estados llamados Flancos o Transiciones Entre Estados. Los flancos están asociados a los estados de una variable, pero duran tan solo unos pocos milisegundos, exactamente lo que dure el Tiempo de Ciclo. El tiempo de ciclo es, a grandes rasgos, lo que tarde el autómata en leer el estado de las entradas, el estado de las salidas, realizar sus operaciones internas y procesar el programa de usuario. Aunque el tiempo de ciclo depende del tamaño del programa de usuario (cuanto más grande sea un programa, mayor será el tiempo de ciclo) por defecto, en el LOGO, ese tiempo suele oscilar entre los 0,2 a 0,5 milisegundos.

Un flanco puede ser ascendente o positivo, y descendente o negativo. Pero es mejor verlo de forma gráfica para terminar de entenderlo. Tomemos por ejemplo, un pulsador normal y corriente, como el que hay en todas las casas para llamar al timbre. En su estado de reposo la corriente no pasa por él, ya que se trata de un pulsador cuyos contactos son normalmente abiertos. Pero cuando se pulsa, hay un momento en que se genera un pulso ascendente o positivo (linea negra de la izquierda de la figura 2). Aunque se siga manteniendo pulsada la tecla del pulsador, ese pulso habrá desaparecido y eso es lo que muestra la línea roja de la izquierda en la figura 2. Lo mismo sucede cuando se suelta la tecla del pulsador. Se genera otro pulso pero esta vez es negativo, o descendente (línea negra de la derecha de la figura 2.) La línea roja de la derecha de la misma figura, representa la duración de ese pulso. Pues bien, esos dos pulsos son los flancos, y por tanto, en una pulsación normal (lo que es apretar y soltar), se habrán generado dos flancos, uno positivo o ascendente, y otro negativo o descendente.

USO DE LOS FLANCOS


¿Para qué se usan los flancos? En la lógica digital son muy útiles cuando solo se necesita que, en una parte del programa, se genere un pulso breve como es el caso de los sensores capacitivos, inductivos u ópticos entre otros. En una máquina, cada vez que una pieza es detectada por un sensor, dependiendo de qué flanco se esté usando en el programa, la pieza será detectada tan pronto llegue al sensor (flanco positivo), o cuando la pieza haya rebasado al sensor (flanco negativo).

Veamos un ejemplo. Una barrera óptica, que controla el paso de vehículos a un aparcamiento, figura 3, debe contabilizar los vehículos que entran para que el operario sepa cuantas plazas quedan disponibles. Pero el vehículo, para que ese contaje sea real, debe ser contabilizado cuando haya rebasado la barrera. Así se tiene la certeza que el vehículo ha entrado en el aparcamiento. Cuando el vehículo corta el haz luminoso de la barrera, se general un flanco positivo que no es tenido en cuenta en el programa del autómata. El vehículo no está siendo contado.
Sin embargo, cuando el vehículo rebasa el haz luminoso y éste se restablece, se genera un flanco negativo que es el que se usa en el programa. Ahora el vehículo sí es tenido en cuenta y se contabiliza como que ha entrado en el aparcamiento y por lo tanto hay una plaza menos. En la puerta de salida del aparcamiento, hay otra barrera óptica que controla a los vehículos que salen de éste. El flanco negativo de esa barrera, es el que se usa en el programa para indicar al operario que un vehículo ha salido del aparcamiento y por lo tanto hay una plaza libre.

Eso que puede parecer tan sencillo (de hecho, en la lógica digital lo es), en la lógica cableada implicaría que el automatismo que llevara a cabo ese control, sería bastante grande y tendría muchos relés auxiliares (tantos como flancos quisiéramos usar), con lo que la realización de ese automatismo sería muy laboriosa, sin olvidarnos del coste económico que tendría al integrar los relés auxiliares que se necesiten.
El uso de los flancos no solo se relega al contaje, sino que también se puede usar para muchas otras cosas, como el caso de los detectores de movimiento. Cuando se activa el sensor, se genera un flanco positivo que se puede usar para activar una determinada tarea de programación: Activar una luz, encender una pantalla de vídeo, abrir o cerrar una puerta, etc. Y lo mismo si el flanco es negativo. Pero habrá gente que pueda peguntarse: "¿Qué necesidad tengo de usar un flanco en un programa, cuando uso el detector de movimiento? si el propio detector ya me puede activar o desactivar lo que yo deseo."
De acuerdo, pero ese detector se mantendrá activado solo durante un periodo de tiempo configurable, y dependiendo del tipo de detector de movimiento, ese tiempo será más o menos prolongado. Pasado el cual el detector se desactivará. Pero ¿y si lo que se necesita es que lo que haya activado el detector, se quede activado aun cuando el detector se haya desactivado? En ese caso lo único que nos interesa es el momento de la activación, el resto de funciones del sensor ni nos interesan ni nos hacen falta. Imaginemos una puerta eléctrica que se activa con un detector de movimiento. El detector, al activarse, abre la puerta, pero ésta debe permanecer abierta durante tres horas. Hasta la fecha, ningún detector de movimiento de los que se pueden encontrar en los almacenes de electricidad, o en las ferreterías, tienen la capacidad de mantener su relé conectado durante esas tres horas. Dependiendo del detector, como máximo, éste podrá mantener su relé activado durante 15 ó 30 minutos, con lo que una vez transcurrido ese tiempo la puerta volvería a cerrarse. Habría que volver a activar el campo de cobertura del detector para que la puerta se volviese abrir.
Pues bien, si se usa el flanco positivo, que se genera cuando el relé del detector se dispara, éste podría activar en el programa una función de retardo a la desconexión, así se podría mantener la puerta abierta independientemente del estado del relé del detector. Al acabar el tiempo programado en el retardo a la desconexión (3 horas) la puerta se cerraría. Dependiendo de la programación que se hiciera, las sucesivas activaciones y desactivaciones del detector de movimiento, no se tendrían en cuenta mientras la puerta estuviese abierta. 

Ésto es solo un ejemplo de lo que se puede hacer, en la lógica digital, con el uso de los flancos. En la próxima entrega, describiré la forma de plantearse la creación de un programa.

Ángel Tejedor
Técnico Domótico X10 
Técnico en Automatización

10 comentarios: