JohanKa SW ostatní 2. 9. 2026 15:49 2. 9. 2026 14:39

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

Luboš Urban 31. 8. 2026 11:36

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.

M.B. 2. 9. 2026 12:43

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.

JohanKa 2. 9. 2026 14:39

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ý.