Skip to main content

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.