Parole chiave attributo per tipi di variabile
È possibile aggiungere le seguenti parole chiave attributo alla dichiarazione del tipo di variabile per specificare l'ambito:
oRETAIN: vedere Variabili Retain.
oPERSISTENT: vedere Variabili persistenti.
oCONSTANT: vedere Costanti - CONSTANT, letterali con tipo.
Variabili rimanenti - RETAIN, PERSISTENT
Le variabili rimanenti possono mantenere il loro valore per il periodo di esecuzione normale del programma. Dichiararle come variabili Retain o, in modo più rigoroso, come variabili persistenti.
La dichiarazione determina il livello di resistenza di una variabile rimanente in caso di ripristino, download o riavvio del controller. Nelle applicazioni si usa principalmente la combinazione di entrambi i flag di rimanenza (vedere Variabili persistenti).
NOTA: Una dichiarazione VAR PERSISTENT viene interpretata analogamente a VAR PERSISTENT RETAIN o VAR RETAIN PERSISTENT.
NOTA: Utilizzare il comando Aggiungi tutti i percorsi di istanza per aggiungere le variabili dichiarate come persistenti nell'oggetto elenco Persistenti.
Le variabili dichiarate come Retain sono memorizzate in un'area di memoria non volatile. Per dichiarare questo tipo di variabile, utilizzare la parola chiave RETAIN nella parte di dichiarazione di un POU o di un elenco di variabili globali.
Esempio
VAR RETAIN
iRem1 : INT; (* 1. Retain variable*)
END_VAR
Le variabili Retain mantengono il loro valore anche dopo uno spegnimento imprevisto o normale controller o anche quando si esegue il comando Online Reset caldo Al riavvio del programma, i valori ritenuti continueranno ad essere elaborati. Le altre variabili non Retain vengono nuovamente inizializzate, con i relativi valori di inizializzazione o, se questi non sono stati dichiarati, con i valori di inizializzazione predefiniti.
Ad esempio, è possibile utilizzare un valore ritenuto quando un'operazione, come il conteggio dei pezzi di un macchinario di produzione, deve continuare dopo un'interruzione di corrente.
Le variabili Retain, tuttavia, vengono reinizializzate quando si esegue il comando Online Reset origine e, a differenza delle variabili persistenti, quando si esegue il comando Online Reset a freddo o durante il download di un'applicazione.
NOTA: Solo le specifiche variabili definite come VAR RETAIN sono memorizzate nella memoria non volatile. Le variabili locali definite come VAR RETAIN nelle funzioni, tuttavia, NON sono memorizzate nella memoria non volatile. La definizione locale di VAR RETAIN nelle funzioni non ha alcun effetto..
Utilizzando interfacce o blocchi funzioni esternamente alle librerie di configurazione sistema nella sezione ritentiva del programma (VAR_RETAIN) si provocano eccezioni di sistema, che possono rendere il controller inutilizzabile e richiedere un riavvio.
|
FUNZIONAMENTO ANOMALO DELL'APPARECCHIATURA |
oNon utilizzare interfacce dalla libreria SystemConfigurationItf nella sezione ritentiva del programma (VAR_RETAIN). oNon utilizzare blocchi funzione dalla libreria SystemConfiguration nella sezione ritentiva del programma (VAR_RETAIN). |
Il mancato rispetto di queste istruzioni può provocare morte, gravi infortuni o danni alle apparecchiature. |
NOTA: Le librerie SystemConfigurationItf e SystemConfiguration sono disponibili solo per controller PacDrive (PacDrive LMC Eco, PacDrive LMC Pro/Pro2).
Le variabili persistenti sono identificate dalla parola chiave PERSISTENT (VAR_GLOBAL PERSISTENT). Vengono reinizializzate solo quando si esegue il comando Online Reset origine. A differenza delle variabili Retain, mantengono i loro valori dopo un download.
NOTA: Non utilizzare la dichiarazione AT in combinazione con VAR PERSISTENT.
Esempio di applicazione:
un contatore di ore di funzionamento, che deve continuare anche dopo un'interruzione di corrente o un download. Vedere la tabella sinottica sul comportamento delle variabili rimanenti.
È possibile dichiarare le variabili persistenti solo in uno speciale elenco di variabili globali del tipo di oggetto variabili persistenti assegnato all'applicazione. È possibile aggiungere un solo elenco di questo tipo a un'applicazione.
NOTA: Una dichiarazione con VAR_GLOBAL PERSISTENT ha lo stesso effetto di una dichiarazione con VAR_GLOBAL PERSISTENT RETAIN o VAR_GLOBAL RETAIN PERSISTENT.
Come le variabili Retain, anche le variabili persistenti sono memorizzate in un'area di memoria separata.
Esempio
VAR_GLOBAL PERSISTENT RETAIN
iVarPers1 : DINT; (* 1. Persistent+Retain Variable App1 *)
bVarPers : BOOL; (* 2. Persistent+Retain Variable App1 *)
END_VAR
NOTA: Le variabili persistenti possono essere dichiarate solo nell'oggetto elenco Persistenti. Se vengono dichiarate altrove, si comportano come variabili Retain e sono rilevate come errore di Compilazione nella vista Messaggi. Le variabili Retain possono essere dichiarate negli elenchi di variabili globali o nelle POU.
A ogni nuovo caricamento dell'applicazione, l'elenco delle variabili persistenti sul controller viene confrontato con quello del progetto. L'elenco sul controller è identificato dall'applicazione. In caso di incoerenze, all'utente viene richiesto di reinizializzare tutte le variabili persistenti dell'applicazione. L'incoerenza può risultare dalla modifica del nome, dall'elliminazione o da altre modifiche apportate alle dichiarazioni presenti nell'elenco.
NOTA: Tenere attentamente presenti tutte le modifiche apportate alla parte di dichiarazione dell'elenco delle variabili persistenti e il loro effetto sulla reinizializzazione.
Le nuove dichiarazioni possono essere aggiunte solo alla fine dell'elenco. Durante un download, queste verranno rilevate come nuove e non richiederanno una reinizializzazione dell'intero elenco. Se si modifica il nome o il tipo dati di una variabile, questa viene gestita come una nuova dichiarazione e provoca una reinizializzazione della variabile al successivo download o modifica in linea.
Comportamento delle variabili rimanenti
Consultare la Guida alla programmazione del controller specifico per ulteriori informazioni sul comportamento delle variabili rimanenti.
Le costanti sono identificate dalla parola chiave CONSTANT. È possibile dichiararle localmente o globalmente.
Sintassi
VAR CONSTANT<identificatore>:<tipo> := <inizializazzione>;END_VAR
Esempio
VAR CONSTANT
c_iCon1:INT:=12; (* 1. Constant*)
END_VAR
Vedere il capitolo Operandi per un elenco di possibili vincoli.
Con le costanti IEC si utilizza il tipo di dati più piccolo possibile. Se è necessario utilizzare un altro tipo di dati, è possibile farlo grazie ai letterali con tipo, senza bisogno di dichiarare esplicitamente le costanti. La costante verrà fornita con un prefisso che ne stabilisce il tipo.
Sintassi
<type>#<literal>;
<type> |
specifica il tipo di dati desiderato possibili valori: BOOL, SINT, USINT, BYTE, INT, UINT, WORD, DINT, UDINT, DWORD, REAL, LREAL Il tipo deve essere scritto con lettere maiuscole. |
<literal> |
specifica la costante Immettere dati corrispondenti al tipo di dati specificato in <type>. |
Esempio
iVar1:=DINT#34;
Se non è possibile convertire la costante nel tipo di destinazione senza perdita di dati, viene emesso un messaggio.
È possibile utilizzare i letterali con tipo in tutti i casi in cui si possono utilizzare le normali costanti.
Se l'impostazione predefinita Sostituisci costanti (File > Impostazioni progetto > Opzioni del compilatore) è attivata, le costanti in modali online hanno il valore preceduto dal simbolo nella colonna Valore della vista Dichiarazione o Controllo. In tal caso, non è possibile accedervi, ad esempio, per forzarle o scriverle.