Tipi di dati

Sono disponibili due tipi di variabili.

 

Nota:

 

Variabili di base

Quanto segue è un elenco di tipi di variabili di base.

Tipo di dati

Descrizione

BOOL La variabile BOOL memorizza 0 o 1.
SINT, USINT, INT, UINT, DINT, UDINT, LINT, ULINT, BYTE Tali variabili memorizzano valori interi. L’elaborazione è più veloce in confronto alle variabili di tipo virgola mobile.

WORD, DWORD, LWORD

Tali variabili memorizzano valori di tipo word.

STRING, WSTRING

Tali variabili memorizzano stringhe di testo.

REAL, LREAL

Tali variabili memorizzano valori in virgola mobile. Le variabili REAL possono memorizzare valori maggiori (come per es. i calcoli e le costanti) delle variabili di tipo intero.

TIME, DATE, TIME_OF_DAY, DATE_AND_TIME

Tali variabili memorizzano i valori di giorno e ora.

SINT, USINT, INT, UINT, DINT, UDINT, LINT, ULINT, BYTE

Tipo di dati

Con segno

Lunghezza dati

Intervallo dati

SINT

Complemento a 2

8 bit

-128...127

USINT

-

8 bit

0...255

INT

Complemento a 2

16 bit

-32768...32767

UINT

-

16 bit

0...65535

DINT

Complemento a 2

32 bit

-2147483648...2147483647

UDINT

-

32 bit

0...4294967295

LINT

Complemento a 2

64 bit

-9223372036854775808...9223372036854775807

ULINT

-

64 bit

0...18446744073709551615

BYTE

-

8 bit

0...255

WORD, DWORD, LWORD

Tipo di dati Lunghezza dati Intervallo dati

WORD

16 bit

0...65535

DWORD

32 bit

0...4294967295

LWORD

64 bit

0...18446744073709551615

STRING, WSTRING

Tipo di dati Descrizione

STRING

Memorizza fino a 512 byte di testo.

Se si usano variabili esterne, la codifica delle stringhe è definita dalla proprietà [Codifica stringa] della variabile.

I valori di codifica delle stringhe disponibili sono: UTF8, UTF16, ShiftJIS, CodePage850, GB2312, BIG5, KSC5601, CodePage1251, CodePage874 e CodePage1252.

Nota:

  • La codifica delle stringhe si può configurare anche nelle proprietà dell'apparecchiatura. L'impostazione della proprietà delle variabili ha priorità sulle proprietà dell'apparecchiatura. Nella proprietà [Codifica stringa] delle variabili, selezionare [Tipo di impostazione del dispositivo] per applicare l'impostazione di codifica delle stringhe dell'apparecchiatura.
  • La proprietà [Codifica stringa] compare solo quando il driver supporta la codifica stringa.

WSTRING

Memorizza fino a 512 word di testo a doppio byte.

Con le variabili esterne si può usare solo il tipo dati WSTRING.

La codifica delle stringhe è fissata come UTF16. Nelle proprietà delle variabili non si può cambiare l'impostazione [Codifica stringa] e la codifica nelle proprietà dell'apparecchiatura viene ignorata.

Nota:

  • È possibile definire il numero di byte o word memorizzabili dalla variabile nella proprietà [Numero di byte/Word].

  • Riconosce la fine della stringa di testo da NULL (0x00) o da [Numero di Byte].

  • Con la variabile selezionata o con il driver, se si usa un testo il cui codice carattere non può essere convertito con [Codifica stringa], la fine della stringa viene riconosciuta con il codice carattere.

  • La relazione di ordine alto/basso dei dati word dipende dalla [Modalità stringa] nel driver selezionato.

REAL, LREAL

Tipo di dati Lunghezza dati Intervallo dati
REAL

32 bit

+/-3.402823E38 ... +/-1.1754944E-38

LREAL

64 bit

+/-4.19E-307 ... +/-1.67E308

Nota:

  • La precisione delle variabili REAL è limitata a solo sette cifre. Se occorre maggiore precisione dei dati (per es. nelle operazioni di confronto), usare le variabili intere.
    Esempi
    Esempio 1: Nel valore 1.2345678, il valore risultante è approssimato all’ottava cifra (dopo 1.234567).
    Esempio 2: Il valore 0.1 memorizzato con una variabile REAL potrebbe dar luogo a 0.1000000014901161.

  • Quando si usano le variabili REAL, verificare che l'impostazione Ordine word doppia nella finestra di dialogo Configurazione del dispositivo corrisponda all'impostazione del dispositivo. Se le impostazioni non corrispondono, i valori delle variabili REAL esterne non saranno visualizzati correttamente.

  • Usare il punto (.) al posto della virgola decimale del valore della variabile. La virgola (,) non è supportata per i punti decimali.
    Anche se si usa la virgola (,) al posto del punto decimale del valore della variabile nel software di modifica delle schermate o nel visualizzatore, si ottengono risultati inaspettati, per esempio viene mostrato l'errore, la virgola è ignorata, o altro.

TIME, DATE, TIME_OF_DAY, DATE_AND_TIME

Tipo di dati Descrizione Intervallo dati

TIME

Memorizza la durata del tempo trascorso in giorni e ore. - 24 d 20 h 31 m 23 s 648 ms ... 24 d 20 h 31 m 23 s 647 ms

Nota: Quando si imposta un valore negativo per le proprietà [Valore iniziale] e [Intervallo di immissione] in una variabile TIME, il segno negativo verrà visualizzato per ogni unità di tempo. (Esempio: -24d -20:-31:-23.-648)

DATE Memorizza il giorno.

Quando si usa la serie SP5000 Open Box (Windows 10 IoT Enterprise Model), la serie IPC o PC/AT

1970/01/01 ... 2106/02/07

Modelli diversi da quelli precedenti

1970/01/01 ... 2038/01/19

TIME_OF_DAY Memorizza l’ora. 00:00:00 ... 23:59:59

DATE_AND_TIME

Combina DATE e TIME_OF_DAY.

Quando si usa la serie SP5000 Open Box (Windows 10 IoT Enterprise Model), la serie IPC o PC/AT
1970/01/01 00:00:00 UTC ... 2106/02/07 06:28:15 UTC

Modelli diversi da quelli precedenti
1970/01/01 00:00:00 UTC ... 2038/01/19 03:14:07 UTC

Nota:

  • Se si usano queste variabili, far corrispondere i tipi di dati del dispositivo esterno ai valori dei dati memorizzati.
    Se è stato immesso un valore non contenuto nell’intervallo dell’indirizzo del dispositivo esterno, il valore immesso compare sulla schermata ma non viene impostato nell’indirizzo del dispositivo esterno.

  • Quando si associano variabili con tipo di dati differenti, spesso il valore della variabile sorgente viene sovrascritto con un valore del risultato in comune.

    Per esempio, convertire una variabile reale su una variabile intera: impostare 123.4 su una variabile intera, quindi scrivere il valore su una variabile INT e il risultato è 123. Anche il valore della variabile REAL viene aggiornato a 123.

  • Se nella variabile DATE_AND_TIME viene immesso un valore intero da un dispositivo esterno, il valore memorizzato viene sfalsato del fuso orario del visualizzatore. Pertanto, per l'immissione di valori interi, la data e l'ora visualizzate dal display giorno/ora variano a seconda del fuso orario.

Serie SP5000 Open Box (Windows 10 IoT Enterprise Model), serie IPC o PC/AT

Valore intero in ingresso da dispositivo esterno UTC+0 (ntervallo: 1970/01/01 00:00:00 ... 2106/02/07 06:28:15) UTC+9 (ntervallo: 1970/01/01 09:00:00 ... 2106/02/07 15:28:15)
0 1970/01/01 00:00:00 2106/02/07 06:28:16
1 1970/01/01 00:00:01 2106/02/07 06:28:17
: : :
32399 1970/01/01 08:59:59 2106/02/07 15:28:15
32400 1970/01/01 09:00:00 1970/01/01 09:00:00
: : :
4294967295 2106/02/07 06:28:15 2106/02/07 06:28:15


Modelli diversi da quelli precedenti

Valore intero in ingresso da dispositivo esterno UTC+0 (ntervallo: 1970/01/01 00:00:00 ... 2038/01/19 03:14:07) UTC+9 (ntervallo: 1970/01/01 09:00:00 ... 2038/01/19 12:14:07)
0 1970/01/01 00:00:00 2038/01/19 03:14:08
1 1970/01/01 00:00:01 2038/01/19 03:14:09
: : :
32399 1970/01/01 08:59:59 2038/01/19 12:14:07
32400 1970/01/01 09:00:00 1970/01/01 09:00:00
: : :
2147483647 2038/01/19 03:14:07 2038/01/19 03:14:07

Variabili di tipo dati utente

Quanto segue è un elenco di tipi di variabili di tipo dati utente.

 

Nota: Anche i contenitori di array e di struttura sono considerati variabili.

 

Variabili array

Un array è una raccolta di variabili con lo stesso tipo di dati. Ciascuna variabile in un array si chiama elemento.

Per comprendere come funziona una variabile array, immaginare la variabile come una scatola. Come indicato nello schema seguente, la variabile Numero è una scatola singola contenente un valore.

L'array è simile a una fila di scatole, a ognuna delle quali è stato associato un numero. Nello schema seguente, la variabile array NUMERO contiene 5 elementi da 0 a 4. I valori della variabile vengono salvati in ciascuna delle 5 scatole.

Per specificare ogni variabile dell'array, specificare il nome della variabile seguito dal numero dell'elemento racchiuso tra parentesi quadre [ ].

(Esempio) Array con 5 elementi

Il numero dell'elemento inizia solitamente con 0, ma può anche iniziare con valori positivi o negativi.

(Esempio) Array che inizia con numero dell'elemento -1 con 5 elementi

 

 

Un array multidimensionale è un array che contiene altri array. Ad esempio, l'array che contiene due array DINT è un array bidimensionale.

 

Numero di elementi per ciascuna dimensione e impostazioni della dimensione

Nella finestra [Esplora progetti], da [Variabili] → [Tutti i tipi di dati utente] → [Array], nella colonna [Dimensione], impostare sia la dimensione dell'array che il numero di elementi.

Per le fasi di progettazione degli array, fare riferimento a quanto segue.

Procedura per il progetto (Variabili, Array, Struttura)

Per l'array a 1 dimensione, specificare solo gli elementi dell'array.

(Esempio) Per l'array a 1 dimensione con numero di elementi = 3, immettere "3".

 

 

Per gli array multidimensionali, nel campo [Dimensione] specificare il numero di elementi di ciascuna dimensione, separati dalla virgola (,).

(Esempio) Per l'array bidimensionale in cui la prima dimensione ha 3 elementi (numero iniziale = 0) e la seconda dimensione ha 4 elementi (numero iniziale = 0), immettere "3,4".

 

 

Questa definizione di array si utilizza per creare la variabile array Var1, mostrata di seguito.

 

 

Nota: Per impostare il numero iniziale degli elementi su qualcosa diverso da 0, al posto del numero di elementi immettere i numeri iniziale e finale separati da due punti (..) e il campo [Numero di elementi] calcola il numero totale di elementi.

 

(Esempio) Per impostare un array bidimensionale in cui la prima dimensione ha 3 elementi a partire dall'elemento 0 e la seconda dimensione ha 4 elementi a partire dall'elemento 3, immettere "3,3..6".

 

Dopo l'immissione, "3..6" viene convertito in 4 elementi e la sua dimensione di array inizia dal numero dell'elemento 3.

 

 

Questa array crea la variabile array Var1, mostrata di seguito.

 

 

Indirizzamento indiretto dell'array

L'indirizzamento indiretto è il modo più rapido per accedere a un valore di variabile nell'intervallo di valori consecutivi in un array, per ridurre il consumo di memoria e aggiornare il valore in pochi millisecondi.

Per l'indirizzamento indiretto degli array, specificare il numero di elementi dell'array attraverso il valore della variabile o il valore della proprietà di un oggetto, per specificare dinamicamente l'elemento dell'array.

Nota:

Quando si specifica indirettamente il numero di elementi dell'array con il valore della proprietà dell'oggetto, immettere "$GraphicalObject" prima del nome dell'oggetto.
A seconda della funzione di assistenza all'immissione, dopo aver digitato "$" nel campo della proprietà di input o di origine, dall'elenco delle opzioni è possibile selezionare "$GraphicalObject" per immettere facilmente la stringa.

 

L'indirizzamento indiretto dell'array è supportato quando:

 

Variabili struttura

Una struttura è una variabile che contiene una raccolta di altre variabili. Ogni variabile in un array si chiama elemento. Un elemento può essere formato da qualsiasi tipo di dati.

Si può creare una struttura annidata aggiungendo un'altra struttura o un array come elemento.

La struttura è simile a una fila di scatole, a ognuna delle quali è stato associato un elemento.

Nello schema seguente, la variabile struttura DATA contiene 3 elementi. I valori della variabile vengono salvati in ciascuna delle tre scatole.

Funzionamento con il valore di ingresso al di fuori del campo di ingresso

Nelle operazioni in cui il valore memorizzato nella variabile è fuori dall’intervallo di ingresso (valore minimo e massimo), il valore viene trattato come segue.

 

Nota:

  • Per i dettagli sulle operazioni di Cambio valore, far riferimento a Cambio valore.

 

Il valore viene superato sul dispositivo esterno

Tipo di dati Descrizione

STRING, WSTRING

Memorizza i dati che possono adattarsi.
Diversi dai precedenti

Il valore della porzione che supra l’intervallo di immissione viene contato di nuovo dal fondo dell’intervallo di immissione e memorizzato.

Esempio) Variabile a 8 bit senza segno (intervallo valore: 0...255)

Esempio 1: Se si cerca di memorizzare 256, nella variabile si memorizza 0. (Poiché il limite superiore è superato da 1, viene memorizzato il valore del limite inferiore 0)

Esempio 2: Se si cerca di memorizzare 257, nella variabile si memorizza 1. (Poiché il limite superiore è superato da 2, viene memorizzato il secondo valore dal limite inferiore 1)

 

Quando il valore viene superato con l’operazione Cambio valore [Loop]

Il valore della porzione che supra l’intervallo di immissione viene contato di nuovo dal fondo dell’intervallo di immissione e memorizzato.

(Esempio): Variabile a 8 bit senza segno (intervallo valore: 0...255)

Esempio 1: Se si cerca di memorizzare 256, nella variabile si memorizza 0. (Poiché il limite superiore è superato da 1, viene memorizzato il valore del limite inferiore 0)

Esempio 2: Se si cerca di memorizzare 257, nella variabile si memorizza 1. (Poiché il limite superiore è superato da 2, viene memorizzato il secondo valore dal limite inferiore 1)

Quando il valore viene superato con l’operazione Cambio valore [Stop]

Tipo di dati Descrizione

STRING, WSTRING

Memorizza i dati che possono adattarsi.
Diversi dai precedenti

Quelli che seguono sono i valori arrotondati al valore superiore o inferiore.

  • BOOL
    1/0
  • SINT
    127/-128
  • USINT, BYTE
    255/0
  • INT
    32767/-32768
  • UINT, WORD
    65535/0
  • DINT
    2147483647/-2147483648
  • UDINT, DWORD
    4294967295/0
  • LINT
    9223372036854775807/-9223372036854775808
  • ULINT, LWORD
    18446744073709551615/0
  • REAL, LREAL
    Varia in base all’impostazione delle proprietà.
  • TIME
    2147483647/-2147483648
  • DATE/TIME_OF_DAY, DATE_AND_TIME
    4294967295/0

 

Quando il valore viene superato con l’operazione Cambio valore [Set], valore specificato indirettamente, oppure operazione convertitore di Espressione

Il valore non viene memorizzato.

Quando il valore viene superato con una ricetta

Tipo di dati Descrizione

BOOL, REAL, LREAL

Il valore non viene memorizzato.

LINT, ULINT, LWORD

Quelli che seguono sono i valori arrotondati al valore superiore o inferiore.

  • LINT
    9223372036854775807/-9223372036854775808
  • ULINT, LWORD
    18446744073709551615/0

STRING, WSTRING

Memorizza i dati che possono adattarsi.
Diversi dai precedenti

Il valore della porzione che supra l’intervallo di immissione viene contato di nuovo dal fondo dell’intervallo di immissione e memorizzato.

(Esempio): Variabile a 8 bit senza segno (intervallo valore: 0...255)

Esempio 1: Se si cerca di memorizzare 256, nella variabile si memorizza 0. (Poiché il limite superiore è superato da 1, viene memorizzato il valore del limite inferiore 0)

Esempio 2: Se si cerca di memorizzare 257, nella variabile si memorizza 1. (Poiché il limite superiore è superato da 2, viene memorizzato il secondo valore dal limite inferiore 1)