Instanz DB´s zusammenfassen

1985zottel

Level-1
Beiträge
90
Reaktionspunkte
4
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen.

Ich befaße mich erst seit kurzem mit der S7.
Zur Zeit bin ich eine Bandsteuerung am überarbeiten.

Die einzelnen Bänder wurden bisher über Lichtschranke geregelt (LS Zeit X belegt, dann Band aus).
Es wurde für jedes Band ein Timer benutzt.

Nun habe ich das Programm dahin geändert, dass ich einen FB10 als Multiinstanz gebastel habe in dem ich als Timer den SFB5 benutze.

Diesen Baustein kann ich in einem anderen FB (FB2) mehrfach aufrufen und die Ein und Ausgänge mit den jeweiligen LS bzw. Motoren beschreiben.

Mein Problem besteht nun darin, dass ich diesen Baustein ca. 30 mal aufrufe, und Ihm jedesmal einen eigenen Instanz DB (DB10-DB40)zuordnen muss.

Gibt es eine Möglichkeit diese 30 DB´s irgendwie in einen einzigen DB zusammenzufassen.

MFG
 
jo du musst die multiinstanz im Stat Teil des aufrufenden FBs so oft deklarieren wie du sie brauchst

dann die einzelnen multiinstanzen im aufrufenden FB aufrufen und ausprogrammieren.

Den aufrufenden FB rufst du auf, und übergibst einen DB
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen.

Ich befaße mich erst seit kurzem mit der S7.
Zur Zeit bin ich eine Bandsteuerung am überarbeiten.

Die einzelnen Bänder wurden bisher über Lichtschranke geregelt (LS Zeit X belegt, dann Band aus).
Es wurde für jedes Band ein Timer benutzt.

Nun habe ich das Programm dahin geändert, dass ich einen FB10 als Multiinstanz gebastel habe in dem ich als Timer den SFB5 benutze.

Diesen Baustein kann ich in einem anderen FB (FB2) mehrfach aufrufen und die Ein und Ausgänge mit den jeweiligen LS bzw. Motoren beschreiben.

Mein Problem besteht nun darin, dass ich diesen Baustein ca. 30 mal aufrufe, und Ihm jedesmal einen eigenen Instanz DB (DB10-DB40)zuordnen muss.

Gibt es eine Möglichkeit diese 30 DB´s irgendwie in einen einzigen DB zusammenzufassen.

MFG

Dein Motiv in allen Ehren, doch dir ist klar, dass du beim Ändern in dem Programm aufpassen musst, dass du die Instanzen und FB immer aktuell hälst und beim Einspielen in die CPU die Reihenfolge einhälst, sonst steht deine Kiste.

Ich würde mir das Konzept noch einmal gut überlegen.


bike
 
Danke für die Tipps.

Wie sollte ich das ganze den eleganter Lösen?
Das Problem ist wie gesagt, das ich mit den Timern am Limit bin.
Ich brauche teilweise pro Motor 5 Timer.
 
Eine Siemens-FAQ zum Thema Multiinstanz findest Du hier:

ID18723826 Wie können Multiinstanzen erstellt und aktualisiert werden?

Ein Programmbeispiel für die Verwendung des SFB4 TON in einem FB als Multiinstanz findest Du hier:

http://www.sps-forum.de/showthread.php?t=18370

http://www.sps-forum.de/showpost.php?p=122573&postcount=31

In dem Programmbeispiel wird in einem FB100 ein FB110 zweimal als Multiinstanz aufgerufen.

Und in dem FB110 wird ein SFB4 TON zweimal als Multiinstanz aufgerufen.

Weiterhin sind bei der Verwendung des SFB4 TON und einer Vorgabe des Zeitwertes PT = T#0MS die beiden folgenden Threads zu beachten:

http://www.sps-forum.de/showthread.php?t=17257

http://www.sps-forum.de/showthread.php?t=24195

Gruß Kai
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Dein Motiv in allen Ehren, doch dir ist klar, dass du beim Ändern in dem Programm aufpassen musst, dass du die Instanzen und FB immer aktuell hälst und beim Einspielen in die CPU die Reihenfolge einhälst, sonst steht deine Kiste.

Ich würde mir das Konzept noch einmal gut überlegen.


bike

Genau für solche Fälle sind Multiinstanzen gut!

Als erstes sollte der Multiinstanz-FB in eimem Aufruf getestet und fehlerbereinigt werden, danach sollte es keine bösen Überraschungen geben. Sollte dennoch nochmal ein Update anstehen, dann mache ich eine Kopie des Multiinst.-FB's teste den wieder allein aus und ersetze erst dann den alten FB. Anschließend die Multinstanzen in der Deklaration aktualisieren fertig.

P.S.: Wenn möglich teste ich die Bausteine erst in PLC-SIM aus!
 
Genau für solche Fälle sind Multiinstanzen gut!

Als erstes sollte der Multiinstanz-FB in eimem Aufruf getestet und fehlerbereinigt werden, danach sollte es keine bösen Überraschungen geben. Sollte dennoch nochmal ein Update anstehen, dann mache ich eine Kopie des Multiinst.-FB's teste den wieder allein aus und ersetze erst dann den alten FB. Anschließend die Multinstanzen in der Deklaration aktualisieren fertig.

P.S.: Wenn möglich teste ich die Bausteine erst in PLC-SIM aus!

Du hast recht, doch die Praxis zeigt, dass das so eben nicht immer funktioniert.
Und Multiinstanz in Multiinstanz aufrufen kann gefährlich sein und! muss nicht sein.

bike
 
Also wenn man korrekt vorgeht, dann entstehen keine Probleme!

Größere Änderungen an einer Anlage macht man auch nicht im Produktionsbetrieb!

Ich arbeite gern mit Multiinstanzen! Solche Bausteine werden meiner Bibliothek hinzugefügt, so dass ich diese ohne langes suchen schnell nutzen kann. Wenn ich mal an einen Baustein was ändere / erweitere, so berücksichtige ich immer die Kompatibilität zur Vergängerversion. Das hat den Vorteil, das ich auch zu älteren Projekten kompatibel bin.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Also wenn man korrekt vorgeht, dann entstehen keine Probleme!

Stimmt s.o.
Aber ich würde Multiinstanz in Multiinstanz aufrufen dennoch nicht empfehlen.

Größere Änderungen an einer Anlage macht man auch nicht im Produktionsbetrieb!

Schön für dich, wenn du immer auf Produktionsstopp warten bzw alles abstellen kannst.


bike

P.S: Klar geschieht nichts, wenn man es richtig macht. Doch wer immer alles richtig?
 
Stimmt s.o.
Aber ich würde Multiinstanz in Multiinstanz aufrufen dennoch nicht empfehlen.



Schön für dich, wenn du immer auf Produktionsstopp warten bzw alles abstellen kannst.

Ganz ehrlich. Bevor ich den Ueberblick über 1000 Instanzdbs verliere verwende ich doch lieber nur einen InstanzDB und halte darin die Multiinstanzen parat.

Ich sehe darin wirklich keinerlei Probleme.

Das einzige was mühsam ist, ist z.B. ein FB den man im Zyklischen Programm mit einem Instanzdb aufrufen muss und zustätzlich mit demselben Instanzdb in einem OB. Dann wirds richtig übel wenn man Multiinstanzing machen will.
 
Zurück
Oben