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

Ergebnis 1 bis 4 von 4

Thema: IEEE-754 Fliesskommazahl und S5

  1. #1
    Registriert seit
    25.06.2003
    Ort
    Emden
    Beiträge
    61
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Moin, ich benötige mal einen Denkansatz!

    Ich habe einen IEEE 754 Fliesskommawert (Messwert), den ich in einer S5 (CPU 944B) mit einem Wert aus einem Visualisierungssystem vergleichen muss.

    Der Wert besteht aus 4 Byte und wir wie folgt übertragen: Messwert=(-1)vz X 2(E-127) X (1+F). [kursiv = Hochzahl]
    Ich habe also im ersten Byte das Vorzeichen (Bit7), dann den Exponent (Bit6-Bit0), im zweiten Byte im Bit7 auch den Exponent, Rest von Byte 2 sowie Byte 3+4 ist dann die Mantisse.

    Nun, wie kann ich am besten den Wert maskieren oder normieren, damit ich ihn in der S5 vergleichen kann.

    Jemand 'ne Idee
    mfG
    Ingo dV

    Regelmässiges Versagen ist auch
    eine Form der Zuverlässigkeit
    Zitieren Zitieren IEEE-754 Fliesskommazahl und S5  

  2. #2
    Registriert seit
    25.06.2003
    Ort
    Emden
    Beiträge
    61
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Ich denke ich hab ne Idee:

    Ich werde die Mantisse auf 3 Zahlen beschränken und die Kommastelle um 3 Stellen verschieben um dann eine Ganzzahl zu bekommen z.B.


    40 F0 00 00 (hex) = 0100 0000 1111 0000 0000 0000 0000 0000 (bin)

    = (-1)0 x 2(2) x (1 + 0.5 + 0.25 + 0.125)
    = 7,5

    wenn ich die ersten 3 Bits der Mantisse auf Merker lege, über einen Sprungbefehl die Werte 500, 250, 125 den Bits zuordne, den Exponenten ausmarkiere und dann multipliziere bekomme ich einen Wert von 7500 und den kann ich dann vergleichen. Die letzten Zahlen den Mantisse kann ich als Messgrösse vernachlässigen.

    Hat jemand eine bessere Idee ?
    mfG
    Ingo dV

    Regelmässiges Versagen ist auch
    eine Form der Zuverlässigkeit
    Zitieren Zitieren Idee  

  3. #3
    Registriert seit
    19.06.2003
    Beiträge
    2.200
    Danke
    85
    Erhielt 259 Danke für 175 Beiträge

    Standard

    Ich hab´ vor Jahren mal so was machen müssen. Wenn das Prinzip nicht reicht, kann ic dir morgen oder übermorgen den Code schicken. Im Prinzip habe ich das so gelöst:
    Mein Meßgerät liefert einen Wert von 0 - 1000 oder so ähnlich als Gleitkomma. Es ist also klar, daß alle Zahlen auch ohne Skalierung in ein Wort passen.
    Ich ziehe den Exponenten von dem einer 32768.0 in Gleitkommadarstelung ab und kopiere das Ergebnis in ein MB, z.B. MB12, damit ich auf die Bits einzeln zugreifen kann.
    Die verbleibenden Bits geben mir nun an, um wieviel ich die Mantisse rechts schieben muß, um ein Wort zu erhalten. Das können höchstens 15 mal schieben sein, sonst bleibt nix übrig. Ich kopiere die höchstwertigsten Bits der 23-Bit Mantisse in das Wort, ergänze die vordee eins durch ein UW mit 8000h.

    Anschließend springe ich abhängig von den Bits im MB12:
    L MW 10 // Mantisse
    UN M 12.3
    SPB = nichtAchtMalSchieben
    SRW 8
    nichtAchtMalSchieben:UN M 12.2
    SPB = nichtVierMalSchieben
    SRW 4
    nichtVierMalSchieben:UN M 12.1
    SPB = nichtZweiMalSchieben
    SRW 2
    nichtZweiMalSchieben:UN M 12.0
    SPB = nichtEinMalSchieben
    SRW 1
    nichtZweiMalSchieben:NOP 0
    Wenn die Differenz der Exponenten also 15 war, ist die Zahl um 15 Bit rechtsgeschoben.

  4. #4
    Registriert seit
    25.06.2003
    Ort
    Emden
    Beiträge
    61
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Zottel,
    vielen Dank für die schnelle Antwort!
    Ich werde heute mal ein wenig tüfteln.
    mfG
    Ingo dV

    Regelmässiges Versagen ist auch
    eine Form der Zuverlässigkeit

Ähnliche Themen

  1. S5 und REAL nach IEEE
    Von RonOro im Forum Simatic
    Antworten: 12
    Letzter Beitrag: 27.07.2014, 15:35
  2. C# Ganzzahl wandeln in Gleitpunktzahl IEEE 754
    Von sparx im Forum Hochsprachen - OPC
    Antworten: 4
    Letzter Beitrag: 13.11.2011, 19:55
  3. Wandeln von IEEE 754 Zahlen bei der Modbus-RTU Biliothek
    Von WaEv im Forum CODESYS und IEC61131
    Antworten: 0
    Letzter Beitrag: 14.01.2010, 19:26
  4. Antworten: 13
    Letzter Beitrag: 25.01.2007, 10:06
  5. IEEE 754 -> S5 KG
    Von volker im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 22.11.2005, 18:09

Lesezeichen

Berechtigungen

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