Vai al contenuto

Chiarimenti sul concetto di variabili RETAIN in IEC61131

Home Forum Programmazione IEC 61131 (LogicLab) Chiarimenti sul concetto di variabili RETAIN in IEC61131

Stai visualizzando 4 post - dal 1 a 4 (di 4 totali)
  • Autore
    Post
  • #35145
    Piero
    Partecipante

    Sto programmando con LogicLab un Vs sistema SlimLine, e mi trovo con un problema sulle variabili con attributo RETAIN.

    In pratica alla riaccensione del sistema le variabili mantengono il valore che avevano quando il sistema è stato spento, ma ogni volta che eseguo una modifica di programma e lo trasferisco sulla CPU di SlimLine tutte le variabili RETAIN assumono valore “0”.

    #37084
    Sergio Bertana
    Amministratore del forum

    La tua domanda mi da lo spunto per chiarire il concetto di funzionamento dell’attributo RETAIN sulle variabili. Nella norma IEC 61131 sono indicati due tipi di avvio di un programma in un PLC.

    Warm restart conosciuto anche come Warm reboot, alla applicazione della alimentazione al sistema. L’esecuzione del programma parte dal suo inizio e le variabili RETAIN assumono il valore che avevano allo spegnimento del sistema.

    Cold restart, dopo avere caricato il programma nel PLC o su condizioni di errore che hanno provocato il riavvio del programma. L’esecuzione del programma parte dal suo inizio e le variabili RETAIN assumono il valore definito nel campo INIT VALUE.

    In ogni PLC esistono solitamente ulteriori aree di memoria che pur non avendo l’attributo RETAIN sono ritentive, nel modulo CPU nostro sistema SlimLine ad esempio l’area di memoria DB 100 a partire dall’offset 2048 sino alla sue fine (Offset 4095) è tutta ritentiva. Quindi tutte le variabili allocate in quest’area mantengono il loro valore sullo spegnimento del sistema ed a differenza delle variabili RETAIN lo mantengono anche sul caricamento del programma e/o sul suo riavvio.

    #37085
    Sergio Bertana
    Amministratore del forum

    Da quanto esposto nel post precedente risulta ovvio che variabili che contengono valori che devono restare “in macchina” oltre che allo spegnimento e riaccensione del sistema, anche tra ricaricamenti successivi del programma, non possono essere allocate in variabili RETAIN ma solo nella memoria ritentiva del sistema (Esempio a partire da DB 100.2048 sui sistemi SlimLine).

    Fanno parte di questa categoria tutte le impostazioni di set definiti tramite pannello operatore e/o impostati da debug all’atto del test dell’impianto. Eventuali contametri, contapezzi, ecc. e qualsiasi altra variabile che abbia valenza storica per l’impianto.

    #37086
    Sergio Bertana
    Amministratore del forum

    Sulle versioni attualmente distribuite di LogicLab (Versione 1.7.0.0) abbinate al nostro modulo CPU SlimLine con sistema operativo SFW167D000, esiste un un bug sulla gestione delle variabili RETAIN.

    Se la variabile RETAIN è inizializzata (Campo INIT VALUE), ad un valore diverso da 0, quando si spegne il PLC e lo si riavvia, essa riassume il valore dichiarato in INIT VALUE. Se invece il valore definito in INIT VALUE è 0 il funzionamento è corretto, il suo valore è mantenuto allo spegnimento del sistema.

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