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

Ergebnis 1 bis 2 von 2

Thema: Bytes 2 Real ?

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

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo zusammen,

    ich versuch seit ein paar tagen Daten von einem Wechselrichter zu lesen, leider funktioniert meine
    Umwandlung von Bytes zu Real nicht, eventuell könntet ihr mir da helfen.


    Auf folgender Seite gibt es

    http://michael-peeters.blogspot.de/2...nux-first.html

    dieses Beispiel

    ae 47 65 41 = E-Total (floating point 14.3 Kwh)

    Irgendwie bekomm ich es nicht hin die 14.3 Kwh rauszubekommen.


    hier mein Ansatz:
    FUNCTION Bytes2Real : REAL
    VAR_INPUT
    Byte1:BYTE;
    Byte2:BYTE;
    Byte3:BYTE;
    Byte4:BYTE;
    END_VAR
    VAR
    pt: POINTER TO BYTE;(*Hier lag der Fehler*)
    END_VAR


    und der Code dazu:

    pt := ADR (Bytes2Real);
    pt^ := Byte1;
    pt := (pt + 1);
    pt^ := Byte2;
    pt := (pt +1);
    pt^ := Byte3;
    pt := (pt +1);
    pt^ := Byte4;

    Ich danke euch im voraus.

    Gruß
    Zitieren Zitieren Bytes 2 Real ?  

  2. #2
    Registriert seit
    16.11.2007
    Beiträge
    179
    Danke
    11
    Erhielt 53 Danke für 39 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    ... sollte so funktionieren...

    Code:
    FUNCTION BYTES_TO_REAL : REAL
    VAR_INPUT
     b_byte1     :BYTE;
     b_byte2     :BYTE;
     b_byte3     :BYTE;
     b_byte4     :BYTE;
    END_VAR
    VAR
     x        :DWORD;
     pt        :POINTER TO REAL;
    END_VAR
    
    x :=SHL((BYTE_TO_DWORD (b_byte4)),24) OR SHL((BYTE_TO_DWORD (b_byte3)),16) OR SHL((BYTE_TO_DWORD (b_byte2)),8) OR (BYTE_TO_DWORD (b_byte1));
    pt := ADR(x);
    BYTES_TO_REAL := pt^;

    mfG Jan

Ähnliche Themen

  1. Real in zwei Bytes
    Von Mobi im Forum Sonstige Steuerungen
    Antworten: 10
    Letzter Beitrag: 20.08.2011, 10:14
  2. Wert de Bytes in einem DB
    Von Bensen83 im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 15.03.2010, 09:38
  3. Bytes in INT wandeln
    Von smartie im Forum Simatic
    Antworten: 12
    Letzter Beitrag: 27.07.2007, 17:24
  4. scl bytes in temp_var
    Von volker im Forum Simatic
    Antworten: 7
    Letzter Beitrag: 25.02.2007, 11:38
  5. Im DB 1500 BYTES löschen
    Von kaufmann-michael im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 29.01.2004, 00:00

Stichworte

Lesezeichen

Berechtigungen

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