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

Ergebnis 1 bis 9 von 9

Thema: Fließkommazahl in Integer wie

  1. #1
    Registriert seit
    13.05.2007
    Beiträge
    51
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo an euch, ich habe eine Bitte. Ich muß den Ganzzahligen Anteil einer Fließkommazahl (liegt in 4 Byte) in einer Integer Variablen (in 2 Byte) kriegen, aber wie. Kann mir da einer helfen ? wäre echt Dankbar. Gruss und Danke sagt Günni
    Zitieren Zitieren Fließkommazahl in Integer wie  

  2. #2
    Registriert seit
    25.11.2010
    Beiträge
    70
    Danke
    2
    Erhielt 6 Danke für 6 Beiträge

    Standard

    Lies mal den Post Nr.5 in folgendem link.

    http://www.sps-forum.de/showthread.p...te-der-SFC-SFB

    Gruß

  3. #3
    Registriert seit
    25.08.2003
    Beiträge
    332
    Danke
    46
    Erhielt 54 Danke für 46 Beiträge

    Standard

    Tacho!

    Was haltet Ihr hier von?

    Code:
    L   REAL_ZAHL
    TRUNC
    T   INT_ZAHL
    Beinhaltet allerdings keinerlei Prüfung, aber zum Wertebereich hat der TE ja auch nix gesagt.

    Gruß,
    Flinn

  4. #4
    Registriert seit
    11.12.2009
    Beiträge
    2.115
    Danke
    388
    Erhielt 390 Danke für 271 Beiträge

    Standard

    Hallo

    Code:
    L REAL
    RND
    // GGF. DTI
    T INT
    Grüße

    Marcel

  5. #5
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.190
    Danke
    923
    Erhielt 3.292 Danke für 2.661 Beiträge

    Standard

    Zitat Zitat von Fileplayer Beitrag anzeigen
    Ich muß den Ganzzahligen Anteil einer Fließkommazahl (liegt in 4 Byte) in einer Integer Variablen (in 2 Byte) kriegen
    Man kann es z.B. so machen:
    Code:
          L     #REAL_Wert
          TRUNC             // ganzzahliger Anteil des REAL -> DINT
          SPO   ERR         // Abbruch, wenn Fehler bei TRUNC (zu groß, zu klein, NaN)
          PUSH              // Akku2 = Akku1 = DINT-Wert
          ITD               // Akku1.0-15 -> DINT
          ==D               // wenn dabei das gleiche wie in Akku2 rauskommt,
          SPB   OK          // dann ist das Ergebnis im Bereich -32768 ... +32767 
    
    ERR:  L     0           // Fehler: Wandlung nicht möglich -> z.B. durch Ergebnis = 0 anzeigen
    
    OK:   T     #INT_Wert   // ganzzahliger Anteil (16 Bit) oder Fehlerwert 0 -> INT
    Zitat Zitat von Matze001 Beitrag anzeigen
    Code:
    L REAL
    RND
    // GGF. DTI
    T INT
    hmm, in dem anderen Thread wurde schon geklärt, daß es ein DTI nicht gibt ...

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

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  6. #6
    Registriert seit
    11.12.2009
    Beiträge
    2.115
    Danke
    388
    Erhielt 390 Danke für 271 Beiträge

    Standard

    Habs nicht gelesen *zugeb*

    Hab nur das geschrieben was mir in den Kopf gekommen ist, und da ist irgendwie auch ein DTI hängen geblieben (glaube aber in einem anderen Zusammenhang)...

    Grüße

    Marcel

    Edit: es ist mir wieder eingefallen, hab zu viel mit DATE_AND_TIME gespielt und das BTI zu nem DTI umgedichtet.. sorry!

  7. #7
    Registriert seit
    13.05.2007
    Beiträge
    51
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo, TD an alle von euch, hat gefunct !! Und der Bereich ist auch OK ( ganzahliger Bereich ist zwischen 0 und 200

    Danke
    Gruss Günni
    Zitieren Zitieren TD wie Tausend Dank  

  8. #8
    Registriert seit
    11.12.2009
    Beiträge
    2.115
    Danke
    388
    Erhielt 390 Danke für 271 Beiträge

    Standard

    Also ist das einfachste das RND

    Schön das es tut, auf zur nächsten Aufgabe !

    Grüße

    Marcel

  9. #9
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.190
    Danke
    923
    Erhielt 3.292 Danke für 2.661 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Nochmal:
    Zitat Zitat von Fileplayer Beitrag anzeigen
    Ich muß den Ganzzahligen Anteil einer Fließkommazahl (liegt in 4 Byte) in einer Integer Variablen (in 2 Byte) kriegen
    RND ist für diese Aufgabe die falsche Operation, weil RND rundet zur nächsten Ganzzahl: 3.6 --> 4
    TRUNC liefert den ganzzahligen Anteil (ohne falsches runden): 3.6 --> 3

    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. integer 32Bit in integer 16 Bit wandeln
    Von slk230-power im Forum Simatic
    Antworten: 11
    Letzter Beitrag: 09.11.2009, 22:35
  2. S5TIME in INTEGER?
    Von Felse im Forum Simatic
    Antworten: 17
    Letzter Beitrag: 12.03.2009, 12:06
  3. Wie funktioniert DB-Aufruf "AUF DB [Integer]"
    Von kassla im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 05.12.2008, 16:57
  4. Integer, Hex
    Von Anonymous im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 13.01.2006, 22:08
  5. Umwandlung Integer(32bit) in Integer(16bit)
    Von Kojote im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 18.08.2005, 10:56

Lesezeichen

Berechtigungen

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