Variable Local FB

Forum traitant des automates industriels de marque Siemens.
Répondre
Yacub
Générateur de blocs fonctions
Générateur de blocs fonctions
Messages : 102
Enregistré le : 07 févr. 2016, 18:27

Variable Local FB

Message par Yacub »

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 ) .
Fichiers joints
Untitled.jpg
Yacub
Générateur de blocs fonctions
Générateur de blocs fonctions
Messages : 102
Enregistré le : 07 févr. 2016, 18:27

Re: Variable Local FB

Message par Yacub »

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 )
Fichiers joints
Untitled2.png
Avatar du membre
Cyril93
Maître du binaire
Maître du binaire
Messages : 484
Enregistré le : 29 oct. 2015, 14:22
Localisation : IDF

Re: Variable Local FB

Message par Cyril93 »

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
Lorent2
Maître du binaire
Maître du binaire
Messages : 487
Enregistré le : 27 déc. 2015, 08:52

Re: Variable Local FB

Message par Lorent2 »

Tes bits viennent du mot Ready.

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 ...
Yacub
Générateur de blocs fonctions
Générateur de blocs fonctions
Messages : 102
Enregistré le : 07 févr. 2016, 18:27

Re: Variable Local FB

Message par Yacub »

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 ?
Avatar du membre
Cyril93
Maître du binaire
Maître du binaire
Messages : 484
Enregistré le : 29 oct. 2015, 14:22
Localisation : IDF

Re: Variable Local FB

Message par Cyril93 »

?????

ActivationW il commence à l'octet 2 de la zone TEMP
c'est ready qui commence à l'octet 4
Yacub
Générateur de blocs fonctions
Générateur de blocs fonctions
Messages : 102
Enregistré le : 07 févr. 2016, 18:27

Re: Variable Local FB

Message par Yacub »

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 ???
Fichiers joints
Untitled.jpg
Yacub
Générateur de blocs fonctions
Générateur de blocs fonctions
Messages : 102
Enregistré le : 07 févr. 2016, 18:27

Re: Variable Local FB

Message par Yacub »

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 !
Yacub
Générateur de blocs fonctions
Générateur de blocs fonctions
Messages : 102
Enregistré le : 07 févr. 2016, 18:27

Re: Variable Local FB

Message par Yacub »

Alors apres avoir remonté les conditions sur cette variable Word j'ai trouvé cela :
Untitled.jpg
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
Répondre