Instances de blocs fonctions dans les zones maintenues

Les instances de blocs fonctions peuvent être affectées à des zones maintenues, c.-à-d. que toutes les conditions des variables de blocs fonctions restent intactes en cas de coupure de courant. Dans ce cas, les variables doivent être entrées en tant que classe VAR_RETAIN ou VAR_EXTERNAL_RETAIN dans l’en-tête du POU. Pour VAR_EXTERNAL_RETAIN, l’instance FB doit préalablement avoir été déclarée dans la liste des variables globales en tant que VAR_GLOBAL_RETAIN.

Si vous utilisez la classe VAR_RETAIN ou VAR_EXTERNAL_RETAIN pour l’instance, le compilateur affecte des adresses de la zone maintenue à des variables non maintenues des classes VAR, VAR_INPUT, VAR_OUTPUT ou VAR_IN_OUT, qui sont initialisées uniquement après le transfert du programme. Les sous-instances des classes VAR et VAR_RETAIN sont traitées de manière identique. Les adresses des autres variables ou sous-instances des classes VAR_RETAIN, VAR_OUTPUT_RETAIN, VAR_EXTERNAL ou VAR_EXTERNAL_RETAIN sont affectées comme pour les instances des classes VAR ou VAR_EXTERNAL. Les valeurs des variables des classes VAR_CONSTANT et VAR_EXTERNAL_CONSTANT sont entrées en tant que constantes dans le code programme.

Si la classe VAR ou VAR_EXTERNAL est utilisée pour une instance, la déclaration des variables ou sous-instances dans le bloc fonction détermine si elles sont maintenues (VAR_RETAIN) ou non (VAR).

Exemple

En-tête du POU pour le programme Prog

Un programme Prog accède deux fois au bloc fonction FB1 :

En-tête du POU du bloc fonction FB1

L’en-tête du POU du bloc fonction FB1 présente les entrées suivantes. Le bloc fonction FB1 accède également à deux instances du bloc fonction FB2.

En-tête du POU du bloc fonction FB2

L’en-tête du POU du bloc fonction FB2 présente les entrées suivantes.

Répartition de la mémoire du programme Prog :

Thèmes apparentés

Modifié le : 2020-08-12Commentaires sur cette pageAssistance téléphonique