TIA Fehler mit bibliotheksfähigem Baustein

arren

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

TIA V16, 1513-1

ich habe mir einen bibliotheksfähigen Funktionsbaustein FB1 erstellt. Diesen habe ich in eine Funktion mit einer Einzelinstanz hinzugefügt.
Im FB1 enthalten sind noch 10 identische Funktionsbausteine (10 x FB2) jeweils als Multiinstanz.

Wenn ich jetzt den FB1 nur ein einziges Mal im Programm habe, läuft alles wunderbar. Füge ich jedoch zwei weitere FB1 ein, natürlich mit unterschiedlichen Einzelinstanzen, so sind die Wertestatus der Daten im FB1 soweit in Ordnung, nicht jedoch in den jeweiligen FB2.
Ich kann bspw. sehen, dass außen am FB2 ein Eingang anliegt, schaue ich in den Baustein rein, liegt dieses Signal nicht mehr an.

Bevor ich jetzt weiter in Detail gehe; vielleicht fällt jemanden schon ein Widerspruch auf, ansonsten bitte kurz bescheid geben, an welcher Stelle ich konkretisieren soll.
 
Zuletzt bearbeitet:
Kannst du mal die Deklaration der Instanzen und die Aufrufe der FBs zeigen? Und kurz als Rückfrage: FB1 ist der Multiinstanz FB für FB2 - FB11 und dieser funktioniert bei einfachem Aufruf korrekt, bei mehrfachem aber nicht?

Irgendwo mit Globalen Variabeln / Merkern oder ähnlichem gearbeitet? In was ist der Baustein programmiert? Vollsymbolisch umgesetzt?

Oder ist es "nur" ein Problem beim Beobachten und du hast den Aufrufpfad nicht korrekt gewählt?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo UDP,

ich stelle gerade fest, das Problem hier zu verschriftlichen, wäre ein Fass ohne Boden.
Ich bin jedoch nach deiner Antwort auf eine Idee gekommen, wie ich mir mit einer Hilfskrücke behelfen kann.

Der FB1 hatte ja eine fest definierte Nummer, nämlich "1". Mit jedem weiteren verwenden des "FB1" habe ich die Nummer fortlaufend hoch gezählt, was ein sehr geringe Aufwand für mich ist, und es funktioniert nun wieder.

Nachtrag: Was natürlich Mist ist, wenn ich nun Änderungen an den Baustein durchführe, muss ich das manuel an jedem der fortgezählten FBs machen.
 
Zuletzt bearbeitet:
Wofür wird die Nummer denn benötigt? Vielleicht lässt sich das auch anders umsetzen, sodass du den Baustein auch wirklich Bibliotheksfähig bekommst. Ohne jetzt die exakte Anwendung zu kennen, aber die Nummer über einen Input holen und außen an den FB zu schalten würde wahrscheinlich das Problem auch umgehen und Bibliotheksfähig sein.
 
Nur so Zwischenfragen.

Wenn du bei den beiden FBs die Übersetzungseigenschaften ansiehst, steht bei beiden "Das Objekt ist bibliothekskonform."?
1674654095665.png

Bei deinem MultiInstanzAufruf hast du schon immer eine unterschiedliche Instanz aufgerufen und nicht immer die Selbe?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Wofür wird die Nummer denn benötigt? Vielleicht lässt sich das auch anders umsetzen, sodass du den Baustein auch wirklich Bibliotheksfähig bekommst. Ohne jetzt die exakte Anwendung zu kennen, aber die Nummer über einen Input holen und außen an den FB zu schalten würde wahrscheinlich das Problem auch umgehen und Bibliotheksfähig sein.

Mit Nummer, meine ich die FB-Nummer, hier 4000:
1674654666817.png
 
Die Nummer des Bausteins sollte doch aber keine Auswirkungen haben. Oder verwendest du die FB-Nummer irgendwo (warum auch immer?) im Programm.

Möglicherweise doch keine einzelnen Instanz-DBs für jeden Aufruf verwendet? Zeig mal bitte Screenshots deiner 3 FB1 Aufrufe inklusive den IDBs dazu.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Bei deinem MultiInstanzAufruf hast du schon immer eine unterschiedliche Instanz aufgerufen und nicht immer die Selbe?

Die Multiinstanzen liegen ja alle letzten Endes in der Einzelinstanz. Die Einzelinstanzen sind alle unterschiedlich, die Multiinstanzen sind jedoch identisch. Was ja kein Problem ist, da die Einzelinstanzen sich ja unterscheiden.

Ansonsten haben die 10 Multiinstanzen im FB1 natürlich unterschiedliche Namen.
 
Hallo UDP,

ich stelle gerade fest, das Problem hier zu verschriftlichen, wäre ein Fass ohne Boden.
Ich bin jedoch nach deiner Antwort auf eine Idee gekommen, wie ich mir mit einer Hilfskrücke behelfen kann.

Der FB1 hatte ja eine fest definierte Nummer, nämlich "1". Mit jedem weiteren verwenden des "FB1" habe ich die Nummer fortlaufend hoch gezählt, was ein sehr geringe Aufwand für mich ist, und es funktioniert nun wieder.

Nachtrag: Was natürlich Mist ist, wenn ich nun Änderungen an den Baustein durchführe, muss ich das manuel an jedem der fortgezählten FBs machen.
Hä? Warum nummer fortlaufend hochzählen? Denkst du vielleicht ein FB könne nur einmal verwendet werden? Du hast ja nur von zwei FBs gesprochen. Egal wie oft du FB1 oder FB2 aufrufst, in deinem Projekt bleiben immer nur zwei FBs (vernachlässigt man den Rest vom Programm)
 
Hä? Warum nummer fortlaufend hochzählen? Denkst du vielleicht ein FB könne nur einmal verwendet werden? Du hast ja nur von zwei FBs gesprochen. Egal wie oft du FB1 oder FB2 aufrufst, in deinem Projekt bleiben immer nur zwei FBs (vernachlässigt man den Rest vom Programm)

Ich weiß, dass ein FB mehrmals aufgerufen werden kann, jedoch hat hier eine fortlaufende Nummerierung Abhilfe geschaffen.
 
Mach doch bitte mal einen Screenshot von dem Aufruf inklusive Instanz DB von deinem FB1. Hier sind glaube bei allen beteiligten Fragen offen und so ein Bild sagt mehr als tausend Worte.
 
Ich denke es hat immer funktioniert, aber das Beobachten der aktuellen Instanz funktioniert nicht richtig. Du kannst die Daten auch im Instanz-DB anschauen, um zu wissen ob der FB richtig arbeitet.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hast du bei dem Beobachten des FB2 auch gesagt, welchen FB2 Aufruf du beobachten willst? Man kann rechts in den Task Cards den Aufruf des FBs wählen und bekommt nur die online Werte dieses FB2 Aufrufs angezeigt. Ansonsten ist es ein Produkt des Zufalls, welcher Online Wert in deiner FB2 Ansicht gezeigt wird.
Du kannst dir aber auch die IOs in dem Instanz DBs des jeweiligen FB1 anschauen, dessen FB2 du beobachten willst.
 
Zurück
Oben