Variable Local FB
Variable Local FB
Bonjour,
J'ai une question sur les variables Local d'un FB.
De ce que j'ai pu comprendre ces variables sont en realiter les variables TEMP du FB.
Dans mon nouveau programme que je tente de scruter, pour comprendre les conditions de mise en marche de deux compresseur il y a une condition, qui est que si L5.0 vaut 1 je demarre mon compresseur 1 , si L5.1 vaut 1 je demarre mon compresseur 2 .
Le probleme c'est que je n'arrive pas a faire le lien entre cette variable Local et mes TEMP ( je pense que que cela correspond a la variable "AuxInt" de type integer mais je ne saurais etre sur de mon coup ) .
J'ai une question sur les variables Local d'un FB.
De ce que j'ai pu comprendre ces variables sont en realiter les variables TEMP du FB.
Dans mon nouveau programme que je tente de scruter, pour comprendre les conditions de mise en marche de deux compresseur il y a une condition, qui est que si L5.0 vaut 1 je demarre mon compresseur 1 , si L5.1 vaut 1 je demarre mon compresseur 2 .
Le probleme c'est que je n'arrive pas a faire le lien entre cette variable Local et mes TEMP ( je pense que que cela correspond a la variable "AuxInt" de type integer mais je ne saurais etre sur de mon coup ) .
Re: Variable Local FB
Ce qui me fait dire que c'est la variable AuxInt c'est que sur un autre reseau, on écrit les variables local
L3.0 et L3.1 en fonction de deux entrées appelés C1_Auto_Ready et C2_Auto_Ready et que dans les variables TEMP il y une variable appelé "ready" de type word .
Ce que je ne comprends pas c'est que cette variable démarre a l'adresse 4 alors que le programme ecrit dans la variable Local 3 ... donc si je prends en compte ce "decalage" de un byte je retombe sur mes pieds avec la variable AuxInt Integer adresse 6 , alors que dans le programme pour la mise a un de mes compresseurs j'ecris les variable Local L5.0 et L5.1 ( par contre je ne connais pas la raison que ce decalage )
L3.0 et L3.1 en fonction de deux entrées appelés C1_Auto_Ready et C2_Auto_Ready et que dans les variables TEMP il y une variable appelé "ready" de type word .
Ce que je ne comprends pas c'est que cette variable démarre a l'adresse 4 alors que le programme ecrit dans la variable Local 3 ... donc si je prends en compte ce "decalage" de un byte je retombe sur mes pieds avec la variable AuxInt Integer adresse 6 , alors que dans le programme pour la mise a un de mes compresseurs j'ecris les variable Local L5.0 et L5.1 ( par contre je ne connais pas la raison que ce decalage )
Re: Variable Local FB
Salut
L5.0 avec L pour identifier la pile local. Donc c'est bien la zone TEMP d'un FB
Chez siemens le poids des octets est inversé dans un word. Pour ecrire le bit le plus a droite du WORD ready il faut donc ecrire L5.0 et non pas L4.0
L3.0 et L3.1 sont donc les deux premiers bit de activationW en partant de la droite
L5.0 avec L pour identifier la pile local. Donc c'est bien la zone TEMP d'un FB
Chez siemens le poids des octets est inversé dans un word. Pour ecrire le bit le plus a droite du WORD ready il faut donc ecrire L5.0 et non pas L4.0
L3.0 et L3.1 sont donc les deux premiers bit de activationW en partant de la droite
Re: Variable Local FB
Tes bits viennent du mot Ready.
A voir maintenant, comment il est construit.
A voir maintenant, comment il est construit.
Si quelquefois tu te sens petit, inutile, démoralisé ou dépressif, n'oublies jamais que tu as été un jour le plus rapide et le meilleur spermatozoïde de ta bande ...
Re: Variable Local FB
Cyril,
tu as ecris L3.0 et L3.1 sont donc les deux premiers bit de activationW en partant de la droite . ce n'est pas plutot L5.0 et L5.1 les deux premiers bit de activationW sachant que ce Temp demarre a l'adresse 4 ?
tu as ecris L3.0 et L3.1 sont donc les deux premiers bit de activationW en partant de la droite . ce n'est pas plutot L5.0 et L5.1 les deux premiers bit de activationW sachant que ce Temp demarre a l'adresse 4 ?
Re: Variable Local FB
?????
ActivationW il commence à l'octet 2 de la zone TEMP
c'est ready qui commence à l'octet 4
ActivationW il commence à l'octet 2 de la zone TEMP
c'est ready qui commence à l'octet 4
Re: Variable Local FB
Cyril,
j'ai peut etre fait une erreur avec la copie d'ecran (je t'ai remis la copie d'ecran pour etre sur de parler de la meme chose) . Dans mon entete je vois :
operation word 0.0
ready word 2.0
ActivationW word 4.0
dans cette config 'ready' demarre a 4.0 et ActivationW a 2.0 ???
j'ai peut etre fait une erreur avec la copie d'ecran (je t'ai remis la copie d'ecran pour etre sur de parler de la meme chose) . Dans mon entete je vois :
operation word 0.0
ready word 2.0
ActivationW word 4.0
dans cette config 'ready' demarre a 4.0 et ActivationW a 2.0 ???
Re: Variable Local FB
Cyril,
Alors effectivement dans le premier impEcran le TEMP ActivationW commence a 2.0 , je me suis trompé de FB dans la panique .
au final le Temp correspond a mon dernier impEcran et donc a l'adresse 4.0 .
Super, je vois enfin pourquoi on avait du mal a se comprendre, je vais tenter de voir comment est ecris cette variable .
Merci pour le coup de main !
Alors effectivement dans le premier impEcran le TEMP ActivationW commence a 2.0 , je me suis trompé de FB dans la panique .
au final le Temp correspond a mon dernier impEcran et donc a l'adresse 4.0 .
Super, je vois enfin pourquoi on avait du mal a se comprendre, je vais tenter de voir comment est ecris cette variable .
Merci pour le coup de main !
Re: Variable Local FB
Alors apres avoir remonté les conditions sur cette variable Word j'ai trouvé cela :
Comme vous pouvez le voir cette variable deviens "Activat_W" et le seul endroit dans le programme ou elle est ecris c'est dans ce FC95 reseau 5 .
elle est initialisé a 0 un peu plus haut dans le programme puis ensuite on vient faire un OW ( OR WORD) avec une variable appelé "Mask"
et cette variable "mask" est ecrit dans un bloc (FC79) qui lui va regarder la valeur de la variable "Actuactor" et affecter les bit de la valariable "Mask" en fonction de " Actuator" .
Par exemple :
Actuator = 0
Mask = 00000000 00000000
Actuator = 1
Mask = 00000000 00000001
Actuator = 2
Mask = 00000000 00000011
(C'est pour cela qu'ensuite le programmeur a utilisé les instructions L5.0 et L5.1 pour conditionner la mise en marche de mes compresseurs .)
Dans mon systeme je ne possède que deux compresseurs donc ce seront les seules valeurs (0,1 et 2) prises par Actuator et Mask , par contre j'aimerai savoir qui ecris "Actuator" et j'ai ce script mais je ne comprends pas a quoi cela correspond :
L DBW [AR1, P#0.0]
T #Actuator
Comme vous pouvez le voir cette variable deviens "Activat_W" et le seul endroit dans le programme ou elle est ecris c'est dans ce FC95 reseau 5 .
elle est initialisé a 0 un peu plus haut dans le programme puis ensuite on vient faire un OW ( OR WORD) avec une variable appelé "Mask"
et cette variable "mask" est ecrit dans un bloc (FC79) qui lui va regarder la valeur de la variable "Actuactor" et affecter les bit de la valariable "Mask" en fonction de " Actuator" .
Par exemple :
Actuator = 0
Mask = 00000000 00000000
Actuator = 1
Mask = 00000000 00000001
Actuator = 2
Mask = 00000000 00000011
(C'est pour cela qu'ensuite le programmeur a utilisé les instructions L5.0 et L5.1 pour conditionner la mise en marche de mes compresseurs .)
Dans mon systeme je ne possède que deux compresseurs donc ce seront les seules valeurs (0,1 et 2) prises par Actuator et Mask , par contre j'aimerai savoir qui ecris "Actuator" et j'ai ce script mais je ne comprends pas a quoi cela correspond :
L DBW [AR1, P#0.0]
T #Actuator

