Schrittketten verschalten

Tmbiz

Level-2
Beiträge
642
Reaktionspunkte
21
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,

ich habe mehrere einzelne Units welche mit Schrittketten bestimmte Arbeiten ausführen. Meine grundsätzliche Architektur, ist so, dass ich am Anfang des Quelltestes alles was ich darunter nutze auf 0 setze und wenn eine Schrittkette etwas einschalte beliebt es solange eingeschaltet wir der Schritt aktiv ist.

Für mich hat das den Vorteil, dass kein Bit hängen bleiben kann.

Nun ist es so, dass ich eine Main Schrittkette haben. Diese steuert alle Units. Also muss Unit 1 seine Arbeit
ausführen, dann Unit 2 usw. Im letzten Schritt der Unit Schrittketten, wird ein "done" gesetzt. Wenn die Main Schrittkette das "done" gesehen hat, wird die Unit an den Anfang gesetzt und kann erneut ausgelöst werden.

Ist immer nach dem Motto, Nachricht senden, Nachricht zur Kenntnis genommen. Gibt es noch eine geschicktere Möglichkeit diese Vernetzung aufzubauen?

Es kann z.B. sein, dass eine die Mail Schrittkette in einem Schritt steht, in dem der Auslöser für eine unter Unit aktiv ist. Dann startet die Unit von sich. Es kann aber auch sein, dass die Mail Schrittkette den "done" schon erhalten hat. Dann muss die Unit von Hand gestartet werden.



Habt ihr eine Idee, wie man das noch besser machen kann.
 
Also ... ich mache das in etwa so :
Die Master-Schrittkette aktiviert mit ihrem Schritt die Unter-Schrittkette. Soll nun die Master-Schrittkette auf die Unter-Schrittkette warten dann frage ich hier die Abarbeitung dieser Schrittkette ab (entweder ein Bit oder den letzten Schritt). Die Unter-Schrittkette fragt ihrerseits am Ende ab ob entweder die Rückmeldung verstanden wurde (bei asynchronen Abläufen) oder as die Startbedingung nicht mehr ansteht - dann kann sie wieder in ihren Initialschritt.
Soll die Unter-Schrittkette neben der Master-Schrittkette herlaufen dann setzt die Master-Schrittkette ein Bit und nimmt es später irgendwann wieder weg. In jedem Fall kontrolliere ich aber auch hier, ob dieses Kommando verstanden worden ist.
Also immer ein Handshake - sonst erhältst du ggf. den Effekt, dass du einen Befehl erteilst der nie verarbeitet wird weil das Gegenstück dazu gerade nicht bereit ist ...

Gruß
Larry
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Es kann z.B. sein, dass eine die Mail Schrittkette in einem Schritt steht, in dem der Auslöser für eine unter Unit aktiv ist. Dann startet die Unit von sich. Es kann aber auch sein, dass die Mail Schrittkette den "done" schon erhalten hat. Dann muss die Unit von Hand gestartet werden.
Diesen Teil verstehe ich nicht.
Entweder man hat eine Schrittkette mit Handshake oder nicht. Wenn man eine hat kann es nicht sein das Done kommt bevor der Start gesendet wurde.

Ansonsten hat der TE ja geschrieben das er einen Handshake nutzt:
Nun ist es so, dass ich eine Main Schrittkette haben. Diese steuert alle Units. Also muss Unit 1 seine Arbeit
ausführen, dann Unit 2 usw. Im letzten Schritt der Unit Schrittketten, wird ein "done" gesetzt. Wenn die Main Schrittkette das "done" gesehen hat, wird die Unit an den Anfang gesetzt und kann erneut ausgelöst werden.

Ist immer nach dem Motto, Nachricht senden, Nachricht zur Kenntnis genommen.


Was besseres als ein Handshake ist bei verknüpften Schrittketten nicht drin denke ich.


Oder versteh ich das hier falsch?
 
Zurück
Oben