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

Ergebnis 1 bis 3 von 3

Thema: Kurze Veranschaulichung zum TDB-Befehl in AWL

  1. #1
    Registriert seit
    29.09.2005
    Beiträge
    126
    Danke
    6
    Erhielt 2 Danke für 2 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    heute stolperte ich im AWL-Handbuch über den Befehl TDB zum Tauschen von DI- und DB-Register. Ich kann mir nur nicht wirklich was darunter vorstellen. Kann mir jemand erklären, wo man diesen Befehl verwenden würde? Und habe ich den richtig verstanden, dass ich folgenden dummen Code bauen würde:

    Code:
    AUF DB1
    AUF DI1
    L 5 
    T DBB0
    L 3
    T DIB1
    TDB
    L 5
    L DIB1
    ==I
    SPBN END
    L 5
    T DBB0
    END: NOP 0
    Im Instanz-DB und im GlobalDB Byte 0 Jeweils 5 enthält?

    Danke Gruß


    Jochen
    Zitieren Zitieren Kurze Veranschaulichung zum TDB-Befehl in AWL  

  2. #2
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.200
    Danke
    926
    Erhielt 3.292 Danke für 2.661 Beiträge

    Standard

    Ja, enthalten jeweils 5 - schon nach der vierten Programmzeile.
    Allerdings auch völlig ohne das TDB. Dein "dummer" Code ist unglücklich gewählt, so daß Du den Effekt des TDB gar nicht sehen kannst, weil Du als Global-DB und als Instanz-DB jeweils den selben DB1 öffnest. Danach ist es egal, ob Du auf den Global-DB (via DBB..) oder den Instanz-DB (via DIB..) zugreifst - Du greifst bei beiden Varianten auf DB1 zu.


    Die Operation TDB braucht man in S7 eigentlich nur, wenn man in einem FC einen als BLOCK_DB übergebenen DB als Instanz-DB (bzw. zweiten DB) öffnen will. Das geht nur über Öffnen als Global-DB (AUF #DBnr) und anschließend TDB (tauschen der DB-Register). (In FB geht das Öffnen wie beim FC mit TDB, aber auch ohne TDB aber umständlich indirekt.)

    Bei old-S5-style Programmen wird TDB häufiger genutzt für die historischen teilqualifizierten DB-Zugriffe (ohne Angabe der DB-Nummer, z.B. DBB0), in S7 kann und sollte man jedoch nur vollqualifiziert auf DB zugreifen (z.B. DB1.DBB0), man braucht dabei kein TDB. Auch für indirekte Zugriffe, wo man ein DB-Register braucht, braucht man TDB nicht.

    S7 benutzt TDB intern im normalerweise verborgenen MC7 bei Bausteinaufrufen.

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

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  3. #3
    Jochen ist gerade online Erfahrener Benutzer
    Themenstarter
    Registriert seit
    29.09.2005
    Beiträge
    126
    Danke
    6
    Erhielt 2 Danke für 2 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Danke @PN/DP, damit bin ich informiert. Und das mit der DB-Nummer habe ich tatsächlich völlig unbewusst verpeilt

Ähnliche Themen

  1. Step 7 Frage zum Befehl SET
    Von spirit im Forum Simatic
    Antworten: 11
    Letzter Beitrag: 25.06.2014, 11:27
  2. TIA AWL Befehl aus Step7 in FUP 1200
    Von Itschi77 im Forum Simatic
    Antworten: 25
    Letzter Beitrag: 26.01.2014, 16:43
  3. Step 7 kurze Frage zum Prozessabbild CPU 315-2DP
    Von Studiologe im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 08.12.2013, 16:31
  4. Antworten: 27
    Letzter Beitrag: 26.11.2012, 10:41
  5. Frage zum rnd-Befehl
    Von alonely01 im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 24.09.2008, 16:04

Lesezeichen

Berechtigungen

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