I tipi di dati vengono identificati in base ad un codice ID univoco, siano essi predefiniti oppure definiti dall'utente: gli ID vengono suddivisi nel seguente modo:
Range |
Descrizione |
---|---|
0x00000000-0x0000FFFF |
Tipi dati predefiniti (#1) |
0x00010000-0xFFFFFFFE |
Tipi dati definiti dall'utente |
0xFFFFFFFF |
Riservato |
(#1) i tipi di dati predefiniti non vengono mai salvati nel file .LAD, ma si considerano sempre esistenti.
I tipi di dati predefiniti sono i seguenti:
ID |
Simbolico |
Descrizione |
RTE (0x00) |
---|---|---|---|
0x00000000 |
(riservato) |
Tipo dato non valido |
|
0x00000001 |
I8 |
Intero 8bit con segno |
1 |
0x00000002 |
U8 |
Intero 8bit senza segno |
1 |
0x00000003 |
I16 |
Intero 16bit con segno |
2 |
0x00000004 |
U16 |
Intero 16bit senza segno |
2 |
0x00000005 |
I32 |
Intero 32bit con segno |
4 |
0x00000006 |
U32 |
Intero 32bit senza segno |
4 |
0x00000007 |
I64 |
Intero 64bit con segno |
|
0x00000008 |
U64 |
Intero 64bit senza segno |
|
0x00000009 |
STRING |
Stringa (0 termined) |
... |
0x0000000A |
FLOAT |
Floating point 32bit |
4 |
0x0000000B |
REAL |
Floading point 64bit (double) |
8 |
BOOL |
Booleano |
4 (#1) |
|
TIMER |
32 |
||
COUNTER |
48 |
||
ALIAS |
0 |
||
EDGE |
Storage speciale per elementi fronte di salita (RE) e fronte di discesa (FE) |
4 |
|
0x00000011 |
POWERSET |
Variabile logica "Power Set" |
4 (#2) |
0x00000012 |
AXESGROUP |
Variabile logica "Gruppo assi" |
4 (#2) |
0x00000013 |
PATH |
Variabile logica "Path" |
4 (#2) |
0x00000014 |
POINT_L |
Variabile logica "Punto di libreria" |
4 (#2) |
(#1) il tipo BOOL in RTE viene rappresentato, per motivi di performance, come I32, mentre da RDE3 viene visto come U8.
(#2) Le variabili logiche in RTE sono sempre rappresentate come un puntatore in memoria (4bytes), anche qualora fossero incorporate in strutture definite dall'utente. Per ulteriori informazioni sulla composizione (elementi) di tali variabili, consultare la documentazione tecnica di RTE).
La rappresentazione e la dimensione dei tipi di dati dipendono direttamente dall'ID destinazione runtime (HEADER.TARGETID). Le dimensioni dei tipi dati sono elencati nelle colonne RTE e sono espressi in bytes.
Struttura predefinita timer
La struttura predefinita TIMER è composta dai seguenti campi:
Tipo |
Nome |
Descrizione |
Lettura |
Scrittura |
---|---|---|---|---|
BOOL |
Q |
Esito del timer |
X |
|
REAL |
ET |
Valore attuale [ms] |
X |
X (#1) |
REAL |
PT |
Valore di preset [ms] |
X |
X |
REAL |
PT2 |
Valore di preset 2 [ms] |
X |
X |
BOOL |
EN |
Abilitazione timer |
X |
|
(#1) Il campo ET può essere scritto solo quando il timer non è ancora stato assegnato.
Struttura predefinita contatore
La struttura predefinita COUNTER è composta dai seguenti campi:
Tipo |
Nome |
Descrizione |
Lettura |
Scrittura |
---|---|---|---|---|
BOOL |
QU |
Esito del conteggio rispetto a preset |
X |
|
BOOL |
QD |
Esito del conteggio rispetto a 0 |
X |
|
I32 |
CV |
Valore attuale di conteggio |
X |
X (#1) |
I32 |
PV |
Valore di preset |
X |
X |
BOOL |
CU |
Stato del segnale "count up" |
X |
|
BOOL |
CD |
Stato del segnale "count down" |
X |
|
(#1) Il campo CV può essere scritto solo quando il contatore non è ancora stato assegnato.
Alias (o literally)
L'elenco dei tipi dati utilizzabili come alias sono i seguenti:
ID |
Nome |
Tipo |
Descrizione |
---|---|---|---|
0x0001 |
INP(n) |
BOOL |
Canale input |
0x0002 |
INP_W(n) |
U16 |
Input word 16bit |
0x0003 |
INP_W(n).b |
BOOL |
Input word 16bit, accesso a bit |
0x0004 |
INP_DW(n) |
U32 |
Input word 32bit |
0x0005 |
INP_DW(n).b |
BOOL |
Input word 32bit, accesso a bit |
0x0006 |
OUT |
BOOL |
Canale output |
0x0007 |
OUT_W(n) |
U16 |
Output word 16bit |
0x0008 |
OUT_W(n).b |
BOOL |
Output word 16bit, accesso a bit |
0x0009 |
OUT_DW(n) |
U32 |
Output word 32bit |
0x000A |
OUT_DW(n).b |
BOOL |
Output word 32bit, accesso a bit |
0x000B |
R(n) |
I32 |
Registro globale intero (volatile) |
0x000C |
R(n).b |
BOOL |
Registro globale intero (volatile), accesso a bit |
0x000D |
NVR(n) |
I32 |
Registro globale intero (non volatile) |
0x000E |
NVR(n).b |
BOOL |
Registro globale intero (non volatile), accesso a bit |
0x000F |
RR(n) |
REAL |
Registro globale reale (volatile) |
0x0010 |
NVRR(n) |
REAL |
Registro globale reale (non volatile) |
0x0011 |
AM(n) |
U32 |
Maschera allarmi |
0x0012 |
AM(n).b |
U32 |
Maschera allarmi, accesso a bit |
Annotazioni:
•se la variabile è di tipo array, l'indice di array (n) puo essere o una costante o un variabile non indicizzata.
•se la variabile prevede l'accesso a bit, .b può essere una costante o una variabile e deve essere nel range compatibile la grandezza della variabile di riferimento.