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

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

Thema: Bits in einem Byte auf einer S5 spiegeln

  1. #1
    Registriert seit
    08.05.2009
    Beiträge
    117
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo liebe Leute,
    ich soll Daten von einer S5 115U an ein Gerät schicken das am Profibus angeschlossen ist.
    Habe nun festgestellt, dass in diesem Gerät die Bits in den Bytes nicht von rechts nach links aufsteigend angeordnet ausgewertet werden, sondern anders herum.
    Die Bytes ansich sind richtig herum, das niederwertigste Byte steht rechts.

    Ich schicke dort ein DWORD rüber, war anfangs etwas verwirrt was da für ein Wirrwarr ankommt, bis ich begann den Zahlensalat mittels Tabelle mal auseinanderzuklamüsern.
    Schicke aktuell mal Testweise eine 1 rüber und angezeigt wird die Zahl 16777216.
    Was in diesem Fall heisst, dass nicht im ganz rechten Byte das ganz rechte Bit eine 1 hat sondern im rechten Byte das linke Bit

    Gibt es bei der S5 eigentlich eine einfache Möglichkeit das so zurechtzuschieben, dass das passt?

    Vielen Dank im voraus
    Zitieren Zitieren Bits in einem Byte auf einer S5 spiegeln  

  2. #2
    Registriert seit
    05.06.2006
    Ort
    PLZ 97xxx
    Beiträge
    274
    Danke
    31
    Erhielt 44 Danke für 36 Beiträge

    Standard

    sieht nach einem little Endian / big Endian Problem aus

    schau dir mal den Befehl TAD an

  3. #3
    Registriert seit
    05.06.2006
    Ort
    PLZ 97xxx
    Beiträge
    274
    Danke
    31
    Erhielt 44 Danke für 36 Beiträge

    Standard

    Quatsch, du hast ja ne S5.
    Da mußt Du die Bytes selbst tauschen.

    Byte1 => Byte4
    Byte2 => Byte3
    Byte3 => Byte2
    Byte4 => Byte1

  4. #4
    matziane ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    08.05.2009
    Beiträge
    117
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Guten Morgen,
    das mit dem TAD wäre ja zu einfach, da hab ich erst auch dran gedacht.
    Aber es sind ja nicht die Bytes im DWORD vertauscht, es sind in den einzelnen Bytes die Bits vertauscht.
    Heisst also nicht wie man es kennt,
    Bit
    7 6 5 4 3 2 1 0
    sondern
    Bit
    0 1 2 3 4 5 6 7

    ich müsste also per Hand im Programm alle Bits spiegeln, dass die Daten dort richtig ankommen.
    Die haben das aber mittlerweile in dem Gerät geändert, trotzdem interessierts mich obs auf der Steuerungsebene da eine Möglichkeit gibt.

  5. #5
    Registriert seit
    05.06.2006
    Ort
    PLZ 97xxx
    Beiträge
    274
    Danke
    31
    Erhielt 44 Danke für 36 Beiträge

    Standard

    DW#16#00000001 => L#1
    DW#16#01000000 => L#16777216

    also meiner Meinung nach nur Bytes vertauscht

  6. #6
    matziane ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    08.05.2009
    Beiträge
    117
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo,
    hatte mich im ersten Beitrag etwas vertan, es zieht sich so durchs gesamte DWORD.
    Also es wird alles von links nach rechts gezählt, die Bits in den die Bytes ansich sowie die einzelnen Bits im gesamten Doppelwort.
    Hoffe, dass ist in dem Bild meiner Tabelle etwas besser erkennbar.

    Unbenannt.JPG

  7. #7
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.718
    Danke
    398
    Erhielt 2.400 Danke für 2.000 Beiträge

    Standard

    ... damit ist es doch dann aber haargenau so, wie schon von Sarek genannt - ich kann es mir (aus eigener Erfahrung) auch nicht anders vorstellen - das wäre dann ja vollkommen sinnfrei ...

  8. #8
    matziane ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    08.05.2009
    Beiträge
    117
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Defintiv ist es sinnfrei, aber wie geht man denn vor wenn man dieses Problem hat.
    Einen eigenen Baustein bauen der einem die ganzen Bits umhertauscht, sodass es passt?

    Was ist überhaupt ein little Endian / big Endian Problem, mal ganz doof gefragt.

  9. #9
    Registriert seit
    08.04.2008
    Ort
    Köln
    Beiträge
    844
    Danke
    39
    Erhielt 244 Danke für 199 Beiträge

    Standard

    Hallo matziane,

    hier findest Du eine Definition:

    http://de.wikipedia.org/wiki/Byte-Reihenfolge

    Grüße
    Gebs

  10. #10
    matziane ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    08.05.2009
    Beiträge
    117
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Ahja, über das mit dem Intel und Motorola Format bin ich schon bei einigen Dingen gestolpert, das kommt mir bekannt vor.
    Da konnte man dann aber immer am Gerät umschalten.
    Aber ein TAD nutzt mir da ja auch nichts, oder?

Ähnliche Themen

  1. Anzahl High Bits in einem Byte zählen
    Von 19Manuel82 im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 06.11.2011, 17:27
  2. Bits in Byte setzen
    Von bass im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 14.07.2011, 14:42
  3. Wie kann man Hi-Byte Low-Byte spiegeln?
    Von Klärmolch im Forum Simatic
    Antworten: 23
    Letzter Beitrag: 11.12.2010, 20:58
  4. Bits aus Byte
    Von Reto im Forum Simatic
    Antworten: 12
    Letzter Beitrag: 30.01.2007, 23:53
  5. Bits in temporäres Byte mappen und gesetzte Bits zählen
    Von yetibrain im Forum PC- und Netzwerktechnik
    Antworten: 3
    Letzter Beitrag: 19.02.2005, 16:31

Lesezeichen

Berechtigungen

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