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

Ergebnis 1 bis 9 von 9

Thema: Little Endian / Big Endian in S7 und DP Slave

  1. #1
    Registriert seit
    21.04.2009
    Ort
    München
    Beiträge
    220
    Danke
    56
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hi,
    hab folgendes Problem und zwar habe ich einen DP Slave mit folgendem Hinweis:

    "16/32-bit Werte werden im Motorola Format (Big Endian, High Byte…Low Byte) übertragen."

    sprich wenn ich auf das 6te Bit von 16Bit bzw. DWord eine "1" setzen will dann muss ich bspw. bei den Bytes AB10 und AB11 nicht A10.6 sondern A11.6 angeben..

    Auch alle Werte in Bytes die ich vom DP-Slave erhalte sind entsprechend gedreht, auch die sende bytes müssen entsprechend gedreht werden.

    Gibts eine Einstellung in Step7 oder einen Programmiertrick oder Baustein wie ich das wieder ins Siemens also Little Endian Format bekomme?

    vom DP Slave erhallte ich 88byte Eingang (zum auslesen von werten) und 2Byte Ausgang (zum schreiben von Befehlen).

    Für Hilfe wäre ich sehr dankbar!


    lg
    Sk

    PS. In c++ konnte man byte-arrays immer mit dem array reverse befehl drehen um auf das richtige format zukommen.
    TIA V13 + SP1 Update5 Windows8.1
    Zitieren Zitieren Little Endian / Big Endian in S7 und DP Slave  

  2. #2
    Registriert seit
    23.02.2007
    Ort
    Hamburg
    Beiträge
    695
    Danke
    198
    Erhielt 84 Danke für 74 Beiträge

    Lächeln

    Moin,

    die Bytes können in Step7 ganz einfach mittels dem Befehl "TAW bzw. TAD" getauscht werden.

    Code:
    //Bytes im Wort tauschen
    L MW0
    TAW
    T MW1
    
    //Bytes in Doppelwort tauschen
    L MD10
    TAD
    T MD20
    Siemens: Step7, WinCC Flexible, Logo
    Schneider: PL7, Unity Pro, Vijeo Look, Vijeo Designer, XBTL1000, Premium, M340, Twido, Zelio
    Moeller: Galileo, EASY
    B&R: Automation Studio 3.0

  3. Folgender Benutzer sagt Danke zu eYe für den nützlichen Beitrag:

    superkato (13.05.2011)

  4. #3
    Avatar von superkato
    superkato ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    21.04.2009
    Ort
    München
    Beiträge
    220
    Danke
    56
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Vielen Dank eye sowas hab ich gesucht!

    Ich hatte übrigens nun auch dieses Problem in einem FC2, dass ich ja 4 DP Slaves habe und diese gehen bis E 588.

    Ich hab in dem FC2 versucht auf das Bit 2 zu greifen (E588.2) was nicht ging weil die S7-300 nur bis E128 unterstützt. Das FC lies sich deswegen auch nicht auf die CPU laden.

    Mit PED588 / PEW588 geht es aber dann müsste ich ja erstmal das Wort oder DWort laden und dann aus dem Lademerker das bit ziehen oder?
    so?

    also
    NW1:
    L PED588
    T MD5

    NW2:
    MD5.0
    = A4.0

    kann man das nicht eigentlich direkt in einem Netzwerk schreiben?^^ Oder gibts da diese "für jeden ausgang nur ein NW" Regel?
    TIA V13 + SP1 Update5 Windows8.1

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

    Standard

    Zitat Zitat von superkato Beitrag anzeigen
    NW1:
    L PED588
    T MD5

    NW2:
    MD5.0
    = A4.0

    kann man das nicht eigentlich direkt in einem Netzwerk schreiben?^^ Oder gibts da diese "für jeden ausgang nur ein NW" Regel?
    Dein NW 2 sollte so heißen:
    U M 5.0
    = A 4.0

    Wenn die Ausgänge fortlaufend sind wie das PED , dann kannst du schreiben:

    L PED 588
    T AD4

    Dann hast du das Abbild vom PED im AW


    bike

  6. Folgender Benutzer sagt Danke zu bike für den nützlichen Beitrag:

    superkato (13.05.2011)

  7. #5
    Registriert seit
    23.04.2009
    Ort
    Allgäu
    Beiträge
    3.042
    Danke
    241
    Erhielt 863 Danke für 617 Beiträge

    Standard

    Zitat Zitat von superkato Beitrag anzeigen
    Mit PED588 / PEW588 geht es aber dann müsste ich ja erstmal das Wort oder DWort laden und dann aus dem Lademerker das bit ziehen oder?
    so?

    also
    NW1:
    L PED588
    T MD5

    NW2:
    U M5.0
    = A4.0
    Ja, ist so.
    Zitat Zitat von superkato Beitrag anzeigen
    kann man das nicht eigentlich direkt in einem Netzwerk schreiben?^^ Oder gibts da diese "für jeden ausgang nur ein NW" Regel?
    Ne, das geht in einem Netzwerk. Würde ich auf jeden Fall so machen.
    Wenn du es so nach deinem Beispiel machst, dann kannst du auch immer das selber MD nehmen:
    Code:
       L PED588
       T MD4 // gerade ist besser
       U M4.0 
       = A4.0
     
       L PED562
       T MD4
       U M4.0 
       = A4.1
    Gruß
    Paule
    ----------------------------------------------------------------------------
    > manchmal verliert man und manchmal gewinnen die anderen <

  8. Folgender Benutzer sagt Danke zu Paule für den nützlichen Beitrag:

    superkato (13.05.2011)

  9. #6
    Avatar von superkato
    superkato ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    21.04.2009
    Ort
    München
    Beiträge
    220
    Danke
    56
    Erhielt 0 Danke für 0 Beiträge

    Standard

    wieso ist eigentlich gerade besser?

    ah ok also ich kann den MD4 immer wieder benutzen?

    kanns nicht passieren das der MD4 A4.1 die daten von A4.0 noch drin hat?

    (naja ich denk bei einer zyklischen sps ist das halt so und nicht wie in einem c++ programm, wegen dem prozessabbild nicht wahr?)
    TIA V13 + SP1 Update5 Windows8.1

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

    Standard

    Zitat Zitat von superkato Beitrag anzeigen
    wieso ist eigentlich gerade besser?

    ah ok also ich kann den MD4 immer wieder benutzen?

    kanns nicht passieren das der MD4 A4.1 die daten von A4.0 noch drin hat?

    (naja ich denk bei einer zyklischen sps ist das halt so und nicht wie in einem c++ programm, wegen dem prozessabbild nicht wahr?)
    Du kannst das MD öfter beschreiben und dann zu verwenden.
    Doch machen würde ich es nicht, da bei Doppelzuweisung es schwer Fehler ggF zu finden.
    Und du musst auch unterscheiden zwischen Merkern und Ausgang beachten.
    Du kannst mit einem Merker verschiedene Ausgänge ansteuern.

    U M4.0
    = A4.0

    U M 4.1
    = A 4.0

    U M4.0
    = A 4.2

    Alle Varianten sind möglich.


    bike

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

    superkato (13.05.2011)

  12. #8
    Avatar von superkato
    superkato ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    21.04.2009
    Ort
    München
    Beiträge
    220
    Danke
    56
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Naja ich meinte das so:
    Laden vom Slave, dann tauschen bytes -> und ab zu nem DB

    NW1:
    L PED252
    TAD
    T DB23.DBD0

    L PED352
    TAD
    T DB23.DBD12

    L PED452
    TAD
    T DB23.DBD24

    L PED552
    TAD
    T DB23.DBD36
    ist das so ok ?
    TIA V13 + SP1 Update5 Windows8.1

  13. #9
    Registriert seit
    23.02.2007
    Ort
    Hamburg
    Beiträge
    695
    Danke
    198
    Erhielt 84 Danke für 74 Beiträge

    Daumen hoch


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Das funktioniert wunderbar, genauso mache ich es auch immer
    Siemens: Step7, WinCC Flexible, Logo
    Schneider: PL7, Unity Pro, Vijeo Look, Vijeo Designer, XBTL1000, Premium, M340, Twido, Zelio
    Moeller: Galileo, EASY
    B&R: Automation Studio 3.0

  14. Folgender Benutzer sagt Danke zu eYe für den nützlichen Beitrag:

    superkato (15.05.2011)

Ähnliche Themen

  1. Slave-ID vom Modbus Slave einstellen
    Von senmeis im Forum Feldbusse
    Antworten: 3
    Letzter Beitrag: 14.07.2010, 17:24
  2. Antworten: 7
    Letzter Beitrag: 03.04.2008, 21:32
  3. Little/Big Endian
    Von Hannes im Forum Sonstige Steuerungen
    Antworten: 0
    Letzter Beitrag: 18.06.2007, 09:57
  4. Standard-Slave durch Extended-Slave ersetzen
    Von Werner v. Siemens im Forum Feldbusse
    Antworten: 1
    Letzter Beitrag: 24.10.2006, 20:54
  5. Kommunikation zwischen Slave-CPU und Slave-CPU
    Von Ralle im Forum Feldbusse
    Antworten: 3
    Letzter Beitrag: 18.04.2005, 10:03

Lesezeichen

Berechtigungen

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