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.
comparaison entier signé m221
- itasoft
- Mi homme - Mi automate

- Messages : 7843
- Enregistré le : 20 oct. 2015, 10:15
- Localisation : Lyon
- Contact :
Re: comparaison entier signé m221
%M0 doit déja être utilisé plus loin dans le prog
Automaticien privé (de tout)
itasoft@free.fr
itasoft@free.fr
- itasoft
- Mi homme - Mi automate

- Messages : 7843
- Enregistré le : 20 oct. 2015, 10:15
- Localisation : Lyon
- Contact :
Re: comparaison entier signé m221
Bizarre, bizarre , c’est avec l’automate ou en simulation ?
Automaticien privé (de tout)
itasoft@free.fr
itasoft@free.fr
- Bruce33
- Dieu du process

- Messages : 963
- Enregistré le : 28 oct. 2015, 06:54
- Localisation : Pas-de-Calais
Re: comparaison entier signé m221
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.
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.
- itasoft
- Mi homme - Mi automate

- Messages : 7843
- Enregistré le : 20 oct. 2015, 10:15
- Localisation : Lyon
- Contact :
Re: comparaison entier signé m221
bien vu Bruce, j'espere que ça le fait pas sur l'automate
Automaticien privé (de tout)
itasoft@free.fr
itasoft@free.fr
