Page 1 sur 2

Conversion MF en MW pour incrémentation compteur

Posté : 13 juin 2017, 09:19
par AugusteV
Bonjour tout le monde,

Nous avons un IHM Magelis (HMIGTO2310) et un automate TM221M16R,
Notre IHM est relié sur le port SL2 (série),
protocole : Modbus
Débit en bauds : 19200
Parité : Paire
Bits de données : 8
Bits d'arrêt : 1
Support physique : RS-485
Equipement : Aucun
Mode de transmission : RTU
Adressage : Esclave

Nous inscrivons dans la page "Nombre d'intercalaires" le nombre souhaité, pour mon exemple je vais prendre 25 intercalaires.
Mon bouton est configuré pour envoyer l'information "25" dans la variable "%MF330", je la reçois correctement.
Le problème n'est pas là, c'est que j'ai besoin de cette variable pour comparer cette valeur à la valeur de mon compteur et donc le réinitialiser une fois que la variable "%MF330" = "%C0.V".

Mais nous ne pouvons inscrire des MF dans un bloc compare, je passe donc pas un bloc opérate qui grâce à la fonction "%MF330 = INT_TO_REAL (%MW330)". Je dois donc avoir mon nombre "25" dans ma variable %MF330, mais non. Elle se réinitialise directement à 0 et de même dans l'IHM.

Pouvez-vous m'aider pour que je configure ma variable "MW330" avec la valeur de "MF330".

PS: Dans la photo j'ai mit 300 et non 330 car il ce réinitialise à 0 sinon. en PJ vous avez mon bloc compteur et dans le rung 0 ma fonction INT_TO_REAL.

Merci d'avance pour votre aide.

AugusteV

Re: Conversion MF en MW pour incrémentation compteur

Posté : 13 juin 2017, 09:59
par chgui
Salut,

Bien, il faut peut être tout simplement mettre un INT dans le HMI à la place d'un REAL.
Et pour passer d'un REAL à un INT l'opération est REAL_TO_INT (Tu veux bien passer d'un REAL à un INT).
De plus je pense au niveau lecture, il faudrait mieux faire l'opération sur des adresses différentes, genre "%MW300:=REAL_TO_INT(%MF302)"

Re: Conversion MF en MW pour incrémentation compteur

Posté : 13 juin 2017, 11:29
par AugusteV
J'ai fait les changements demander,

Mais quand je fais le bloc REAL_TO_INT, ma valeur d'IHM se réinitialise à 0.

Voici deux écrans en PJ, le premier sans le bloc REAL_TO_INT et je reçois bien les 52 intercalaires.
Et dès que je mets le bloc REAL_TO_INT ma variable se réinitialise à 0 et pas moyen de la changer depuis l'IHM.

Pouvez-vous me dire comment je fais pour convertir ma variable %MW330 envoyer depuis l'IHM en %MF330 que j'utilise dans un bloc opération pour faire des calculs.

Merci d'avance pour votre aide,

Cordialement,

AugusteV

Re: Conversion MF en MW pour incrémentation compteur

Posté : 13 juin 2017, 11:50
par JC87
Bonjour,

C'est normal que ça ne marche pas ! %MF300 c'est %MW300 et %MW301, une valeur réelle c'est 32 bits... donc comme il y a chevauchement ça déconne, il faut récupérer par exemple %MW300 depuis l'IHM et le convertir dans le %MF302 pour faire des calculs. Tout ça est expliqué ici : http://download.schneider-electric.com/ ... 0000001475 et ça il faut le lire AVANT de se lancer comme un bourrin dans la programmation :P

JC

Re: Conversion MF en MW pour incrémentation compteur

Posté : 13 juin 2017, 12:03
par chgui
Re,
c'est un peu confus ton histoire, dans ton HMI tu as bien %MF300???
Toi ce que tu veux c'est bien un INT pour pouvoir le comparer avec ton %C0.V?

Donc si cela est bon, comme j'ai dit dans mon premier message,
Soit dans ton HMI tu mets direct un INT comme ca pas de conversion,
Soit tu ne fait pas ta conversion sur la même variable donc par exemple dans ton HMI tu as %MF300 que tu converti vers %MW302 en l'écrivant comme suit %MW302:=REAL_TO_INT(%MF300)
Ou alors j'ai pas compris!!! LOL!!!!

Re: Conversion MF en MW pour incrémentation compteur

Posté : 13 juin 2017, 15:22
par AugusteV
Re-Bonjour,

Je m'explique mieux, mon IHM m'envoie sur mon mot %MW330 la valeur 10 que j'ai saisie dans l'écran de contrôle de l'IHM.
Je veux que mon mot %MF330 soit de la même valeur que %MW330.

En PJ voici mon mot %MW330 avec la valeur 10 et mon mot %MF330 avec une mauvaise valeur.

Re: Conversion MF en MW pour incrémentation compteur

Posté : 13 juin 2017, 15:34
par JC87
Ce n'est pas possible ! tu ne lis pas ce qu'on te dit, %MF330 et %MW330 c'est la même chose. Le %MW330 c'est les deux premiers octets du %MF330 donc forcément avec ta conversion tu écrase ton réel pas lui même. Il faut utiliser un autre mot flottant pour éviter ce chevauchement, %MF302 := INT_TO_REAL(%MW330) par exemple.

JC

Re: Conversion MF en MW pour incrémentation compteur

Posté : 13 juin 2017, 16:37
par AugusteV
Excusez moi, je lit vos messages mais j'avais mal compris.

Encore merci pour l'avancement.
Ce que vous m'avez dit de faire fonctionne, mais j'ai une autre petite question.
Je veux que ma valeur constante de mon compteur donc la valeur %C0.V soit dans le mot %MF220.

Comment dois-je mis prendre ?

Merci d'avance pour votre aide.

Cordialement,
AugusteV

Re: Conversion MF en MW pour incrémentation compteur

Posté : 13 juin 2017, 16:59
par chgui
Ben il faut copier %CO.V dans un INT puis le INT dans un REAL, mais je comprend vraiment pas le principe?
L'intérêt de passer à chaque fois par un REAL, Tu n'auras jamais rien en décimal!!!

Re: Conversion MF en MW pour incrémentation compteur

Posté : 13 juin 2017, 17:19
par AugusteV
Si je comprend bien je dois faire ceci :