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

Ergebnis 1 bis 2 von 2

Thema: Gleitkommaberechnung ILC130 mit PCWORX

  1. #1
    Registriert seit
    16.11.2013
    Beiträge
    6
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo liebes SPS Forum,

    nun bin ich in PCWORX über etwas gestolpert, was ich nicht wirklich verstehe.
    Um es zu veranschaulichen habe ich hier mal ein Screenshot angehängt.

    Ich versuche gerade einen Zähler den ich nun schon mit verschiedenen Bausteinen (Building Automation Libary, Solar Libary) ausprobiert habe, zu realisieren (ILC130).
    Eingentlich eine ganz einfache Aufgabe:
    An xDigitalInput werden Impulse gezählt die in Verbindung mit dem Divisor von 500 an RMeterReadingTotal in Form eines Zählerstandes in 0,002 er Schritten gezählt werden.

    Nun habe ich aber das Problem, das sobald ein Divisor > 1 eingesetzt wird, der Fließkommawert verfälscht gezählt wird (z.B. statt in 0,002er Schritten nur in 0,00189...er Schritten).
    In meinem Beispiel wird nun statt 11535,180 die Zahl 11535,1796875 berechnet und dementsprechend wir der Zähler auch hochgezählt. Nach einiger Zeit habe ich eine große Abweichung im Zählerstand.

    Nur wenn ich als Divisor 1 angeben (iPulseConfig) und anschließend über mein PHP Script durch 500 Teile, komme ich auf eine genaue Zahl.
    Mit einem normalen DIV Baustein, habe ich das gleiche Phänomen.
    Läßt sich das in PCWORX nicht anders realisieren? Habe ich einen Denkfehler?
    CPU's an sich können ja eigentlich nicht mit Gleitkommazahlen rechnen und müssen diese auch erst umwandeln. Geht bei dieser Umwandlung etwas schief?
    Wir reden hier ja nur von 3 Stellen hinter dem Komma...

    LG
    Upuaut
    Angehängte Grafiken Angehängte Grafiken
    Geändert von Upuaut (28.03.2014 um 13:07 Uhr)
    Zitieren Zitieren Gleitkommaberechnung ILC130 mit PCWORX  

  2. #2
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.288
    Danke
    932
    Erhielt 3.320 Danke für 2.682 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Die Ungenauigkeit bei Gleitkommarechnung ist normal. Das Gleitkommaformat nach IEEE 754 (32 Bit, einfache Genauigkeit) kann erstens gar nicht alle Zahlen exakt darstellen (z.B. 0,1) und ist zweitens nur auf ca. 7 Dezimalstellen genau. (mehr Anzeigestellen suggerieren nur eine tatsächlich nicht vorhandene Genauigkeit) Drittens kann man nicht sehr kleine Zahlen zu sehr großen Zahlen addieren, z.B. 70.000,000 + 0,002 = 70.000,000 !

    Deshalb macht man Zähler grundsätzlich als Ganzzahl. Man kann ja später den Zählerstand in Gleitkommazahl umrechnen.

    siehe mal diesen IEEE 754 Umrechner

    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

Ähnliche Themen

  1. Phoenix Contact ILC130, FTP Verbindung
    Von ciru im Forum PHOENIX CONTACT
    Antworten: 3
    Letzter Beitrag: 21.01.2014, 13:04
  2. Phoenix Webvisit +ILC130 +Android 2.2
    Von ibanez007 im Forum PHOENIX CONTACT
    Antworten: 11
    Letzter Beitrag: 27.03.2013, 07:22
  3. Biete ILC130 ETH von Phoenix Contact mit Erweiterungsmodulen
    Von Automatik-Holgi im Forum Suche - Biete
    Antworten: 0
    Letzter Beitrag: 10.04.2012, 17:17
  4. PCWorx > Steuerung - Der Zugriff mit mehr als einem Teilnehmer
    Von Step7Neuling im Forum Sonstige Steuerungen
    Antworten: 12
    Letzter Beitrag: 15.12.2011, 23:21
  5. Dali_ArcPwrGroup mit PCWorx 5.20 SP4.45
    Von Feldmann im Forum Sonstige Steuerungen
    Antworten: 1
    Letzter Beitrag: 20.05.2009, 21:10

Lesezeichen

Berechtigungen

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