Instancias volátiles y de reintento
Bloques de Función (FB)
Los FB tienen variables internas que almacenan sus datos durante ciclos de ejecución consecutivos. Según las necesidades de la aplicación, estas instancias de FB pueden configurarse como retentivas (LOCAL_RETAIN o GLOBAL_RETAIN) o volátiles (LOCAL o GLOBAL). Las variables de entrada y salida asociadas al FB también pueden configurarse como retentivas o volátiles. Las variables retentivas conservan sus valores después de apagar el dispositivo, mientras que las variables volátiles conservan sus valores iniciales después de reiniciarlo.
Para que un FB conserve sus valores después de reiniciar el dispositivo, la instancia del FB y las variables asociadas a sus entradas deben configurarse como retentivas. Esto garantizará que las variables internas del FB y las variables de entrada asociadas conserven sus valores anteriores al apagado.
El siguiente ejemplo muestra el uso del bloque TON (Temporizador de Activación Retardada) con variables de instancia y retentivas:

Figura 1 - Bloque TP con variables de instancia y retentivas antes del reinicio.

Figura 2 - Bloque TP con variables de instancia y retentivas 1 segundo después del reinicio.
Para que un FB restablezca sus valores tras apagar el dispositivo, la instancia del FB y las variables asociadas a sus entradas deben configurarse como volátiles. Esto hará que las variables internas del FB y las variables de entrada asociadas se restablezcan a sus valores previos al apagado.
A continuación, se muestra un ejemplo del uso del bloque CTU (Contador Incremental) con variables de instancia y volátiles:

Figura 3 - Bloque CTU con variables de instancia y volátiles antes del reinicio.

Figura 4 - Bloque CTU con variables de instancia y volátiles después del reinicio.
Bloque de Usuario (USERFB)
Al usar USERFB, se pueden definir variables de tipo LOCAL, LOCAL_RETAIN, VAR_IN, VAR_OUT y VAR_IN_OUT. Las variables internas definidas como LOCAL siempre serán volátiles, y las de tipo LOCAL_RETAIN siempre serán retentivas. Las variables internas definidas como VAR_IN, VAR_OUT y VAR_IN_OUT serán volátiles si la instancia USERFB está asociada con el grupo LOCAL o GLOBAL y retentivas si está asociada con el grupo LOCAL_RETAIN o GLOBAL_RETAIN.