Le compilateur doit attribuer une zone mémoire à chaque variable n’ayant pas d’adresse physique qui lui a été affectée directement.
Avec
, vous pouvez définir les zones mémoire maintenues ou non maintenues, réparties en zones mémoire réservées au système (compilateur) et à l’utilisateur. Ajustez les zones mémoire en déplaçant le curseur ou en double-cliquant sur le curseur.Les zones mémoire comprennent :
Mots de drapeaux WR,
Registres de données (DT) et
Registres de fichiers FL selon le type d’API utilisé
Pour en savoir plus, voir la définition des adresses.
Avec Agrandir les zones système selon les variables globales, la zone système (compilateur) est automatiquement paramétrée à la valeur maximale. La zone utilisateur (zone définie par les variables entrées par l’utilisateur) est limitée à celle définie par les adresses explicites attribuées aux variables globales.
N’utilisez pas d’adresses explicites dans les corps de l’éditeur car elles ne seront pas prises en compte si vous sélectionnez Agrandir les zones système selon les variables globales.
Par exemple, si vous utilisez R110 et R200 directement dans le corps, WR11 et WR20 ne seront pas prises en compte.
WR11 et WR20 sont prises en compte lorsque vous utilisez des variables globales avec des adresses explicites comme indiqué dans l’exemple ci-dessous :
Les valeurs dans la zone non maintenue sont perdues en cas de coupure de courant ou lors de la commutation du mode RUN en mode PROG ; les valeurs dans la zone maintenue sont préservées. Elles ne sont initialisées que lorsque le programme est transféré vers l’automate.
Lorsque sous Initialiser toutes les variables sauf les variables globales maintenues avec adresses explicites., les variables avec des adresses affectées par l’utilisateur ne sont pas réinitialisées. , vous activez
Pour FP2, FP3, FP-C et FP5, la taille du registre de fichiers (FL) peut être définie dans le volet Projet sous .
L’adresse à partir de laquelle les zones sont maintenues peut être définie dans le volet Projet sous .
Lorsque vous modifiez les options de compilation, vous devez compiler l’ensemble du projet à nouveau.
Le compilateur attribue automatiquement une zone mémoire à chaque variable n’ayant pas d’adresse affectée à partir de la liste des globales variables.
Les zones mémoire ne sont pas toutes adaptées à tous les types d’API (mis en relief en gris clair).
Le tableau suivant montre à quelle zone de mémoire le compilateur affecte quel type de données et quelle classe de variables :
Classe |
Type de données |
Zone mémoire |
---|---|---|
VAR, VAR_GLOBAL |
BOOL |
Mots de drapeaux WR, zone non maintenue |
VAR_RETAIN, VAR_GLOBAL_RETAIN |
BOOL |
Mots de drapeaux WR, zone maintenue |
VAR, VAR_GLOBAL |
INT, DINT, WORD, DWORD, TIME, REAL, STRING |
Registres de données DT, zone non maintenue Registres de fichiers FL, zone non maintenue |
VAR_RETAIN, VAR_GLOBAL_RETAIN |
INT, DINT, WORD, DWORD, TIME, REAL, STRING |
Registres de données DT, zone maintenue Registres de fichiers FL, zone maintenue |
Le compilateur crée aussi automatiquement des étiquettes qui sont nécessaires aux boucles.
Le nombre d’étiquettes pour le système (compilateur) peut être indiqué à l’aide de
.Pour reínitialiser les paramètres de votre compilateur, sélectionnez Défaut