Ove nel codice si vogliono usare valori numerici, stringhe di caratteri o valori di tempo, ad esempio per connetterli a un parametro formale di una FU/BF, si possono usare letterali al posto di variabili costanti. I letterali sono valori o stringhe di costante "hard-coded" immessi direttamente. La CEI 61131 chiama i letterali "rappresentazioni esterne di dati". I letterali si possono immettere direttamente nel codice. Non è necessario specificare una dichiarazione. La CEI 61131 descrive diversi tipi di letterale, a seconda dei tipi di dati standard.
In Machine Expert – Safety, i letterali si possono inserire in FdL di codice, FdL per variabili (come valori iniziali) e FdL in modalità di debug quando si forzano o sovrascrivono variabili. I due tipi fondamentali di letterale sono supportati con alcune limitazioni relative alla CEI 61131-3 (si veda la nota sotto):
Letterali numerici per rappresentare valori numerici
Letterale di durata per definire stringhe di dati di tempo
Immettendo letterali numerici e di durata si possono usare trattini bassi per facilitarne la leggibilità. I letterali non sono sensibili alla distinzione tra maiuscole e minuscole.
I letterali si devono immettere sempre specificando il tipo di dati (ad es., BYTE#1, SAFEINT#1000).
Eccezioni:
TRUE e FALSE sono sempre trattati come BOOL.
SAFETRUE e SAFEFALSE vengono sempre trattati come SAFEBOOL.
Le costanti INT "standard" si possono immettere anche senza tipo di dati (ad es., 1000 significa INT#1000), poiché le immissioni decimali vengono automaticamente interpretate come INT. Eccezione: 0 e 1 se usati con tipo di dati booleano.
In Machine Expert – Safety si possono usare letterali con i seguenti tipi di dati CEI 61131-3 e tipi di dati di sicurezza speciali:
BOOL/SAFEBOOL
BYTE/SAFEBYTE
WORD/SAFEWORD
DWORD/SAFEDWORD
INT/SAFEINT
DINT/SAFEDINT
TIME/SAFETIME
Caso speciale: variabile globale funge da costante globale.
Se a una variabile globale simbolica è assegnato un valore iniziale, la si può considerare una costante globale con nome simbolico. La variabile globale simbolica inizializzata è protetta contro scrittura e il compilatore la tratta come una costante. Di conseguenza si può collegare, ad esempio, a parametri formali di un blocco di funzione che prevedono una costante.
Vedere anche l'argomento "Inserire costanti".
I seguenti letterali numerici si possono usare in Machine Expert – Safety:
Tipo |
Esempi |
---|---|
Letterali interi |
-12, 0, 123_456, +986 Tenere conto della prima nota sotto questa tabella. |
Letterali con base 2 |
INT#2#1111_1111 Tenere conto della prima nota sotto questa tabella. |
Letterali con base 8 |
INT#8#377 |
Letterali con base 16 |
INT#16#F0F0 |
FALSE e TRUE booleani |
FALSE, TRUE eSAFEFALSE, SAFETRUE |
0 e 1 booleani |
0, 1 |
Letterali numerici digitati si possono visualizzare con base 2, 8 o 16 (si veda la tabella sopra).
A norma CEI 61131-3, tabella 5, il carattere "_" può essere usato per migliorare la leggibilità dei letterali.
Il carattere "." (punto) non è permesso in letterali numerici.
La durata può essere rappresentata in ore, minuti, secondi, millisecondi e in una combinazione di questi formati:
Tipo |
Esempi |
---|---|
Prefisso lungo |
TIME#14mstime#14msSAFETIME#25h_15msafetime#25h_15m |
Prefisso breve
NOTA:
La rappresentazione con prefisso breve non è permessa per letterali SAFETIME. |
T#14mst#14mst#12m18s3.5msT#25h_15m t#25h_15m |
Nei letterali di durata, il carattere "." (punto) è permesso solo per definire l'unità di tempo più piccola da visualizzare (ad es., TIME#12.3d, SAFETIME#1h12m4s3.5ms).