Je lis souvent des posts sur ce forum qui m'ont parfois bien aidé. Seulement aujourd'hui, j'ai un soucis sur une lecture de flottant double, des posts similaires ont déjà été postés et apparemment résolus, seulement pour moi cela ne fonctionne pas.
Voici le sujet:
Je suis sous Unity avec un M340 BMXP341000 et je lis en modbus série via le bloc Read_var sur un débitmètre KROHNE, son totalisateur.
Dans sa table de registre, il est mentionné flottant double (4 mots entiers).
J'ai fais cette programmation (trouvé auparavant dans des posts comme je l'ai stipulé) :
//
(*Conversion en 64 bits flottant*)
MOVE_BOOL_AREBOOL(0,table_ebools_FT2);
table_ebools_FT2:=COPY_ARINT_AREBOOL(Recept_total_deb_FT2, 0, 5, 0);
table_result_FT2:=COPY_AREBOOL_ARDINT(table_ebools_FT2, 10, 64, 0);
(*Calcul pour l'arrondi*)
retenue_FT2:=INT_TO_REAL(Recept_total_deb_FT2[0] and 16#03FF)/1024.0;
Totalisateur_FT2:=REAL_TO_UDINT((UDINT_TO_REAL(DINT_TO_UDINT(table_result_FT2[0]))+retenue_FT2)*1.024);
//
La valeur dans "Totalisateur_FT2" est ininterprétable (9 chiffres...
J'ai voulu tenter de découper deux parti en 32bits mais en vain...
Pour info, dans le "Recept_total_deb_FT2" j'obtiens les valeurs suivantes :
Recept_total_deb_FT2[0] = 22518
Recept_total_deb_FT2[1] = -19331
Recept_total_deb_FT2[2] = -7362
Recept_total_deb_FT2[3] = 16418
Avec ces infos, la variable totalisateur doit être à 9 m3.
Voila si quelqu'un ou Ita_soft à une idée. Grand merci !


