Welcome to our new forum
All users of the legacy CODESYS Forums, please create a new account at account.codesys.com. But make sure to use the same E-Mail address as in the old Forum. Then your posts will be matched. Close

REAL_TO_STRING Taschenrechner

ATS
2009-04-27
2009-05-05
  • ATS - 2009-04-27

    Hallo Leute,

    ich habe in CoDeSys 3.3 einen Taschenrechner realisiert sowie visualisiert. Bin sehr begeistert, welche Möglichkeiten CoDeSys bietet.

    Allerdings habe ich ein kleines Problem. Wenn ich Zahlen < 1.8 mit einer anderen Zahl addiere, bekomme ich nicht das richtige Ergebnis.

    Bsp.:

    1.3 + 3 = 4.299999 statt 4.3

    .

    .

    .

    1.7 + 3 = 4.699999 statt 4.7

    1.8 + 3 = 4.8

    Da es um eine Visualisierung handelt, habe ich als Ausgabe und Eingabe den Datentyp STRING verwendet.

    Die Eingabe wird mit STRING_TO_REAL ohne Probleme konvertiert.

    Die Addition erfolgt in REAL. Das Ergebnis der Addition ist richtig, da die Addition in REAL stattfindet.

    Bei der Konvertierung REAL_TO_STRING habe ich im ONLINE-MODUS den FEHLER festhalten können. Siehe Anhang!

    Gibt es einen Trick, womit man dieses Problem beheben kann.

    mfg

    ats

     
  • ATS - 2009-04-27

    Anhang

    IMG: FEHLER_TASCHENRECHNER.JPG

     
  • bschuster - 2009-04-28

    Hallo ATS,

    poste Deine Applikation doch, damit alle etwas davon haben.

     
  • SPSstudent - 2009-04-30

    Boris Schuster hat geschrieben:
    Hallo ATS,
    poste Deine Applikation doch, damit alle etwas davon haben.

    Auch sVar:=REAL_TO_STRING(4.7) ergibt sVar=4.699999. Das liegt nicht am Programm.

    REAL-Zahlen sind ein bisschen Sonderzahlen, da die nicht als normale Kommazahl im Speicher stehen, sondern in Exponenten-Darstellung.

    Hier gab es dasselbe Problem: http://www.sps-forum.de/archive/index.php/t-19801.html

    Der Trick wäre, dass du nicht mit REAL, sondern mit Ganzzahlen arbeitest. Da musst du halt ein bisschen rumtricksen. Eine Möglichkeit wäre z.B., Vorkomma- und Nachkomma-Stellen als jeweils eine Ganzzahl zu bearbeiten. Oder so wie es in obigem Link beschrieben wird.

     
  • ATS - 2009-05-05

    Hallo,

    @Herr Schuster:

    Die Applikation ist ein Teil meiner Diplomarbeit. Deshalb werde ich die Applikation frühstens nach Abgabe und Benotung meiner Diplomarbeit online stellen.

    @SPSstudent:

    Danke vielmals!!!

    War echt ein super Link. Ich habe das Problem mit der Einbindung der OSCAT-Bibliothek gelöst. Mit der Funktion REAL_TO_STRF kann man gezielt die Ausgabe beinflussen.

    Grüße

    ATS

     

Log in to post a comment.