Rundungsfehler bei Realzahlen

GFI

Level-1
Beiträge
91
Reaktionspunkte
9
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Forum Mitglieder,

wir haben ein Problem bei der Addition von drei Real - Zahlen, als SPS wird eine VIPA Steuerung eingesetzt, im S7 - Hardware Manager als S7-318-2 projektiert.

Bei der Addition von drei Realzahlen muss das Ergebnis immer 100,000 Betragen, (3 Produkte -> 100%), nun wird bei einigen Eingaben, als Ergebnis 99,99999000 angezeigt, obwohl die eingegebenen Werte 100 ergeben.
(z.Bsp. 90,00 + 9,90 + 0,10 = 100,00 SPS - Ergebnis 99,9999000, ändert man den letzten Wert auf 0,100001 - so bekommt man dann von der SPS
100,0000 berechnet).

Bei den meisten Rezepteingaben wird die Berechung richtig ausgeführt

Ist dieses Problem jemand bekannt, was kann das sein?

Gruß GFI
 
Soweit ich weiß liegt es an der VIPA SPS. Bei einer Siemens dürfte das Problem nicht bestehen. (Kann natürlich sein das dein Problem ein anderes ist, was auch Siemens hat)
Also ich weiß (Mein Vater hat mal bei Vipa gearbeitet) das die VIPA bei irgendwelchen Berechnungen mit Real-Zahlen fehler macht. Kann aber nochmal nachfragen bei welcher CPU genau und bei welchen Berechnungen...


Gruß
Jordy
 
Zuletzt bearbeitet:
Das liegt definitiv nicht an der Vipa-CPU sondern ist ein grundsätzliches Problem des Zahlen-Formates Real.

Es ist z.B. nicht möglich die Zahl 0,1 exakt als Real darzustellen. Ursache:
Die gesamte Mantisse ist aus Potenzen der Zahl 2 zusammengesetzt:
2^0 = 1
2^-1 = 0,5
2^-2 = 0,25
usw.

Aus diesen Bruchstücken lässt sich z.B. die Zahl 0,1 nicht exakt zusammenfügen. Vergleichbare Probleme werden im Windows-Bereich (speziell bei Excel) sehr gerne durch versteckte Rundungsroutinen überdeckt.
Deise Rundungsprobleme (dezimal <-> binär)sind auch ein entscheidender Grund dafür, dass bei Banken bis heute sehr gerne mit BCD-Zahlen gerechnet wird.
 
Zurück
Oben