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

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 12

Thema: Gleitpunktzahl IEEE754

  1. #1
    Registriert seit
    21.05.2010
    Beiträge
    117
    Danke
    24
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Leute,
    ich erhalte ein Meßwert (aus Profibus PA) im Format 32bit-Gleitpunktzahl im IEEE754 Format.
    Wie habe ich den PEW einzulesen und abzulegen, wenn die ersten vier Byte den Meßwert und das letzte Byte die Statusinformation enthalten?
    Hat da jemand für ein Beispiel?
    Zitieren Zitieren Gleitpunktzahl IEEE754  

  2. #2
    Registriert seit
    03.04.2008
    Beiträge
    6.200
    Danke
    237
    Erhielt 815 Danke für 689 Beiträge

    Standard

    Zitat Zitat von sps_mitte Beitrag anzeigen
    Hallo Leute,
    ich erhalte ein Meßwert (aus Profibus PA) im Format 32bit-Gleitpunktzahl im IEEE754 Format.
    Wie habe ich den PEW einzulesen und abzulegen, wenn die ersten vier Byte den Meßwert und das letzte Byte die Statusinformation enthalten?
    Hat da jemand für ein Beispiel?
    Also wenn ich richtig verstehe, dann sind 32 bit dein Messwert und das letzte BYte deinStatus.
    Dann ist das ganze 40 bit lang?
    Wenn du etwas herausfiltern willst, dann sind Wortoperation dein Freund.


    bike

  3. #3
    sps_mitte ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    21.05.2010
    Beiträge
    117
    Danke
    24
    Erhielt 0 Danke für 0 Beiträge

    Standard

    hi bike,
    kannst du bitte fix ein beispiel hierfür geben

    L PED256
    TAD
    TRUNC
    ...
    Geändert von sps_mitte (24.04.2012 um 21:08 Uhr)

  4. #4
    Registriert seit
    03.04.2008
    Beiträge
    6.200
    Danke
    237
    Erhielt 815 Danke für 689 Beiträge

    Standard

    Zitat Zitat von sps_mitte Beitrag anzeigen
    hi bike,
    kannst du bitte fix ein beispiel hierfür geben

    L PED256
    TRUNC
    ...
    Sorry, ich blicke es nicht.
    Die Zahl ist doch Gletpunkt 32 bit, das kannst du doch umwandeln, wenn du musst.

    Mir ist nicht klar, was das Ergebnis sein soll.


    bike

  5. #5
    sps_mitte ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    21.05.2010
    Beiträge
    117
    Danke
    24
    Erhielt 0 Danke für 0 Beiträge

    Standard

    wie bekomme ich denn hier z.b. 5 byte eingelesen aus der Gleitpunktzahl im IEE754 format ? Habe gerade was von SFC14 gesehen? möglich
    Geändert von sps_mitte (24.04.2012 um 21:15 Uhr)

  6. #6
    Registriert seit
    03.04.2008
    Beiträge
    6.200
    Danke
    237
    Erhielt 815 Danke für 689 Beiträge

    Standard

    Zitat Zitat von sps_mitte Beitrag anzeigen
    wie bekomme ich denn hier z.b. 5 byte eingelesen aus der Gleitpunktzahl im IEE754 format ?
    Da beginnt mein Verständnis Problem.
    Wenn eine Zahl 32 Bit lang ist, wie willst du da mit 5 Byte also 40 Bit da etwas herausnehmen?
    Wenn dein Datenfeld 40Bit lang ist, dann kannst du doch die rechten 32 Bit hernehmen, zwischenspeichern und wandeln.

    und dann die linken 8 Bit als Status zwischenspeichern und auswerten.

    Wo ist das ein Problem?


    bike

  7. #7
    Registriert seit
    15.04.2011
    Beiträge
    1.122
    Danke
    229
    Erhielt 208 Danke für 176 Beiträge

    Standard

    Zitat Zitat von bike Beitrag anzeigen
    Da beginnt mein Verständnis Problem.
    Wenn eine Zahl 32 Bit lang ist, wie willst du da mit 5 Byte also 40 Bit da etwas herausnehmen?
    Wenn dein Datenfeld 40Bit lang ist, dann kannst du doch die rechten 32 Bit hernehmen, zwischenspeichern und wandeln.

    und dann die linken 8 Bit als Status zwischenspeichern und auswerten.

    Wo ist das ein Problem?


    bike
    Vielleicht weiß er nicht, welches der 5 Bytes das Statusbyte ist.

    Wir haben zu wenig Informationen, um eine sinnvolle Aussage zu tätigen.
    Gruß
    190B

  8. #8
    Registriert seit
    03.04.2008
    Beiträge
    6.200
    Danke
    237
    Erhielt 815 Danke für 689 Beiträge

    Standard

    Zitat Zitat von sps_mitte Beitrag anzeigen
    wie bekomme ich denn hier z.b. 5 byte eingelesen aus der Gleitpunktzahl im IEE754 format ? Habe gerade was von SFC14 gesehen? möglich
    Was willst du machen?
    Du kannst mit SFC die Daten einlesen.
    Du kannst aber auch mit Laden der Eingangsworte diese deinem Programm zur Verfügung stellen.
    Doch solange du ein Geheimnis daraus machst, was du wie machen willst, kann dir nicht geholfen werden.

    bike

  9. #9
    sps_mitte ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    21.05.2010
    Beiträge
    117
    Danke
    24
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Wie gesagt, ich habe ein Wert als Gleitpunktzahl im IEEE754 Format, besteht aus 4 byte Werte + 1 Byte Status. Das möchte ich einfach in ein DB ablegen. Jedoch vorher mit TAD die bitreihenfolge tauschen und über SFC14 in ein DB ablegen.

  10. #10
    Registriert seit
    13.09.2010
    Beiträge
    2.292
    Danke
    178
    Erhielt 375 Danke für 355 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Mit "L ED yyy" kannst du (nur) deinen Messwert laden, da du aber mehr als 4 Bytes (dein Status)
    konsistent haben willst, nimm den SFC 14.

    Die LADDR-Adresse und den DB musst du anpassen, den RET_VAL kannst du auch woanders hinlegen:

    Code:
    CALL SFC 14      //"DPRD_DAT"
    LADDR :=W#16#zzz //5 Byte konsistent von der Adresse zzz lesen
    RET_VAL:=MW20    //Status-/Fehlermeldung vom SFC 14
    RECORD :=P#DBxx.DBX0.0 BYTE 5 //schreiben in einen DB ab DBB0....
    Nun liegt dein Messwert im DBxx ab DBB 0, 1, 2 und 3 (=DBW 0 + 2 oder auch = DBD 0) und
    dein Status liegt in DBB 4.
    Deinen Messwert kannst du nun mit L DBxx.DBD 0 (REAL) laden und verarbeiten,
    den Status lädst du mit LDBxx.DBB 4 (BYTE) und wertest in aus.

    Zitat Zitat von sps_mitte Beitrag anzeigen
    Wie gesagt, ich habe ein Wert als Gleitpunktzahl im IEEE754 Format, besteht aus 4 byte Werte + 1 Byte Status. Das möchte ich einfach in ein DB ablegen.
    Jedoch vorher mit TAD die bitreihenfolge tauschen und über SFC14 in ein DB ablegen.
    Das TAD tauscht keine Bits, sondern die Byte-Reihenfolge im Akku.
    Wenn du die Bytes tauscht, wird auch deine eigentliche Zahl verändert.

    Wenn du unbedingt die Bitreihenfolge des Messwerts tauschen willst (aus welchen Gründen auch immer),
    dann benutze die Rotieroperationen RLD oder RRD, jeweils mit Operand 32 (=32 Bits rotieren)
    kind regards
    SoftMachine

  11. Folgender Benutzer sagt Danke zu SoftMachine für den nützlichen Beitrag:

    sps_mitte (02.05.2012)

Ähnliche Themen

  1. Gleitpunktzahl in Movicon 11
    Von Chris48 im Forum HMI
    Antworten: 5
    Letzter Beitrag: 15.02.2012, 13:36
  2. Probleme Rockwell SST Profibus IEEE754
    Von delta.pi im Forum Sonstige Steuerungen
    Antworten: 3
    Letzter Beitrag: 21.06.2010, 12:52
  3. Gleitpunktzahl umrechnen
    Von alonely01 im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 14.10.2008, 09:53
  4. Gleitpunktzahl zerlegen
    Von Heri im Forum Simatic
    Antworten: 17
    Letzter Beitrag: 30.07.2007, 20:35
  5. Gleitpunktzahl zerlegen
    Von Lockerbee im Forum Programmierstrategien
    Antworten: 18
    Letzter Beitrag: 20.02.2007, 19:08

Lesezeichen

Berechtigungen

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