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

Page 1 of 2 12 LastLast
Results 1 to 10 of 14

Thread: indirekte Adressierung

  1. #1
    Join Date
    22.05.2008
    Posts
    17
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Default


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,
    ich habe folgenden Aufbau, einen Baustein in SCL der DB's dynamisch generiert, da er das dynamisch macht weiß ich vorher also nicht welcher DB das sein wird und wie groß der wird, bekomme nach dem erzeugen aber die Nummer und die größe des DB's.
    Ist es möglich in WinCC flex über vbScript dynamisch auf diesen DB zuzugreifen und ihn auszulesen?
    so in dieser Art:
    Code:
     WORD_TO_BLOCK_DB(dbNr).DW[Adresse]
    hab bis jetzt nur Multiplexen gefunden, was inderekte Adressierung betrifft, aber das hilft mir hier nicht weiter.

    Danke
    Reply With Quote Reply With Quote indirekte Adressierung  

  2. #2
    Join Date
    22.03.2007
    Location
    Detmold (im Lipperland)
    Posts
    12,402
    Danke
    422
    Erhielt 2,536 Danke für 2,108 Beiträge

    Default

    Hallo,
    das geht meines Wissens nicht.
    Du könntest aber nach dem Erzeugen in das Wort 0 des jeweiligen DB's seine tatsächliche Länge schreiben - dann hätte der DB diese Info auch für die Visu ...

    Gruß
    LL

  3. #3
    Linowitch is offline Neuer Benutzer
    Themenstarter
    Join Date
    22.05.2008
    Posts
    17
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Default

    Hallo Larry,
    die länge ist nicht das Problem.
    Ich hab mal ein Bild hochgeladen, das deutlich machen soll was ich vor hab.
    Der Inhalt soll aus dem dynamisch erstellten DB kommen, somit müsste ich auf Grund der DB Nummer die ich ja erst zum Zeitpunkt der erstellung weiß auf die Daten im DB zugreifen.
    Attached Images Attached Images

  4. #4
    Join Date
    22.03.2007
    Location
    Detmold (im Lipperland)
    Posts
    12,402
    Danke
    422
    Erhielt 2,536 Danke für 2,108 Beiträge

    Default

    Hallo,
    so richtig hilft mir dein Bild nicht weiter ...
    Spontan fällt mir aber trotzdem dazu etwas ein : "Direktory"
    Mein Vorschlag also :
    Du baust dir einen DB, der als eine Art Inhaltsverzeichnis fungiert. Dort kannst du dann zu deinem Index die DB-Nummer und ggf. weitere Rand-Daten ablegen und dann mit der Visu auf diesen Punkt zugreifen und dann weiter agieren ...

    Gruß
    LL

  5. #5
    Linowitch is offline Neuer Benutzer
    Themenstarter
    Join Date
    22.05.2008
    Posts
    17
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Default

    Danke für deine Hilfestellung,
    wenn ich dich jetzt richtig Verstanden habe, habe ich das vom Prinzip her schon so.
    Ich beschreib mal genauer.
    Ich habe einen FB1 mit InstanzDB DB1, von den Bausteinen hab ich die Nummer. Nun erstellt aber der FB1 einen weiteren DB dessen Nummer, Länge, usw. im DB1 ablegt wird, somit hab ich nicht das Problem, dass die Visu die Daten des dynamisch erstellten DB's nicht bekommt.
    Da aber der dynamisch erstellte DB immer eine andere Nummer bekommen kann (und auch soll), und diese auch noch zur laufzeit ändert, kann ich in der Visu nicht statisch auf z.B. DB2.DW0 zugreifen.
    Hier brauch ich jetzt einen befehl wie "WORD_TO_BLOCK_DB(dbNr).DW0"
    um immer auf den DB zugreifen zu können der im DB1 gespeichert wurde.
    Jetzt kann ich eine Variable in flex erstellen, die die dbNr erhält,
    Code:
    dbNr    INT    DB 1 DW0
    aber nicht um auf die Daten zu zu greifen
    Code:
    data    INT    DB [dbNr] DW[index]
    deshalb hoffe ich das man irgendwie im vbScript in flex so auf DB's zugreifen kann wie in SCL.
    Last edited by Linowitch; 05.12.2008 at 15:59.

  6. #6
    Join Date
    27.05.2004
    Location
    Thüringen/Berlin
    Posts
    13,804
    Danke
    746
    Erhielt 3,127 Danke für 2,231 Beiträge

    Default

    Du könntest für die Verbindung mit der Visu doch auch einen festen DB nutzen. Deine Daten werden in den dynamischen DB geschrieben und für die Visu in den festen DB. Will man einen anderen DB in der Visu anzeigen, kopiert man die Daten mit Block_Move um. ODer man spart ich das zweimalige schreiben und kopiert die Daten um, wenn man sie in der Visu sehen will.
    Gruß
    Ralle

    ... there\'re 10 kinds of people ... those who understand binaries and those who don\'t …
    and the third kinds of people … those who love TIA-Portal

  7. #7
    Join Date
    22.03.2007
    Location
    Detmold (im Lipperland)
    Posts
    12,402
    Danke
    422
    Erhielt 2,536 Danke für 2,108 Beiträge

    Default

    ... mit der Indexierung ist es m.E. noch einfacher ...
    Entsprechend deines Bildes könntest du ja auch das erste Auswahlfeld auf Index 1 zugreifen lassen, das 2. auf Zwei usw.

    Innerhalb von Flex gibt es die Möglichkeit zu Multiplexen (das ist im Grunde das was du willst). Du legst dir dort die Variablen so an, dass du nicht mehr auf (z.B.) DB11 und im DB11 auf DBD 16 zugreifst, sondern du trägst an der Stelle deine Pointer-Variablen aus dem Direktory-DB ein.
    Probier das doch bitte mal - ich vermute, dass es das ist, was du haben willst ... Ansosnsten kannst du auch via Script die Pointer-Variablen berechnen und sie dann genauso an den "echten" Variablen antragen ...

    Gruß
    LL

  8. #8
    Linowitch is offline Neuer Benutzer
    Themenstarter
    Join Date
    22.05.2008
    Posts
    17
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Default

    @Ralle, ja das wäre eine Möglichkeit, wenn ich es anders nicht hin bekomme werde ich mit sicherheit diese Variante benutzen. Was mich hier nur stört ist der zusäzliche DB nur wegen der Visu, obwohl die Daten ja schon schön sortiert in einem DB liegen.

    @Larry, das mit dem Multiplexen hab ich schon Probiert, aber so wie ich das verstanden habe, kann ich dann zwar dynamisch auf DBXX zugreifen, aber ich müsste immer noch wissen wieviel Daten in dem DB liegen, oder hab ich das falsch verstanden?
    Könntest du mir das mit den Pointer in vbScript noch genauer erklären, oder hast du einen Link?

    Danke

  9. #9
    Join Date
    22.03.2007
    Location
    Detmold (im Lipperland)
    Posts
    12,402
    Danke
    422
    Erhielt 2,536 Danke für 2,108 Beiträge

    Default

    Quote Originally Posted by Linowitch View Post
    @Larry, das mit dem Multiplexen hab ich schon Probiert, aber so wie ich das verstanden habe, kann ich dann zwar dynamisch auf DBXX zugreifen, aber ich müsste immer noch wissen wieviel Daten in dem DB liegen, oder hab ich das falsch verstanden?
    Könntest du mir das mit den Pointer in vbScript noch genauer erklären, oder hast du einen Link?
    Hallo,
    einen Link oder ein konkretes Beispiel kann ich dir im Augenblick nicht liefern, da ich noch nicht wirklich verstanden habe, was du da vorhast. Vielleicht hilfst du mir da mal weiter ...

    Ansonsten ... bitte denk noch einmal genau über den "Direktory"-DB nach ... Du könntest in ihm (hatte ich auch schon mal angedeutet) z.B. auch die Datenlänge und die Anzahl der Einträge ablegen.

    Gruß
    LL

  10. #10
    Linowitch is offline Neuer Benutzer
    Themenstarter
    Join Date
    22.05.2008
    Posts
    17
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Default


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    So,
    auf Bild1 siehst du wie der erzeugte DB aussieht.
    auf Bild2 dann die Visu wenn der erzeugte DB die Nummer 2 hat und 3 Einträge enthält.
    auf Bild3 wäre es dann der DB5 mit 20 Einträgen wobei ich aber nur auf die ersten 10 zugreifen möchte, erst mit dem klick auf Weiter will ich dann auf die weiteren 10 Einträge zugreifen.

    Und der wechsel von DB2 auf DB5, oder die Änderung der Einträge kann wärend der laufzeit passieren.
    Attached Images Attached Images

Similar Threads

  1. Step 7 Indirekte Adressierung
    By firefox711 in forum Simatic
    Replies: 10
    Last Post: 16.05.2013, 07:55
  2. indirekte Adressierung
    By schneijo in forum Simatic
    Replies: 7
    Last Post: 22.10.2012, 14:42
  3. Indirekte-Adressierung
    By johnij in forum Simatic
    Replies: 2
    Last Post: 14.02.2008, 14:32
  4. Indirekte Adressierung
    By wusel220983 in forum Simatic
    Replies: 6
    Last Post: 18.05.2007, 18:19
  5. Indirekte Adressierung
    By Raab in forum Simatic
    Replies: 1
    Last Post: 20.12.2003, 12:17

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
  •