En esta lección te voy a enseñar que son los set y reset en TIA Portal y a cómo emplearlos debidamente en tus programas, porque no quiero que tu hagas las chapuzas que hacen muchos programadores en las fábricas.
Pero antes de eso, decirte que para poder aprender programación de autómatas con mis formaciones verdaderamente exclusivas a la vez que rentables, solo las puedes adquirir a través de mis emails diarios.
Para recibirlos como ya hacen otros miles de personas, te apuntas aquí:
¿Qué son las funciones SET y RESET en PLC?
La función o instrucción SET en los PLC sirve para "setear" o enclavar una variable en el estado lógico 1 de manera indefinida. Esto quiere decir que cuando la condición que activa la variable, deja de estar activa, la variable en cuestión seguirá estando a 1, dado que está "seteada" por un SET.
En esta imagen, al activar el pulsador, se enciende la bombilla:
En esta otra, al desactivar el pulsador, la bombilla sigue encendida, así funciona el SET:
La función o instrucción RESET en los PLC sirve para "resetear" o desactivar una variable, es decir, poner su estado lógico a 0, hasta que vuelva a ser activada. El reset es el complemento del set, esto quiere decir que no tiene sentido resetear una variable con un reset cuando dicha variable nunca se activa mediante un set.
Aquí la bombilla está encendida por medio de un SET, fíjate:
Ahora al pinchar en el botón, reseteo la bombilla, es decir, la pongo a 0, la apago:
Así que, Pelecero, nunca en la vida utilices un RESET en una variable que nunca se activa por medio de un SET, sería algo absurdo.
¿Cómo hacer un SET en TIA Portal?
Para hacer un SET en TIA Portal tienes dos opciones, y yo, obviamente, voy a enseñarte ambas 👇
Una opción es insertar en el segmento una bobina normal y, tras añadirla, pinchar sobre ella y seleccionar "S", de SET:
La otra opción es irte a la pestaña de Instrucciones básicas y hacer doble click o arrastrar al segmento la instrucción S, de SET:
¿Cómo hacer un RESET en TIA Portal?
Para hacer un RESET en TIA Portal es, exactamente, siguiendo los mismos pasos que para el caso del SET, o bien añadiendo una bobina y seleccionando la opción R:
O bien seleccionando la instrucción desde la pestaña Instrucciones básicas:
SET y RESET en SCL con TIA Portal
Para realizar un SET y/o RESET en TIA Portal utilizando el lenguaje SCL, es muy sencillo, primero debes añadir un segmento en SCL haciendo click derecho sobre el segmento inicial:
Decirte que en SCL, no existen los SET y RESET como tal, ya que el concepto de "bobina" en SCL, no existe. Para hacer SET y RESET en SCL simplemente debes utilizar el condicional "IF".
Si vienes de algún lenguaje de programación estilo C/C++, Java etc... Sabrás de lo que hablo.
Con el tema del SCL entraré en otra lección a más profundidad, así que de momento no te preocupes, solo confía en mi, simplemente te diré de momento que el condicional "IF" sirve para ejecutar un código solo en caso de que se cumpla la condición o las condiciones de dicho IF.
¿Te acuerdas del caso del pulsador y la bombilla que te he puesto más arriba? Bien, vamos a hacerlo en versión SCL 👇
Fíjate que lo que le estoy diciendo al PLC con el condicional IF es "Oye, si pulsador vale TRUE, es decir, si está pulsado, entonces ponme la bombilla también a TRUE, es decir, enciéndela (fíjate que pulsador y bombilla están a TRUE, es decir, las variables están a 1:
Ahora fíjate Pelecero, como al desactivar el pulsador, bombilla sigue a TRUE, es decir, encendida. ¿Por qué? Porque en el programa no hay nada que la desactive, por tanto, debes entender que las asignaciones en SCL (variable := TRUE), funcionan como un set:
Para el reset es exactamente lo mismo, pero la bombilla en vez de asignarle el valor TRUE, deberá ser el valor FALSE (te pongo en formato SCL el mismo ejemplo de RESET que tienes más arriba):
Bloques SR y RS en TIA Portal
Los bloques SR y RS en TIA Portal son, básicamente, funciones para hacer SET y RESET de una variable de una manera más cómoda, teniéndolo todo en un único segmento (lo cual recomiendo muchísimo, el set y el reset de una variable, si es posible, en el mismo segmento, que luego vienen las duplicidades por error y los problemas cuando los proyectos son grandes)
Las funciones SR y RS las puedes encontrar en las instrucciones básicas de TIA Portal, simplemente las arrastras al segmento y listo:
El Bloque SR sirve para setear una variable con la entrada S, mientras que la entrada R1 sirve para resetear dicha variable. Este bloque te obliga a poner una variable encima del mismo, así que puedes poner la variable a la cual vas a hacer el set/reset y la salida Q, dejarla vacía:
El Bloque RS sirve para lo mismo, exactamente lo mismo, que el bloque SR, pero en este caso es la entrada S1 la que setea la variable y la entrada R, la que pone a 0 la variable bombilla:
Pero... Abel, y entonces...
¿Cuál es la diferencia entre los bloques SR y RS, si hacen lo mismo? La prioridad Pelecero, la prioridad, te lo cuento en el siguiente punto 👇
¿Qué sucede con la salida cuando la entrada SET y RESET se encuentran en 1?
En el bloque SR, cuando ambas entradas están activas, tiene preferencia el RESET y la variable se pone a 0, es decir, se resetea. En el bloque RS, en cambio, cuando ambas entradas están activas, tiene preferencia el SET y la variable se pone a 1, es decir, se setea.
De hecho, te animo a que hagas la prueba, que así es como se aprende de verdad, probando y practicando.
Venga, sigamos! 👇
Cómo realizar SET y RESET con un solo PULSADOR
Pelecero, te pongo este ejemplo para que veas de forma práctica como realizar un set y reset con un único pulsador. Si vas un poquete más avanzado quizá habrás pensado en utilizar un flanco ascendente, pero si lo pruebas, verás que no te acaba de funcionar bien.
Primera lección, los set y reset no están pensados para activarse con las mismas condiciones, es decir, un set, es lo opuesto a un reset, y viceversa, así que, que ambos, set y reset, dependan de las mismas condiciones de activación, es ilógico.
Ahora quiero que pienses cómo harías un set/reset con un solo pulsador. Piénsalo y te veo en un momento!
EH!
No te escapes, piénsalo, usa la cabeza aunque sea por un rato, sino, no aprenderás.
Bueno, espero que lo hayas pensado y no hayas venido aquí directamente a ver la solución.
A ver, para este ejercicio yo lo hecho de la siguiente manera, y no significa que sea la mejor (la peor no es, ya te lo digo yo, más que nada, porque lo he hecho yo). Ahí va! 👇
He definido una variable numérica la cual se incrementa en una unidad con la función ADD cada vez que se pulsa el pulsador. Cuando el pulsador se pulsa por primera vez, la variable "numero" tiene el valor 1, y con ese valor, setea la variable "bombilla". Cuando se pulsa el pulsador por segunda vez, incrementa de nuevo la variable "numero" en una unidad, y ahora vale 2. Cuando esto ocurre, reseteo la variable "bombilla" y también "número".
Bien.
Todos los días envío un email diario a miles de personas con la posibilidad de adquirir alguna de mis formaciones verdaderamente inéditas a la vez que rentables.
Para recibirlos, y con ello, la opción de poder adquirirlas, te apuntas justo aquí debajo: