Conserver les données dans la mémoire partagée
Certains produits n'incluent pas de connexion automatique pour conserver les données de l'application dans le contrôleur (en raison d'un manque d'options de stockage généralement valides). Cependant, il existe un mécanisme existant dans le système d'exécution au moyen d'une connexion via la mémoire partagée (SHM) qui peut être utilisé à cette fin avec une configuration respective.
L'utilisation est possible, par exemple, avec les éléments suivants CODESYS Control Produits SL :
CODESYS Control for Linux
CODESYS Control for Linux ARM
CODESYS Control for Linux ARM64
CODESYS Control for Raspberry Pi
CODESYS Control for BeagleBone
Note de version : La version minimale du CODESYS Control Le produit SL est V4.4.0.0 (CODESYS Control version 3.5.17.30)
Fondamentalement, "Retains" est activé via SHM par les paramètres suivants dans /etc/CODESYSControl_User.cfg
sur l'appareil cible :
[CmpApp] RetainType.Applications=InSHM
[CmpRetain] Retain.SHM.Size=0x1FFFF ; Total size of remanent memory in bytes Retain.SHM.Name=MyRetainMemory ; Optional (Default: "RetainMemory")
Après un redémarrage, le système d'exécution crée un fichier de mémoire partagée avec le nom configuré sous /dev/shm. En mappant ce fichier, la mémoire peut être redirigée vers n'importe quel fichier non volatile, par exemple, par les commandes suivantes :
sudo touch /dev/shm/MyRetainMemory sudo mount -o bind /var/opt/MyRetainMemory /dev/shm/MyRetainMemory
Important
L'accès au fichier est cyclique selon le temps de cycle défini dans l'application automate. Le fichier SHM ne doit donc jamais être redirigé vers un fichier dans un système de fichiers basé sur flash, sinon il y a un risque que la mémoire soit détruite.