Conserva i dati nella memoria condivisa
Alcuni prodotti non includono una connessione automatica di conservazione dei dati dall'applicazione nel controller (a causa della mancanza di opzioni di archiviazione generalmente valide). Esiste tuttavia un meccanismo esistente nel sistema runtime mediante un collegamento tramite memoria condivisa (SHM) che può essere utilizzato a tale scopo con una rispettiva configurazione.
L'utilizzo è possibile, ad esempio, con quanto segue CODESYS Control Prodotti SL:
CODESYS Control for Linux
CODESYS Control for Linux ARM
CODESYS Control for Linux ARM64
CODESYS Control for Raspberry Pi
CODESYS Control for BeagleBone
Nota sulla versione: la versione minima di CODESYS Control Il prodotto SL è V4.4.0.0 (CODESYS Control versione 3.5.17.30)
Fondamentalmente, i "Retains" sono abilitati tramite SHM dalle seguenti impostazioni in /etc/CODESYSControl_User.cfg
sul dispositivo di destinazione:
[CmpApp] RetainType.Applications=InSHM
[CmpRetain] Retain.SHM.Size=0x1FFFF ; Total size of remanent memory in bytes Retain.SHM.Name=MyRetainMemory ; Optional (Default: "RetainMemory")
Dopo un riavvio, il sistema runtime crea un file di memoria condivisa con il nome configurato sotto /dev/shm
. Mappando questo file, la memoria può essere reindirizzata a qualsiasi file non volatile, ad esempio, tramite i seguenti comandi:
sudo touch /dev/shm/MyRetainMemory sudo mount -o bind /var/opt/MyRetainMemory /dev/shm/MyRetainMemory
Importante
Al file si accede ciclicamente in base al tempo di ciclo impostato nell'applicazione PLC. Il file SHM non dovrebbe quindi mai essere reindirizzato a un file in un file system basato su flash, altrimenti c'è il rischio che la memoria venga distrutta.