En esta lección voy a explicarte qué es un FC en TIA Portal, un Bloque FB y las diferencias entre FC y FB. Además, aprenderás a cómo crearlos y utilizarlos.
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 vas a poder adquirir a través de mis emails diarios. No aquí ni en ningún otro sitio. Solo en mis emails.
Para recibirlos como ya hacen otros miles de personas, te apuntas aquí:
Qué es un FC en TIA Portal
Un Bloque FC (Función) en TIA Portal es un bloque lógico sin memoria el cuál permite ejecutar el código programado dentro del mismo. La gracia de una FC es que puedes llamarla las veces que quieras en cualquier segmento del programa, ya sea un OB, FB o incluso dentro de otra FC!
Las FC en TIA Portal se utilizan normalmente para encapsular código repetitivo. Imagínate que necesitas realizar una serie de cálculos o un recorrido de arrays (por poner ejemplos) bastantes veces a lo largo del programa, y el código base es el mismo en todos los casos.
Para evitar tener que repetir constantemente el mismo código, se utilizan las FC, para programar algo una vez y no más.
Como suelo decir (esto grábatelo a fuego), programa menos, programa mejor.
¿Y por qué una FC es un bloque lógico sin memoria?
Las FC, la desgracia que tienen, es que no tienen la capacidad de almacenar datos ni de guardarlos, es decir, que cuando un PLC termina de ejecutar el OB Main (termina su ciclo de scan) las FCs pierden todos los datos con los que han trabajado, es decir, todas su variables se resetean a sus valores iniciales al empezar un nuevo ciclo de scan.
Así que, cuando utilices una FC, en la gran mayoría de las veces, necesitarás un bloque de datos en TIA Portal como apoyo.
Cómo Crear un Bloque FC en TIA Portal
Para crear una FC en TIA Portal, debes ir a la pestaña «Agregar nuevo bloque«:

Ahora debes seleccionar el Bloque FC (verde), ponerle el nombre que más te guste, y, opcionalmente, puedes cambiar el tipo de lenguaje (te recomiendo KOP) y asignarle un número de FC o ID de forma manual (o puedes dejarlo en automático, de momento, no es importante)

Ya te enseñaré metodologías de estructuras y jerarquización de un proyecto, ahí entenderás que números debes asignarle a tus FC, de momento como te digo, no es importante.
Respecto al lenguaje, te decía que lo dejaras en KOP porque luego, puedes añadir segmentos en otros lenguajes (TIA Portal v14 o superior).
Si has seguido todos los pasos (nada difícil), tendrás tu FC creada en tu proyecto TIA Portal tal que así:

Características de un Bloque FC
Las características de una FC en TIA Portal son las siguientes:
- Permite crear variables tipo Input (variables de entrada al bloque)
- Permite crear variables tipo Output (variables de salida del bloque)
- Permite crear variables tipo InOut (variables que actúan de entrada y salida al bloque al mismo tiempo)
- Permite crear variables tipo Temp (variables temporales, es decir, pierden sus valores al terminar el ciclo de scan)
- Permite crear variables tipo Constant (variables cuyo valor es siempre el mismo y no es modificable desde programa)
- Permite devolver un valor como resultado (el tipo de valor devuelto depende del tipo de dato en la variable Return)
- Sin memoria, no permite almacenar datos para posteriores ciclos de scan en sus variables
- Puede ser llamada en cualquier segmento del programa (OB, FB y otras FC)
- Todas sus «patas» de entrada y salida deben ser rellenadas al ser llamada, sino, dará error al compilar.
Qué es un FB en TIA Portal
Un FB (Bloque de Función) en TIA Portal es un bloque lógico con memoria el cuál permite ejecutar el código programado dentro del mismo. La gracia de un FB es que, además de que puedes llamarlo las veces que quieras en cualquier segmento del programa (siempre y cuando no te cepilles la memoria de la CPU), ya sea un OB, FC u otro FB, es que permite guardar los datos de sus variables, vamos, que no se pierden al terminar el ciclo de scan como ocurre con las FC.
Un Bloque de Función (FB) en TIA Portal se utiliza generalmente cuando necesitas crear una función y, al mismo tiempo, necesitas almacenar sus datos en memoria, en ese caso, en vez de una FC, utilizas una FB (aunque también existen otras razones, pero ya te las explicaré, que son cosas más avanzadas)
El otro punto de los bloques FB es que, al llamarlos, generan un bloque de datos de instancia, con una estructura de variables idéntica al FB original del que proviene. En dicho DBI (Bloque de Datos de Instancia) almacenan los valores todas las variables de la llamada de tu FB.
Cómo Crear un FB en TIA Portal
Para crear un FB en TIA Portal, debes ir a la pestaña «Agregar nuevo bloque«:

Ahora debes seleccionar el Bloque FB (azul claro), ponerle el nombre que más te guste, y, opcionalmente, puedes cambiar el tipo de lenguaje (te recomiendo KOP) y asignarle un número de FB o ID de forma manual (o puedes dejarlo en automático, de momento, no es importante)

Si has seguido todos los pasos, te quedará de esta manera:

Características de un Bloque FB
Las características de un FB en TIA Portal son las siguientes:
- Permite crear variables tipo Input (variables de entrada al bloque)
- Permite crear variables tipo Output (variables de salida del bloque)
- Permite crear variables tipo InOut (variables que actúan de entrada y salida al bloque al mismo tiempo)
- Permite crear variables tipo Static (variables estáticas, es decir, guardan sus valores en memoria en el Bloque de datos de Instancia al terminar el ciclo de scan)
- Permite crear variables tipo Temp (variables temporales, es decir, pierden sus valores al terminar el ciclo de scan)
- Permite crear variables tipo Constant (variables cuyo valor es siempre el mismo y no es modificable desde programa)
- Puede ser llamada en cualquier segmento del programa (OB, FB y otras FC)
- Al llamarlo, genera un Bloque de datos de Instancia con una estructura de variables idéntica y única
Diferencia entre FC y FB en TIA Portal
La diferencia entre FB y FC en TIA Portal es, principalmente, que un FB tiene la capacidad de almacenar en memoria los valores de sus variables dentro de un Bloque de datos de Instancia, cosa que una FC no permite bajo ningún concepto, ya que solo posee variables temporales.
Te voy a detallar en una tabla similitudes y diferencias, para que lo tengas a mano de una manera bastante visual.
¿No dirás que no pienso en ti, eh? 👇
Tabla FC vs FB en TIA Portal
Características | Bloque FC | Bloque FB |
---|---|---|
Permite crear variables tipo Input | ✔️ | ✔️ |
Permite crear variables tipo Output | ✔️ | ✔️ |
Permite crear variables tipo InOut | ✔️ | ✔️ |
Permite crear variables tipo Static | ❌ | ✔️ |
Permite crear variables tipo Temp | ✔️ | ✔️ |
Permite crear variables tipo Constant | ✔️ | ✔️ |
Permite devolver un valor como resultado (Return) | ✔️ | ❌ |
Puede ser llamada en cualquier segmento del programa (OB, FC, FB) | ✔️ | ✔️ |
Permite almacenar datos en memoria | ❌ | ✔️ |
Genera un Bloque de Datos de Instancia | ❌ | ✔️ |
Es necesario rellenar con variables todas sus entradas y salidas vacías | ✔️ | ❌ |
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: