Conversion MF en MW pour incrémentation compteur
Conversion MF en MW pour incrémentation compteur
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
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
- chgui
- 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
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)"
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
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
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
- JC87
- 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
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
JC
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
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..."
- chgui
- 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
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!!!!
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
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.
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.
- JC87
- 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
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
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..."
Re: Conversion MF en MW pour incrémentation compteur
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
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
- chgui
- 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
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!!!
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
Si je comprend bien je dois faire ceci :
