DUTにメモリエリアを割り付ける方法は、オブジェクトメニューの「プロパティ」ダイアログボックスで選択することができます。
重複した要素を持つDUT
重複した要素を持たないDUT
BOOL型のすべての要素は、ひとまとめにされ、ビット用に予約されたメモリエリアに順に割り付けられます。
ARRAY OF BOOLを使用する場合、単純なBool型は16ビットワードアドレスの先頭から割り付けられます。
ARRAY OF BOOLを使用しない場合、メモリの割り付けはBOOL型要素の数に応じて以下のように異なります。
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のBOOL型要素が使用される場合、占有メモリは次のバイトまたは桁境界まで埋められます。
この埋められたBOOL型は使用できません。
ARRAY OF BOOL型のすべての要素は、ひとまとめにされ、ビット用に予約されたメモリエリアの16ビットワードアドレスの先頭から、順に割り付けられます。
1つ以上のARRAY OF BOOLを使用する場合、単純なBOOL型および各ARRAY OF BOOLのメモリ割り付けは、ワードアドレスから割り付けられます。
ワードエリア:
BOOL型エリア:
空きビットはDUTによって占有されず、他の(単純な)BOOL型要素用に使用されます。BOOL型要素は、このような空きスペースに収められます。
BOOL型の配列を使用する場合は、16の倍数の単純なBOOL型を使用することと、16の倍数のBOOL型を持つBOOL型の配列も使用することをおすすめします。
他のすべての要素は、それぞれの要素ごとにひとまとめにされ、ワード用に予約されたメモリエリアの16ビットワードアドレスの先頭から、順に割り付けられます。
メモリレイアウトの最適化により、DUT要素のBOOL型アドレスは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:
重複した要素を持たない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は、長さが同じで、宣言の最後になければなりません。