Multi-Instanzen

JOKER83

Level-1
Beiträge
30
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Leute.

Ich hätte da mal eine allgemeine Frage zu Multiinstanzen.

Mach gerade ne Schule für Automatisierungstechnik und arbeiten grade an dem Abschlussprojekt und seit dem ich daran Arbeite kommen immer mehr und mehr Fragen auf ... aktuellste Frage --> wann wie wo Multiinstanzen verwenden?

ich hab z.b. einen SCL Baustein dabei der Daten von einem Stellplatz auf den anderen schiebt, diesen Baustein verwende ich ca. 23x im Programm, jedoch der Aufruf diese Bausteins kann nie mehr als 1x gleichzeit erfolgen (durch die verschiedenen Statbedingungen) also denke ich brauche ich keine Multiinstanzen davon - sehe ich das richtig? (obwohl ich auch versucht habe den Baustein gleichtzeitig öfter aufzurufen, hat auch geklappt, aber da die Aufrufe in einme FC hintereinander ausgeführt werden auch verständlich warums keine Probleme gab)

mich würde einfach interessieren was Ihr, also die erfahreren SPS Programmeirer dazu sagt, wann sollte man Multiinstanzen verwenden? - sollte man sobald man einen "Vorlage"-Baustein öfter verwendet sowieso als Multiinstanz verwenden usw.?

wäre über eure Meinungen sehr dankbar!

mfg
 
Multiinstanzbausteine eignen sich hervorragend zum Aufbau einer Bibliothek. Z.B. für einen Baustein, der eine Motoansteuerung übernimmt- mit allem drum und dran: Startbefehl, Handbedienung, ext. Störungen, Bedienung, .....

Multiinstanzenbausteine haben keine absolut verwendete Elemente (Merker, Timer, etc.) dadurch kann man sie mehrfach aufrufen und sie problemlos in vorhandene Steuerungen integrieren, ohne dass man befürchten muss Recourcenkonflikte zu bekommen. Alles, was der Instanzaufruf benötigt wird in den zugehörigen InstanzDB gespeichert.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
ok danke erstmal, son ungefähr hats uns unser Lehrer auch erklärt ;)

würde gern eure persönlichen Meinung dazu wissen, wie ihr das so praktisch immer macht, verwendet ihr sowieso Multiinstanzen wenn ihr einen "Vorlage"-Baustein öfter verwendet oder eben nicht wenns nicht unbedingt nötig ist.

würd mich einfach interessieren
 
ok danke erstmal, son ungefähr hats uns unser Lehrer auch erklärt ;)

würde gern eure persönlichen Meinung dazu wissen, wie ihr das so praktisch immer macht, verwendet ihr sowieso Multiinstanzen wenn ihr einen "Vorlage"-Baustein öfter verwendet oder eben nicht wenns nicht unbedingt nötig ist.

würd mich einfach interessieren

Ich habe es mir schon fast angewöhnt, FB's wenn möglich, immer multiinstanzfähig aufzubauen.
 
Zitat von JOKER83
würde gern eure persönlichen Meinung dazu wissen, wie ihr das so praktisch immer macht, verwendet ihr sowieso Multiinstanzen wenn ihr einen "Vorlage"-Baustein öfter verwendet oder eben nicht wenns nicht unbedingt nötig ist.
Wenn ich ein neues Projekt anfange, dann kopiere ich mir aus meinen alten Projekten erstmal alle benötigten Funktionsbausteine raus (Mittelwertbildung, Sortierbaustein, Betriebsstundenzähler, u.s.w.)
Diese Bausteine sind alle Multiinstanzfähig. :-D

Das Hauptprogramm wird nun meistens in verschiedene FB's geschrieben damit ich gleich meinen Instanz DB für Berechnungen und zum Merken von verschiedenen Zwischenergebnissen dabei habe.
Nun kann ich bei Bedarf einfach z.Bsp. den Baustein für die Mittelwertberechnung als Multiinstanz einfügen. :-D
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Na gut, ich verwende so gut wie keine Multiinstanzen und FB auch nur, wenn nötig. Die meisten Funktionen schreibe ich als FC mit Übergabe von globalen Daten, um Werte zwischenspeichern zu können. Außerdem gibts noch einige globale DB, die halt in mein System passen.

Warum? Ich war es einfach leid, daß das Online betrachten bestimmter Bausteine gar nicht oder nur eingeschränkt ging. (Ok, das wurde von Siemens bereits etwas verbessert) Außerdem muß ich ehrlich sagen, daß ich nicht bei jeder Änderung am IDB Klimmzüge machen will, wenn ich die neuen Bausteine in das AG spiele. Auch der Verlust der Daten im IDB, beim Ändern der Struktur eines FB paßt mit nicht in den Kram. So gesehen kann ich in meinen Projekten immer (ok 99,9% ;) ) online Änderungen vornehmen.
 
Da hast Du schon recht Ralle,

wenn ich in dem FB im Statischen Teil etwas ändere muss der IDB neu generiert werden.
Aber mit der Funktion Konsistenzprüfung (was ich sowieso vor jeder Datensicherung mache) wird das ja automatisch erledigt.
Natürlich muss ich dann noch die richtige Reihenfolge beim übertragen einhalten. (erst DB, dann FB, dann OB) aber das sollte ja Routine sein.

Und ganz Wichtig:
(Wie Du auch erwähnt hast)
In dem IDB dürfen auf keinen Fall irgendwelche Sollwert abgelegt werden, da sie beim nächsten generieren weg sind. Die Werte dürfen immer nur zugewiesen werden.

Aber die FB's sind halt super praktisch und irgendwelche Nebenwirkungen hast ja immer. :rolleyes:
 
Hallo,
in meiner "Bibliothek" gibt es mittlerweile einen ganzen Haufen von zweckbestimmten "Standard"-Bausteinen. Hierbei halten sich FB's (als Multi-Instanz) und FC's in etwa die Waage. Ein Baustein kommt dann bei mir in die Bibliothek, wenn ich davon ausgehe, dass ich ihn in dieser Form öfter wiederverwende. Da in unseren Maschinen bestimmte Baugruppen oder aber auch Unterfunktionen wiederkehren ist das aus meiner Sicht eine ganz sinnvolle Angelegenheit. Ich muss hier aber auch dazu sagen, dass die genannten Bausteine im wahrsten Sinne des Wortes Bausteine zur Erstellung der Maschinenfunktion darstellen.

Ich hoffe, damit etwas weitergeholfen zu haben ...

Gruß
LL
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Wird mir langsam peinlich, aber ich muss da Ralle wieder zupflichten.

Ich gehe mal davon aus , das es Ralle etwas aus anderer Sicht sieht, vieleicht so wie ich.... :confused:

Ich kann den ganzen HickKack über MultiInstanzen und FB und so was zum Teil echt nicht mehr hören. Jeder Anfänger glaubt anscheinend das dies der Quell aller Programmiertechniken ist.
Ist gibt gute Gründe und Einsatzzwecke für FB mit Multiinstanzen, aber..
Man muss nicht für jeden Kack einen FB haben, gerade bei diesem Tread habe ich die Vermutung das alles in einem FC erschlagen gewesen wäre.

Dieselbe Kacke gilt für SCL, jeder muss anscheinend einen Ventilbaustein in SCL schreiben, was soll der Kack ? SCL ist Prima, aber spielt seine Stärken bestimmt nicht bei der Ansteuerung von einem Ventil oder Motor aus.

Die leuts hören irgendwas und versuchen dies umzusetzen ohne ihr Handwerk insbesonders kop,fup,awl usw zu können.

So. ist aber nicht gegen den Themenstarter gemünzt, wollte ich nur mal geschrieben haben.
 
@Jabba:
Meinst du nicht, dass du da jetzt "mit Kanonen auf Spatzen schiesst" ?
Ich kann den Sinn dieser Frage schon durchaus nachvollziehen und habe ja auch meine Meinung dazu gesagt ... und ich möchte behaupten, dass ich (zumindestens an dieser Stelle) genau weiß, wovon ich da rede ...

Gruß
LL

Anhang:
ich habe übrigens sowohl Bausteine, die das Pendant zu einer "einfachen Ventil-Ansteuerung" darstellen, wie auch solche, die eine Kurve aufzeichnen und diese anschliessend auswerten - z.B. mittels FFT ...
 
Zuletzt bearbeitet:
Ich kann den Sinn der Frage auch verstehen, deshalb komme ich ja darauf.
Und ich kann mir vorstellen , da z.B. du und ralle genau wisst wovon ihr redet.
Mir geht es hier darum, das für viele die Entscheidungsgrundlage für den Einsatz der Techniken fehlt. Dadurch werden die Lösungen eventuelle viel aufwändiger als notwendig.
Wenn einer in der Schule die Aufgabe bekommt einen FB in SCL als Multiinstanz zu machen, gut so. Ist zum üben, aber in der Praxis krieg ich machmal die Krise. Ich hab jetzt einen neuen "großkunden" die haben für alles Standardbausteine und Musterprojekte. Alles prima, aber die CPU war schon voll bevor ich angefangen habe.

Meinst du nicht, dass du da jetzt "mit Kanonen auf Spatzen schiesst" ?

Ich sehe ja in allem den Sinn, es hat jede Sache einen Vorteil, aber ich stelle fest , das viele immer die "Eierlegende Wollmichsau" erstellen wollen.

Da wird oft viel Aufwand betrieben, weil den Baustein könnte ich bestimmt noch mal brauchen, SUPER ! Der besteht dann aus vier Zeilen, wenn ich so etwas brauche schreibe ich mir das in "Echtzeit" neu in mein Projekt.

Ich gebe Dir recht das so eine Bibliothek Sinn macht, und dann natürlich auch frei von Adressen und Multiinstanz sein sollte. Mir geht es einfach darum :
Nicht mit Kanonen auf Spatzen schiessen

Ich liebe halt kleine , einfach gestrickte Bausteine, die jeder (oder fast jeder) sofort nachvollziehen kann. Und wenn ich nix passendes habe, wird halt was geschrieben, und nicht ein baustein eingefügt , der tausend Sachen könnte, aber hier nicht benötigt werden.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
... und nicht ein baustein eingefügt , der tausend Sachen könnte, aber hier nicht benötigt werden.

Ich nehme mal den letzten Satz heraus, da der (für mich) den "Kern der Sache" darstellt. Ein solcher Baustein kann dann natürlich nur das Eine - z.B. einen Sortierarm auf eine (von Aussen) vorgegebene Position fahren. Etwas anderes kann der dann nicht.
Eine "Eierlegende Wollmilchsau" halt ich auch für Nonsens. Es gibt aber halt (vor allem dann, wenn deine Maschinen immer wieder ähnlich sind) auch wiederkehrende Funktionen - warum sollte man für die dann immer wieder neu den gleichen Baustein schreiben ?

Ich denke aber, dass wir uns schon verstehen. Ich habe auch verstanden, was du da meinst. Ich hatte auch schon mal mit solchen "Super-FB's" zu tun, die (übertragen gesprochen) sowohl eine Waschmaschine steuern wie auch eine Jalousie fahren können - sowas meinte ich mit meinem Exkurs natürlich nicht !!!

Gruß
LL
 
Klar kommt es immer auf den Zweck an und auch auf die Sichtweise.

Aus heutiger Sicht würde ich mein derzeitiges System auch etwas anders aufziehen. Da hängen schon wieder zu viele Globale Variablen drin. Das merkt man immer dann, wenn man an jemanden anderes einen Baustein weitergeben will. Das ist dann nicht immer möglich. Nur, ein einmal seht gut funktionierendes System ändert man nicht ohne Not! Daher erstelle ich meine neueren Bausteine so, daß sie ebend nicht von globalen Variablen abhängig sind. Ist manchmal etwas zeitraubender aber nicht soooo gewaltig. Ein FB muß es aber nur selten sein, die meisten Dinge erschlägt man mit einem FC und einem außen anparametriertem DWord, als "Gedächtnis". Da braucht man sich auch keine großen Gedanken über Multiinstanz oder nicht zu machen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
JOA, schönen Dank für die vielen "Antworten" / Meinungen von euch hat mir schon recht weitergeholfen bis jetzt.

In unsrem Untericht ists auch immer eher so rübergekommen dass ein FB das nonplusultra ist gegen einen FC, ich persönlich bei dem jetzigen Projekt hab zu 99% FC's, verwende FB's wirklich nur dann wenn ich sie brauche - z.b. hab ich einen FB mit den ganzen SFB4 Timern drinnen dass ich für mittlerweile 30 Timer nur mehr einen DB hab, dass ist schon sehr praktisch! - jedoch bin ich mir nie wirklich Sicher wo brauche bzw. wo sollte ich am besten FB's für Multiinstanzen nehmen.

naja, viell. wird hier ja noch ein wenig weiterdiskutiert, finds auf jeden fall sehr interessant!

Danke nochmal!
 
Um mal auf die Frage zurückzukommen.

Wenn ich einen Baustein schreibe, der Multiinstanzfähig ist , dann sollte auch jede Instanz ihren eigenen Db bzw. Bereich im DB haben.
Es kann gut sein, das dein baustein im Moment damit funktioniert weil dein Baustein im Instanzdb keine Werte abspeichert. Aber was passiert wenn Du auch nur eine kleine Änderung machts, z.B. eine Flanke im Stat bereich anlegen, schon geht nix mehr, und dann der fehler suchen :confused:.

Also sauber wäre für mich nur deine 23 Aufrufe in einem DB als Multiinstanz abzulegen.
 
joa das dacht ich mir auch, ich mein es funktioneirt soweit mit FC's aber ich finds auch sauberer wenn ich die ganze sache in FB's schreibe und dan eben Multiinstanzen - 23x

THX
 
Zurück
Oben