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

Seite 3 von 4 ErsteErste 1234 LetzteLetzte
Ergebnis 21 bis 30 von 38

Thema: Multiinstanz FB Zugriff auf Instanz DB von aufrufenden FB

  1. #21
    Registriert seit
    19.07.2010
    Beiträge
    1.289
    Danke
    213
    Erhielt 267 Danke für 233 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Sorry, da hab ich mich verschaut DB78.6 hast du getippt und ich hab das B fälschlicherweise als 8 angesehen.
    mfG Aventinus

  2. #22
    Freki ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    28.01.2013
    Beiträge
    29
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hab das mit dem Speicherwert korrigiert.
    jetzt steht im Stack:

    Adr.-Reg.1: 12.0 Adresse
    Adr.-Reg.2: DB 78.0 Adresse

    Somit wären wir ja schonmal bei der 0.

  3. #23
    Registriert seit
    19.07.2010
    Beiträge
    1.289
    Danke
    213
    Erhielt 267 Danke für 233 Beiträge

    Standard

    Welches Wort möchtest du den Laden. Liegt es im I-DB oder in einem Globalen DB? Und welche Adresse hat es?
    mfG Aventinus

  4. #24
    Freki ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    28.01.2013
    Beiträge
    29
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Ist der Instanz db vom aufrufenden FB. ist der DB dann vom Multiinstanz FB auch aufrufbar mit L DIW xy? weil der Multiinstanz Db ist ja wieder im Db des aufgerufenen integriert?

    Aufgerufen soll dann werden: DB1100 Wort 6.

  5. #25
    Registriert seit
    19.07.2010
    Beiträge
    1.289
    Danke
    213
    Erhielt 267 Danke für 233 Beiträge

    Standard

    OK dann sollte in deinem Adressregister auch der Wert DI 6.0, oder zumindest 6.0 erscheinen.

    Wenn ich dich richtig verstanden habe, liegen deine Sollwerte in der Instanz des aufrufenden FB, dass heist aber auch, dass du den Ofset aus AR2 nicht addieren brauchst.
    Wenn du jetzt mit irgend einer Berechung auf 6 für das DBW 6 kommst und das in deiner Variable Speicherbereich stehen hast wirds ja schon einfacher.

    Übrigens deutet der Variablenname Speicherbereich an dass du vorgeben möchtest ob du von Eingängen, Ausgängen Merker usw. sprichtst. Ist also nicht ganz trefend.
    mfG Aventinus

  6. #26
    Freki ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    28.01.2013
    Beiträge
    29
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Meinte mit Speicherbereich nur dass im InstanzDB bei Station 2 zb Bereich 78+ genutzt werden soll.
    Wann müsste man den Offset addieren? Habe den Code aus mehreren Themen zusammengeflickt. Zumindest soweit verstanden.

  7. #27
    Registriert seit
    19.07.2010
    Beiträge
    1.289
    Danke
    213
    Erhielt 267 Danke für 233 Beiträge

    Standard

    Den Offset musst du addieren wenn du in deiner aufgerufenen Instanz indirekt adressiert. Das kommt daher, dass der FB ja nicht weil ab welcher Adresse im Instanz-DB (des Aufrufenden FB) seine Instanz beginnt.

    Du möchtest ja auf die Daten des aufrufenden FB zugreifen (wobei ich das doch als etwas seltsam erachte) darfst du den Offset nicht addieren, da ja sonst bei jedem deiner drei Multiinstanzen eine andere Aresse berechtet würde.
    mfG Aventinus

  8. #28
    Freki ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    28.01.2013
    Beiträge
    29
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Wie würdest du das dann umsetzen? wollte halt alle Sollwerte in einem DB ablegen, so dass man nicht viele hat. So kann man dann auch alle auf einmal einsehen.

    Also soweit ich das verstehe wird aber indirekt in der aufgerufenen Instanz adressiert. Die nachfolgende Schleife soll ja so lange durch die sollwerte (per Pointer) hüpfen bis der Schleifenzähler gleich ist wie die Positionsanwahl. Und dann den entsprechenden Sollwert übergeben.
    Oder braucht man den Offset dann nur wenn ich indirekt in dem Pseudo-DB des aufgerufenenen FB adressieren will? So verstehe ich das.

  9. #29
    Registriert seit
    19.07.2010
    Beiträge
    1.289
    Danke
    213
    Erhielt 267 Danke für 233 Beiträge

    Standard

    Ich würde einen Global-DB mit Sollwerten anlegen.

    Die Aresse würde ich auch direkt berechen und nicht wie du über eine Schleife und jedes mal vergleichen.

    Vereinfacht:

    10. Position würde wahrscheinlich in DBW 18 liegen (Integer)

    also rechnest du (10 - 1) * 2 und schiebst das Ergebnis um 3 nach links.

    10 weil das 10 Wort
    - 1 weil du bei 0 zu zählen beginnst
    * 2 weil ein Wort 2 Byte hat
    SLD 3 weil das ganze in die Byte-Adresse muss

    Alternativ kannst du anstatt * 2 und SLD 3 auch gleich SLD 4 machen.
    mfG Aventinus

  10. #30
    Freki ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    28.01.2013
    Beiträge
    29
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Joar, klingt auch nicht blöd. werde dem mal nachgehen.

    habe gerade noch etwas rumprobiert, und nicht verstanden warum er folgenden Befehl nicht aufnimmt:

    Code:
          L     #Speicherbereich
          SLD   3
          T     #SpeicherW
      l diw [p##speicherw]
    den letzten Ladebefehl nimmt er nicht. weiß jedoch nicht warum. weil über das SLD 3 sollte ja die Byte und Bitadresse definiert werden.
    vielleicht kannst mir das abschließend noch erklären.

Ähnliche Themen

  1. S7 IEC-Timer, Multiinstanz, Instanz-DB
    Von Mark4you im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 11.07.2011, 14:31
  2. Antworten: 12
    Letzter Beitrag: 18.05.2011, 23:57
  3. Instanz DB vor Zugriff schützen
    Von Pinky im Forum Simatic
    Antworten: 9
    Letzter Beitrag: 05.07.2010, 21:42
  4. Multiinstanz+Zugriff auf Instanzen von SFC
    Von sixt im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 29.08.2009, 18:27
  5. Antworten: 13
    Letzter Beitrag: 18.01.2008, 12:47

Lesezeichen

Berechtigungen

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