Skip to main content

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.