Tous les éléments du même type de données (BOOL, WORD, INT, DWORD, DINT, REAL et STRING de même longueur) sont réunis et affectés l’un après l’autre à partir d’une adresse de départ commune. Les données de type Arrays sont également affectées à partir de cette adresse de départ.
Les conditions suivantes s’appliquent à cette adresse de départ : Si un DUT est composé d’éléments de type BOOL ou ARRAY OF BOOL, il est sauvegardé dans la zone de mémoire réservée aux bits ; sinon, il est sauvegardé dans une zone de mémoire réservée aux mots de 16 bits.
Pour éviter toute ambiguïté lors de l’initialisation, aucune initialisation n’est autorisée. Les initialisations par défaut suivantes sont exécutées :
Type de données |
Valeur initiale |
---|---|
BOOL |
FALSE |
WORD, INT, UINT, DWORD, DINT, UDINT |
0 |
REAL |
0.0 |
STRING |
'' (chaîne de caractères vide) |
L’adresse occupée par la longueur de chaîne de caractères maximale est initialisée avec la longueur maximale de la chaîne de caractères supérieure ou égale à zéro. Le reste de la chaîne est initialisée avec des zéros.
Toutes les variables d’éléments de type STRING doivent être placées en fin de déclaration.
L’occupation de la zone de mémoire par les types de données doit être respectée attentivement.
En particulier, lorsque vous utilisez des éléments STRING, notez qu’ils occupent la zone de mémoire de façon telle qu’ils peuvent être remplacés par d’autres éléments.
Veillez à ce que la longueur de la chaîne de caractères maximale et la longueur de la chaîne de caractères courante soient valides avant d’utiliser les instructions STRING.
Un DUT ne peut pas être utilisé en tant que variable d’un DUT avec éléments superposés.
DUT sans élément du type de données BOOL DUTwithoutBOOLs :
Occupation de la mémoire par les DUT avec des éléments superposés :
Zone de mots de 16 bits |
||||||
---|---|---|---|---|---|---|
DT100 |
WORD1 |
DWORD1 |
INT1 |
DINT1 |
REAL1 |
STRING1 |
DT101 |
WORD2 |
INT2 |
||||
DT102 |
DWORD2 |
DINT2 |
||||
DT103 |
||||||
STRING2 |
Les variables STRING1 et STRING2 doivent être de longueur identique et en fin de déclaration.
DUT avec éléments du type de données BOOL DUTwithBOOLs (pas d’adresse définie par l’utilisateur) :
Occupation de la mémoire par les DUT avec des éléments superposés :
Zone de bits |
||||||||
---|---|---|---|---|---|---|---|---|
WR10 |
Bool14 |
Bools[04] |
WORD1 |
DWORD1 |
INT1 |
DINT1 |
REAL1 |
STRING1 |
WR11 |
WORD2 |
INT2 |
||||||
WR12 |
DWORD2 |
DINT2 |
||||||
WR13 |
La variable STRING1 doit être située en fin de déclaration.
DUT avec éléments de type Arrays :
Occupation de la mémoire par les DUT avec des éléments superposés :
Zone de mots 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] |
Les variables String1, String2 et Strings doivent être de longueur identique et en fin de déclaration.
Les DUT avec éléments superposés communs sont déjà prédéfinis dans la bibliothèque FP tool library.