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

Ergebnis 1 bis 8 von 8

Thema: indizierter Zugriff auf DB

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

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Kann ich auch iwie indiziert auf die Datenbausteinnummer zugreifen? Also per Schleife möchte ich die einzelnen Datenbausteine "durchforsten". Derzeit bin ich nur soweit, dass ich einen Datenbaustein indiziert zugreifen kann mit:

    Code:
    bol := DB0.DX[WordNr, BitNr];

    Alles in SCL .
    Möchte nun den DB0 im nächsten Schleifendurchgang mit DB1 ersetzen.
    Weiß nicht ob ich die Funktion Word_to_Block_DB ganz verstanden habe, aber lässt es sich damit lösen?
    Zitieren Zitieren indizierter Zugriff auf DB  

  2. #2
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.718
    Danke
    398
    Erhielt 2.400 Danke für 2.000 Beiträge

    Standard

    Ja ...!
    Code:
    for myIndex := 1 to 10 by 1 do
       bol := Word_to_Block_DB(int_to_word(myIndex)).DX[WordNr, BitNr];
    end_for ;
    Sollte so funktionieren ...

    Gruß
    LL

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

    hammerheadbene (26.05.2010)

  4. #3
    hammerheadbene ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    10.12.2008
    Beiträge
    6
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Daumen hoch

    Top, habe ich mir fast schon so iwie gedacht. Vielen Dank
    Zitieren Zitieren Klappt bestens  

  5. #4
    hammerheadbene ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    10.12.2008
    Beiträge
    6
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard

    So ein problem gelöst, folgt sogleich das nächste. Nun möchte ich nicht nur auf ein Bit, Byte oder Wort eines Datenbausteines zugreifen, sondern auf ein ganzes Feld. Aber Step 7 erlaubt mit das nicht, wenn ich es mit indiziert mahcen will. Soll ungefähr so aussehen:

    Code:
    for myIndex := 1 to 10 by 1 do
       bol := Word_to_Block_DB(int_to_word(myIndex)).Struktur.Feld;
    end_for ;
    Aber dies ist eben nicht möglich in SCL. Gibt es noch eine andere Variante, außer das Feld auf ein neues zu überschreiben --> wenn ich das mache, habe ich zuviele Lokaldaten und der Speicher ist voll.

  6. #5
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.718
    Danke
    398
    Erhielt 2.400 Danke für 2.000 Beiträge

    Standard

    Hallo,
    SCL kann den Zugriff auf Datenbereiche nur dann realisieren, wenn sie ihm bekannt sind.
    Für deinen Fall heißt das, dass der Zugriff in der oben dargestellten Schleife mit der Breite Doppelwort aufhört.

    Wie wäre es für deinen Fall mit einem Blockmove ?
    Du mußt hier nur die Größe deines Datenfeldes kennen und die jeweilige Anfangsposition in Quelle und Ziel. Daraus baust du dir dann einen ANY-Pointer (siehe dazu auch in der FAQ), den du dann an den SFC übergibst.

    Gruß
    LL

  7. #6
    hammerheadbene ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    10.12.2008
    Beiträge
    6
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Das ist ja leider das Problem. Ich habe mehrer Datenbausteine die viele Strukturen enthalten. Die Strukturen sind dabei unregelmäßig lang und ich weiß nicht wann die anfangen und aufhören. Und um nun nicht alle Datenbausteine einzeln abzufragen, wollte ich das ganze dynamisch gestalten.

    Habe zwar jetzt auch eine Lösung für das Problem, aber so richtig befriedigen tut sie mich nicht.

  8. #7
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.718
    Danke
    398
    Erhielt 2.400 Danke für 2.000 Beiträge

    Standard

    Ich weiß nicht, ob dir das weiterhilft ...
    Du könntest statt DB's Instanzen von (SCL-)FB's nehmen. Hierbei kann dann der FB die/seine daten verwalten und wenn es etwas nach irgendwohin zu übergeben gibt dann kjönntest du die Schnittstelle des FB dafür nehmen oder von dem FB den Transfer auf einen ihm übergebenen Zielbereich vornehmen.

    Gruß
    LL

  9. #8
    hammerheadbene ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    10.12.2008
    Beiträge
    6
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Geht leider auch nicht, da ich nur so ne Art Erweiterung mache und das ganze Zeug mit den DB´s anlegen und so nicht mehr verändern möchte/darf/kann .
    Trotzdem Danke

Ähnliche Themen

  1. Indizierter DB-Zugriff in FUP/KOP ?
    Von HoGe im Forum Programmierstrategien
    Antworten: 3
    Letzter Beitrag: 29.01.2010, 20:36
  2. Indizierter Zugriff auf Datenbaustein im SCL
    Von tarzipan7 im Forum Simatic
    Antworten: 12
    Letzter Beitrag: 05.02.2008, 15:37
  3. SPS Zugriff mit VB5
    Von Otto im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 16.03.2007, 11:22

Lesezeichen

Berechtigungen

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