QUESTION:
Comment les variables sont-elles déposées dans les données temporaires locales?
REPONSE:
L’adressage du L-Stack commence toujours à l’adresse "0"
Pour chaque module autant d’octets sont réservés dans le L-Stack qu’il y a de données statiques et locales.
Apres exécution du module, il y a libération de cette zone.
Le pointeur indique toujours le premier octet du module en cours de traitement.
Exemple:
|
Profondeur d’appel |
L-Stack en octets |
Pointeur |
|
Appel OB1 (avec 20 données statiques et 10 données locales) |
30 |
0 |
|
Appel FC1 (avec 30 données locales)
30 octets (OB1) +30 octets (FC1) |
60 |
30 |
|
|
Appel FC10 (avec 20 données locales)
60 octets (OB1 + FC1) +20 octets FC10 |
80 |
60 |
|
|
Appel FC11 (avec 20 données locales)
60 octets (OB1 + FC1) +20 octets FC11 |
80 |
60 |
|
|
Appel FC12 (avec 30 données locales)
60 octets (OB1 + FC1) +30 octets FC12 |
90 |
60 |
|
Appel FC2 (avec 50 données locales)
30 octets (OB1) +50 octets (FC2) |
80 |
30 |
|
|
Appel FC20 (avec 10 données locales)
80 octets (OB1 + FC2) +10 octets FC20 |
90 |
80 |
|
|
Appel FC21 (avec 10 données locales)
80 octets (OB1 + FC2) +10 octets FC21 |
90 |
80 |
|
|
Appel FC22 (avec 20 données locales)
80 octets (OB1 + FC2) +20 octets FC22 |
100 |
80 |
|
|
Appel FC221 (avec 10 données locales)
100 octets (OB1 + FC2 + FC22) + 10 octets FC221 |
110 |
80 |
Le L-Stack est utilisé par la CPU pour des traitements internes. L’éditeur AWL utilise également les données locales lors du passage des paramètres à l’appel d’un module par exemple.
Pour cette raison il ne faut pas modifier le contenu du L-Stack !
Indication:
Par profondeur d’appel, 256 octets sont prévus pour chaque classe de priorité.
- fixe sur S7-300
- en standard sur S7-400, mais paramétrable dans HW configuration sous "Caractéristiques CPU"
|