Camino:  Programación > Variables >

Instancias Volátiles y Retentivas

Previous pageReturn to chapter overviewNext page

FunctionBlocks (FBs)

 

Los FBs poseen variables internas que almacenan sus datos durante los ciclos consecutivos de ejecución. Conforme la necesidad de la aplicación, estos FBs pueden tener sus instancias configuradas 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 ser configuradas como retentivas o volátiles. Las variables retentivas retienen sus valores luego del apagado del dispositivo, mientras que las volátiles cargan sus valores iniciales luego de una reinicialización.

 

Cuando queremos que un FB mantenga los valores luego de la reinicialización del dispositivo, es necesario que la instancia del FB y las variables asociadas a sus entradas sean configuradas como retentivas. Eso hará que las variables internas del FB y las variables de entrada asociadas mantengan el valor anterior al apagado.

En el ejemplo de abajo tenemos la utilización del bloque TON con instancia y variables retentivas:

 

Figura 1: Bloque TP con instancia y variables retentivas antes de la reinicialización.

Figura 1: Bloque TP con instancia y variables retentivas antes de la reinicialización.

 

Figura 2: Bloque TP con instancia y variables retentivas 1 segundo después de la reinicialización.

Figura 2: Bloque TP con instancia y variables retentivas 1 segundo después de la reinicialización.

 

Cuando queremos que un FB reinicialice sus valores, luego del apagado del dispositivo, es necesario que la instancia del FB y las variables asociadas a sus entradas sean configuradas como volátiles. Eso hará que las variables internas del FB y las variables de entrada asociadas reinicialicen el valor anterior al apagado.

Abajo, sigue un ejemplo de la utilización del bloque CTU con instancia y variables retentivas:

 

Figura 3: bloque CTU con instancia y variables volátiles antes de la reinicialización.

Figura 3: bloque CTU con instancia y variables volátiles antes de la reinicialización.

 

Figura 4: bloque CTU con instancia y variables volátiles, luego de la reinicialización.

Figura 4: bloque CTU con instancia y variables volátiles, luego de la reinicialización.

 

 

Bloque del usuario (USERFB)

 

En la utilización del USERFB es posible definir variables del tipo LOCAL, LOCAL_RETAIN, VAR_IN, VAR_OUT y VAR_IN_OUT. Las variables internas definidas como LOCAL, serán siempre volátiles y las de tipo LOCAL_RETAIN serán siempre retentivas. Las variables internas definidas como VAR_IN, VAR_OUT y VAR_IN_OUT serán volátiles , en caso de que la instancia del USERFB sea asociada al grupo LOCAL o GLOBAL, y retentivas en caso de que sea asociada al grupo LOCAL_RETAIN o GLOBAL_RETAIN.