Présentation

Les DDT sont stockés dans la mémoire de l'automate dans l'ordre de déclaration de ses éléments.

Les règles ci-après sont toutefois utilisées.

Principe pour Premium et Quantum

Principe de stockage pour Premium et Quantum :

  • les éléments sont stockés dans l'ordre dans lequel ils sont déclarés dans la structure ;

  • l'octet est l'élément de base (alignement des données dans les octets de mémoire) ;

  • une règle d'alignement est associée à chaque élément :

    • les types BOOL et BYTE sont alignés de façon indifférente sur les octets pairs ou impairs ;

    • tous les autres types élémentaires sont alignés sur les octets impairs ;

    • les structures et les tableaux sont alignés conformément à la règle d'alignement des types BOOL et BYTE s'ils ne contiennent que des éléments BOOL et BYTE, sinon ils sont alignés sur les bits impairs de la mémoire.

Principe pour Modicon M340, M580 et Momentum

Principe de stockage de ces automates :

  • les éléments sont stockés dans l'ordre dans lequel ils sont déclarés dans la structure ;

  • l'octet est l'élément de base ;

  • une règle d'alignement et fonction de l'élément :

    • les types BOOL et BYTE sont alignés sur les octets pairs ou impairs ;

    • les types INT, WORD et UINT sont alignés sur les octets impairs ;

    • DINT, UDINT, REAL, TIME, DATE, TOD, DT et DWORD sont alignés sur les mots doubles ;

    • les structures et les tableaux sont alignés conformément aux règles de leurs éléments.

NOTE : Il est possible que l'alignement des données soit différent lorsque le projet est transféré du simulateur Control Expert vers un automate M340, M580 ou Momentum. Par conséquent, vérifiez la structure des données du projet.
NOTE : Control Expert indique les différences d'alignement. Vérifiez les instances correspondantes dans l'éditeur de données. Consultez la page Options du projet pour savoir comment activer cette option.

Alignement des DDT d'équipement Modicon M580 pour la scrutation des E/S

Deux modes de scrutation d'E/S sont proposés :

  • Le mode de scrutation d'E/S hérité (utilisé dans Unity Pro ≤ V11.1) crée des structures de DDT d'équipement alignées sur 32 bits par défaut.

  • Le mode de scrutation d'E/S amélioré (compatible pour les applications créées avec Unity Pro ≤ V12.0) crée des structures de DDT d'équipement alignées sur 16 bits par défaut.

NOTE :

Unity Pro est l’ancien nom de Control Expert pour les versions 13.1 et antérieures.

Pour conserver l'alignement d'origine des applications créées pour Unity Pro ≤ V11.1, sélectionnez le mode de scrutation d'E/S hérité.

Exemple d'alignement non concordant pour un équipement Modbus TCP :

  • Exemple d'agencement en mode hérité (alignement 32 bits, tableau de 4 types BYTE). Si 3 types INT sont transmis, la structure en mode hérité crée 2 octets vides à prendre en compte dans l'interprétetation de la structure globale.

  • Exemple d'agencement en mode amélioré (alignement 16 bits, tableau de types INT). Si 3 types INT sont transmis, aucun octet vide n'est ajouté par le système ; toutes les données de la structure sont utiles.

Exemples

Le tableau ci-après donne quelques exemples de structures de données. Dans les exemples suivants, des DDT de type de structure sont adressés à %MWi. Le premier octet du mot correspond aux 8 bits de poids faible, le deuxième octet correspond aux 8 bits de poids fort.

Dans le cas des structures suivantes, la première variable est mappée avec l'adresse %MW100 :

Première adresse de la mémoire

Description de la structure

Modicon M340, M580 ou Momentum

Premium

Para_PWM1

%MW100 (premier octet)

%MW100 (premier octet)

 

t_period : TIME

%MW102 (premier octet)

%MW102 (premier octet)

 

t_min : TIME

%MW104 (premier octet)

%MW104 (premier octet)

 

in_max : REAL

       
   

Mode_TOTALIZER

%MW100 (premier octet)

%MW100 (premier octet)

 

hold : BOOL

%MW100 (deuxième octet)

%MW100 (deuxième octet)

 

rst : BOOL

       
   

Info_TOTALIZER

%MW100 (premier octet)

%MW100 (premier octet)

 

outc : REAL

%MW102 (premier octet)

%MW102 (premier octet)

 

cter : UINT

%MW103 (premier octet)

%MW103 (premier octet)

 

done : BOOL

%MW103 (deuxième octet)

%MW103 (deuxième octet)

 

Réservé à l'alignement

Le tableau ci-après donne deux exemples de structures de données avec des tableaux :

Première adresse de la mémoire

Description de la structure

Modicon M340, M580 ou Momentum

Premium

EHC105_Out

%MW100 (premier octet)

%MW100 (premier octet)

 

Quit : BYTE

%MW100 (deuxième octet)

%MW100 (deuxième octet)

 

Control : ARRAY [1..5] OF BYTE

%MW104 (premier octet)

%MW103 (premier octet)

 

Final : ARRAY [1..5] OF DINT

       
   

CPCfg_ex

%MW100 (premier octet)

%MW100 (premier octet)

 

Profile_type : INT

%MW101 (premier octet)

%MW101 (premier octet)

 

Interp_type : INT

%MW102 (premier octet)

%MW102 (premier octet)

 

Nb_of_coords : INT

%MW103 (premier octet)

%MW103 (premier octet)

 

Nb_of_points : INT

%MW104 (premier octet)

%MW104 (premier octet)

 

reserved : ARRAY [0..4] OF BYTE

%MW106 (deuxième octet)

%MW106 (deuxième octet)

 

Réservé à l'alignement de la variable Master_offset sur les octets pairs

%MW108 (premier octet)

%MW107 (premier octet)

 

Master_offset : DINT

%MW110 (premier octet)

%MW109 (premier octet)

 

Follower_offset : INT

%MW111 (mot entier)

-

 

Réservé à l'alignement