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

Ergebnis 1 bis 8 von 8

Thema: Byte werte in Real umrechen

  1. #1
    Registriert seit
    29.07.2006
    Beiträge
    78
    Danke
    17
    Erhielt 5 Danke für 4 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    Ich brauche mal eure Hilfe, wir haben eine Beckhoff Profibus Master der mit einen DPDP Koppel von einer Siemens CPU Datenaustausch das klapp soweit sehr gut und ohne Probleme bei Bit zugriffen, und Intwerten passen die Werte bloß wie rechne ich die Siemens Realwerte aus? Die Daten kommen als Byte rein hier mal die Werte byte1=66, byte2=170, byte3=0, byte4=0 da soll laut Vorgabe der Siemens 85 bei raus kommen wie Rechne ich das? Mantisse?
    Danke
    Zitieren Zitieren Byte werte in Real umrechen  

  2. #2
    Registriert seit
    26.12.2009
    Beiträge
    98
    Danke
    22
    Erhielt 9 Danke für 7 Beiträge

    Standard

    I dont know Beckhoff, but usually it can be solved by swapping the bytes. In S7 the instruction is "CAD".

  3. #3
    Registriert seit
    15.01.2005
    Ort
    In der Mitte zwischen Bayreuth/Weiden
    Beiträge
    6.725
    Danke
    314
    Erhielt 1.519 Danke für 1.282 Beiträge

    Standard

    Zitat Zitat von kaputt Beitrag anzeigen
    I dont know Beckhoff, but usually it can be solved by swapping the bytes. In S7 the instruction is "CAD".
    ... bzw. "TAD" bei deutscher Mnemonik.

    wobei TAD bzw. CAD in dem Fall, da die Integer-Werte passen nichts bringen dürfte, weil da ein wenig zu viel getauscht wird ...

    Ich habe auch eine Kopplung zwischen Beckhoff <-> S7 über Profibus am laufen,
    hatte auf die Beckhoff-Steuerung aber keinen Einfluss.
    Der Kollege, der die Beckhoff-Steuerung programmiert hat, konnte bei den Einstellungen den Bereich, den wir als "Doppelwort" also z.B. Real-Werte defniert haben,
    den für Siemens notwendigen Byte-Tausch konfigurieren.

    Nachdem er dieses getan hatte, hatte sowohl ich als auch eher korrekt formatierte Realwerte. (Div. Werte gingen von Beckhoff -> S7 und div. Werte von S7 -> Beckhoff).

    Leider habe ich mich zum damaligen Zeitpunkt aus Zeitmangel nicht mit irgendwelchen Details bezüglich der Beckhoff-Parametrierung beschäftigt,
    so das ich hier nicht mit Details dienen kann.

    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
    16.11.2007
    Beiträge
    179
    Danke
    11
    Erhielt 53 Danke für 39 Beiträge

    Standard

    Hallo,

    habe hier eine Funktion die die Byte´s zu einer Real-Zahl wandelt. Ich glaube du mußt durch das Siemens-Byte-Swapping bei Array-Element [3] dein Byte 1 (66), bei Array-Element [2] dein Byte 2 (170) anschreiben, dann sollte 85 rauskommen.


    Code:
    FUNCTION B_IEEE32_TO_REAL : REAL
    VAR_INPUT
     IN : ARRAY[0..3] OF BYTE;
    END_VAR
    VAR
          PTREAL:POINTER TO REAL;
    END_VAR
     
     
     
    PTREAL:=ADR(IN);
    B_IEEE32_TO_REAL := PTREAL^;
    mfG Jan
    Zitieren Zitieren Byte´s zu real  

  5. Folgender Benutzer sagt Danke zu Mr.Spok für den nützlichen Beitrag:

    enter (25.06.2010)

  6. #5
    Registriert seit
    12.04.2010
    Beiträge
    300
    Danke
    22
    Erhielt 54 Danke für 52 Beiträge

    Standard

    Hallo,
    dieses Bild zeigts noch mal...

    Ist dann wahrscheinlich ein Big-Endian/Little Endian Problem, d.h.
    Byte.0 mit Byte.3 tauschen
    Byte.1 mit Byte.2 tauschen

    Real in bytes.jpg

    bg
    bb

  7. Folgender Benutzer sagt Danke zu bits'bytes für den nützlichen Beitrag:

    enter (25.06.2010)

  8. #6
    Registriert seit
    29.07.2006
    Beiträge
    78
    Danke
    17
    Erhielt 5 Danke für 4 Beiträge

    Standard

    Hallo,
    @Mr. Spok das funktioniert sehr gut vielen Dank
    aber was ist B_IEEE32_TO_Real für ein Befehl ? der taucht noch nicht mal bei der Beckhoff Hilfe auf kommt der aus der C abteilung.

    Geht das auch umgekehrt REAL_TO_B_IEEE32 ich muss nämlich auch Real werte zur Siemens schreiben

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

    Standard

    Hallo enter, das ist eine selbst geschriebene Funktion, den Quellcode hast du ja. Das ganze geht natürlich auch umgekehrt. Im Anhang mal ein Bild wie eine Real-Zahl Bit für Bit ab gespeichert wird. Mit dem Pointer in der Funktion änderst du praktisch nur die "Sichtweise" auf die Bits, sodass diese als Real-Zahl interpretiert werden.

    Hier die Sache andersherum:
    Code:
    FUNCTION REAL_TO_B_IEEE32 : ARRAY [0..3] OF BYTE
    VAR_INPUT
     IN:REAL;
    END_VAR
    VAR
     PTARRAY:POINTER TO ARRAY [0..3] OF BYTE;
    END_VAR
     
     
    PTARRAY:=ADR(IN);
    REAL_TO_B_IEEE32:=PTARRAY^;
    mfG Jan
    Angehängte Grafiken Angehängte Grafiken
    Zitieren Zitieren Ieee32  

  10. Folgender Benutzer sagt Danke zu Mr.Spok für den nützlichen Beitrag:

    enter (25.06.2010)

  11. #8
    Registriert seit
    29.07.2006
    Beiträge
    78
    Danke
    17
    Erhielt 5 Danke für 4 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hi Jan,
    (das ist eine selbst geschriebene Funktion) jetzt wo du es schreibst ist es wir klar geworden

    Vielen Dank !!

Ähnliche Themen

  1. ftp-Datei und Byte/Real-Wandelung
    Von jan820813 im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 19.06.2009, 15:57
  2. Byte to Real
    Von uwemiess im Forum Simatic
    Antworten: 40
    Letzter Beitrag: 09.07.2008, 14:46
  3. 4 Byte (float) auf Real?
    Von klauserl im Forum Simatic
    Antworten: 23
    Letzter Beitrag: 07.02.2008, 21:36
  4. REAL in BYTE umwandeln
    Von Terence_Hill im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 18.01.2008, 20:03
  5. blind baustein von oscat Byte in real?
    Von MacDeath im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 09.01.2008, 15:25

Lesezeichen

Berechtigungen

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