Istanze di un Function Block in aree ritentive

Istanze di un Function Block possono essere depositate in aree ritentive, questo significa che tutte le condizioni per le variabili del Function Block restano intatte dopo un'interruzione dell'alimentazione. In tal caso le variabili devono essere inserite nell'intestazione del POU come classe VAR_RETAIN o VAR_EXTERNAL_RETAIN. Nel caso di VAR_EXTERNAL_RETAIN, l'istanza FB deve essere stata dichiarata precedentemente come VAR_GLOBAL_RETAIN nella lista variabili globali.

Se per una istanza viene utilizzata una delle classi VAR_RETAIN o VAR_EXTERNAL_RETAIN, il compilatore alloca alle variabili non ritentive, delle classi VAR, VAR_INPUT, VAR_OUTPUT o VAR_IN_OUT dell'istanza, degli indirizzi dell'area ritentiva i quali sono inizializzati solo dopo lo scaricamento del programma. Sottoistanze delle classi VAR sono trattate come sottoistanze della classe VAR_RETAIN. Gli indirizzi per altre variabili o sottoistanze delle classi VAR_RETAIN, VAR_OUTPUT_RETAIN, VAR_EXTERNAL, o VAR_EXTERNAL_RETAIN sono allocati come per istanze delle classi VAR o VAR_EXTERNAL. I valori delle variabili delle classi VAR_CONSTANT e VAR_EXTERNAL_CONSTANTsono inseriti come valori costanti nel codice programma.

Se la classe VAR oppure VAR_EXTERNAL รจ usata per un'istanza, la dichiarazione delle variabili o sottoistanze del Function Block determina se esse siano ritentive (VAR_RETAIN) o no (VAR).

Esempio

Intestazione del POU per il programma Prog

Un programma Prog accede due volte al blocco funzione FB1:

Intestazione del POU del Function Block FB1

L'intestazione del POU del FB1 ha i seguenti ingressi. Dal Function Block FB1 si accede poi a due istanze del Function Block FB2.

Intestazione del POU del Function Block FB2

L'intestazione del POU del FB2 ha i seguenti ingressi.

Distribuzione della memoria per il programma Prog:

Argomenti correlati

L'ultima revisione: 2020-10-22Feedback su questa paginaPanasonic hotline