QUESTION:
Pour quelle raison y a-t-il parfois des écarts importants entre les
besoins en mémoire hors ligne et en ligne au niveau de l'état du
module ?
REPONSE:
Au niveau des propriétés de l'objet du container de blocs du STEP7,
sont affichés les besoins nécessaires en mémoire en terme de code
et de mémoire de données.
Image 1: Propriétés - container de blocs hors ligne
En transférant le programme dans la CPU, il y a parfois des
écarts importants entre les besoins en mémoire hors ligne calculés
par le STEP7 et ceux affichés en ligne au niveau de l'état du
module.
Dans les données hors ligne, seules les données de blocs statiques
(utilisateur) sont prises en compte et pas les données des blocs
système (SDBs). De même, les ressources système dynamiquement
réservées par les blocs utilisateur et les ressources système
dynamiques des blocs d'alarme manquent dans cette vue.
Image 2: État du module - EN LIGNE
Explication: La taille de la mémoire de chargement est
calculée par la taille des blocs (vue hors ligne) ajoutée à la
somme des SDBs (affichés dans le container des SDBs).
La mémoire de travail de code est différente avant et après le
premier démarrage.
Avant le premier démarrage, le besoin en mémoire de travail
correspond à la somme des besoins en mémoire de code:
de l'ensemble des blocs utilisateur
+ des blocs de communication
+ de la mémoire image des entrées (PAE)
+ de la mémoire image des sorties (PAA)
+ du tampon de diagnostic
Après le premier démarrage, s'ajoute encore à cette somme les
besoins en données de communication.
Le besoin en données de mémoire de travail dépend du premier
démarrage. Il est conditionné à la dynamique du programme
utilisateur et est la somme des besoins:
des données des blocs (affichage hors ligne)
+ des données système
+ des blocs utilisateur générés par SFC
+ des données locales (configuration)
Les données catalogue pour la mémoire disponible pour le code et
les données sont toujours valables pour les paramètres standard de
la CPU de la configuration matérielle. Si par exemple la mémoire
image est étendue dans les propriétés de la CPU, alors cela charge
la mémoire de travail en code. Le même phénomène se passe aussi
pour le maximum des contrats de communication et le nombre des
messages dans le tampon de diagnostic.
Image 3: Détails de la mémoire de travail du code
Dans le tableau suivant sont indiqués les besoins en mémoire
dans la mémoire de travail du code pour l'extension des
ressources:
|
Ressources |
Besoin
supplémentaire dans la mémoire de travail du code |
| par octet supplémentaire dans la
mémoire image des entrées/sorties (PAE/PAA) |
12 octets |
| par ressource de communication
supplémentaire |
72 octets |
| par message supplémentaire dans le
tampon de diagnostic |
20
octets |
Tableau 1: Besoin supplémentaire dans la mémoire de travail du
code
De manière analogue, cela vaut pour le besoin en mémoire pour
les données dans la mémoire de travail. Ici s'ajoutent aussi les
données système supplémentaires, les données locales et les blocs
de données générées par SFC.
Mots clef:
Mémoire image des entrées, mémoire image des sorties, PAE, PAA
|