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

Ergebnis 1 bis 10 von 10

Thema: Sentron : Double nach S7-Real wandeln

  1. #1
    Registriert seit
    17.04.2007
    Ort
    Kiel
    Beiträge
    496
    Danke
    162
    Erhielt 67 Danke für 63 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hi Mitstreiter,

    ich habe gerade ein Siemens Sentron Meßgerät über eine Modbus on TCP an eine S7-300 angebunden. Geht soweit auch ganz gut. Bis ich zu den Zählwerten gekommen bin. Diese sind im Format Double (also ein 64 Bit Realwert) abgelegt. Hat einer eine Idee, wie ich diese in das S7-Real (32 Bit) wandeln kann. Hat vielleicht jemand etwas fertiges?

    Kieler
    So einfach wie möglich – so kompliziert wie nötig.
    Zitieren Zitieren Sentron : Double nach S7-Real wandeln  

  2. #2
    Registriert seit
    19.01.2007
    Ort
    Ruhrpott-West
    Beiträge
    383
    Danke
    97
    Erhielt 99 Danke für 74 Beiträge

    Standard

    Zitat Zitat von Kieler Beitrag anzeigen
    Diese sind im Format Double (also ein 64 Bit Realwert) abgelegt. Hat einer eine Idee, wie ich diese in das S7-Real (32 Bit) wandeln kann.
    Kieler
    Hallo Kieler,

    Double sind 32 Bit!!!
    Oder meinst Du LONG???
    Es ist schon alles gesagt worden - nur noch nicht von jedem!

  3. #3
    Registriert seit
    15.01.2005
    Ort
    In der Mitte zwischen Bayreuth/Weiden
    Beiträge
    6.752
    Danke
    323
    Erhielt 1.526 Danke für 1.286 Beiträge

    Standard

    @maweri
    Das sagt Wiki dazu:
    http://de.wikipedia.org/wiki/Doppelte_Genauigkeit

    http://de.wikipedia.org/wiki/Integer_(Datentyp)

    Ergo sind Double und Long beide male 64Bit, aber einmal als Gleitpunkt, und das andere mal als Integer.

    Mfg
    Manuel
    Warum denn einfach, wenn man auch Siemens einsetzen kann!

    Wer die grundlegenden Freiheiten aufgibt, um vorübergehend ein wenig Sicherheit zu bekommen, verdient weder Freiheit noch Sicherheit (B. Franklin).

  4. #4
    Registriert seit
    19.01.2007
    Ort
    Ruhrpott-West
    Beiträge
    383
    Danke
    97
    Erhielt 99 Danke für 74 Beiträge

    Standard

    Habe hier http://de.wikipedia.org/wiki/Datenwort nachgeschaut.

    War ich wohl etwas zu schnell
    Es ist schon alles gesagt worden - nur noch nicht von jedem!

  5. #5
    Avatar von Kieler
    Kieler ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    17.04.2007
    Ort
    Kiel
    Beiträge
    496
    Danke
    162
    Erhielt 67 Danke für 63 Beiträge

    Standard

    Wenn Ihr schon alle in Wikipedia unterwegs seit, müsst Ihr auch den richtigen Artikel verwenden :
    http://de.wikipedia.org/wiki/IEEE_754

    Hierbei entspricht die S7-Real-Zahl in etwa dem Single. Die Zahl welche ich über die Kopplung bekomme, aber dem Format Double. Eigentlich dachte ich, es müsste mit ein paar Schiebebefehlen erledigt sein. Aber ganz so schlicht ist es dann doch wieder nicht.
    So einfach wie möglich – so kompliziert wie nötig.
    Zitieren Zitieren Wikipedia  

  6. #6
    Registriert seit
    07.06.2006
    Ort
    Bayern
    Beiträge
    624
    Danke
    27
    Erhielt 156 Danke für 139 Beiträge

    Standard

    Hallo Kieler,

    ich hab grad mal ein bissel gegoogelt und mal bei anderen Steuerungsherstellern nachgeschaut (z.B. Beckhoff). Bin aber bzgl. fertiger Funktion für Siemens nicht fündig geworden. Bei Beckhoff (Twincat) gibt´s zwar die Funktion LREAL_TO_REAL, diese ist aber in keiner Bibliothek abgelegt und somit nicht zugänglich.

    Im Prinzip sollte das ganze aber nicht so schwierig sein. Du musst halt deine 64-Bit Gleitpunktzahl in Mantisse und Exponent zerlegen und diese wieder auf einem Doppelwort bzw. Siemens-REAL ablegen.

    Mfg
    uncle_tom

  7. #7
    Registriert seit
    19.01.2007
    Ort
    Ruhrpott-West
    Beiträge
    383
    Danke
    97
    Erhielt 99 Danke für 74 Beiträge

    Standard

    Wenn wir schon alles bei Wikipedia nachschlagen, wie wär's denn mit folgender Lösung:

    Code:
     Berechnung einer IEEE double precision Gleitkommazahl (64-Bit-Gleitkommazahl) 
    
     Umkehrung
     Will man aus einer Gleitkommazahl im Maschinenwort (64 Bit) eine Dezimalzahl errechnen so kann man dieses mit folgender Formel recht schnell erledigen:
     
     
    Beispiel:
     Folgende Binärzahl mit 64-Bit soll als Gleitkommazahl interpretiert werden:
     0 10001110100 0000101001000111101011101111111011000101001101001001
     (das Bit ganz links ist Bit 63 und das Bit ganz rechts ist Bit 0)
     
    Das 63. Bit repräsentiert das Vorzeichen (1 Bit), also
         VZ = 0binär = 0
    Bit 62 bis 52 repräsentieren den Exponenten (11 Bit), also:
        E = 10001110100binär = 1140
    Bit 51 bis 0 repräsentieren die Mantisse (52 Bit), also:
         M = 0000101001000111101011101111111011000101001101001001binär = 
    Eingesetzt in die Formel ergibt sich als Ergebnis (Rundungswerte):
        
    Findet man auch hier
    Es ist schon alles gesagt worden - nur noch nicht von jedem!

  8. #8
    Registriert seit
    11.06.2004
    Beiträge
    100
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo

    nun stehe ich genau vor diesem Problem.
    Ich soll die Wirkarbeit (64bit double) in WinCC darstellen und komme zu keiner Lösung.
    Kann mir da jemand weiterhelfen?

    Gruss
    Zitieren Zitieren 64 bit double  

  9. #9
    Registriert seit
    29.03.2004
    Beiträge
    5.797
    Danke
    144
    Erhielt 1.707 Danke für 1.239 Beiträge

    Standard

    Ich hatte so eine Konvertierungsfunktion mal in SCL geschrieben

    http://www.sps-forum.de/showpost.php...82&postcount=6

    Gruß

  10. #10
    Registriert seit
    29.03.2004
    Beiträge
    5.797
    Danke
    144
    Erhielt 1.707 Danke für 1.239 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von uz71 Beitrag anzeigen
    Ich soll die Wirkarbeit (64bit double) in WinCC darstellen und komme zu keiner Lösung.
    Kann mir da jemand weiterhelfen?
    Dabei braucht man das bei WinCC eigentlich garnicht, da es selber eine Konvertierungsfunktion für 64-Bit IEEE Gleitpunktzahlen hat.
    Hast du dir das schonmal angesehen?

Ähnliche Themen

  1. Wandeln Double/Float in S7- dword
    Von the.insider im Forum Simatic
    Antworten: 7
    Letzter Beitrag: 24.10.2011, 09:50
  2. real in ein word wandeln
    Von Dip im Forum Simatic
    Antworten: 8
    Letzter Beitrag: 07.08.2009, 11:35
  3. REAL auf INT wandeln
    Von neibeck im Forum Simatic
    Antworten: 18
    Letzter Beitrag: 14.07.2008, 18:01
  4. von Real nach Integer wandeln
    Von tuppes38 im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 27.09.2005, 18:41
  5. Real nach Integer wandeln
    Von paula23 im Forum Simatic
    Antworten: 9
    Letzter Beitrag: 14.06.2005, 22:53

Lesezeichen

Berechtigungen

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