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

Results 1 to 10 of 10

Thread: DB-Nr vom Instanz-DB bei Anypointern?

  1. #1
    Join Date
    11.12.2008
    Posts
    73
    Danke
    39
    Erhielt 9 Danke für 8 Beiträge

    Default


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Muss man bei S7 Anypointern eine DB-Nummer angeben, wenn man auf ein Objekt in einem Instanz-DB zeigen möchte oder nimmt er den aktuellen wert im DI-register?

    was passiert eigentlich, wenn ich als speicherbereich DB statt DI einstelle und den Instanz-DB mit seiner richtigen nummer wie einen DB anspreche?
    klappt das?

    danke
    Reply With Quote Reply With Quote DB-Nr vom Instanz-DB bei Anypointern?  

  2. #2
    Join Date
    08.04.2008
    Location
    Köln
    Posts
    846
    Danke
    39
    Erhielt 245 Danke für 200 Beiträge

    Default

    Hallo Mangokind,

    Muss man bei S7 Anypointern eine DB-Nummer angeben, wenn man auf ein Objekt in einem Instanz-DB zeigen möchte oder nimmt er den aktuellen wert im DI-register?
    Das kann ich nicht mit Sicherheit sagen. Aber ich würde die DI-Nummer und den Speicherbereich sicherheitshalber an den Pointer übergeben.

    was passiert eigentlich, wenn ich als speicherbereich DB statt DI einstelle und den Instanz-DB mit seiner richtigen nummer wie einen DB anspreche?
    klappt das?
    Das funktioniert.

    Grüße
    Gebs

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

    Mangokind (03.02.2009)

  4. #3
    Join Date
    11.12.2008
    Posts
    73
    Danke
    39
    Erhielt 9 Danke für 8 Beiträge

    Default

    danke dir!

  5. #4
    Join Date
    11.09.2007
    Location
    Suedwestpfalz
    Posts
    945
    Danke
    85
    Erhielt 218 Danke für 200 Beiträge

    Default

    Wir programmieren das so:
    Code:
        LAR1  P##E_A_Adresse              // Lade ins AR1 die Adresse des Pointers ( aus der Variablendeklaration des Bausteines )
          TAR2                              // Transferiere AR2 in den AKKU1 !!  ( Im AR2 wird die Adresse der Multiinstanz verwaltet !! )
          +AR1                              // Addiere AR1 und AKKU1 ( Adresse des Pointers im Baustein + Adresse des Bausteins in der Multiinstanz )
          L     D [AR1,P#2.0]               // Lade das Doppelwort aus eben errechneter Adresse des Instanzdbs
          L     DW#16#FFFFFF                // nur die abs. Adresse verwenden
          UD    
          LAR1
    wobeo die Variable E_A_Adresse bereits als Imput-Pointer angelegt ist.

    Um die Frage zu beantworten:
    Du MUSST die DB-Nummer angeben.

    hoffe gehholfen haben zu könneb dtsclipper
    Das Grauen lauert in der Zwischenablage !!

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

    Mangokind (04.02.2009)

  7. #5
    Join Date
    11.12.2008
    Posts
    73
    Danke
    39
    Erhielt 9 Danke für 8 Beiträge

    Default

    ui danke dir!

    das mit dem AR2 bei multiinstanzen hatte ich glatt verdrängt!

  8. #6
    Join Date
    11.09.2007
    Location
    Suedwestpfalz
    Posts
    945
    Danke
    85
    Erhielt 218 Danke für 200 Beiträge

    Default

    Rate mal warum der Code so ausführlich dokumentiert ist...
    Das Grauen lauert in der Zwischenablage !!

  9. Folgender Benutzer sagt Danke zu dtsclipper für den nützlichen Beitrag:

    SIGGI (04.02.2009)

  10. #7
    Join Date
    11.12.2008
    Posts
    73
    Danke
    39
    Erhielt 9 Danke für 8 Beiträge

    Default

    da fällt mir doch gleich noch eine frage ein:

    http://support.automation.siemens.co...subtype=130000

    Beispiel 3:
    [...]
    Weitere Anweisungen bezüglich Aufschlagen von Datenbausteinen bei der speicherindirekten Adressierung sind möglich mit AUF DB[DBW <Nr.>] und AUF DB[DIW <Nr.>].
    nicht, dass ich das jetz unbedingt wissen müsste, da ich eigentlich immer so wie in deren beispiel2 programmiere, aber mir drängt sich die frage auf, WO das DBW bzw DIW hergenommen wird und was da drin stehen soll

    mal angenommen, im DB register steht gerade ne 34 und im DB34.DBW 12 davon steht jetz eine 75

    und jetz will ich den DB 75 öffnen bzw die 75 ins DB register laden.

    schreibe ich dann
    AUF DB[DBW 12]
    und der holt sich die 75 aus dem DB34.DBW 12 ?

    oder wie ist das zu verstehen?

    danke

  11. #8
    Join Date
    08.04.2008
    Location
    Köln
    Posts
    846
    Danke
    39
    Erhielt 245 Danke für 200 Beiträge

    Default

    Hallo Mangokind,

    ganz so funktioniert das nicht. Du musst erst den Inhalt des DBW12 in eine
    Temp-Variable transferieren und dann mit dieser den DB öffnen:

    Code:
    L DB34.DBW 12
    T #DB_Nr
    
    AUF DB [#DB_NR]
    Grüße
    Gebs

  12. Folgender Benutzer sagt Danke zu Gebs für den nützlichen Beitrag:

    Mangokind (05.02.2009)

  13. #9
    Join Date
    11.12.2008
    Posts
    73
    Danke
    39
    Erhielt 9 Danke für 8 Beiträge

    Default

    das mache ich auch immer so, aber laut der siemens-seite geht das auch auf oben erwähnte art. (siehe link)

    ich kapiers bloß nicht

  14. #10
    Join Date
    08.08.2007
    Location
    Dresden
    Posts
    9,882
    Danke
    1,064
    Erhielt 2,056 Danke für 1,632 Beiträge

    Default


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Quote Originally Posted by Gebs View Post
    Hallo Mangokind,

    ganz so funktioniert das nicht. Du musst erst den Inhalt des DBW12 in eine
    Temp-Variable transferieren und dann mit dieser den DB öffnen:
    mann mann mann...einfach mal step7 auf machen

    Code:
    *
          AUF   DB    34                    //DB34 öffnen
          AUF   DB [DBW 12]                 //DB-nummer aus DB34.DBW12 lesen und DB öffnen
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

  15. Folgende 3 Benutzer sagen Danke zu vierlagig für den nützlichen Beitrag:

    dtsclipper (05.02.2009),Gebs (05.02.2009),Mangokind (05.02.2009)

Similar Threads

  1. TIA Openess Project-Instanz bei Anhängen an Prozess
    By lu.koerfer in forum Simatic
    Replies: 3
    Last Post: 11.01.2019, 10:59
  2. Step 7 2te Instanz vom Simantic Manager
    By Schnörpfler in forum Simatic
    Replies: 4
    Last Post: 21.07.2016, 22:55
  3. Replies: 0
    Last Post: 28.04.2009, 18:38
  4. Baugruppe gestört bei abziehen vom PC
    By guggy in forum Feldbusse
    Replies: 7
    Last Post: 17.10.2008, 08:30
  5. Replies: 13
    Last Post: 18.01.2008, 12:47

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •