同じデータ型(BOOL、WORD、INT、DWORD、DINT、REAL、同じ文字列長のSTRING)のすべての要素は、各々要素毎にまとめられ、共通の開始アドレスから割り付けられます。配列Arrayも、この共通の開始アドレスに割り付けられます。
開始アドレスは、次のように適用されます。DUTが、BOOL型またはARRAY OF BOOL型の要素からなる場合、ビット用に予約されたメモリエリアに割り付けられます。他のデータ型の場合は、16ビットワード用に予約されたメモリエリアに割り付けられます。
初期状態の曖昧さを回避するために以下の初期化が実行されます:
データ型 |
初期値 |
---|---|
BOOL |
FALSE |
WORD、INT、UINT、DWORD、DINT、UDINT |
0 |
REAL |
0.0 |
STRING |
‘' (空の文字列) |
文字列サイズが格納される先頭ワードは、データ型に指定されている文字列数に初期化されます。その他の文字列用エリアは、ゼロに初期化されます。
すべてのSTRING (文字列)型変数の要素は、宣言の最後に配置される必要があります。
使用するデータ型によって、メモリエリアがどのように占有されるか、注意してください。
特に、STRING (文字列)型を使用する場合、それらのメモリエリアが、他の要素によって上書きされることに注意してください。
文字列命令を使用する前に、最大文字列長と現在の文字列長が有効であることを確認してください。
DUTは、重複した要素を持つDUTの変数として使用することはできません。
BOOL型の要素を持たないDUT "DUTwithoutBOOLs":
重複した要素を持つDUTが占有するメモリ:
16-bit word area |
||||||
---|---|---|---|---|---|---|
DT100 |
WORD1 |
DWORD1 |
INT1 |
DINT1 |
REAL1 |
STRING1 |
DT101 |
WORD2 |
INT2 |
||||
DT102 |
DWORD2 |
DINT2 |
||||
DT103 |
||||||
STRING2 |
変数STRING1と変数STRING2は、長さが同じで、宣言の最後になければなりません。
BOOL型の要素を持つDUT DUTwithBOOLs (ユーザーがアドレスを定義しない場合):
重複した要素を持つDUTが占有するメモリ:
Bit area |
||||||||
---|---|---|---|---|---|---|---|---|
WR10 |
Bool14 |
Bools[04] |
WORD1 |
DWORD1 |
INT1 |
DINT1 |
REAL1 |
STRING1 |
WR11 |
WORD2 |
INT2 |
||||||
WR12 |
DWORD2 |
DINT2 |
||||||
WR13 |
変数STRING1は、宣言の最後に配置される必要があります。
配列を含むDUT:
重複した要素を持つDUTが占有するメモリ:
16-bit word area |
||||
---|---|---|---|---|
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] |
変数String1、String2、およびStringsは、長さが同じで、宣言の最後になければなりません。
重複した共通DUTは、あらかじめ「FP tool library」内に定義されています。