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

Ergebnis 1 bis 7 von 7

Thema: Adressierung Datenbaustein mit nicht optimertem Bausteinzugriff

  1. #1
    Registriert seit
    04.02.2011
    Beiträge
    84
    Danke
    33
    Erhielt 4 Danke für 4 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    ich muss einen vordefinierten Datenbaustein mit vorgegebener Struktur für eine BDE in der Steuerung ablegen.
    Komisch ist folgendes:

    So soll es aussehen:
    DB500.DBX0.0 BOOL
    DB500.DBX0.1 BOOL
    DB500.DBX0.2 BOOL
    DB500.DBX0.3 BOOL
    DB500.DBX0.4 BOOL
    DB500.DBX0.5 BOOL
    DB500.DBX0.6 BOOL
    DB500.DBX0.7 BOOL
    DB500.DBD1 DINT
    ...

    TIA lässt jetzt leider die Adresse DB500.DBD1 für das DINT nicht zu, sondern generiert die Adresse DB500.DBD2, lässt also automatisch ein Byte frei.

    Das z.B. funktioniert:
    DB500.DBX0.0 BOOL
    DB500.DBX0.1 BOOL
    DB500.DBX0.2 BOOL
    DB500.DBX0.3 BOOL
    DB500.DBX0.4 BOOL
    DB500.DBX0.5 BOOL
    DB500.DBX0.6 BOOL
    DB500.DBX0.7 BOOL
    DB500.DBB1 BYTE
    DB500.DBD2 DINT

    Weiss eventuell jemand warum das so ist?
    Zitieren Zitieren Adressierung Datenbaustein mit nicht optimertem Bausteinzugriff  

  2. #2
    Registriert seit
    12.03.2011
    Ort
    Erzgebirge
    Beiträge
    249
    Danke
    77
    Erhielt 29 Danke für 27 Beiträge

    Standard

    Zitat Zitat von Berger Beitrag anzeigen
    TIA lässt jetzt leider die Adresse DB500.DBD1 für das DINT nicht zu, sondern generiert die Adresse DB500.DBD2, lässt also automatisch ein Byte frei.
    Das war auch in S7 Classic so.

  3. #3
    Registriert seit
    04.02.2011
    Beiträge
    84
    Danke
    33
    Erhielt 4 Danke für 4 Beiträge

    Standard

    Tatsache !!!

    Is mir noch nie aufgefallen ... !

  4. #4
    Registriert seit
    12.03.2011
    Ort
    Erzgebirge
    Beiträge
    249
    Danke
    77
    Erhielt 29 Danke für 27 Beiträge

    Standard

    Am besten du vereinbarst eine andere Datenstruktur.

    Alternativ könnte man evtl. byteweise Schreiben. Ist aber Mist:

    L DINTWert
    T Localvariable1 // 1.DWord Lokale Adresse 0
    L LB0
    T DB500.DBB1
    L LB1
    T DB500.DBB2
    L LB2
    T DB500.DBB3
    L LB3
    T DB500.DBB4
    Geändert von holgero (01.02.2015 um 11:25 Uhr) Grund: Fehler: DBD...

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

    Berger (29.01.2015)

  6. #5
    Registriert seit
    24.04.2013
    Beiträge
    309
    Danke
    23
    Erhielt 160 Danke für 88 Beiträge

    Standard

    Hallo zusammen

    als Quelle hast du ein Byte, also auch als Ziel nur ein Byte verwenden!
    Code:
    T %DB500.DBB1
    T %DB500.DBB2
    T %DB500.DBB3
    T %DB500.DBB4
    verwenden!

    Wenn du für eine 1200/1500 programmierst, dann würde in SCL auch

    Code:
    %DB500.DBB1 := dintwert.%B3;
    %DB500.DBB2 := dintwert.%B2;
    %DB500.DBB3 := dintwert.%B1;
    %DB500.DBB4 := dintwert.%B0;
    Ich gehe mal davon aus, dass deine BDE big-endian will.

    In KOP/FUP geht das genauso -- eben mit MOVE

    'n schön' Tach auch
    HB

  7. Folgender Benutzer sagt Danke zu HelleBarde für den nützlichen Beitrag:

    holgero (01.02.2015)

  8. #6
    Registriert seit
    09.01.2012
    Beiträge
    466
    Danke
    25
    Erhielt 38 Danke für 35 Beiträge

    Standard

    Wenn es nur darum geht die Anordnung zu ändern würde sich doch

    Code:
    SWAP()
    empfehlen

  9. #7
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.192
    Danke
    925
    Erhielt 3.292 Danke für 2.661 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Es geht hier darum, einen DINT auf einer ungeraden Adresse zu deklarieren. Ein SWAP() hilft bei dem Problem nicht.

    Man könnte die Struktur mit einem führenden Dummy-Byte deklarieren und zum Senden das führende Byte abschneiden bzw. ab dem zweiten Byte senden.

    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

Ähnliche Themen

  1. TIA 1500 - optimierter Bausteinzugriff - Sinn/Unsinn ?
    Von Draco Malfoy im Forum Simatic
    Antworten: 34
    Letzter Beitrag: 10.09.2014, 22:46
  2. Ungerade Adressierung im Datenbaustein
    Von matziane im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 11.10.2011, 11:11
  3. Datenbaustein nicht gefunden
    Von SPS_NEU im Forum Simatic
    Antworten: 22
    Letzter Beitrag: 18.03.2009, 08:17
  4. Datenbaustein übernimmt Anfangswerte nicht
    Von bluebird277 im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 05.09.2008, 11:40
  5. Antworten: 3
    Letzter Beitrag: 28.09.2005, 15:46

Lesezeichen

Berechtigungen

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