Componentes #
Hay distintos tipos de elementos disponibles todos en la sección “Gestión de tiempo” con la finalidad de ayudarnos a realizar tareas temporizadas. Los temporizadores que vamos a usar en estos ejercicios son algunos de los definidos en la IEC61131, concretamente el TON y el TP. Además de los temporizadores, está el contacto correspondiente a dichos temporizadores. Si se le asigna el mismo nombre, se activará este contacto si ponemos el desplegable en .Q y el cronómetro si ponemos el desplegable en .ET, igual que en TIA Portal o Codesys, por ejemplo. De igual forma, la forma de referirnos a tiempos es:
T# + tiempo temporizado + unidad de tiempo (s, ms, etc.)
Estos temporizadores se llevan utilizando décadas y fueron uno de los primeros recursos que permitieron gestionar tiempos en automatismos cableados:
Material de trabajo #
Se pueden simular los ejercicios realizados en este documento, en wokwi:
https://wokwi.com/projects/400158325723002881
Los componentes son:
- Pulsador NA con resistencia Pull Down en GPIOS 2 y 12.
- Interruptor con resistencia Pull Down en GPIOS 14 y 4.
- Led indicativos en los GPIOS 15, 19.
El esquema de conexión con el que se va a trabajar en este documento, es el siguiente:
Temporizador con retardo a la conexión o al trabajo (TON) #
El temporizador TON se utiliza para retrasar la activación de una salida después de que la entrada haya sido activada. Cuando la entrada cambia de 0 a 1 (de desactivada a activada), el temporizador TON comienza a contar, sin embargo, su salida permanece en 0 (apagada) durante el tiempo de retardo configurado (PT = Tiempo Programado o retardo) y luego cambia a 1 (activa) después de que ha transcurrido ese tiempo.
Si la entrada vuelve a 0 antes de que el tiempo de retardo haya transcurrido por completo, el temporizador se reinicia. En cualquier caso, en cuanto se deja de meter señal al temporizador, los contactos vuelven a su estado de reposo.
- Comparación de temporizadores en un entorno industrial:
- Ejemplo de activación de un temporizador con una entrada digital
Se puede acceder a las distintas salidas del temporizador poniendo el nombre del
temporizador y “.” Si por ejemplo el temporizador se denomina “TON_0”, si un contacto tiene
el nombre TON_0”.Q, ese contacto va a tener el estado de la salida Q del temporizador. De igual forma podemos trabajar con TON_0.ET. El primero irá en elementos digitales, ya que da valores de 1 o 0, y y el segundo en elementos de comparación analógica, ya que marca el tiempo transcurrido desde que se energizó el temporizador.
- Vídeo de temporizadores TON en Codesys: https://www.youtube.com/watch?v=pyFB3-JYPwI
- Posibles errores: No se ha denominado al contacto del temporizador igual que el temporizador, y por tanto, no lo reconoce porque no está definido:
Ejercicio 1: Pulsación larga #
Realiza un programa en el que la salida H1 (GPIO 15 como salida digital DO15) se active solo después de haber mantenido presionado S1 (GPIO 2 como entrada digital DI2) durante 2 segundos. Una vez activo el GPIO 15, cuando se suelte el pulsador en el GPIO 2, se apagará la salida. Llama al temporizador “temDO15”. Esto se puede hacer en la práctica, con el fin de evitar encendidos por pulsaciones accidentales o rebotes de la señal del pulsador. Si la pulsación no es de mas de un determinado tiempo, se omite.
Solución: El temporizador que por defecto realiza el proceso pedido es el TON (Temporizador con retardo a la conexión).
Ejercicio 2: Luz de un baño con extractor 1 #
Se tiene un interruptor S6 (GPIO 14 como entrada) en un baño. Al entrar al baño y dar al interruptor S6, se enciende la luz H1 (GPIO 15), que denominaremos DO15. Se quiere que tras 2 segundos, se active también una segunda salida (GPIO19), con el fin de accionar un extractor de humedad, olor, etc. Tanto el extractor como la luz se apagarán al abrir el interruptor S1.
Ejercicio 3. Luces de polideportivo (luz de limpieza): #
Se tienen dos pulsadores que controlan el número de luminarias que se encienden en un pequeño polideportivo. Si realizamos una pulsación en S1 (GPIO 2 = DI2) de menos de 2 segundos, se activa la iluminación de entrenamiento, que es solo H1 (GPIO 15 = DO15) y se queda encendida permanentemente. Si la pulsación es de más de dos segundos, se activa la iluminación de competición, que incluye H1 y además, H2 (DO19). Ambas luces se apagan a la vez desde el pulsador S3 (DI12).
Solución:
Ejercicio 4: Temporización en cascada #
Realiza un programa en el que al cerrar el interruptor en DI2, se active DO15 durante 2 segundos y tras ese tiempo, se apague. En ese momento, se encienda DO19 durante todo el tiempo que siga cerrado DI2. Al abrir DI2, se apagará DO19. Imprime también el tiempo que va transcurriendo por el puerto serie, con una frecuencia de 250 ms.
Solución:
Observa que la diferencia principal es que en los comparadores en microLSB no hay que indicar T#, y el tiempo tiene que ir en milisegundos.
También, que ahora en el contacto del temporizador se selecciona .ET (Elapsed Time = tiempo transcurrido).
Ejercicio 5: Puerta de garaje simple #
Realiza la automatización de una puerta de garaje, en la que hay los siguientes elementos:
- GPIO 14 = DI4: Final de Carrera de puerta cerrada
- GPIO 2 = DI2: Pulsador abrir puerta
- GPIO 4 = DI4: Final de Carrera de puerta abierta
- GPIO 15= DO15: Motor subir puerta
- GPIO 19= DO19: Motor cerrando puerta
Al accionar el pulsador de apertura (DI2), esta comenzará a abrirse (DO15 = SET). Al llegar al final de carrera superior (DI14), se parará y tras pasar dos segundos totalmente abierta, comenzará a cerrarse automáticamente (DO19 = SET). Dejará de cerrarse al llegar al final de carrera de puerta cerrada.
Temporizador de pulsos (TP) #
El temporizador TP se utiliza para generar una señal de salida que tenga la duración de un tiempo programado. Cuando el temporizador recibe un pulso de entrada en IN, cierra sus contactos (Activa sus salidas) y comienza a temporizar. Sus contactos van a permanecer cerrados (salida activa) hasta que haya transcurrido todo el tiempo configurado, independientemente de la duración de la activación. PT es el tiempo programado.
Una característica fundamental de los TP, es que una vez transcurrido el tiempo temporizado, para volver a accionarse necesitan que se reinicie la señal que los activa. Eso es uno de los motivos por los cuales, en un baño con detector de movimiento para la luz, en muchas ocasiones aunque te estés moviendo, la luz se tiene que apagar momentáneamente para volver a encenderse.
Véase la comparativa de funciones con un TP en Codesys:
Los mismos bloques asociados al temporizador TON, se usan de igual forma en el temporizador PT:
- Vídeo explicativo del TP en Codesys: https://www.youtube.com/watch?v=HS1ix5je0Ic
Ejercicio 1: Limitación del tiempo de riego #
Una electroválvula controlada desde el GPIO 15 (DO15), se tiene que activar al cerrar el interruptor S6, que está conectado al GPIO 14. Sin embargo, aunque el interruptor se deje dado, por seguridad, no se puede permitir que el riego esté activo más de 1,5 segundos. Tras ese tiempo se parará automáticamente. Si se quiere volver a encender el riego, habrá que abrir el interruptor S6 y volver a cerrarlo.
Solución:
Ejercicio 2: Luz con sensor de movimiento y extractor #
Cada vez que se detecte movimiento en un sensor de movimiento S1, conectado al GPIO 2, o se acciona el pulsador S2 que hay conectado al GPIO 12, se deben activar la salida (GPIO 15) que activa la luz del baño H1 y el GPIO 19, que activa H2, un extractor. Ambas salidas permanecerán encendidas 2 segundos. Tras este tiempo, se apagarán.
Solución:
Ejercicio 3: Riego con dos zonas de forma simultanea #
Mediante el pulsador S1 conectado en el GPIO 2 se quiere activar un riego con dos zonas. Una zona (zona 1) se tiene que regar durante 1 segundo y otra zona (zona 2) durante dos segundos. La zona 1 está controlada por una electroválvula activada desde el GPIO 19, y la zona 2 por otra electroválvula controlada desde el GPIO 15. Ambos riegos deben empezar a la vez, ya que hay potencia suficiente.
Solución:
La primera condición del tercer segmento (tiempoRiego.ET > 0) se pone para evitar que se active el riego antes de estar el temporizador activado. Se podría sustituir por un contacto NO de tiempoRiego.Q
Ejercicio 4: Riego con dos zonas NO simultáneas #
Mediante el pulsador S1 conectado en el GPIO 2 se quiere activar un riego con dos zonas. Una zona (zona 1) se tiene que regar durante 1 segundo y otra (zona 2) durante dos segundos. La zona 1 está controlada por una electroválvula activada desde el GPIO 19, y la zona 2 por otra electroválvula controlada desde el GPIO 15. Atención: No se pueden activar los riegos de las dos zonas de forma simultánea. Se debe regar primero la zona 1, y al terminar ésta, la zona 2.
Solución:
Ejercicio 5: Intermitencia (no bloqueante) #
Se quiere que mientras esté cerrado el interruptor S6, que está conectado al GPIO 14, el piloto H1 se enciende y apague de forma intermitente con una frecuencia de encendido y apagado de 1 segundo. Se recuerda que el piloto H1 se activa desde el GPIO 15.
Ayuda: Un algoritmo muy utilizado es el de contar un mismo tiempo sucesivamente, función que puede realizarse reiniciando de forma periódica y automática un temporizador. Esto podemos conseguirlo incluyendo un contacto digital negado del propio temporizador en la entrada de activación del temporizador Recordamos que esto es debido a que un TP necesita que se reinicie su señal de activación para volver a temporizar tras finalizar una temporización.
En Codesys se puede visualizar el ejercicio viendo el valor del temporizador en tiempo real durante la simulación. Como algo opcional, con fines de testeo, para hacer esto con un microcontrolador se puede enviar el tiempo transcurrido (.ET = Elapsed time) al puerto serie.
Solución:
La solución con un TON sería la misma.
Ejercicio 6: Semáforo con interruptor #
Se tiene un piloto verde H1 y otro rojo H2, controlados respectivamente desde el GPIO 15 y el 19. Se quiere que, mientras esté cerrado el interruptor S6, conectado al GPIO 2, se encienda H1 durante un segundo y a continuación, se apague y se encienda H2 durante otro segundo. El ciclo se debe repetir indefinidamente hasta que se abra S6.
Ayuda: Se utiliza la activación mediante un interruptor porque para hacerlo con un pulsador, la forma mas sencilla es crear una variable o marca, y ponerla en SET con el pulsador. Se verá mas adelante al tratar las variables.
Solución: