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

Ergebnis 1 bis 5 von 5

Thema: Nicht Multiinstanzfähig?

  1. #1
    Registriert seit
    03.01.2005
    Beiträge
    160
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo, was ist an dem Code nicht richtig?
    Adressregister 2 ? wie muss es denn lauten?
    Warum ist das falsch?

    L P##TEST
    LAR1
    L DIW [AR1,P#0.0]
    T #ERSTESWORD

    Danke im Voraus
    Zitieren Zitieren Nicht Multiinstanzfähig?  

  2. #2
    Registriert seit
    16.06.2003
    Ort
    88356 Ostrach
    Beiträge
    4.811
    Danke
    1.231
    Erhielt 1.101 Danke für 527 Beiträge

    Standard

    ar2 muss dazu, der pointer von ar1 bezieht sich auf den afang des dbs

    in ar2 steht quasi der offset des instanzaufrufes...


    Code:
     
          TAR2                              //AR2 in Akku
          UD    DW#16#FFFFFF                //Bereichscodierung ausblenden
          L     P##Datenquelle
          +D    
          LAR1
    Geändert von Markus (20.09.2007 um 21:18 Uhr)
    "Es ist weit besser, große Dinge zu wagen, ruhmreiche Triumphe zu erringen, auch wenn es manchmal bedeutet, Niederlagen einzustecken, als sich zu den Krämerseelen zu gesellen, die weder große Freude noch großen Schmerz empfinden, weil sie im grauen Zwielicht leben, das weder Sieg noch Niederlage kennt." Theodore Roosevelt - President of the United States (1901-1909)

  3. #3
    ottopaul ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    03.01.2005
    Beiträge
    160
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Danke für deine Antwort.
    Kannst du es nochmal für nicht so geübte erzählen.
    Und wie bringe ich deinen mit meinem Code zusammen?

    danke danke..
    Zitieren Zitieren Nicht Multiinstanzfähig?  

  4. #4
    Registriert seit
    16.06.2003
    Ort
    88356 Ostrach
    Beiträge
    4.811
    Danke
    1.231
    Erhielt 1.101 Danke für 527 Beiträge

    Standard

    na im prinzip nur mein "datenquelle" mit deinem "test" ersetzen.

    TAR2 //AR2 in Akku
    UD DW#16#FFFFFF //Bereichscodierung ausblenden
    L P##TEST
    +D
    LAR1
    L DIW [AR1,P#0.0]
    T #ERSTESWORD



    deine multiinstanz wird in einem fb mehrfach nacheinander aufgerufen oder befindet sich in der deklaration hinter anderen variablen.

    die erste variable die du in deinem mutifb deklariert hast, die hat adresse 0 - zumindest in der deklaration.
    aber in wirklichkeit hat sie adresse 1200 oder 236 oder sonst was, je nachdem an welcher stelle die instanz deklariert wurde bzw. wo sie im idb des aufrufenden fb liegt.

    der fb ist aber doof und weis das nicht, er geht davon aus das er einen eigenen idb hat und der beginnt logischerweise bei adresse 0.

    nun muss dein fb wissen an welcher stelle seine adresse 0 im aufrufenden fb liegt, bzw. wo er im idb des aufrufenden fbs beginnt.

    dieser offset wird beim aufruf eines bausteins in ar2 geschrieben.

    wenn du diesen wert dazu addierst dann gehts...

    nicht vergessen: beide ar im ersten netzwerk in temp variablen sichern und im letzten netzwerk zurückschreiben. spezielle bei der arbeit mit ar2 können böse sachen passieren.
    in deinem fall greifst du nur lesend auf ar2 zu, aber wenn du es mal zum schreiben brauchst, zb. zwei pointer gleichzeitig zum umkopieren von daten, dann am besten gleich im anschluss wieder rücksichern.
    "Es ist weit besser, große Dinge zu wagen, ruhmreiche Triumphe zu erringen, auch wenn es manchmal bedeutet, Niederlagen einzustecken, als sich zu den Krämerseelen zu gesellen, die weder große Freude noch großen Schmerz empfinden, weil sie im grauen Zwielicht leben, das weder Sieg noch Niederlage kennt." Theodore Roosevelt - President of the United States (1901-1909)

  5. #5
    Registriert seit
    19.06.2003
    Beiträge
    197
    Danke
    10
    Erhielt 17 Danke für 13 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo
    Etwas einfacher geht es mit folgendem Code
    Code:
    LAR 1 P##Test
    TAR2  //Adressoffset in Akku1
    +AR1  //Bereichskennung wird nicht verändert
    Gruss Martin
    Zitieren Zitieren Adressversatz aus AR2 zu AR1 addieren  

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

    Markus (21.09.2007)

Ähnliche Themen

  1. Graph FB´s nicht multiinstanzfähig! Workaround?
    Von cosmomaster im Forum Simatic
    Antworten: 30
    Letzter Beitrag: 20.04.2011, 14:06
  2. WinCC Felx Runtime Multiinstanzfähig?
    Von mike_roh_soft im Forum HMI
    Antworten: 10
    Letzter Beitrag: 19.03.2011, 21:07
  3. Antworten: 35
    Letzter Beitrag: 14.09.2010, 14:16
  4. Antworten: 3
    Letzter Beitrag: 12.03.2009, 09:45
  5. nicht Multiinstanzfähig - warum ?
    Von Kieler im Forum Simatic
    Antworten: 10
    Letzter Beitrag: 06.06.2008, 03:53

Lesezeichen

Berechtigungen

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