Namen von Multiinstanzaufrufen

Genau gleiche Namen geht nicht.
Aber wenn es gibt mehrere Stufen in der Deklaration, kann der letzte Stufe dieselbe Name haben.

"MyDB".MyFB01
"MyDB".MyFB02
"MyDB".Eine_zwischen_Stufe.MyFB01
"MyDB".Eine_zwischen_Stufe.MyFB02
"MyDB".Eine_andere_Stufe.MyFB01
"MyDB".Eine_andere_Stufe.MyFB02
usw.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Frage:
Wann muss ich Multiinstanz-Aufrufen unterschiedliche Namen geben und wann nicht?
oder anders gefragt warum gibt es beide Möglichkeiten?

z.B. 2x den SFB4 "TON" als Multiinstanz im Stat-Bereich deklariert.

Die müßen in diesem FB im Namen schon unterschiedlich sein.
Sepp7 läßt identische Namen sowieso nicht zu.

Aber in 3 verschiedenen FB´s darf jeweils der "TON" heißen, wie du willst. Von mir aus "Parkplatz".
 
Hmm, ich steh' da im Moment ein bischen auf dem Schlauch:
Hast Du mal ein Beispiel, wo Du Multiinstanz-Aufrufen NICHT unterschiedliche Namen geben mußt?

Harald

Um die Verwirrung zu vollenden.....

Ich glaube, er meint damit einen gleichen Namen in unterschiedlichen FB's.
 
Wenn die Instanzen den gleichen Namen haben, verwendet der FB den gleichen Datenbereich im "Mutter"-IDB. Das ist so, als würdest Du ihn mit mehrmals mit dem gleichen IDB aufrufen.
 
Wenn die Instanzen den gleichen Namen haben, verwendet der FB den gleichen Datenbereich im "Mutter"-IDB. Das ist so, als würdest Du ihn mit mehrmals mit dem gleichen IDB aufrufen.

Wenn ich also in dem aufgerufenen Multi-FB statische Variablen habe sind die beim Aufruf des gleichen FB mit gleichem Namen futsch. Richtig?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Wenn ich also in dem aufgerufenen Multi-FB statische Variablen habe sind die beim Aufruf des gleichen FB mit gleichem Namen futsch. Richtig?
Wenn Du es hinbekommst, im aufrufenden FB multiinstanz-Aufrufe mit gleichen Namen zu editieren, dann mach mal nen Screenshot! :rolleyes:
Geht nämlich gar nicht, da der Step7-Editor mehrfache (gleichlautende) Bezeichnungen von Stat-Variablen nicht zulässt. Dabei ist es egal, ob bool, INT, REAL oder eben Multiinstanz-FB.
Gruß Approx :ROFLMAO:
 
Wenn Du es hinbekommst, im aufrufenden FB multiinstanz-Aufrufe mit gleichen Namen zu editieren, dann mach mal nen Screenshot! :rolleyes:
Geht nämlich gar nicht, da der Step7-Editor mehrfache (gleichlautende) Bezeichnungen von Stat-Variablen nicht zulässt. Dabei ist es egal, ob bool, INT, REAL oder eben Multiinstanz-FB.
Gruß Approx :ROFLMAO:
Er kann aber eine Instanz mehrfach aufrufen.
Ich denke, dass ist es, was er meint

@cosmomaster
Ja!
 
Entschuldigung das ich mich wiederhole aber nochmal meine Frage.

Wann kann ich NW1 machen und wann nicht?

Da hat doch sicher was damit zu tun ob die in den Aufrufen verwendeten statischen Variablen jedes einzelnen Aufrufs für den Zyklus noch gültig sein sollen oder nicht, oder?

Bleiben wir bei dem Codebeispiel:
TON ist ein SFB wahrscheinlich weil darin die momentane Zeit als statische Variable angelegt ist, wenn nicht stellen wir es uns halt jetzt einfach mal so vor.
Wenn ich nun TON mit gleichem Namen in der gleichen Strukturebene nochmal aufrufe wird diese statische Variable von dem 2. Aufruf überbügelt heißt also im nächsten Zyklus wird der erste Aufruf nicht mehr funktionieren.

@M-Ott: ja
@Approx: Dein Post hat nichts mit meinem Problem zu tun.
 

Anhänge

  • multi_Namen.JPG
    multi_Namen.JPG
    76,6 KB · Aufrufe: 9
Zuviel Werbung?
-> Hier kostenlos registrieren
Da hat doch sicher was damit zu tun ob die in den Aufrufen verwendeten statischen Variablen jedes einzelnen Aufrufs für den Zyklus noch gültig sein sollen oder nicht, oder?
Bedingt. Du könntest ja auch absichtlich zweimal die gleiche Instanz verwenden, aber prinzipiell hast Du Recht.

... heißt also im nächsten Zyklus wird der erste Aufruf nicht mehr funktionieren.
In Deinem konkreten Fall: Ja!
 
Wann muss ich Multiinstanz-Aufrufen unterschiedliche Namen geben und wann nicht?
Jede Variable und jede Multiinstanz in einem FB muß einen unterschiedlichen "unique" Name haben, es kann nicht mehrere Variablen oder Multiinstanzen mit dem selben Name geben.
Man muß nicht den Aufrufen unterschiedliche Namen geben, sondern man muß den Namen von der Instanz verwenden, die man aufrufen will. FC, FB oder Multiinstanzen kann man so oft aufrufen wie man will. Man muß nur beachten, ob das sinnvoll ist und das gewünschte Ergebnis bringt.

Was ist der Unterschied zwischen NW1 und NW2 im Anhang?

Wann kann ich NW1 machen und wann nicht?
Im NW1 wird die selbe TON-Instanz dreimal aufgerufen.
Im NW2 werden zwei verschiedene TON-Instanzen jeweils einmal aufgerufen.

Da #parkplatz in Deinem Beispiel eine Timer-Instanz ist (TON), würde der in NW1 dreimal aufgerufene Timer #parkplatz dreimal so schnell ablaufen als tatsächlich Zeit vergeht. Das ist in der Regel nicht sinnvoll.

Ein Beispiel für einen sinnvollen mehrfach-Aufruf der selben (Multi)Instanz:
Auf Ereignisse, die gleichzeitig eintreten können, muß nacheinander reagiert werden, z.B. Störmeldungen auf einen Drucker ausgeben. Dazu muß man die Ereignisse erstmal in eine Druckliste (FIFO) einspeichern und dann einzeln nacheinander ausdrucken. Nun kann es vorkommen, daß in einem OB1-Zyklus mehrere Störungen gleichzeitig kommen, dann muß der Code zum einspeichern der Meldungen in den FIFO entsprechend mehrfach aufgerufen werden. Wenn der Code als FB oder als Multiinstanz programmiert ist, dann wird eben die selbe Instanz des FB bzw. die selbe Multiinstanz mehrfach aufgerufen - kein Problem.

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
@Harald
Hälst Du eigentlich Schulungen oder so etwas in der Art?
Deine Antworten sind immer sehr verständlich. Selbst wenn ich oft das gleiche meine wie Du, finde ich Deine Antworten fast immer besser als meine eigene.
 
@Harald
Hälst Du eigentlich Schulungen oder so etwas in der Art?
1991-1997 habe ich Programmiersprachen unterrichtet.
Außerdem ist mir wohl angeboren, daß ich jede Aussage auf die Goldwaage lege. Deshalb dauern meine Antworten auch meist etwas länger. ;)

Seit 1997 hatte ich in der Automatisierungs-Branche oft mit Auftraggebern zu tun, die gar nicht genau sagen können, was sie eigentlich wollen. Denen mußte ich dann immer erklären, welche Auslegungungen ihre Aussagen zulassen und dann Stück für Stück den eigentlichen Wunsch aus der Nase ziehen. Und hier im Forum ist es ja oft genauso, daß die TE mit unpräzisen Fragen kommen. Da formuliere ich meine Antworten lieber etwas ausführlicher, um sicher zu gehen, daß der Fragesteller meine Antwort wirklich versteht und auch versteht, was ich nicht meine.

Aktuell habe ich einige Mechatroniker um mich herum, denen ich beibringen möchte, wie man die Ursachen von Anlagenstörungen logisch findet, damit ich nicht immer selber 'ran muß. Also auch von daher der Zwang zu verständlichem Ausdrücken.

Harald
 
Da #parkplatz in Deinem Beispiel eine Timer-Instanz ist (TON), würde der in NW1 dreimal aufgerufene Timer #parkplatz dreimal so schnell ablaufen als tatsächlich Zeit vergeht...
Das glaube ich nicht, habs aber noch nicht probiert.
Hast Du das schon mal getestet?
Gruß
Erich

Edit sagt: Habs gerade mal für TOF getestet, Zeit bleibt gleich.
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
IEC TON und TOF verwendet den Systemzeit.
Es subtrahiert der Anfangszeit von den aktuellen Zeit, und erhaltet davon der vergangene Zeit.
Auf diesen Grund braucht TON und TOF nicht unbedingt zyklisch aufgerufen werden.
 
Zurück
Oben