Page 1 sur 1

Variable locale Temp et stat

Posté : 04 avr. 2020, 16:36
par Wow400
Bonjour à tous,
Je souhaiterais validé ce que j'ai compris sur les variables locales.
Je commence.
Dans un bloc il y a des paramètres:
paramètres d'entrée
paramètres de sorties
paramètres entrées et sorties
et variable locale sous 2 formes Temp et Stat.
Première question
La variable Temp est une variable interne au bloc, enregistré dans la pile donc sans enregistrement en dur donc si on sort du bloc on risque de perdre la valeur de la variable. ex: la valeur courante d'un compteur si elle est en Temp sera perdu si je coupe l'alimentation de l'automate. Vrai ou faux ?
Deuxième question
A l'inverse de la variable temp, la variable stat est enregistré en dur dans un DB. Si je suis dans un bloc FB alors ce sera dans un DB d'instance relié au FB, à ce moment là dans le pire des cas, coupure d'alimentation la valeur courante de mon compteur n'est pas perdue.
Vrai ou faux ?
Dernière question
De ce que j'ai vu la variable Stat n'apparait que dans un FB de part son enregistrement obligatoire dans un DB.Il n'y a pas de variable Stat dans un FC.
Mais est il possible (je dois dire que je comprends pas grand chose au DB global :cry: ) de créer une variable stat dans un DB global et de l'utilisé dans un FC ?
Merci pour vos réponses :D

Re: Variable locale Temp et stat

Posté : 04 avr. 2020, 18:50
par djé
Première question
La variable Temp est une variable interne au bloc, enregistré dans la pile donc sans enregistrement en dur donc si on sort du bloc on risque de perdre la valeur de la variable. ex: la valeur courante d'un compteur si elle est en Temp sera perdu si je coupe l'alimentation de l'automate. Vrai ou faux ?
Vrai, la variable locale n'est valable QUE le temps d’exécution du bloc, une fois le bloc quitté, elle n'est plus valable.
De même elle n'est plus valable au retour de l'appel du bloc tant qu'elle n'a pas été ré-écrite au moins une fois. (Dans ton exemple, le compteur est perdu même au retour dans le bloc - il faut abslument partir de ce principe, même si dès fois on a l’impression que la variable locale semble avoir gardé sa valeur)
Deuxième question
A l'inverse de la variable temp, la variable stat est enregistré en dur dans un DB. Si je suis dans un bloc FB alors ce sera dans un DB d'instance relié au FB, à ce moment là dans le pire des cas, coupure d'alimentation la valeur courante de mon compteur n'est pas perdue.
Vrai ou faux ?
Vrai, la variable est sauvegardée dans la DB en cas de coupure.
Dernière question
De ce que j'ai vu la variable Stat n'apparait que dans un FB de part son enregistrement obligatoire dans un DB.Il n'y a pas de variable Stat dans un FC.
Mais est il possible (je dois dire que je comprends pas grand chose au DB global :cry: ) de créer une variable stat dans un DB global et de l'utilisé dans un FC ?
Oui, un DB global à la différence d'un DB d'instance qui représente la mémoire d'un FB n'est pas lié à un bloc en particulier.
Les donnée sont utilisables partout dans le code.

Re: Variable locale Temp et stat

Posté : 04 avr. 2020, 21:37
par Wow400
Merci pour toutes ces réponses je suis donc sur la bonne voie. :D
je vais créer d' autres sujets pour mes autres questions.
Merci encore.