Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 16

Thema: REAL Zahlen addieren

  1. #1
    Registriert seit
    07.07.2011
    Beiträge
    259
    Danke
    4
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Moin,

    hoffe ich poste jetzt nich zweimal, den Eintrag von heute morgen finde ich nicht (scheint nicht gepostet worden zu sein).

    Ich habe eine Pumpe bei der ich mittels IDM das gepumpte Volumen berechnen möchte.
    Wenn die Pumpe an ist, wird ein Impulssignal an die SPS gesendet.
    FB60.pdfFB200.pdf

    Wenn in der Multiinstanz (FB200) die Addition EN ist, soll jedesmal ein Volumen von 0,025m^3 zum Gesamtvolumen addiert werden (die 0,025m^3 kommen vom IDM Hersteller in Zusammenhang mit unserem Rohrdurchmesser).
    Letzte Woche war der IDM kurz ohne Spannung, es scheint das seit diesem Zeitpunkt die Addition nicht mehr funktioniet.
    Wenn ich den zu addieren Wert von 0,025 (REAL) auf 0,035 ändere wird das Gesamtvolumen (REAL) korrekt berechnet.
    Warum funktioniet das aber nicht mehr mit 0,025?
    Der IDM ist in Ordnung!

    Hatte jemand schon einmal ein ähnliches Problem?
    Zitieren Zitieren REAL Zahlen addieren  

  2. #2
    Ninja2602 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    07.07.2011
    Beiträge
    259
    Danke
    4
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Ich habe das ganze gerade simuliert und dabei festgestellt das mein Gesamtvolumen sich bei z.B. 5.255555+e003 addiert.
    Mein wirklicher Wert liegt aber bei 5.255555+e005 und hier wird sichtbar nichts addiert.
    Kann ich bei REAL Zahlen nur bis zu einem bestimmten Wert addieren???

  3. #3
    Registriert seit
    29.03.2004
    Beiträge
    5.731
    Danke
    143
    Erhielt 1.685 Danke für 1.225 Beiträge

    Standard

    Auf welchem Wert steht denn das Gesamtvolumen?
    Denn bei einer Gleitkommazahl hast du nur eine eingeschränkte Genauigkeit. D.h. wenn man zu einer sehr großen Zahl eine kleine addieren will, geht das in der Genauigkeit der Darstellungsart unter.
    Bei 32-Bit Gleitkomma hat man ca. 7 Stellen Genauigkeit:
    2,5e-2 * 1,0e7 = 2,5e5
    D.h. wenn dein Gesamtvolumen bei ca. 250.000 m³ steht, wird nicht mehr korrekt addiert.

  4. #4
    Ninja2602 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    07.07.2011
    Beiträge
    259
    Danke
    4
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Mein Gesamtvolumen liegt bei ca.525518,7m^3.
    An die Genauigkeit habe ich auch schon gedacht, aber müsste das dann nicht auch zutrefen sprich nicht mehr korekt addieren bei dem Wert 0,035?

  5. #5
    Registriert seit
    17.07.2009
    Ort
    Am Rande der Ostalb
    Beiträge
    5.476
    Danke
    1.138
    Erhielt 1.238 Danke für 971 Beiträge

    Standard

    Hier kannst du mal deine Zahlenwerte testen.
    Ich bin mir ziemlich sicher, dass du an der Auflösungsgrenze angekommen bist.
    http://zogg-jm.ch/IEEE_754_Umwandlun..._u_64_Bit.html

    Hier gibts Bausteine für 64Bit Realszahlen:
    http://support.automation.siemens.co...ew/de/56600677

    In der Oscat-Lib wirst du auch fündig:
    http://www.oscat.de

    Gruß
    Dieter

  6. #6
    Registriert seit
    29.03.2004
    Beiträge
    5.731
    Danke
    143
    Erhielt 1.685 Danke für 1.225 Beiträge

    Standard

    Ich habe jetzt gerade nochmal nachgeforscht wie man den Wert berechnen kann ab dem die Addition nicht mehr funktioniert.

    Das müsste ja dann sein, wenn das niederwertigste Bit in der Mantisse eine kleinere Wertigkeit hat als der Wert der addiert werden soll.
    Die Wertigkeit der Mantissenbits hängt vom Exponenten ab. Bei 32-Bit Gleitkomma sind es 23 Bit in der Mantisse.
    Das niederwertigste Bit in der Mantisse hat dann die Wertigkeit 1/2^-(m+1) = 1/2^24

    Der kleinste Wert (Abstand) sei wie hier im Beispiel e=0,025
    Gesucht ist dann der Exponent x

    2^x * 2^-(m+1) = e
    x = lb (e / 2^-(m+1))
    eingesetzt:
    x = lb (0,025 / 2^-24)

    für den Taschenrechner ohne Zweierlogarithmus:
    x = log (0,025 / 2^-24) / log (2)
    x = 18,67

    Ist der Exponent 19 dann ist die Wertigkeit größer als 0,025
    D.h. die Addition wird nur funktionieren bis 2^18 * 2,0 = 524288.0


    Wird hingegen 0,035 addiert ergibt sich:

    x = lb (0,035 / 2^-24)
    x = 19,16

    Ist der Exponent 20 dann ist die Wertigkeit größer als 0,035
    D.h. die Addition wird nur funktionieren bis 2^19 * 2,0 = 1048576.0


    Daher zählt dein Zähler bei 0,035 um das Doppelte weiter als mit 0,025. Ungenau wird es aber vorher schon.

  7. #7
    Registriert seit
    24.10.2007
    Ort
    Niederlande
    Beiträge
    673
    Danke
    22
    Erhielt 143 Danke für 135 Beiträge

    Standard

    Ist es nicht moglich mit liters zu rechnen in platz von mit M3 Mit liter kan mann ein DINT brauchen und dass Max ist 2^31 , Sie must 25 liter pro puls addieren , Aber in ihre FB ist Dass volume wie IO declariert und wenn sie est ausser die FB wie Real bearbeitte geht dass nich aber fur ein Visie kan man dass scale nach M3 .

    Joop

  8. #8
    Ninja2602 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    07.07.2011
    Beiträge
    259
    Danke
    4
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Danke für die Rechnung.
    Werde das Gesamtvolumen mal auf Null setzten, dann sollte es ja wieder funktionieren und auch genau rechnen.

  9. #9
    Ninja2602 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    07.07.2011
    Beiträge
    259
    Danke
    4
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Zitat Zitat von Thomas_v2.1 Beitrag anzeigen
    Ich habe jetzt gerade nochmal nachgeforscht wie man den Wert berechnen kann ab dem die Addition nicht mehr funktioniert.
    Magst Du verraten wo Du das gefunden hast? Habe auch geforscht und komme auch zu Erklärungen, aber von keiner kann ich eine Rechnung wie bei Dir ableiten!

    Danke!

  10. #10
    Registriert seit
    29.03.2004
    Beiträge
    5.731
    Danke
    143
    Erhielt 1.685 Danke für 1.225 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von Ninja2602 Beitrag anzeigen
    Magst Du verraten wo Du das gefunden hast? Habe auch geforscht und komme auch zu Erklärungen, aber von keiner kann ich eine Rechnung wie bei Dir ableiten!
    Hi,
    direkt habe ich die Berechnung so nirgends gefunden.
    Ich habe mir diese aus der Beschreibung des IEE 754 Formates abgeleitet, ich hoffe mal da hat sich kein Fehler eingeschlichen
    Ich habe es aber zumindest gerade mit Plcsim getestet, demnach wird genau ab meinen berechneten Werten nicht mehr addiert.

    In dem Wikipedia Artikel ist unten ein Link zu einem Java-Applet in dem man an den Bits rumspielen kann, bzw. sehen
    kann was sich für ein Bitmuster bei bestimmten Zahlen ergibt.

    Eine Gleitkommazahl setzt sich aus 1 Bit Vorzeichen, 8 Bit Exponent und 23 Bit Mantisse (m) zusammen.
    Sind in der Mantisse alle Bits gesetzt, so berechnet sich der Wert mit:
    1 + 1/2 + 1/4 + 1/8 + 1/16 + ...
    Der Gesamtwert ist dann der Wert der Mantisse mal 2 hoch den Exponent

    Die erste "1" ist implizit immer vorhanden, darum habe ich in meiner Berechnung für die Bitanzahl der Mantisse nicht 23 sondern 24 eingesetzt.

    Was ist dir denn unklar, dann kann ich versuchen zu erklären warum ich das so gerechnet habe.

Ähnliche Themen

  1. Probleme beim Zahlen Addieren
    Von sonic_229 im Forum CODESYS und IEC61131
    Antworten: 1
    Letzter Beitrag: 09.08.2011, 15:28
  2. Fehler beim addieren von Real-Werten
    Von Züttu im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 01.07.2011, 15:31
  3. Addieren Real
    Von Emilio im Forum Simatic
    Antworten: 8
    Letzter Beitrag: 21.12.2007, 13:37
  4. Mittelwertbildung aus REAL Zahlen
    Von Waelder im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 09.01.2006, 00:46
  5. OP-15 REAL Zahlen darstellen
    Von klauserl im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 03.10.2005, 18:04

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •