使用[属性(P)]对话框,可以将DUT分配为占用内存的两种方式之一:
带有重叠元素
带有非重叠元素
数据类型BOOL的所有元素归并在块中并在对位保留的内存区中依次分配:
如果使用任何ARRAY OF BOOL,简单的布尔分配从16位字地址开始。
如果不使用ARRAY OF BOOL,内存分配取决于布尔成员的数量:
布尔元素数量 |
开始内存分配 |
内存分配 |
---|---|---|
1 |
任何位地址:R0, R1, R2, … |
|
2 |
任何偶数位地址,例如R0, R2, R4, … |
|
4 |
数位界,例如R0, R4, R8, … |
|
8 |
字节界,例如R0, R8, R10, … |
|
9或更多 |
字地址,例如R0, R10, R20, … |
|
3 |
任何位地址:R0–R2 :已使用 R3, R7:未使用且已填充 |
带填充成员的DUT(O:无法使用的填充位) |
5-7 |
任何位地址:R0–R4 :已使用 R5–R7:未使用且已填充 |
如果未分配用户地址并且在DUT中使用了3或5–7个布尔元素,则占用的内存将填满到下一个字节或数位界。
无法使用此填充的布尔。
数据类型ARRAY OF BOOL的所有元素归并在块中并在对位保留的内存区中分配,以16位字地址开头。
当使用一个或多个ARRAY OF BOOL时:简单布尔的内存分配和每个ARRAY OF BOOL都在字地址上分配
字区域:
布尔区域:
空闲位未被DUT占用,将用于其他(简单)布尔元素,这些元素适合这些空白空间。
如果应使用布尔数组,建议使用16个简单布尔的倍数,并使用带有16个布尔的倍数的布尔数组。
所有其他元素归并在块中并在对16位字保留的内存区中依次分配。
由于内存布局的优化,DUT元素的布尔地址的顺序与DUT声明列表中定义的顺序不同。
通过用户地址访问带有DUT子元素的DUT时,应使用.csv导出或监控窗口检查内存布局。
不带数据类型为BOOL的元素的DUT(DUTwithoutBOOLs):
带有非重叠元素的DUT占用内存的方式:
16-bit word area |
|
---|---|
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 |
变量String1和String2必须长度相同且位于声明的最后。
带有数据类型BOOL元素的DUT DUTwithBOOLs(用户未定义地址):
带有非重叠元素的DUT占用内存的方式:
Bit area |
16-bit word area |
|||
---|---|---|---|---|
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 |
变量STRING1必须位于声明的最后。
带有数组的DUT:
带有非重叠元素的DUT占用内存的方式:
16-bit word area |
|
---|---|
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 |
变量String1、String2和Strings必须长度相同且位于声明的最后。