Persistance des données
La durée de vie des variables et de leurs données s'étend du moment où une variable est créée jusqu'au moment où elle est supprimée et son espace mémoire est à nouveau libéré. Le moment de la création, de l'initialisation ou de l'instanciation des variables dépend de la portée déclarée. L'heure de la libération de la mémoire généralement aussi. Par exemple, la mémoire des variables globales est libérée lorsque l'application se termine.
Ils peuvent conserver les données plus longtemps que d'habitude. Les mécanismes suivants dans CODESYS sont prévus à cet effet.
Mécanismes de préservation des données
(UNE): Liste de variables globales persistantes
avec le mot clé
PERSISTENT RETAIN
Les variables persistantes conservent leur valeur lorsque l'application est rechargée. Les valeurs sont également restaurées après un téléchargement, un démarrage à chaud ou un démarrage à froid.
(B) : conserver les variables avec le mot clé
RETAIN
Les variables de rétention conservent leur valeur après un démarrage à chaud, mais pas lorsque l'application est rechargée, un téléchargement ou un démarrage à froid.
(C): Variables du gestionnaire de persistance de CODESYS Application Composer
Les variables de Persistence Manager sont enregistrées dans un fichier externe.
(RÉ): variables de recette
Les variables de recette et leurs valeurs sont enregistrées dans le fichier de recette.
mécanismes en comparaison
Quel mécanisme convient à quelle application ? Le tableau prend en compte certains cas d'utilisation courants. Les exemples concrets se réfèrent à une maison de contrôle.
cas d'utilisation | (A) Variables persistantes | (B) Conserver les variables | (c) Variables du gestionnaire de persistance | (D) Variables de recette | |
---|---|---|---|---|---|
1 | L'application doit recevoir les paramètres de l'appareil. Exemple : Après une panne de courant, la commande de la maison doit disposer des informations sur la durée pendant laquelle un store doit être relevé. | Adapté1 Cas d'utilisation préféré Dans ce cas, vous pouvez également utiliser des variables de rétention au lieu de variables persistantes. Ceci est avantageux pour les variables dont la déclaration est souvent modifiée. | Adapté Cas d'utilisation préféré Les variables Retain sont avantageuses lorsque leurs déclarations sont modifiées fréquemment. | Adapté2 Avantageux pour les contrôleurs qui n'ont pas de support matériel Ceci est rendu possible par des fonctionnalités spéciales telles que la double mise en mémoire tampon de fichiers. | Possible, mais très encombrant et donc déconseillé |
2 | L'application doit également recevoir des valeurs après des changements de programme ou des extensions. | ||||
2a : Extensions rares Exemple : Un programmeur d'application ajoute un nouvel interrupteur au programme et installe une nouvelle lumière. Le contrôle de la maison doit alors encore avoir les valeurs qui ont été enregistrées jusqu'à ce point. | Adapté1 Cas d'utilisation préféré | Adapté | Adapté2 | Possible, mais fastidieux | |
2b : Modifications plus libres, y compris la suppression ou la modification du type de données des variables Le contrôle de la maison est en cours d'exécution et a persisté. Si un programmeur d'application étend le contrôle avec une nouvelle fonctionnalité et donc avec une autre variable persistante dans un bloc fonctionnel, les valeurs enregistrées jusqu'à ce point doivent être conservées. Par exemple, le programme est étendu dans un FB par une variable qui contrôle l'extinction automatique d'une lampe précédemment non contrôlée après un temps spécifique. Après l'extension, le contrôle de la maison doit disposer des heures de toutes les lampes contrôlées. | Ne convient pas | Adapté Les données des variables de conservation sont conservées dans la mesure du possible après une modification en ligne. | Adapté, le plus loin possible 2 Cas d'utilisation préféré | Possible si textuel, mais lourd | |
2c : L'application doit recevoir des valeurs après un téléchargement. | Adapté | Ne convient pas | Adapté | Adapté | |
3 | L'application doit pouvoir utiliser différents ensembles de valeurs. Exemple : Les paramètres de fonctionnement pour l'été, l'hiver et les vacances doivent être enregistrés et réimportés si nécessaire. | Ne convient pas | Ne convient pas | Ne convient pas | Adapté Cas d'utilisation préféré |
4 | L'application doit pouvoir utiliser les paramètres d'un autre système. Il doit être possible de transférer les paramètres vers un autre système qui utilise des variables similaires. | Ne convient pas | Ne convient pas | Adapté2 | Adapté3 |
5 | L'application doit fournir des données lisibles par l'homme. L'utilisateur doit pouvoir lire, comparer et modifier les données. | Ne convient pas | Ne convient pas | Adapté2 | Adapté3 |
1 Inconvénient : uniquement possible si le système d'exécution prend en charge ce mécanisme et qu'une mémoire NVRam ou un onduleur est disponible. Avantage : rapidité ; cas d'utilisation recommandé : 1 et 2a
2 Inconvénient : Dans le cas d'un grand nombre de variables (> 10000), de longs temps d'attente sont à prévoir pour une initialisation et un arrêt. Avantage : aucun équipement de mémoire spécial n'est nécessaire ; La conservation de la valeur s'applique également aux modifications, extensions ou suppressions.
3 Avantage : Modifiable en externe, transférabilité. Inconvénient : Gênant
Durée de vie des variables lors de l'appel de commandes en ligne
Saisie de l'utilisateur dans le menu En ligne | Variable avec durée de vie habituelle Non plus |
|
|
---|---|---|---|
commander changement en ligne | x | x | x |
commander réchauffer | i | x | x |
commander Réinitialiser à froid | i | i | x |
commander charger | i | i | X 1 |
commander réinitialiser l'origine | i | i | i |
x : La variable garde sa valeur.
i : La variable est initialisée.
1 Remarque : Pour la structure des données persistantes, veuillez noter les informations sous "Mécanisme de téléchargement".
Durée de vie des variables lors du chargement d'une application de démarrage
Les valeurs des variables normales perdent leur valeur et sont réinitialisées.
Les valeurs des variables persistantes sont protégées
Lorsque la structure des variables persistantes en mémoire correspond à la structure de la liste des données persistantes.
Lorsque les données persistantes ont seulement été étendues. Dans ce cas, seules les variables récemment ajoutées sont définies avec leurs valeurs par défaut.
Les valeurs des variables retenues sont protégées
Lorsque la structure des variables de conservation en mémoire correspond à la structure de la liste de données persistantes.
Lorsque les variables de conservation correspondent à l'application (le GUID doit correspondre).
Si les conditions requises pour restaurer les valeurs des variables de conservation et des variables persistantes ne sont pas remplies lors du démarrage de l'application, une "discordance de conservation" se produit. La réaction à cette différence est décrite dans la documentation du fabricant du matériel.
Pour plus d'informations, voir : Préserver les données avec des variables persistantes