Todos los elementos del mismo tipo de datos (BOOL, WORD, INT, DWORD, DINT, REAL y STRING con la misma longitud de string) se agrupan y se asignan uno detrás de otro comenzando por una dirección de inicio común. Los arrays siempre son asignados a esta dirección de inicio común.
Las siguientes condiciones se aplican a este área de inicio: Si la DUT consiste en elementos del tipo BOOL o ARRAY OF BOOL, se almacena en un área de memoria reservada para bits; en caso contrario se almacena en un área de memoria reservada para palabras de 16 bits.
No está permitida la inicialización. Por defecto, se realizan las siguientes inicializaciones:
Tipo de dato |
Valor inicial |
---|---|
BOOL |
FALSE |
WORD, INT, UINT, DWORD, DINT, UDINT |
0 |
REAL |
0.0 |
STRING |
'' (caracter vacío) |
Las direcciones ocupadas por la longitud máxima de string se inicializan con la longitud máxima del string que es mayor o igual a cero. El resto del string se inicializa con ceros.
Además, todos las variables de tipo de datos STRING se deben colocar al final de la declaración.
En general, se debe prestar mucha atención a cómo se ocupa el área de memoria por el tipo de datos usado.
Especialmente si se usan STRINGs, tener en cuenta que su modo particular de ocupar la memoria permite que sean sobrescritos repetidamente con la ayuda de otros elementos.
Asegurarse de que la longitud máxima del string y la longitud actual son valores válidos antes de utilizar comandos string.
Una DUT no se puede usar como una variable dentro de otra DUT.
DUT sin elementos de tipo BOOL DUTwithoutBOOLs:
Cómo ocupan la memoria las DUTs con elementos solapados:
Área de 16 bits |
||||||
---|---|---|---|---|---|---|
DT100 |
WORD1 |
DWORD1 |
INT1 |
DINT1 |
REAL1 |
STRING1 |
DT101 |
WORD2 |
INT2 |
||||
DT102 |
DWORD2 |
DINT2 |
||||
DT103 |
||||||
STRING2 |
Las variables STRING1 y STRING2 deben tener la misma longitud y deben situarse al final de la declaración.
DUT DUTwithBOOLs con elementos de tipo BOOL (sin direcciones definidas por el usuario):
Cómo ocupan la memoria las DUTs con elementos solapados:
Área de Bit |
||||||||
---|---|---|---|---|---|---|---|---|
WR10 |
Bool14 |
Bools[04] |
WORD1 |
DWORD1 |
INT1 |
DINT1 |
REAL1 |
STRING1 |
WR11 |
WORD2 |
INT2 |
||||||
WR12 |
DWORD2 |
DINT2 |
||||||
WR13 |
La variable STRING1 se debe colocar al final de la declaración.
DUT con Arrays:
Cómo ocupan la memoria las DUTs con elementos solapados:
Área de 16 bits |
||||
---|---|---|---|---|
DT100 |
String1_Max |
String_Parts[1,1] |
String1 |
StringS[1] |
DT101 |
String1_Act |
String_Parts[1,2] |
||
DT102 |
String1_Char12 |
String_Parts[1,3] |
||
DT103 |
String1_Char34 |
String_Parts[1,4] |
||
DT104 |
String2_Max |
String_Parts[2,1] |
String2 |
StringS[2] |
DT105 |
String2_Act |
String_Parts[2,2] |
||
DT106 |
String2_Char12 |
String_Parts[2,3] |
||
DT107 |
String2_Char34 |
String_Parts[2,4] |
Las variables String1, String2 y Strings deben tener la misma longitud y deben situarse al final de la declaración.
En la FP tool library ya están predefinidas las DUTs con elementos solapados más comunes.