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

Ergebnis 1 bis 6 von 6

Thema: S7 bit /byte

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

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo, ich habe eine Frage zur bit/byte Vergabe bei s7.

    Folgendes Problem: Kommunikation SPS mit Roboter.
    Adressen im SEND bereich des DB der SPS sehen folgendermaßen aus:
    Adresse Name Typ Roboteradresse
    0.0 reserve byte
    +1.0 start bool in[17]
    +1.1 stop bool in[18]
    +1.2 gst bool ...
    +1.3 auto bool ...
    +1.4 einzel bool ...
    +1.5 fertig bool ...
    +1.6 io bool ...
    +1.7 nio bool in[24]
    +2.0 x-pos real
    +6.0 y-pos real
    ...





    Bei den Kommentaren zu Adresse +0.0 steht "bit 9-16"
    Da macht es ja dann Sinn dass beim Roboter der erste relevante Wert auf IN[17] liegt. Aber warum ist Adresse 0.0 bis 0.7 mit bit 9-16 belegt anstatt mit bit 1-8 oder noch besser 0-7?
    Und wie geht es dann bei +2.0 weiter - hat der Roboter dann dort in[25] to in[56], bei +6.0 in[57] to in[88]?

    Ein Kollege meinte das wäre was Siemensspezifisches, dass da irgendwie das erste byte eigentlich das zweite sei oder so...

    Gibts da irgendwelche Literatur dazu? Ich suche schon ne weile danach, finde aber nichts. Und da das zu meiner Diplomarbeit gehört macht es sich da immer ganz gut wenn man das mit Literatur hinterlegen kann.

    Danke schonmal für eure Antworten!
    Gruz Thoms

    Achso, die CPU ist 317-2 PN/DP
    die S7 Version 5.4
    Geändert von MyNameIsThoms (03.05.2012 um 09:44 Uhr)
    Zitieren Zitieren S7 bit /byte  

  2. #2
    Registriert seit
    30.10.2009
    Ort
    10 km vom Herzen der Natur
    Beiträge
    1.626
    Danke
    120
    Erhielt 340 Danke für 255 Beiträge

    Standard

    Wikipedia, Stichworte "Big-Endian", "Little-Endian".
    Siemens hat Big-Endian.
    Gruß
    Michael

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

    Standard

    Das Stichwort für die Erklärung ist Little und Big Edian.

    Diese Stichworte bei Wikipedia eingegeben, erklären dir das Phänomen.


    bike
    "Any fool can write code that a computer can understand.
    Good programmers write code that humans can understand."
    --Martin Fowler

  4. #4
    MyNameIsThoms ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    24.04.2012
    Beiträge
    2
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Erstmal vielen Dank!

    Das hat mir schon ein ganzes Stück weitergeholfen und erklärt warum ich bei 4byte (dint/real) byte 1 mit 4 und 2 mit 3 tauschen musste.
    Aber warum es nach dem ersten Byte mit 17 weiter geht versteh ich noch nicht so richtig

    das hab ich:
    1_______8 9______16
    1111 0011 0000 0000

    so ist es bei Siemens:

    9______16 1______ 8
    0000 0000 1111 0011

    wenn also, nach meiner tabelle oben, die ersten 8 bit bit 9-16 sind dann sollte es doch dann mit 1-8 weiter gehen... also der roboter die eingänge in[1] bis in[8] einlesen und nicht in[17] bis in[24], oder?
    oder dreht das nur bei den 8 ersten weil das reserve vom typ byte ist während die nachfolgenden die kleinste adressierbare einheit, also typ bit, haben?
    was mich hier verwirrt ist einfach dass dann bei siemens, zumindest laut meiner tabelle mehr oder weniger 1 byte unterschlagen wird wenn man das byte, bit, bit, bit, bit, bit, bit, bit, bit, dint adressiert

    weil laut tabelle:
    9______16 17_____ 24
    0000 0000 0000 0000

    anstatt
    9 ______16 1_____ 8 17_____ 24
    0000 0000 0000 0000 0000 0000

    thoms

  5. #5
    Registriert seit
    30.01.2009
    Beiträge
    440
    Danke
    25
    Erhielt 48 Danke für 44 Beiträge

    Standard

    Hi,

    also bei Siemens sieht es immer noch so aus:

    DW0 besteht aus DBB0 (High-Byte) und DBB1 (Low-Byte)

    DW0: 00000000 - 00000000
    _____15_____8 - 7______0
    _______DBB0 _____DBB1

    Beispiel: Bit 7 im DW0 = DBX1.7
    Bit 14 im DW0 = DBX0.6

    Gruß
    Move
    Geändert von Move (03.05.2012 um 20:02 Uhr)

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

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von Move Beitrag anzeigen
    Hi,

    also bei Siemens sieht es immer noch so aus:

    DW0 besteht aus DBB0 (High-Byte) und DBB1 (Low-Byte)

    DW0: 00000000 - 00000000
    _____15_____8 - 7______0
    _______DBB0 _____DBB1

    Beispiel: Bit 7 im DW0 = DBX1.7
    Bit 14 im DW0 = DBX0.6

    Gruß
    Move
    Das war nicht so ganz die Frage.
    Es geht darum, dass der Roboter die Reihefolge der Bits und Bytes anders hat als die PLC.

    Die Frage wegen der 3 Byte habe ich nicht verstanden.
    Bei Wort zu griffen sind die Byte vertauscht, beiu einem Doppelwort aber auch.
    Wie willst du auf die 3 Byte zugreifen?

    Wenn du deine Frage so formulierst, dass diese verstanden wird, kann dir auch geholfen werden.


    bike
    "Any fool can write code that a computer can understand.
    Good programmers write code that humans can understand."
    --Martin Fowler

Ähnliche Themen

  1. BIT nach BYTE in SCL
    Von Tigerente1974 im Forum Simatic
    Antworten: 7
    Letzter Beitrag: 28.03.2012, 16:42
  2. Byte in 8 bit teilen
    Von d3nnis.c im Forum Simatic
    Antworten: 23
    Letzter Beitrag: 19.01.2010, 01:30
  3. bit and byte
    Von PG710 im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 30.12.2008, 21:57
  4. Bit/Byte toggle
    Von Farinin im Forum HMI
    Antworten: 13
    Letzter Beitrag: 19.09.2008, 08:55
  5. Mit Button Bit in Byte schreiben?
    Von apachler im Forum HMI
    Antworten: 2
    Letzter Beitrag: 31.03.2006, 09:00

Stichworte

Lesezeichen

Berechtigungen

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