Costanti e letterali

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):

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.

NOTA:

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

NOTA:

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".

Letterali numerici

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).

NOTA:

A norma CEI 61131-3, tabella 5, il carattere "_" può essere usato per migliorare la leggibilità dei letterali.

NOTA:

Il carattere "." (punto) non è permesso in letterali numerici.

Letterali di durata

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

NOTA:

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).