Dobrý den,
v registrech X v oblasti remanentní paměti mám definovanou hodnotu typu real. Když k této proměnné přičítám nějakou hodnotu, tak vše fungovalo, dokud jsem nedosáhl hodnoty 168083. Pokud jsem začal od 0 tak mi ve výpisu postupně "mizí" des. místo. a pak se hodnota přestane zvyšovat.

Na obrázku je vidět verze FW. Co může být příčinou, vždyť číslo real může nabývat daleko větších hodnot. Hodnotu přenáším do SCADA, kde mám také tu samou hodnotu - zobrazí se mi 168083.0.
Děkuji za odpověď
Jan Kamrad
Odpovědi 3
Dobrý den,
zkuste aktualizovat firmware na poslední verzi. Pokud se to tím nespraví, tak budeme příčinu hledat, protože stejnou situaci nasimulujeme v takovém případě i u nás.
Dobrý den, to co popisuje vypadá jako klasický problém přesnosti čísel s plovoucí desetinou čárkou. Čísla s plovoucí čárkou jsou vyjádřena exponentem a mantisou, takže jsou schopná vyjádřit velký rozsah čísel, ale s omezeným počtem platných číslic. U typu REAL se uvádí počet platných cifer 6-7, u typu LREAL je jich pak 15-16.
U hodnoty 168083 je nejbližší vyšší vyjádřitelné číslo na typu REAL 168083.015625. Pokud je přičítaný přírůstek menší než polovina tohoto kroku, dojde díky zaokrouhlovací chybě k jeho ztrátě a číslo zůstane beze změny.
Dobrý den, děkuji moc za odpověď. A taky se omlouvám mělo mě to napadnout, že 4 bytový real se takto chová.
Přeji hezký den
Jan Kamrad
Tento dotaz je vyřešený.
