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

Ergebnis 1 bis 10 von 10

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

  1. #1
    Registriert seit
    11.12.2008
    Beiträge
    73
    Danke
    39
    Erhielt 9 Danke für 8 Beiträge

    Standard


    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
    Zitieren Zitieren DB-Nr vom Instanz-DB bei Anypointern?  

  2. #2
    Registriert seit
    08.04.2008
    Ort
    Köln
    Beiträge
    844
    Danke
    39
    Erhielt 244 Danke für 199 Beiträge

    Standard

    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
    Registriert seit
    11.12.2008
    Beiträge
    73
    Danke
    39
    Erhielt 9 Danke für 8 Beiträge

    Standard

    danke dir!

  5. #4
    Registriert seit
    11.09.2007
    Ort
    Suedwestpfalz
    Beiträge
    917
    Danke
    81
    Erhielt 209 Danke für 192 Beiträge

    Standard

    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
    Registriert seit
    11.12.2008
    Beiträge
    73
    Danke
    39
    Erhielt 9 Danke für 8 Beiträge

    Standard

    ui danke dir!

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

  8. #6
    Registriert seit
    11.09.2007
    Ort
    Suedwestpfalz
    Beiträge
    917
    Danke
    81
    Erhielt 209 Danke für 192 Beiträge

    Standard

    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
    Registriert seit
    11.12.2008
    Beiträge
    73
    Danke
    39
    Erhielt 9 Danke für 8 Beiträge

    Standard

    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
    Registriert seit
    08.04.2008
    Ort
    Köln
    Beiträge
    844
    Danke
    39
    Erhielt 244 Danke für 199 Beiträge

    Standard

    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
    Registriert seit
    11.12.2008
    Beiträge
    73
    Danke
    39
    Erhielt 9 Danke für 8 Beiträge

    Standard

    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
    Registriert seit
    08.08.2007
    Ort
    Dresden
    Beiträge
    9.648
    Danke
    1.059
    Erhielt 2.046 Danke für 1.627 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von Gebs Beitrag anzeigen
    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)

Ähnliche Themen

  1. Instanz-DB
    Von SPS_NEU im Forum Simatic
    Antworten: 11
    Letzter Beitrag: 18.03.2009, 14:08
  2. SCL : Instanz in Instanz
    Von Larry Laffer im Forum Simatic
    Antworten: 11
    Letzter Beitrag: 16.02.2009, 11:01
  3. Instanz-DBs -> VAT
    Von SPSKILLER im Forum Simatic
    Antworten: 10
    Letzter Beitrag: 02.06.2008, 03:20
  4. Antworten: 13
    Letzter Beitrag: 18.01.2008, 12:47
  5. Instanz-DB
    Von titinparma im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 15.10.2007, 17:56

Lesezeichen

Berechtigungen

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