TIA Fehler mit bibliotheksfähigem Baustein

arren

Active member
Beiträge
29
Punkte Reaktionen
1
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:

UDP

Well-known member
Beiträge
254
Punkte Reaktionen
43
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?
 
OP
A

arren

Active member
Beiträge
29
Punkte Reaktionen
1
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:

UDP

Well-known member
Beiträge
254
Punkte Reaktionen
43
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.
 

R4m80

Well-known member
Beiträge
45
Punkte Reaktionen
12
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?
 
OP
A

arren

Active member
Beiträge
29
Punkte Reaktionen
1
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
 

UDP

Well-known member
Beiträge
254
Punkte Reaktionen
43
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.
 
OP
A

arren

Active member
Beiträge
29
Punkte Reaktionen
1
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.
 

TP-Inc

Well-known member
Beiträge
859
Punkte Reaktionen
165
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)
 
OP
A

arren

Active member
Beiträge
29
Punkte Reaktionen
1
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.
 

UDP

Well-known member
Beiträge
254
Punkte Reaktionen
43
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.
 

funkey

Well-known member
Beiträge
314
Punkte Reaktionen
91
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.
 

Michitronik

Well-known member
Beiträge
305
Punkte Reaktionen
97
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.
 
Oben