Utilizando el cuadro de dialogo Propiedades, se puede especificar una de las dos formas que tiene la DUT de ocupar la memoria:
con elementos solapados
con elementos no solapados
Todos los elementos de tipo BOOL se agrupan en un bloque y se asignan uno detrás de otro en un área de memoria reservada para bits.
Si se utiliza algún ARRAY OF BOOL, la asignación de memoria de elementos booleanos independientes comienza en una dirección de 16 bits.
Si no se utiliza ningún ARRAY OF BOOL, la asignación de memoria depende del número de elementos de tipo BOOL:
Número de elementos de tipo BOOL. |
Inicio de la asignación de memoria |
Asignación de memoria |
---|---|---|
1 |
en cualquier dirección de bit: R0, R1, R2, … |
![]() |
2 |
en cualquier dirección de bit par, por ejemplo, R0, R2, R4, … |
![]() |
4 |
en un dígito (4 bits), por ejemplo, R0, R4, R8, … |
![]() |
8 |
en un byte, por ejemplo, R0, R8, R10, … |
![]() |
9 o más |
en una palabra, por R0, R10, R20, … |
![]() |
3 |
en cualquier dirección de bit: R0–R2 : usado R3, R7: sin usar y rellenado |
![]() DUTs con direcciones ocupadas (O: bits ocupados que no se pueden utilizar) |
5-7 |
en cualquier dirección de bit: R0–R4 : usado R5–R7: sin usar y rellenado |
![]() |
Si no se asigna una dirección de usuario y en una DUT se utilizan 3 ó de 5 a 7 elementos booleanos, la memoria ocupada se rellena en el siguiente byte o en un dígito.
La posición ocupada no se puede utilizar
Todos los elementos de tipo ARRAY OF BOOL se agrupan en un bloque y se asignan a un área de memoria reservada para bits, comenzando en una dirección de palabra (16 bits).
Cuando se utiliza uno o mas ARRAY OF BOOL: la asignación de memoria de cada BOOL independiente y cada ARRAY OF BOOL se asignan a direcciones de 16 bits.
Área de palabra:
Área BOOL:
Los bits libres no se ocupan con la DUT, y se utilizarán por otros elementos Booleanos (simples), que encajen en estos espacios vacíos.
Si se utiliza un array de tipo BOOL, se recomienda utilizar un conjunto de 16 BOOL simples.
El resto de los elementos se agrupan en un bloque y se asignan uno detrás de otro en un área de memoria reservada para palabras (16 bits).
Para optimizar la asignación de memoria, las direcciones Booleanas de los elementos de la DUT no se asignan en el mismo orden en el que se definieron en la lista de declaración de la DUT.
Cuando se accede a algún sub elemento de la DUT a través de direcciones de usuario, se debe comprobar previamente la asignación de memoria utilizando Exportar Variables en fichero CSV o en la ventana de monitorización.
DUT (DUTwithoutBOOLs) sin elementos de tipo BOOL:
Cómo ocupan la memoria las DUTs con elementos no solapados:
Área de 16 bits |
|
---|---|
DT100 |
wWORD1 |
DT101 |
dwWORD1 |
DT102 |
|
DT103 |
iINT1 |
DT104 |
diDINT1 |
DT105 |
|
DT106 |
wWORD2 |
DT107 |
dwWORD2 |
DT108 |
|
DT109 |
iINT2 |
DT110 |
diDINT2 |
DT111 |
|
DT112 |
rREAL1 |
DT113 |
|
DT114 |
sSTRING1 |
DT115 |
|
DT116 |
|
DT117 |
|
DT118 |
sSTRING2 |
DT119 |
|
DT120 |
|
DT121 |
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 no solapados:
Área de Bit |
Área de 16 bits |
|||
---|---|---|---|---|
R100 |
bBool1 |
DT100 |
wWORD1 |
|
R101 |
bBool2 |
DT101 |
dwWORD1 |
|
R102 |
bBool3 |
DT102 |
||
R103 |
bBool4 |
DT103 |
iINT1 |
|
DT104 |
diDINT1 |
|||
R110 |
Bools[0] |
DT105 |
||
R111 |
Bools[1] |
DT106 |
wWORD2 |
|
R112 |
Bools[2] |
DT107 |
dwWORD2 |
|
R113 |
Bools[3] |
DT108 |
||
R114 |
Bools[4] |
DT109 |
iINT2 |
|
DT110 |
diDINT2 |
|||
DT111 |
||||
DT112 |
rREAL1 |
|||
DT113 |
||||
DT114 |
sSTRING1 |
|||
DT115 |
||||
DT116 |
||||
DT117 |
La variable STRING1 se debe colocar al final de la declaración.
DUT con Arrays:
Cómo ocupan la memoria las DUTs con elementos no solapados:
Área de 16 bits |
|
---|---|
DT100 |
String1_Max |
DT101 |
String1_Act |
DT102 |
String1_Char12 |
DT103 |
String1_Char34 |
DT104 |
String2_Max |
DT105 |
String2_Act |
DT106 |
String2_Char12 |
DT107 |
String2_Char34 |
DT108 |
String_Parts[1,1] |
... |
... |
DT115 |
String_Parts[2,4] |
DT116 |
String1 |
DT117 |
|
DT118 |
|
DT119 |
|
DT120 |
String2 |
DT121 |
|
DT122 |
|
DT123 |
|
DT124 |
Strings[1] |
DT125 |
|
DT126 |
|
DT127 |
|
DT128 |
Strings[2] |
DT129 |
|
DT130 |
|
DT131 |
Las variables String1, String2 y Strings deben tener la misma longitud y deben situarse al final de la declaración.