Vai al contenuto

Problema con variabili RETAIN

Home Forum Informazioni ambiente di sviluppo LogicLab Problema con variabili RETAIN

  • Questo topic ha 2 risposte, 2 partecipanti ed è stato aggiornato l'ultima volta 7 anni, 11 mesi fa da Anonimo.
Stai visualizzando 3 post - dal 1 a 3 (di 3 totali)
  • Autore
    Post
  • #36130
    Anonimo
    Inattivo

    Ho uno SlimLine di tipo “Ethernet CPU Compact MPS053” che uso per gestire alcuni input/output e mi servirebbe avere delle variabili che mantengano il loro ultimo valore anche in caso di spegnimento.  Dal manuale queste variabili sarebbero di tipo RETAIN. Ho seguito la guida e inserito:

    “Ultima_Posizione” di tipo UINT all’inidirizzo %MD100.2048 

    Ho provato ad assegnare un valore a questa variabile attraverso una piccola interfaccia web, però spegnendo ho visto che come valore iniziale viene riscritto 0.

    Da nessuna parte nel codice (nemmeno nell’inizializzazione) cambio il suo valore quindi non capisco come mai ritorna 0. Se per caso avete tempo a darmi una mano, probabilmente sto sbagliando qualcosa riguardo le variabili RETAIN ?

    #39912
    Sergio Bertana
    Amministratore del forum

    Nei sistemi SlimLine le variabili allocate in DB100 da 2048 a 4096 sono ritentive (Rimando a questo topic per ulteriori informazioni), quindi la situazione che hai illustrato non deve succedere. Sicuramente c’è da qualche parte nel tuo programma delle istruzioni che ne resettano il valore.

    Tipicamente può succedere che utilizzando array o puntatori per qualche motivo si esca dal range definito e si vada a sporcare altre zone di memoria. Specialmente nelle iterazioni se non si stà attenti ai valori limite.

    #39929
    Anonimo
    Inattivo

    Avevo lasciato una riga di codice che inizializzava la variabile senza accorgermene. 
    Grazie mille per la risposta.

Stai visualizzando 3 post - dal 1 a 3 (di 3 totali)
  • Devi essere connesso per rispondere a questo topic.