DOXOM / Docs / Modo IEC / Bloques de función (FB)

Bloques de función de usuario (FB)

Un Bloque de Función (FB) es un bloque de código reutilizable con memoria de instancia. A diferencia de una FC, un FB retiene los valores de sus variables locales entre llamadas gracias a un DB de instancia asociado.

Crear un FB

  1. En el árbol de proyecto, clic derecho en la carpeta FB.
  2. Seleccione Nuevo FB.
  3. Asigne un ID numérico (evite IDs 10-20, reservados para bloques de sistema).
  4. Se abre el editor del FB con su grid Ladder propio.

Declaraciones del FB

Los FBs pueden declarar variables en cinco secciones:

SecciónDirecciónDescripción
InputLecturaParámetros de entrada. Se asignan al llamar al FB desde OB1/FC.
InOutLectura/EscrituraParámetros bidireccionales. El FB puede leer y modificar el valor.
OutputEscrituraValores de retorno del FB. Accesibles desde el programa que lo llamó.
StaticInternaVariables locales con memoria. Retienen su valor entre llamadas.
GlobalReferencias a variables globales del proyecto.

DB de instancia

Cada vez que se usa un FB en el programa, se requiere un DB de instancia que almacena la memoria del FB para esa invocación específica:

Llamada desde OB1

  1. En el panel de instrucciones, busque la sección FB de Usuario.
  2. Arrastre el FB al grid del OB1.
  3. Se abre un diálogo para asignar:
    • DB de instancia: Seleccionar o crear un DB.
    • Pines de entrada: Direcciones o constantes para cada Input.
    • Pines de salida: Direcciones destino para cada Output.
  4. Los pines se filtran por tipo de dato para evitar incompatibilidades.

Ejemplo de uso

Suponga un FB1 que implementa un control de válvula con temporización:

Al usar FB1 dos veces en OB1 con DBs diferentes (DB10, DB11), cada instancia controla una válvula independiente con su propia temporización y estado.

Importante: Los IDs 10-20 están reservados para bloques de función del sistema (TON, TOF, TP, CTU, CTD, CTUD, R_TRIG, F_TRIG, MTR_DIR, MTR_INV). No use estos IDs para FBs de usuario.