S7: FB Aufrufe in einem FB

Toffee

Level-1
Beiträge
7
Reaktionspunkte
1
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
ich hab ein Problem das ich mir nicht ganz erklären kann. Ich probiere gerade eine Steurung zuprogrammieren die wiederkehrende Ablaufketten beinhaltet.
Deswegen habe einige FB in Graph programiert und dann diese in einem anderen FB aufgerufen.

wenn ich das Programm auf den Simulator aufgespielt habe und das erste Mal starte dann ruft der erste FB den 2. wie gewünscht auf und dieser folgt auch der Programmkette. Kommt jetzt ein 2. Aufruf für den 1. FB wird dieser abgearbeitet aber der Aufruf des 2. FB wird einfach übersprungen und nach dem Aufrufschritt wird weiter der Kette gefolgt und der erste FB beendet.

Mir ist nicht klar warum beim ersten Durchlauf der 2.FB benutzt wird aber nicht beim 2. Durchlauf? Muss ich da irgenwie dem 2. FB beim Aufruf mitteilen das er im Inistialschritt anfangen soll? Und gibt es eine Möglichkeit das Beenden eines FB also Transitionsbedingung zubenutzen, also das der Schritt in dem der FB aufgerufen wird erst nach beenden des FB weitergeschaltet wird? Ich habe das bisher über eine Merker gemacht der am Anfang des FB gesetzt wird und im letzten rückgesetzt und als Transition dann Merker-nicht, scheint beim ersten Durchlauf zu funktionieren.
 
S7-Graph - Schrittketten sind nicht multiinstanzfähig! Es ist kein mehrfacher Aufruf ein und derselben Schrittkette erlaubt!
 
Zuletzt bearbeitet:
Sorry, habt ihr das Geschriebene als Frage verstanden? :confused:

Sorry ich verstand die Frage nicht.
Daher kann ich das Danke gut verstehen.


bike
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Sorry, habt ihr das Geschriebene als Frage verstanden? :confused:
Sorry ich verstand die Frage nicht.
Daher kann ich das Danke gut verstehen.

Also bike, ich muss mich schon sehr wundern. Du hast wohl am Wochenende dein lingusitisches Spracherkennungszentrum abgeschaltet :ROFLMAO:

Das >>DANKE<< war - so wie ich VL kenne - sarkastisch gemein(t).

Frank
 
Also bike, ich muss mich schon sehr wundern. Du hast wohl am Wochenende dein lingusitisches Spracherkennungszentrum abgeschaltet :ROFLMAO:

Das >>DANKE<< war - so wie ich VL kenne - sarkastisch gemein(t).

Frank

Wochenende? Kennt jemand einen Job als Entwickler, wo Wochenende auch Wochenende ist? :confused:

Sarkastisch? Ich habe es als Ausdruck für "nicht verstehen bei perfekter Fragestellung" interpretiert.
Daher das Verstehen von 4L. ;)



bike
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ähm ich habe mich da wohl nicht richtig ausgedrückt, die 2. FB Kette soll auch nur abgearbeitet werden und dann beendet sein, ich wollte das nur nicht alles in einer riesen lange kette schreiben weil ich das unübersichtlich finde. Die 2. FB Kette soll nicht 2 mal gleichzeitig laufen.

Naja ich denke ich werd das jetzt alles in eine lange Kette knallen.
 
Ähm ich habe mich da wohl nicht richtig ausgedrückt, die 2. FB Kette soll auch nur abgearbeitet werden und dann beendet sein, ich wollte das nur nicht alles in einer riesen lange kette schreiben weil ich das unübersichtlich finde. Die 2. FB Kette soll nicht 2 mal gleichzeitig laufen.

Naja ich denke ich werd das jetzt alles in eine lange Kette knallen.

Aber nochmal zum Verständnis:

Wenn du einen GRAPH-FB

FB81 mit INSTANZ-DB: DB81 hast, kannst du NICHT

FB81,DB82 den gleichen FB noch einmal mit einem anderen Instanz-DB aufrufen.
Was bei normalen FBs geht, geht bei GRAPH,FBs nicht

Das kann man, da ungenau erklärt, aus dem Text herauslesen.

Also bitte exakte Details oder dein Programm.
Kannst natürlich aller geheimen Sachen herauslöschen.
Vielleicht hilft uns ja auch ein schönen Screenshot.
Sonst wird das nix.

Frank
 
Ähm ich habe mich da wohl nicht richtig ausgedrückt, die 2. FB Kette soll auch nur abgearbeitet werden und dann beendet sein, ich wollte das nur nicht alles in einer riesen lange kette schreiben weil ich das unübersichtlich finde. Die 2. FB Kette soll nicht 2 mal gleichzeitig laufen.

Naja ich denke ich werd das jetzt alles in eine lange Kette knallen.

Wichtig ist ein Aufruf! Ein Intanz-DB! Du kannst Schrittkettenbauteine über eine "Logisch 0"-Verknüpfung am EN-Eingang komplett abschalten. Wenn Du dieses machst, dann beziehe die Variablen an allen IN-, OUT- und INOUT-Anschlüssen mit in Deine Überlegungen ein!
 
Zuviel Werbung?
-> Hier kostenlos registrieren
AHH! Danke, das könnte der Grund sein, weil ich die Bedingung ständig als 1 habe. Multiinstanzen sind also nur die FBs die den DB des aufrufenden FBs mit benutzen und kein eigenden DB haben (dann hab ich nämlich keine Mulitinstanz). Oder hab ich da wieder was falsch verstanden? Wenn also keine Multiinstanz vorliegt, muss ich nur noch dafür sorgen das mein aufrufender FB ein mal ausgeschaltet wird bevor er noch mal benutzt werden kann, das passiert nämlich momentan noch nicht. Oder wird ein innerhalb eines Schritte mit call aufgerufener FB nicht mit logisch 0 beschaltet wenn der Schritt nicht mehr aktiv ist?

Gibt es da eine Möglichkeit das sich der FB selbst zurücksetzt wenn er am seiner Kette angelangt ist?
 
Zuletzt bearbeitet:
Die Schrittkette wird per IN-Eingang "INIT" initialisiert.
Ein Sprung innerhalb der Kette zum Init-Schritt ist natürlich möglich. Du könntest natürlich am Ketten-Ende, einen OUT-Parameter als INIT-Merker deklarieren und diesen von Außen wieder am IN "INIT" antragen. Bei erfolgreicher Initialisierung würde dieser dann wieder auf 0 gesetzt.
 
Zurück
Oben