Skip to main content

Obtenir des données avec des variables de conservation

Les variables Retain conservent leur valeur après un démarrage à chaud. Cependant, le degré de rétention de valeur est plus élevé avec des variables persistantes.

Une zone de mémoire non volatile spéciale sur le contrôleur est nécessaire pour prolonger la durée de vie, par exemple comme NVRAM ou UPS. L'enregistrement des variables de rétention dans une telle mémoire ne nécessite pas de temps supplémentaire, ce qui est un avantage par rapport à la rétention de données avec Persistence Manager. Si le contrôleur n'offre pas de support matériel, les données sont généralement stockées dans un fichier. Les données sont alors conservées si vous éteignez correctement le contrôleur. Dans le cas d'une panne de courant ou d'un "débranchement", cependant, les données seront perdues.

Déclaration

Pour déclarer une variable de conservation, ajoutez le mot-clé à une déclaration de variable RETAIN ajoutée.

Comportement

. Conservation de la valeur
  • Redémarrage du contrôleur

  • Abandon incontrôlé (disponible uniquement avec un support matériel comme une NvRAM)

  • appeler la commande réchauffer

. Réinitialisation à
  • Télécharger à nouveau l'application

  • appeler la commande Réinitialiser à froid (par opposition aux variables persistantes)

  • appeler la commande réinitialiser l'origine

Lorsque vous redémarrez une application, ses variables sont généralement initialisées avec une valeur initiale explicitement donnée ou avec une valeur par défaut. Variables taguées avec le mot-clé RETAIN marqués sont gérés dans une zone mémoire distincte selon le système cible et conservent leur valeur. Les variables sont protégées contre les coupures de courant, par exemple. Ainsi, vous pouvez utiliser des variables de conservation sur un compteur de pièces dans une usine de fabrication pour continuer à compter même après une panne de courant.

Emplacement mémoire des instances de bloc fonctionnel de rétention

Les instances de bloc fonction sont d'un seul tenant dans la mémoire. Ceci est nécessaire pour que le même code puisse fonctionner sur différentes instances. Si maintenant une variable dans un bloc fonction avec RETAIN marqué, chaque instance du bloc fonction est enregistrée avec toutes les variables. Également les variables du bloc fonctionnel qui ne sont pas marquées comme ceci. Cependant, la mémoire non volatile n'est pas disponible dans la même mesure que la mémoire principale.

Un bloc fonctionnel qui a un pointeur vers une instance dans la SRAM en tant que variable n'est pas stocké dans la mémoire sécurisée.

Importer de CoDeSys V2.3-projets

si vous un CoDeSys V2.3-Ouvrir le projet pour le mettre dans CODESYS à l'importation de la V3, les déclarations des variables de retenue sont conservées et sont effectives telles quelles.

Pour plus d'informations, voir RETAIN et Ouverture d'un projet V2.3