Vorteil von Multiinstanzen

Holger Levetzow

Level-1
Beiträge
69
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Guten Morgen allen,

welche Vorteile hat die Nutzung von Multiinstanzen? Der Programmieraufwand scheint mir ziemlich gleich zu. Ich rufe alle FB’s auf, belege IN/OUT, …
Ist der einzige Unterschied, dass ich nicht so viele DB’s habe oder gibt es noch andere Vorteile?

Mit freundlichen Grüßen und Danke
Holger
 
Da man die Multiinstanz-FBs im STAT-Bereich des aufrufenden FB deklariert, kann man auch gleich Aussagekräftige Namen vergeben. Zum Beispiel bei einem Multi-instanzfähigen FU-Baustein #Fahrantrieb oder #Hubantrieb statt nur den FB mit namen "FU".
Ansonsten habe ich bei größeren Anlagen gern Multiinstanzen, wegen der Übersichtlichkeit (weniger DB's).
Nachteil von Multiinstanzen: Die Variablen der FB's sind nicht mehr "Bedien-u.Beobachtungsfähig" wenn sie in einer Multiinstanz aufgerufen werden.
Gruß Approx
 
Wenn ich mir einen FB bastele, dessen E/A-Parameter Bedien-u.-Beobacht fähig sind (S7_m_c =True) kann ich die Variablen per OS-Übersetzung nach WinCC mappen. Füge dich diesen FB nun als Multiinstanz in einem FB ein, dann ist das nicht mehr möglich. Da WinCC nur einen Punkt als Trennung zwichen DB und Variable zulässt. (z.B.: "MeinDB.InVar1", bei einer Multiinstanz sieht es dann so aus: MeinMultiDB.MeinDB.InVar1") Selbiges gilt für Strukturen, UDT's usw. Kann man alles nicht nach WinCC mappen.
Hoffe, ich habe mich einigermaßen verständlich ausdrücken können;)
Gruß Approx
 
Da WinCC nur einen Punkt als Trennung zwichen DB und Variable zulässt. (z.B.: "MeinDB.InVar1", bei einer Multiinstanz sieht es dann so aus: MeinMultiDB.MeinDB.InVar1") Selbiges gilt für Strukturen, UDT's usw. Kann man alles nicht nach WinCC mappen.

Das is ja aber auch bööse ;-)

Ich finds vor allem wegen der übersichtlichkeit besser mit Multiinstanzen zu arbeite. Man halt halt nur noch wenige Instanzdbs welche sich ändern und welche man dann in der richtigen Reihenfolge laden muss. Und nicht 20 aktualisierte Instanzdbs nur weil sich ein FB geändert hat.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Multiinstanzen dienen dazu einzele, aber immer wiederverwendete Funktionen mehrfach (multi) einzufügen.

Nimm mal zum Beispiel eine ELTAKO-Funktion für einen Taster, 1. TIP = EIN, 2. TIP = AUS. Um diese Funktion zu lösen muss man ein paar, wenn auch wenige, Befehle miteinander verschalten. Warum sollte ich dieses immer wieder programmieren, wenn ich doch eine Funktion habe, die ich aufrufen kann. Durch eine klar definierte Schnittstelle bekomme ich nur die nötigen EIn-/ Ausgangsparameter und mit der Multiinstanz vermeide ich für solche Funktionen unnötig viele Instanz-DB's!
 
Wenn ich mir einen FB bastele, dessen E/A-Parameter Bedien-u.-Beobacht fähig sind (S7_m_c =True) kann ich die Variablen per OS-Übersetzung nach WinCC mappen. Füge dich diesen FB nun als Multiinstanz in einem FB ein, dann ist das nicht mehr möglich. Da WinCC nur einen Punkt als Trennung zwichen DB und Variable zulässt. (z.B.: "MeinDB.InVar1", bei einer Multiinstanz sieht es dann so aus: MeinMultiDB.MeinDB.InVar1") Selbiges gilt für Strukturen, UDT's usw. Kann man alles nicht nach WinCC mappen.
Hoffe, ich habe mich einigermaßen verständlich ausdrücken können;)
Gruß Approx
Aha. Wuste ich nicht. Diese einschränkung gibt es nicht in der "flexible" Version von WinCC.
 
mit der Multiinstanz vermeide ich für solche Funktionen unnötig viele Instanz-DB's!

Danke euch allen,

es scheinen also eher Vorteile in der Übersichtlichkeit zu ergeben (weniger DB's, Programm besser lesbar). Vorteile bei Laufzeit, Speicherbedarf, ... scheint es nicht zu geben.

Danke allen für die Antworten.

Holger
 
Zuviel Werbung?
-> Hier kostenlos registrieren
welche Vorteile hat die Nutzung von Multiinstanzen?
Wenn man "wiederverwendbare" Programbausteine programmiert, kommt man eigentlich nicht weit ohne Multiinstanzen.

Der Programmieraufwand scheint mir ziemlich gleich zu.
Nein, es lohnt sich wirklich schon bei kleinere Programme.
Mach z.B. 10 IEC Timer in ein FB der 10-fach verwendet werden muss. Mit Multi-Instanzen braucht man sich gar nicht darüber zu kümmern. Ohne Multi-Instanzen muss mann 100 Instanz-DBs erzeugen, und man muss alle Zugriffe auf die Timer überall aktualisieren.

Eine Nachteil von Multi-Instanzen, ist das man nicht eine "eingebettete" FB-Deklaration ändern kann, ohne die "übergeordnete" FB Deklaration zu aktualisieren.
Also, Multi-Instanzen ist best verwendet in ein "Framework" von Programbausteine. Diese Framework muss perfekt durchgetestet sein so das man keine Änderungen online braucht, wenn das Program in betrieb genommen ist. Änderungen ausserhalb von Framework kann man online machen selbst in laufender Betrieb.
 
Aha. Wuste ich nicht. Diese einschränkung gibt es nicht in der "flexible" Version von WinCC.
Tja, wenn ich "WinCC" schreibe, dann meine ich auch "WinCC" und nicht "WinCC Instable":ROFLMAO: Das OS-Übersetzen ist ein Zusatztool und ist quasi die Vorstufe von PCS7...
Gruß Approx
P.S.: Wenn ich in Thread-Überschriften "WinCC" lese und dann kommt nach 4 Posts heraus, das "WinCC Flexible" gemeint war, dann könnte ich jedesmal kotzen. Mit Flexible hab ich noch nicht viel am Hut gehabt, scheint aber sehr verbreitet zu sein. Panel sei dank! ;-)
 
Zuletzt bearbeitet:
Gewöhn Dich schon mal an den Begriff nur WinCC, ...
Mir ging es ja nur um die Tatsache, daß ich in Beitrag#4 von WinCC gesprochen habe. Jedesmal wenn hier im Forum das Wort "WinCC" geschrieben wird, dann kommt immer wieder die Frage nach "Flexible". Ist doch schrecklich sowas.
Korrekt wäre die Bezeichnung "WinCC Vx.x". Bin eh' für eine zwangsgeführte Versionsangabe bei Threaderstellung. Hat aber alles leider nichts mit diesem schönen Multiinstanz-Thread zu tun...;) Der TE möge mir verzeihen, daß ich WinCC erwähnt habe...:ROFLMAO:
Approx
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Tja, wenn ich "WinCC" schreibe, dann meine ich auch "WinCC" und nicht "WinCC Instable":ROFLMAO: Das OS-Übersetzen ist ein Zusatztool und ist quasi die Vorstufe von PCS7...
.....
P.S.: Wenn ich in Thread-Überschriften "WinCC" lese und dann kommt nach 4 Posts heraus, das "WinCC Flexible" gemeint war, dann könnte ich jedesmal kotzen.

....
. Jedesmal wenn hier im Forum das Wort "WinCC" geschrieben wird, dann kommt immer wieder die Frage nach "Flexible". Ist doch schrecklich sowas.
Korrekt wäre die Bezeichnung "WinCC Vx.x". ....

*ACK*

Schon manche Themenüberschrift muss m.E. im Suff entstanden sein. :rolleyes:

Das mancher Techniker und Ingenieur hier nicht in der Lage ist, ein
Mindestmaß an vernünftiger Artikulation in den Texten zu hinterlassen
nervt in einem Land von Goethe und Schiller schon ungemein.

Frank
 
Es war notwendig zu bemerken das die Einschränkung nicht gelt bei Flexible, oder alle andere HMI's als WinCC.
Das war alles das Approx vorerst geschrieben hatte:
Nachteil von Multiinstanzen: Die Variablen der FB's sind nicht mehr "Bedien-u.Beobachtungsfähig" wenn sie in einer Multiinstanz aufgerufen werden.
Wenn der Themenstarter davon konkludierte das man HMI Variablen nicht verbinden kann wenn Multi-Instanzen in spiel ist, war das ja falsch.
 
Wenn der Themenstarter davon konkludierte das man HMI Variablen nicht verbinden kann wenn Multi-Instanzen in spiel ist, war das ja falsch.

Von außen betrachtet ist jeder Wissensbereich eine (kleine) Kugel.
Erst wenn man eingetaucht ist, merkt man, dass man sich in alle
Richtungen drehen kann und man entdeckt immer was Neues.:ROFLMAO:

Frank
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Es war notwendig zu bemerken das die Einschränkung nicht gelt bei Flexible, oder alle andere HMI's als WinCC.
Das war alles das Approx vorerst geschrieben hatte:
Wenn der Themenstarter davon konkludierte das man HMI Variablen nicht verbinden kann wenn Multi-Instanzen in spiel ist, war das ja falsch.
Ich habe ja bereits in meinem nächsten Beitrag präzisiert, daß ich WinCC und nicht das verdammte Flexible meine, und mich auf das Attribut "S7_m_c =True" bezogen.
Schlussfolgerichtig dürfte der TE an keiner all' zu heftigen Verwirrung zu leiden gehabt haben.;)
Approx
 
Zurück
Oben