Ottieni dati con variabili di conservazione
Le variabili Retain mantengono il loro valore dopo un avvio a caldo. Tuttavia, il grado di conservazione del valore è maggiore con variabili persistenti.
Per prolungarne la durata è necessaria una speciale area di memoria non volatile sul controller, ad esempio come NVRAM o UPS. Il salvataggio delle variabili ritentive in tale memoria non richiede tempo aggiuntivo, il che rappresenta un vantaggio rispetto alla conservazione dei dati con Persistence Manager. Se il controller non offre supporto hardware, i dati vengono generalmente archiviati in un file. I dati vengono quindi conservati se si spegne correttamente il controller. In caso di interruzione di corrente o di "staccare la spina", invece, i dati andranno persi.
Dichiarazione
Per dichiarare una variabile retain, aggiungi la parola chiave a una dichiarazione di variabile RETAIN
aggiunto.
Comportamento
Riavvio del controller
Interruzione incontrollata (disponibile solo con supporto hardware come una NvRAM)
chiamando il comando resettare caldo
Scarica di nuovo l'applicazione
chiamando il comando Ripristina a freddo (al contrario di variabili persistenti)
chiamando il comando reimpostare l'origine
Quando si riavvia un'applicazione, le sue variabili vengono in genere inizializzate con un valore iniziale specificato in modo esplicito o con un valore predefinito. Variabili contrassegnate con la parola chiave RETAIN
contrassegnati vengono gestiti in un'area di memoria separata a seconda del sistema di destinazione e mantengono il loro valore. Le variabili sono ad esempio protette contro le interruzioni di corrente. In questo modo è possibile utilizzare le variabili di conservazione su un contapezzi in uno stabilimento di produzione per continuare a contare anche dopo un'interruzione di corrente.
Posizione di memoria delle istanze dei blocchi funzione retain
Le istanze del blocco funzione sono in un unico pezzo nella memoria. Ciò è necessario affinché lo stesso codice possa funzionare su istanze diverse. Se ora una variabile in un blocco funzione con RETAIN
contrassegnato, ogni istanza del blocco funzione viene salvata con tutte le variabili. Anche le variabili del blocco funzione che non sono contrassegnate in questo modo. Tuttavia, la memoria non volatile non è disponibile nella stessa misura della memoria principale.
Un blocco funzione che ha un puntatore a un'istanza nella SRAM come variabile non viene archiviato nella memoria protetta.
Importare da CoDeSys V2.3-progetti
se tu a CoDeSys V2.3-Apri il progetto per inserirlo CODESYS importando la V3, le dichiarazioni delle variabili Retain vengono mantenute e non hanno effetto.
Per ulteriori informazioni, vedere RETAIN
e Apertura di un progetto V2.3