FB mit gleicher Instanz 2x aufrufen?

Beiträge
27
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,
habe mal eine "blöde" Frage, da ich gerade einen Black-Out habe:
Kann ich einen FB mit IDB an mehreren Stellen aufrufen? Also gleicher FB mit unterschiedlichen Parametern aber immer gleichem Instanz-DB.
Danke! Gruß!
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Können schon, das dürfte jedoch spannende Ergebnisse zeitigen.....

Wenn Du DB's sparen willst, rufe den FB als Multiinstanz auf.
Oder mache einen FC draus, aus dem IDB eine Struktur, die Du in einen DB so oft reinstellst wie benötigt und lege an den FC den jeweiligen Strukrursatz aus dem DB.
 
Hallo,

sicher machbar, aber sinnvoll??? "Wer zuletzt kommt, malt zuerst."; zumindest in der SPS, d.h. die Daten vom letzten Aufruf stehen dann im DB für den ersten Aufruf.
Bei Kommunikations-FBs oder Diagnose-FB usw. sollte man dies tunlichst lassen, die arbeiten über mehrere Zyklen.
Fazit: Bei sauberer Programmierung tut man dies nicht.

MfG
FrankW
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
es ist machbar und je nach Anwendungsfall auch durchaus sinnvoll.
In meinen Programmen, wo ich Kurvenwerte aufzeichne und auswerte ist das gängige Praxis. Der eine Aufruf im OB35 macht die Werte-Aufnahme - der andere Aufruf (z.B. im FC der Station) steuert die Auswertung (die wesentlich zeitintensiver als das OB35-Intervall ist) an.
Zu beachten ist hier, dass ggf. stattfindende Parallel-Operation (hängt sehr von der einzelnen Anwendung ab) sinnvoll verriegelt sein sollten.

Gruß
LL
 
Ich habe mich jetzt dazu entschieden, einen FC zu schreiben, in dem der FB mit seiner Instanz aufgerufen wird. Diesen FC springe ich dann mit den entsprechenden Parametern aus verschiedenen Stellen an. Ist irgendwie eleganter.

@ derwestermann: kühn nicht eher passend zum Forum :-D
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo, man könnte auch in einem übergeordneten FB die 2 Aufrufe als Multiinstanzen einfügen, dann bräuchte man auch nur einen IDB, der übergeordnete FB bräuchte selber keine Parameter.

Gruß Wolfgang
 
also, für die, die es nicht fassen können, dass man einen FB mit gleicher Instanz mehrfach aufrufen könnte (meine Anwendungsfälle):

1. eine Diagnoseroutine wird zweimal im Programm aufgerufen, einmal zu Zyklusbeginn (Anfang OB1, nach PAE) und zu Zyklusende (Ende OB1, vor PAA). Der Routine wird per Schalter mitgeteilt, ob sie nun die Tätigkeit zu Beginn oder zu Ende durchführen soll.

2. Eine Datensammel- und Übermittlungsroutine mit Schalter, ob nun ein neues Datum in den Datenpuffer eingetragen werden soll (bedingter Aufruf) oder die Datenübermittlung stattfinden soll (zyklischer Aufruf).

3. der IDB enthält nur eine Tabelle mit Konstanten.
 
Hallo Kermit,

was hindert dich in deinen Anwendungsfällen daran, die Daten global ab zu legen? Das wäre doch sauberer, oder?


Gruß, Onkel
 
... da ich ja auch etwas ähnliches mache kann ich Kermit schon ganz gut verstehen. Ich kann daran auch nichts verwerfliches sehen - es bleibt zusammen was zusammen gehört ... das ist zumindestens bei mir der Hintergrund dabei - und man muß nicht so fürchterlich mit Pointern um sich schmeissen ...

Gruß
LL
 
Zurück
Oben