Page 1 sur 1
comparaison entier signé m221
Posté : 03 août 2026, 19:06
par AMINE
Bonjour a tous
Je rencontre un comportement étrange sur un M221 avec EcoStruxure Machine Basic.
J'ai une variable %MW0 . En ligne, la valeur est bien -6 .
Cependant, lorsque j'effectue une simple comparaison avec 0 :
le résultat est toujours TRUE, même lorsque %MW0 = -6.
le problème est identique sur plusieurs versions de EcoStruxure Machine Basic..
Quelqu'un a-t-il déjà rencontré ce comportement ou sait-il s'il existe un paramètre particulier ou une limitation concernant les comparaisons d'entiers signés sur M221 ?
Merci d'avance pour votre aide.
Re: comparaison entier signé m221
Posté : 04 août 2026, 00:25
par itasoft
%M0 doit déja être utilisé plus loin dans le prog
Re: comparaison entier signé m221
Posté : 04 août 2026, 15:39
par AMINE
itasoft a écrit : ↑04 août 2026, 00:25
%M0 doit déja être utilisé plus loin dans le prog
non le programme contient que seulement ce réseau, j'ai eu ce problème sur un grand programme , j'ai fait un test avec programme vide pour éviter toute sorte de chevauchement
Re: comparaison entier signé m221
Posté : 04 août 2026, 16:03
par itasoft
Bizarre, bizarre , c’est avec l’automate ou en simulation ?
Re: comparaison entier signé m221
Posté : 04 août 2026, 23:20
par Bruce33
Bonjour,
Je confirme le bug avec le simulateur de Machine Expert Basic V1.4 (et qui ne se produit pas avec la simulateur de Machine Expert Basic V1.3).
Je n'ai pas essayé avec un automate M221 doté du firmware 1.14.1... L'avez-vous constaté avec un automate ?
On dirait que la comparaison est réalisée sur 32 bits mais que le bit de signe du mot %MW n'est pas reporté, du coup le mot %MW est traité comme un UINT. Mais en utilisant la conversion DWORD ça se passe bien donc en écrivant "DWORD(%MW0) >= 0" le résultat est correct.
Il faut quand même tester sur un automate et signaler le bug à Schneider Electric.
Re: comparaison entier signé m221
Posté : 04 août 2026, 23:39
par itasoft
bien vu Bruce, j'espere que ça le fait pas sur l'automate
Re: comparaison entier signé m221
Posté : 05 août 2026, 11:31
par AMINE
Bruce33 a écrit : ↑04 août 2026, 23:20
Bonjour,
Je confirme le bug avec le simulateur de Machine Expert Basic V1.4 (et qui ne se produit pas avec la simulateur de Machine Expert Basic V1.3).
Je n'ai pas essayé avec un automate M221 doté du firmware 1.14.1... L'avez-vous constaté avec un automate ?
On dirait que la comparaison est réalisée sur 32 bits mais que le bit de signe du mot %MW n'est pas reporté, du coup le mot %MW est traité comme un UINT. Mais en utilisant la conversion DWORD ça se passe bien donc en écrivant "DWORD(%MW0) >= 0" le résultat est correct.
Il faut quand même tester sur un automate et signaler le bug à Schneider Electric.
exactement , ca ne se produit pas sur la version 1.3 , j'aurai prochainement un PLC m221 , des que je ferai le teste je vous donnerai mon retour
merci beaucoup pour votre aide
Re: comparaison entier signé m221
Posté : 10 août 2026, 09:20
par alexisLeCodeurLent
Le mieux avec merdique expert gratuit c'est de faire les tests avec l'automate physique(si tu l'as)... j'ai déjà eu des trucs du même acabit par le passé, à me triturer les méninges dans tous les sens.
Et quand tu charges dans la vrai CPU, plus aucun problème.
Re: comparaison entier signé m221
Posté : 28 août 2026, 21:19
par Bruce33
J'ai mis à jour un M221 avec le firmware 1.14.1 et bien heureusement le bug ne se produit pas dans l'automate.
C'est uniquement un bug du simulateur.