Vamos a estudiar en un FC TIA Portal variables que se quedan activadas al final de la ejecución del FC si no se desactivan previamente. Quiere decir que, en ocasiones, al ejecutar un FC se activan ciertas variables y si no las desactivamos antes de salir del FC, permanecerán activadas.
Vamos a ver la ejecución de un FC:
- ¿Qué vamos a demostrar con esta explicación de un FC TIA Portal variables?
- ¿Cómo llamamos a un FC en TIA Portal?
- Llamar a un FC sin condiciones previas.
- Llamar a un FC con condiciones previas.
- Desactivar la llamada a un FC cuando se ejecute un proceso.
- Entonces, ¿Cuál es el problema cuando trabajamos con un FC TIA Portal variables dentro del FC?
- ¿Qué ocurre cuando trabajamos con un FC que tiene condiciones de llamada?
- ¿Y si desactivas la marca que está activando la bobina dentro del FC?
- Entonces, ¿Qué hacemos en un FC TIA Portal variables que se quedan activadas?
¿Qué vamos a demostrar con esta explicación de un FC TIA Portal variables?
Al comienzo de utilizar un FC o incluso un proyecto de TIA Portal donde generamos varios FC, simplemente hacemos una llamada a cada uno de los FC y no nos preocupamos de nada más. Ciertamente esto va a depender de cómo queramos que se ejecute el programa, ya que existen muchas formas de llamar a los FC.
Llamar a un FC sin condiciones previas.
Llamar a un FC con condiciones previas.
Desactivar la llamada a un FC cuando se ejecute un proceso.
Mientras tanto, existe una condición que quizás no sepas cuando se ejecuta un FC. En la ejecución de un FC, se pueden activar y desactivar variables dentro del FC. En cambio, si ponemos una condición de llamada al FC y, de repente, dejamos de llamar a este FC, todas las variables que en este momento estén activas dentro del FC, se quedarán activadas. Por lo tanto, la llamada a un FC es muy importante en la ejecución del programa.
¿Cómo llamamos a un FC en TIA Portal?
En primer lugar, para llamar a un FC, tenemos que crearlo. Supongo que ya sabrás crear un FC en TIA Portal. Después de crearlo, hay que llamar a ese FC para que se pueda ejecutar dentro el programa. Por ello, la forma más fácil de llamarlo es colocarlo directamente en el MAIN del proyecto y ahí establecer la llamada.
Asimismo, dentro de un FC podemos ejecutar cualquier funcionalidad o proceso, como por ejemplo crear una función para mover datos. Imagina que quieres mover los datos que tienes en un DB en otro DB diferente, puedes coger todos los datos o solo un bloque de datos y desplazarlos a otro DB. Te lo explico con detalle en otro artículo:
Mientras tanto, tenemos que revisar también el tiempo de ciclo de nuestro programa, ya que, cuantos más elementos tengamos dentro de nuestro proyecto, más lento va a ejecutarse y en ocasiones, esto puede influir en un proceso muy crítico. Debido a esto, tenemos que poner condiciones de llamada a los bloques FC, de manera que se llamen a éstos solamente cuando sea estrictamente necesario.
Como consecuencia de estas llamadas, tenemos un programa más estructurado y podremos mejorar la velocidad de lectura del proyecto total.
Entonces, ¿Cuál es el problema cuando trabajamos con un FC TIA Portal variables dentro del FC?
Puede que todavía no veas las consecuencias de poner condiciones a la llamada del FC, pero vamos a verlo poniéndonos Online dentro del FC. Imagina que dentro del FC tenemos que activar varias marcas. Vamos a poner un ejemplo muy fácil, donde activemos una marca cuando se active otra marca. Este código lo ponemos dentro del FC al que llamamos sin condición previa.
Ciertamente es un código muy sencillo, pero vas a ver cual es su comportamiento. Por lo tanto, ahora nos ponemos Online y veremos cómo se activa la variable cuando activamos la condición previa.
Como resultado podemos ver que la variable se activa dentro del FC ya que el FC se está llamando continuamente desde el MAIN del proyecto. Por esta razón, si ahora desactivamos la variable, se desactivará la bobina. Esto es debido a que el FC se está llamando continuamente y, por lo tanto, las variables se están leyendo continuamente.
Como ejercicio se podría contar el número de veces que se llama a un FC durante el proceso, utilizando un contador. Una función básica que nos permite contar dentro de TIA Portal Te cuento todo sobre los contadores en otro artículo, no te lo pierdas:
¿Qué ocurre cuando trabajamos con un FC que tiene condiciones de llamada?
Parece que ahora sí que vamos a ver el problema real cuando llamamos a un FC con unas condiciones previas. Vamos a poner el mismo ejemplo, poniendo un código muy simple dentro del FC, para comprobarlo fácilmente. Por lo tanto, lo primero que vamos a hacer es colocar una condición de llamado al FC, así que, dentro del MAIN llamaremos a este FC con una condición previa.
Asimismo, dentro del FC crearemos ese segmento donde activaremos fácilmente una variable con una marca. Por lo tanto, veremos en una primera instancia Online como esa marca está desactivada ya que el FC no está siendo llamado en el MAIN. Por consiguiente, hasta que no se active la marca de “Condición1” no se llamará al FC y no se ejecutará nada dentro del FC.
Finalmente, activamos la condición de llamada al FC y entonces ya se ejecuta todo lo que hay dentro. Por lo tanto, ahora dentro del FC activamos la marca “Condición4” y consecuentemente se activará la bobina “Condición5”.
Parece que todo funciona correctamente y ahora vamos a comprobar lo que ocurre si desactivamos la marca que hace la llamada al FC. Por ello, desactivamos la marca “Condición1” y vemos como en el MAIN el FC ya no se llama. Por lo tanto, todo lo que haya dentro del FC no se va a ejecutar.
Como consecuencia de esto, vemos que el interior del FC ya no se ejecuta, lo que nos da a pensar que las variables están ambas desactivadas, ya que en Online no se ven estas variables. Mientras tanto, si abrimos la tabla de observación para comprobar estas variables llamadas “Condición4” y “Condición5” tendremos una sorpresa.
Por ejemplo, puedes colocar dentro de un FC la función de medir la temperatura de un motor solamente cuando esté habilitado este FC. ¿Sabes medir la temperatura con una termorresistencia en un PLC S7-1200? Tienes que ver otro artículo donde te explico paso a paso cómo tienes que utilizar las entradas para medir la temperatura:
¿Y si desactivas la marca que está activando la bobina dentro del FC?
También puedes pensar que la variable “Condición5” está activada porque su condición previa sigue activada, es decir, la marca “Condición4”. En cambio, vamos a demostrar que esto no es así. El único acceso que tienes a esa marca “Condición4” es dentro del FC y el FC no se está ejecutando. Aun así, vamos a forzar esta variable “Condición4” a “0”, para ver qué hace la bobina llamada “Condición5”. Por lo tanto, en la tabla de variables, forzamos a “0” la variable “Condición4”.
En cambio, vemos como la variable “Condición5” ha quedado en el mismo estado en el que estaba. Por lo tanto, se cumple lo que veníamos diciendo:
Todas las variables que estén activadas dentro del FC en el momento en el que se desactiva la llamada al FC, se quedarán activadas. En cambio, si el FC no tiene condición de llamada, las variables se activan y desactivan en tiempo real ya que siempre se está ejecutando el FC.
Entonces, ¿Qué hacemos en un FC TIA Portal variables que se quedan activadas?
Ya que se quedan activas estas variables podemos pensar que es un error de programación, pero lo cierto es que va a depender de lo que necesitemos ene l proyecto. En ocasiones podemos necesitar que esas variables se queden activadas, aunque no se llame al FC porque, posteriormente le haremos un Reset a esas variables en otra parte del programa.
En cambio, si no es así, lo que necesitas es que, cuando se deje de llamar al FC tendrás que hacer un Reset a las variables que consideres importantes. Pero esto va a depender de cómo quieras programarlo. Por ejemplo, yo podría poner la condición de que, cuando no se llame al FC, se haga Reset de mis dos variables.
Por último, te aconsejo que sigas leyendo otro artículo donde te explico paso a paso cómo utilizar la función de Fecha y Hora en TIA Portal. Estoy seguro que en tu proyecto vas a necesitar leer la fecha y hora del PLC y utilizarlas para activar cualquier proceso a una hora determinada. Te lo explico todo al detalle:
Por cierto, si puede ser, déjame un comentario y dime lo que piensas sobre el artículo: bueno o malo, si crees que le falta algo, si te ha ayudado, lo que sea. De esta manera, yo podré mejorarlo y nos servirá a todos. Te contestaré en menos de 24h. Muchas gracias.