Instanzen

Deep Blue

Level-2
Beiträge
431
Reaktionspunkte
17
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

in einem FC werden Daten aus Instanz-Datenbausteinen an einen aufgerufenen DB übergeben. Soweit, so gut... Was ich nun nicht nachvollziehen kann ist, wo diese Instanz-Daten her kommen. Wäre es ein FB hätte ich es ja noch verstanden. Aber da es ein FC ist frage ich mich nun woher Sie kommen. Kann es sein, das ein FB diesen FC aufruft und die Daten daher kommen? Hier mal ein Codeschnipzel:
Code:
  AUF   DB   121
      L     DID   70
      T     DBD    0
      L     DID   74
      T     DBD    4
      L     DID   78
      T     DBD    8
      L     DID   82
 
Wenn Du die Möglichkeit hast, trage folgende Zeile vor dem AUF DB121 ein:

L DINO

Und schaue online, was im Akku steht, dann weißt Du welcher DB der InstanzDB ist und kannst es rückverfolgen.
Wenn der Aufruf nicht in einem FB stattfindet, kann es sein, daß der InstDB nach einem FB stehen bleibt, da bin ich mir jetzt nicht sicher.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
"L DINO" ist nicht nötig, man kann sich auch den Inhalt der DB-Register so anschauen. Einfach (in AWL Online-Ansicht) das DB-Register 2 einblenden.
 
Hallo Deep Blue

Wird die FC in einem FB aufgerufen, dann ist der Instanz-DB des FB offen (Nr. steht in DINO).

Wird ein FB, z.B. im OB 1 mit Instanz-DB 17 aufgerufen und es gibt im OB 1 vor dem Aufruf des FB keine Befehlszeile Auf DB ... oder Auf DI ... dann ist nach Durchlauf des FB der Insatanz-DB als DB offen (DBNO = Nr. Instanz-DB), und kein DI (DINI = 0).

Selbst wenn im FB ein DB geöffnet wird (Auf DB 19), dann ist dieser nach Durchlauf des FB NICHT offen sonder immer noch der Instanz-DB.

Ist vor Aufruf eines FB ein DB als Instanz-DB offen, durch die Anweisung Auf DI 17 z.B. oder durch Aufruf eines FB mit Instanz-DB DB 17, dann ist im FB der DB17 nicht als Instanz-DB offen sondern als normaler DB. S7 tauscht vor Eintritt in den FB die DB-Register für DB und DI (DBNO und DINO) aus, und öffnet dann den Instanz-DB (Nummer steht dann in DINO).

Nach Verlassen des FB steht dann in DBNO die Instanz-DB-Nr. und in DINO die DB-Nummer des DB, der vor dem Aufruf des FB mit Auf DI geöffnet wurde.

Zu verwirrend?
 
Einfach im DB-Register 2 schauen welcher DB zu diesem Zeitpunkt im DI Register steht dann solltest du doch nachvollziehen können (per Referenzdazen oder wie auch immer ) welche Aufgabe dieser DB hat und ob er Instanz DB ist oder ein normaler DB der einfach nur ins DI Register geschoben wurde ist.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
"L DINO" ist nicht nötig, man kann sich auch den Inhalt der DB-Register so anschauen. Einfach (in AWL Online-Ansicht) das DB-Register 2 einblenden.

Deinen oben genanntn Baustein beobachten und rechts DB-Register-2 ( wenn nicht schon vorhanden , rechte Maustaste , Einblenden , DB-Register-2 ) anzeigen lassen...
 
Zurück
Oben