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

Ergebnis 1 bis 5 von 5

Thema: Real Variable Nachkommastellen

  1. #1
    Registriert seit
    22.10.2008
    Beiträge
    13
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Moin,

    ich hab da eine Real Variable(TC PLC), die bei einem Sollwert von 0 ,eine recht viele Nachkommastellen hat. Z.B. 0,00000004673
    Mich interessieren aber nur die ersten 3. Also 0,000
    Diese Variable muss ich mit einer anderen auf 0 vergleichen,
    was aber bei den Nachkommastellen so gut wie unmöglich ist.

    Hat da jemand einen Lösungsvorschlag?
    Danke
    Gruß Boggle
    Zitieren Zitieren Real Variable Nachkommastellen  

  2. #2
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.716
    Danke
    398
    Erhielt 2.399 Danke für 1.999 Beiträge

    Standard

    Hallo,
    ich würde sie in einen INT wandeln. Ggf. wenn du die Nachkommastellen irgendwo noch brauchst (außer bei der =0 -Geschichte) erst mit 1000 multiplizieren und dann in einen DINT wandeln.

    Gruß
    LL

  3. #3
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.220
    Danke
    533
    Erhielt 2.696 Danke für 1.948 Beiträge

    Standard

    Oder als 2. Möglichkeit einen Fensterbaustein einsetzen, der einen Vergleich mit einer anzugebenden Hysterese macht, also z.Bsp. +-0,001. Das ist bei Realzahlen ohnehin fast nicht anders zu machen.
    Gruß
    Ralle

    ... there\'re 10 kinds of people ... those who understand binaries and those who don\'t …
    and the third kinds of people … those who love TIA-Portal

  4. #4
    Registriert seit
    29.08.2006
    Beiträge
    195
    Danke
    0
    Erhielt 35 Danke für 21 Beiträge

    Standard

    schau dir mal die oscat library an dort gibt es einige bausteine die dir das leben leicher machen

    rnd und round runden einen real auf n digits oder n digits hinter dem komma.

    wenn du werte vergleichen möchtest und n stellen beachtet werden sollen empfehle ich dir den baustein cmp dieser prüft zwei real werte ob die ersten n stellen übereinstimmen samt rundung usw..

    beachten solltest du aber das ein 32 bit real nur 7-8 stellen abbilden kann.
    OSCAT
    Open Source Community for Automation Technolgy
    www.oscat.de

  5. #5
    Registriert seit
    19.07.2008
    Ort
    Aachen
    Beiträge
    270
    Danke
    2
    Erhielt 21 Danke für 20 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Schließe mich den Vorrednern an.

    Es ist UNERLÄSSLICH den Wert auf hinreichend wenige Stellen zu Runden. Wichtig ist vor allem, dass es wahrscheinlich ist, dass bei der vorgenommenen Rundung der Fall x = 0 auch eintreten kann.

    Es gibt im Internet eine Seite die von fatalen Katastrophen berichtet, die auf Softwarefehler zurückzuführen sind. Eine davon ist der Fall, in welchem ein US-Marschflugkörper dutzende Menschen tötete weil intern eine Berechnung den gewünschten Vergleichswert nie annehmen konnte.

    Ergo: Runde auf 1 oder 2 Stellen, sofern das vertretbar ist. Im besten Fall auf Integer mit REAL_TO_INT(x). Oder vergleiche auf -0.1 < x < 0.1

    Beides ist okay.

Ähnliche Themen

  1. Antworten: 8
    Letzter Beitrag: 23.09.2011, 22:36
  2. Antworten: 2
    Letzter Beitrag: 10.12.2010, 15:00
  3. Real Variable auf Webvisu bringen
    Von Lebenslang im Forum CODESYS und IEC61131
    Antworten: 7
    Letzter Beitrag: 30.06.2009, 03:33
  4. Antworten: 0
    Letzter Beitrag: 23.03.2007, 08:42
  5. REAL Variable und OP17
    Von Thomas_v2.1 im Forum HMI
    Antworten: 0
    Letzter Beitrag: 31.03.2004, 17:49

Lesezeichen

Berechtigungen

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