Bloques FB y FC en PLCs Siemens.

Bloques FB y FC en TIA Portal de Siemens.

La idea central de este artículo es que al finalizar tu lectura tengas claridad y una mejor comprensión sobre los bloques de datos, bloques de funciones, qué es un FB, qué es un FC, subrutinas en PLC Siemens y TIA Portal.

Trataré de explicarte de forma fácil y amena, por si apenas estás comenzando en este increíble mundo de la programación en PLCs Siemens.

No te preocupes.

Yo también me sentí así.

Hace algunos años, cuando comencé a aprender a programar PLCs Siemens, no tenía la menor idea de qué eran todos estos términos y conceptos relacionados con TIA Portal y los Controladores Lógicos Programables (PLCs).

Índice

Introducción a los bloques FC y bloques FB en PLCs.

Bien.

Como bien sabes, la automatización industrial se ha convertido en una disciplina fundamental para las fábricas modernas.

¿Por qué?

Porque la automatización ayuda a disminuir tiempos muertos en líneas de producción y a maximizar la calidad de los productos que llegan al consumidor final.

Si tu objetivo realmente es aprender a automatizar procesos industriales con PLCs Siemens, creo que debes conocer algunos de los elementos fundamentales de programación para lograr dicho objetivo.

Vayamos entonces a desmenuzar los elementos importantes dentro de la programación de PLCs Siemens en TIA Portal.

Bloques FC y bloques FB en PLCs Siemens.

Comencemos por entender la base de la automatización en los procesos industriales.

Un proceso industrial está conformado por actividades repetitivas dentro de una fábrica. Estas actividades se repiten tantas veces somo sea necesario, según el proceso.

Una máquina puede desarrollar estas actividades repetitivas siempre y cuando se le indiquen (programen) las instrucciones adecuadas.

Entonces podemos definir que:

Los procesos industriales son secuencias cíclicas (repetitivas) que contienen instrucciones que se repiten definida o indefinidamente. Estas instrucciones se ejecutan de acuerdo al orden establecido dentro de los programas que tienen las máquinas automatizadas.

Si el proceso que vas a automatizar es sencillo, el número de instrucciones dentro del programa será pequeño. Pero si el proceso es complejo, el número de instrucciones que se deberán programar va a incrementar.

Es aquí donde debes tener cuidado, ya que para automatizar un proceso industrial complejo, tu programa se volverá muy extenso dentro del mismo bloque de instrucciones (Bloque Main [OB1]).

Ejemplo práctico para entender los bloques FB y FC.

No quiero que te confundas.

Así que mejor te comparto este ejemplo para que tengas una mayor claridad.

Imagina que dentro de un proceso industrial una máquina tiene un pistón neumático que se debe activar para empujar una caja de cartón en tres movimientos lineales. A esto le llamaremos "Secuencia 1".

Ejemplo de pseudo-instrucciones en Tia Portal de Siemens.
Imagen 1. Ejemplo de ejecución de instrucciones con en un programa de PLC Siemens.

Esta Secuencia 1 se debe programar dentro de un PLC Siemens encargado de ejecutar dichas instrucciones.

Parece sencillo ¿verdad?

Pero espera, el problema se vuelve interesante cuando tienes 4 máquinas conectadas al mismo PLC Siemens (sólo es un ejemplo).

Esta Secuencia 1 se debe ejecutar en las 4 máquinas.

Ejemplo de un algoritmo no optimizado en Tia Portal de Siemens.
Imagen 2. Ejemplo del programa anterior con 4 máquinas.

¿Quiere decir que vamos a programar 4 veces la misma Secuencia 1 dentro del PLC Siemens?

No.

Como futuro programador de PLCs Siemens debes saber que para realizar una programación eficiente dentro de un PLC, es necesario que se utilice el mínimo de memoria total del Controlador Lógico Programable.

Como podrás darte cuenta en la imagen 2 de aquí arriba, al intentar programar la Subrutina 1, cuatro veces dentro del mismo bloque, el número de instrucciones crece. De 8 líneas de instrucciones (imagen 1), pasamos a tener 23 líneas de instrucciones (imagen 2).

¿Cómo logras hacer más eficiente este programa en PLCs Siemens?

Lo logras con la implementación de subrutinas.

Así que para dar solución al problema planteado como ejemplo, será necesario apoyarnos de las subrutinas en PLC Siemens.

¿Qué es una Subrutina en PLC?

Una subrutina es un conjunto de instrucciones que se ejecuta sólo cuando es invocada (llamada). Permanecerá sin consumir recursos dentro del PLC mientras no sea invocada.

Esto ayuda a hacer más eficiente el programa completo en un PLC.

Una subrutina permanece «dormida» sin consumir recursos de un PLC mientras no sea invocada.

Dakrox.

A continuación te presento el mismo programa pero ahora utilizando una subrutina dentro del PLC donde la Secuencia 1 se ejecuta dentro de otro bloque, es decir, fuera del bloque Main [OB1] (Programa Principal).

Ejemplo de pseudocódigo optimizado para un PLC.
Imagen 3. Ejemplo del mismo programa pero ahora utilizando una subrutina.

Ahora, te darás cuenta de que en el ejemplo de la imagen 3 (aquí arriba), el número total de instrucciones del Programa Principal Main se redujo a 15.

Lo interesante es que aún reduciendo el número de instrucciones, se logra resolver el mismo problema de automatización planteado en el ejemplo.

Aterrizando la idea.

El bloque OB1 (Programa Principal) es leído y ejecutado en cada ciclo SCAN del PLC.

Por el contrario, la Subrutina 1 permanecerá "dormida" sin consumir recursos. Sólo hasta que sea llamada por las instrucciones del Programa Principal.

El uso de subrutinas asegura que las áreas de memoria del PLC no se vean saturadas, o en conflicto, en caso de que las exigencias de una solución de automatización necesite de una programación extensa en el Bloque Main [OB1] (Programa Principal).

Tipos de subrutinas en TIA Portal.

Dentro del software TIA Portal, se cuenta con dos tipos de subrutinas para los PLCs Siemens. Estas subrutinas son imprescindibles en la programación estructurada de un proyecto con PLC Siemens. Las dos subrutinas son las denominadas FC y FB.

Los dos tipos de subrutinas en TIA Portal para PLCs Siemens son los bloques FB y FC.

Dakrox

Antes de comenzar con la descripción de los bloques FB y FC es importante hablar sobre los bloques DBs.

¿Qué es un bloque DB en un PLC?

Un DB es un Bloque de Datos dentro del cual no se pueden programar instrucciones. Este tipo de bloque solo sirve para almacenar datos. Los datos son de tipo Lectura/Escritura y se accede a ellos desde cualquier lugar del programa, ya sea por otro bloque o por alguna operación.

Existen dos tipos de bloques DB. ¿Cuáles son?

DB de Instancia y DB Global.

¿Qué es un bloque DB de instancia?

El DB de Instancia es un bloque encargado de almacenar datos y está relacionado sólo con un bloque FB. El bloque FB con el que está relacionado será el único que puede modificar los valores del bloque DB de instancia.

Ningún otro bloque podrá acceder a los datos del bloque DB de instancia.

¿Qué es un bloque DB Global?

El DB Global puede ser escrito y leído por cualquier bloque.

Cualquier bloque u operación puede modificar los valores almacenados en el bloque DB Global, no importa si están o no relacionados entre sí.

Qué es un FC en Siemens TIA Portal.

Un bloque FC (Función) es una subrutina que contiene una secuencia específica. Este bloque se puede invocar (llamar) desde otro bloque, ya sea OB, FC o FB.

La peculiaridad de un bloque FC es que no contiene un almacenamiento cíclico de datos, es decir, que si dentro del bloque se realiza una operación, el valor resultante de dicha operación sólo será útil en esa y durante esa ejecución.

Después de que termina la ejecución (llamada) de esta subrutina, el valor se perderá. En consecuencia, cuando haya una siguiente llamada del bloque FC el resultado de la operación anterior ya no va a existir.

Qué es un FB en Siemens TIA Portal.

Un bloque FB (Bloques de funciones) es una subrutina que contiene una secuencia u operaciones. Se le puede invocar desde otro bloque OB, FC o FB.

A diferencia del FC, este bloque tiene asociado por default un DB de Instancia, en el que los valores generados por la ejecución (llamada) del FB serán almacenados, a estos datos se les llama ESTÁTICOS, y solo los tienen los FBs.

Lectura recomendada: Estación de trabajo con PLC Siemens.

Al ser llamado (invocado) un bloque FB, va a ejecutar su rutina y a almacenar sus datos en el DB de instancia asociado a este FB. Quiere decir que en la siguiente llamada del bloque FB, los datos inmediatos anteriores se mantienen presentes, ya que permanecen estáticos contenidos en el DB asociado.

¿Cuál es la diferencia entre un bloque FB y un bloque FC?

La diferencia es que el bloque FC no tiene la capacidad de almacenar datos estáticos, es decir, los datos de sus operaciones son volátiles, se pierden después de terminar la ejecución del bloque.

Mientras que un bloque FB sí almacena los datos de sus operaciones en un DB de instancia asociado, sus datos no son volátiles, permanecen guardaos aún después de terminar la ejecución del bloque.

Otros conceptos de programación importantes.

Hasta aquí ya comprendes muy bien las características de los bloques OB, FB, FC y DB. Quizás ahora tienes planeado comenzar a aplicarlo en la práctica.

¡Pero espera!

Antes de comenzar con la programación creo que es importante que te familiarices con otros conceptos.

Para reforzar todo el tema de los bloques de funciones en PLCs Siemens deberías tener claro qué son las variables Locales, Globales, Temporales y Estáticas.

Así que echemos un vistazo rápido para que estés preparado.

Las variables locales son aquellas a las que se puede acceder desde el bloque en el que están asignadas, si algún otro bloque intenta acceder o usar estas variables no será posible acceder a ellas de forma directa.

Las variables globales, como el nombre lo indica, son aquellas que pueden ser usadas desde, y, por cualquier bloque del proyecto.

Variables en TIA Portal.

En TIA Portal las variables Globales son aquellas que son direccionadas como entradas, salidas o memorias (E, Q, M). Las variables locales se agregan en cada bloque FB o FC, y se distinguen por tener precedente a su nombre el signo “#”.

Las variables temporales se encuentran disponibles en los bloques FC y en los FB. Representan los datos que después de un ciclo de lectura del PLC en ese bloque, serán borrados. Estas variables permanecen activas sólo durante el tiempo de ejecución del bloque.

Por otro lado, las variables estáticas son exclusivas de los bloques FB ya que se almacenan en el DB de instancia asociado a él. Esto hace que los datos permanezcan accesibles de forma continua sin importar si se mandó a llamar nuevamente el FB o no.

Conclusión.

Comprender estas funciones te permite dominar sus capacidades, para aprovechar al máximo las capacidades que brinda un PLC. Con el uso adecuado de los bloques, vas a reducir el consumo de recursos disponibles en el PLC, como por ejemplo, el uso de memoria.

La industria moderna busca personas que logren programar de forma profesional  y estructurada. Saber hacerlo así minimiza los errores.

¿Cómo has utilizado los bloques FB y FC en tus proyectos? Deja tus comentarios y comparte tu experiencia con la comunidad.

¿Necesitas ayuda?

Si tienes dudas tienes disponible la sección de comentarios aquí abajo. Recuerda que puedes escribir las preguntas que tienes en este momento para recibir ayuda.

Escribe tu comentario aquí abajo y recibe ayuda.

Otros artículos que deberían interesarte:

Otros artículos que pueden interesarte

  1. Jonathan dice:

    Muchas gracias! Muy bien explicado!

    1. Dakrox dice:

      Hola Jonathan.

      Qué bueno que te ha sido de utilidad y comprensible este artículo.
      Seguiremos compartiendo más contenidos con la misma esencia.

      Recuerda que si tienes dudas puedes escribir tu comentario aquí mismo.

  2. Ediberto Pérez dice:

    Excelente información.

    1. Dakrox dice:

      Hola Ediberto.

      Gracias por tu comentario, nos impulsa a seguir compartiendo más contenidos para toda la comunidad.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Subir