Saltar al contenido

Bloques FC y FB en TIA Portal con PLC Siemens

¿Qué tal Pelecero? 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, así que… Al lio! 👇

Tabla de Contenidos

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.

Todo esto te lo explico mejor en el siguiente vídeo, y con ejemplos prácticos! 👇

O bien puedes continuar leyendo, como prefieras. Te recomiendo ambas, pero en el vídeo te explico al detalle las FC en TIA Portal.

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«:

agregar nuevo bloque tia portal

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)

crear fc tia portal

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í:

crear bloque fc tia portal

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.
Aprender a programar en TIA Portal

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.

Todo esto te lo explico mejor en el siguiente vídeo, y con ejemplos prácticos! 👇

O bien puedes continuar leyendo, como prefieras. Te recomiendo ambas, pero en el vídeo te explico al detalle los bloques FB en TIA Portal.

Cómo Crear un FB en TIA Portal

Para crear un FB en TIA Portal, debes ir a la pestaña «Agregar nuevo bloque«:

agregar nuevo bloque tia portal

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)

crear fb tia portal

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ísticasBloque FCBloque 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✔️

Todas las semanas, envío contenido de valor a través de mi newsletter.

Concretamente, experiencias propias vividas en fábricas como programador de PLC, cagadas monumentales que he hecho (y más de una buena que me ha caído) y consejos de programación.

Cada semana, píldora de conocimiento nueva. Semana que estás fuera, píldora que te pierdes (y que no volveré a compartir)

Para cumplir con el RGPD (Reglamento General de Protección de Datos) y entender que tus datos están seguros, debes leer y aceptar la política de privacidad. Tus datos serán guardados en Mailchimp, proveedor de email marketing. Mailchimp también cumple con el RGPD, así que todo está protegido y amparado por la ley.

Configuración