DUT avec éléments superposés

Occupation de mémoire :

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)

NOTA
  • 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.

Exemple 1 :

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

NOTA

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

NOTA

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]

NOTA

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.

Thèmes apparentés

Modifié le : 2020-12-16Commentaires sur cette pageAssistance téléphonique