nicht Multiinstanzfähig - warum ?

Kieler

Level-2
Beiträge
763
Reaktionspunkte
86
Fällt jemand eine Begründung ein, warum man einen FB "nicht Multiinstanzfähig" macht? Gibt es dafür einen praktischen Grund?

Gruss aus dem sonnigen Kiel
 
wenn in dem fb global adressiert wurde, kann man so verhindern, dass der baustein als multiinstanz eingebunden wird... z.B. ... das schützt allerdings noch nicht vor mehrfachen aufruf ...aber es gibt sicher noch andere "gute" gründe
 
Welches könnten denn die anderen "guten" Gründe sein ? Der mit der globalen Adressierung leuchtet mir auch nicht so richtig ein. Sobald ich den FB parametrierbar mache, gehe ich doch von aus, dass der FB mehrfach aufgerufen wird.
 
Welches könnten denn die anderen "guten" Gründe sein ? Der mit der globalen Adressierung leuchtet mir auch nicht so richtig ein. Sobald ich den FB parametrierbar mache, gehe ich doch von aus, dass der FB mehrfach aufgerufen wird.

davon geht jeder aus, der das prinzip verstanden hat, leider gibt es aber auch noch andere leute, die meinen global adressieren zu müssen, da sonst die schnittstellen zu groß werden. ich denke aber: werden die schnittstellen zu groß ist an der aufteilung etwas falsch ... ich kenne aber eben auch die anderen leute
 
Das erklärt für mich auch noch nicht so richtig, warum man Multiinstanzfähig bei einem FB auch explizit abwählen kann. Was ja dann auch Leute offensichtlich nutzen. Wozu halt dann auch immer. Aber das den Punkt in Step7 gibt, dachte ich es gibt vielleicht einen tieferen Sinn.

Siemens schreibt lapidar :

"Multiinstanzfähig:

Erscheint nur bei vom Anwender erzeugten Funktionsbausteinen. Standardmäßig ist die Multiinstanzfähigkeit angewählt. Für Standardanwendungen sollten Sie die Einstellung nicht verändern."

Kieler
 
aus der Bibel:
Ab Step 7 V2 können Sie Multiinstanzen bilden, ... Voraussetzung ist, dass sowohl der aufrufende als auch der aufgerufene Funktionsbaustein die Bausteinversion 2 hat, also "multiinstanzfähig" ist.
Meine Vermutung: der einzige praktische Grund ist, die Kompatibilität zu Version 1 ermöglichen. D.H., aus heutiger Sicht gibt es keinen praktischen Grund mehr ...
 
... ich habe das jetzt nicht mehr so 100%ig parat ... aber es war irgendetwas mit der indirekten Adressierung anders bei den "nicht Multi's".

Gruß
LL
 
Ich denke es macht Sinn den Haken zu setzen wenn der FB indirekte Adressierung auf statische Variablen des Instanz DBs hat.
In dem Fall muss man AR2 zum Pointer addieren.
Ist das nicht so programmiert, dann ist der Baustein wirklich nicht multiinstanzfähig!
 
// Danke

Vielen Dank für Eure Auskünfte. Das mit den Versionen macht Sinn.

Kieler
 


Wenn ich mich nicht irre, darf laut Siemens das Adressregister 2 in FB's nicht verändert werden. Sobald ich es veränder, kann ich nicht mehr zuverlässig Symbolisch auf die Statischen Variablen zugreifen.
 
Für die Nutzung dieser Website sind Cookies erforderlich. Du musst diese akzeptieren, um die Website weiter nutzen zu können. Erfahre mehr…