Diferencias entre una función y un bloque de funciones

Función

Una función:

  • es una POU (Unidad de organización de programa) que devuelve un resultado inmediato.

  • Se le llama directamente por su nombre (y no a través de una instancia).

  • No tiene instancias creadas.

  • Se puede utilizar como un operando en otras expresiones.

Ejemplos: operadores booleanos (AND), cálculos, conversión (BYTE_TO_INT)

Bloque de funciones

Un bloque de funciones:

  • Es una POU (Unidad de organización de programa) que devuelve una o más salidas.

  • Debe ser convocado por una instancia (copia del bloque de funciones con un nombre y variables específicos).

  • Todas las instancias tienen un estado persistente (salidas y variables internas) de una llamada a otra desde un bloque de funciones o programa.

Ejemplos: temporizadores, contadores

En el ejemplo, Timer_ON es una instancia del bloque de funciones TON: