Data types are identified by a unique ID code, whether they are predefined or user-defined: IDs are divided as follows:
Range |
Description |
---|---|
0x00000000-0x0000FFFF |
Default data types (#1) |
0x00010000-0xFFFFFFFE |
User-defined data types |
0xFFFFFF |
Reserved |
(#1) default data types are never saved in the .LAD file, but are always considered to exist.
The default data types are as follows:
ID |
Symbolic |
Description |
RTE (0x00) |
---|---|---|---|
0x00000000 |
(reserved) |
Invalid data type |
|
0x00000001 |
I8 |
Signed 8bit integer |
1 |
0x00000002 |
U8 |
Unsigned integer 8bit |
1 |
0x00000003 |
I16 |
Integer 16bit with sign |
2 |
0x00000004 |
U16 |
Unsigned 16bit integer |
2 |
0x00000005 |
I32 |
Integer 32bit with sign |
4 |
0x00000006 |
U32 |
Unsigned 32bit integer |
4 |
0x00000007 |
I64 |
Integer 64bit with sign |
|
0x00000008 |
U64 |
Unsigned integer 64bit |
|
0x00000009 |
STRING |
String (0 terminated) |
... |
0x00000A |
FLOAT |
Floating point 32bit |
4 |
0x00000B |
REAL |
Floading point 64bit (double) |
8 |
BOOL |
Boolean |
4 (#1) |
|
TIMER |
32 |
||
COUNTER |
48 |
||
ALIAS |
0 |
||
EDGE |
Special storage for rising edge (RE) and falling edge (FE) elements. |
4 |
|
0x00000011 |
POWERSET |
"Power Set" logic variable |
4 (#2) |
0x00000012 |
AXESGROUP |
"Axes group" logic variable |
4 (#2) |
0x00000013 |
PATH |
"Path" logic variable |
4 (#2) |
0x00000014 |
POINT_L |
"Library point" logical variable |
4 (#2) |
(#1) BOOL type in RTE is represented, for performance reasons, as I32, while by RDE3 it is seen as U8.
(#2) Logical variables in RTE are always represented as a pointer to memory (4bytes), even if they were embedded in user-defined structures. For more information on the composition (elements) of such variables, see the RTE technical documentation).
The representation and size of data types depend directly on the runtime destination ID(HEADER.TARGETID). The sizes of the data types are listed in the RTE columns and are expressed in bytes.
Default timer structure
The default TIMER structure consists of the following fields:
Type |
Name |
Description |
Read |
Write |
---|---|---|---|---|
BOOL |
Q |
Timer Outcome |
X |
|
REAL |
ET |
Current value [ms] |
X |
X (#1) |
REAL |
PT |
Preset value [ms] |
X |
X |
REAL |
PT2 |
Preset value 2 [ms] |
X |
X |
BOOL |
EN |
Enable timer |
X |
|
(#1) The ET field can be written only when the timer has not yet been assigned.
COUNTER default structure
The default COUNTER structure consists of the following fields:
Type |
Name |
Description |
Read |
Write |
---|---|---|---|---|
BOOL |
QU |
Outcome of count against preset |
X |
|
BOOL |
QD |
Count outcome with respect to 0 |
X |
|
I32 |
CV |
Current count value |
X |
X (#1) |
I32 |
PV |
Preset value |
X |
X |
BOOL |
CU |
Status of the "count up" signal |
X |
|
BOOL |
CD |
State of the "count down" signal |
X |
|
(#1) The CV field can be written only when the counter has not yet been assigned.
Alias (or literally)
The list of data types that can be used as aliases are as follows:
ID |
Name |
Type |
Description |
---|---|---|---|
0x0001 |
INP(n) |
BOOL |
Input channel |
0x0002 |
INP_W(n) |
U16 |
Input word 16bit |
0x0003 |
INP_W(n).b |
BOOL |
Input word 16bit, bit access |
0x0004 |
INP_DW(n) |
U32 |
Input word 32bit |
0x0005 |
INP_DW(n).b |
BOOL |
Input word 32bit, bit access |
0x0006 |
OUT |
BOOL |
Output channel |
0x0007 |
OUT_W(n) |
U16 |
Output word 16bit |
0x0008 |
OUT_W(n).b |
BOOL |
Output word 16bit, bit access |
0x0009 |
OUT_DW(n) |
U32 |
Output word 32bit |
0x000A |
OUT_DW(n).b |
BOOL |
Output word 32bit, bit access |
0x000B |
R(n) |
I32 |
Global integer register (volatile) |
0x000C |
R(n).b |
BOOL |
Global integer (volatile) register, bit access |
0x000D |
NVR(n) |
I32 |
Global integer register (nonvolatile) |
0x000E |
NVR(n).b |
BOOL |
Global integer (nonvolatile) register, bit access |
0x000F |
RR(n) |
REAL |
Global real (volatile) register |
0x0010 |
NVRR(n) |
REAL |
Real global register (non-volatile) |
0x0011 |
AM(n) |
U32 |
Alarm mask |
0x0012 |
AM(n).b |
U32 |
Alarm mask, bit access |
Annotations:
•if the variable is of array type, the array index (n) can be either a constant or an unindexed variable.
•if the variable involves bit access, .b can be either a constant or a variable and must be in the compatible range the size of the reference variable.