Step 7 Problem bei Berechnung von REAL Zahlen

Erema

Level-1
Beiträge
57
Reaktionspunkte
3
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

ich habe folgendes Problem:
Ich möchte 3 Zahlen zusammenzählen so da sie einen Wert ergeben und dann die drei zusammengezählten Zahlen mit 100.0 minus rechnen um zuschauen ob die 3 Zahlen zusammen nicht höher sind als 100.0. Jetzt passiert es ab und zu, dass obwohl ich nur Zahlen mit maximal 2 Kommastellen zusammenzähle an der 6 Kommastelle der Summe eine Zahl steht.
Hat dies schonmal jemand gehabt?

COde dazu sieht wie folge aus

L 0.0
T MD20

L 96.6
L 1.2
+R
T MD20

L MD20
L 1.2
T MD20


L MD20
L 100.0
-R
T #Vergleich

[Es passiert bei einigen Zahlenkombinationen auch bei der im Beispiel angegebenen,dass im MD 20 nicht 100.00000 drinnen steht sondern 100.000045.
Wie kann dies passieren. Hat dieses Problem schon mal jemand?
Ich verwende eine CPU 314 2 PN/DP mit Simatic Manager.

Danke

Lg

Markus
 

Anhänge

  • Step7_REAL_Rundungsfehler.png
    Step7_REAL_Rundungsfehler.png
    34,1 KB · Aufrufe: 54
Zuletzt bearbeitet:
Hier ist eine interaktive Seite wo man sehr schon sehen kann wie der Real wirklich gebaut ist und wie die Genauigkeit bzw. die Ungenauigkeit verhält.
http://www.h-schmidt.net/FloatConverter/IEEE754de.html

paar Beispiele für den Real-Aufbau
WertDargestellt in IE754-Realbetrachtet in double precision
96.61.509374976158142 * 2^696.5999985741211
1.21.2000000476837158 * 2^01.2000000476837158
0.1 1.600000023841858 * 2^-40.10000000149011612

Wenn du dir den HEX-Wert deines MD20 in der Variablentabelle anschaust und den in der Seite einträgst dann sieht du
recht schnell wo der Unterschied liegt.
 
Zuletzt bearbeitet:
Zurück
Oben