Conversion MF en MW pour incrémentation compteur

Forum traitant des automates industriels de marque Schneider - Telemecanique
AugusteV
Code sa première boucle
Code sa première boucle
Messages : 14
Enregistré le : 22 mai 2017, 14:15

Conversion MF en MW pour incrémentation compteur

Message 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
Fichiers joints
aideforum2.png
Avatar du membre
chgui
Générateur de blocs fonctions
Générateur de blocs fonctions
Messages : 126
Enregistré le : 20 oct. 2015, 08:05
Localisation : Amiens

Re: Conversion MF en MW pour incrémentation compteur

Message 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)"
AugusteV
Code sa première boucle
Code sa première boucle
Messages : 14
Enregistré le : 22 mai 2017, 14:15

Re: Conversion MF en MW pour incrémentation compteur

Message 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
Fichiers joints
aide4.png
aide3.png
Avatar du membre
JC87
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 2239
Enregistré le : 20 oct. 2015, 13:00
Localisation : Nouvelle Aquitaine

Re: Conversion MF en MW pour incrémentation compteur

Message 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
"On veut faire du zéro défaut mais on a zéro bonhomme et zéro budget, et bien à la fin on a zéro résultat..."
Avatar du membre
chgui
Générateur de blocs fonctions
Générateur de blocs fonctions
Messages : 126
Enregistré le : 20 oct. 2015, 08:05
Localisation : Amiens

Re: Conversion MF en MW pour incrémentation compteur

Message 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!!!!
AugusteV
Code sa première boucle
Code sa première boucle
Messages : 14
Enregistré le : 22 mai 2017, 14:15

Re: Conversion MF en MW pour incrémentation compteur

Message 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.
Fichiers joints
aide5.png
Avatar du membre
JC87
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 2239
Enregistré le : 20 oct. 2015, 13:00
Localisation : Nouvelle Aquitaine

Re: Conversion MF en MW pour incrémentation compteur

Message 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
"On veut faire du zéro défaut mais on a zéro bonhomme et zéro budget, et bien à la fin on a zéro résultat..."
AugusteV
Code sa première boucle
Code sa première boucle
Messages : 14
Enregistré le : 22 mai 2017, 14:15

Re: Conversion MF en MW pour incrémentation compteur

Message 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
Avatar du membre
chgui
Générateur de blocs fonctions
Générateur de blocs fonctions
Messages : 126
Enregistré le : 20 oct. 2015, 08:05
Localisation : Amiens

Re: Conversion MF en MW pour incrémentation compteur

Message 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!!!
AugusteV
Code sa première boucle
Code sa première boucle
Messages : 14
Enregistré le : 22 mai 2017, 14:15

Re: Conversion MF en MW pour incrémentation compteur

Message par AugusteV »

Si je comprend bien je dois faire ceci :
Fichiers joints
aide6.png
Répondre