Synchronisation zweier externer Schrittketten

Roman_79

New member
Beiträge
2
Punkte Reaktionen
0
Zuviel Werbung?
->Hier kostenlos registrieren
Hallo und guten Morgen zusammen

habe seit geraumer Zeit ein Problem das ich nicht prozesssicher zum Lösen bringe.
Vielleicht kann mir ja von euch einer dabei nützliche Info´s geben.

Mein Problem stellt sich wie folgt dar:
Ich muss zwei Schrittketten mit jeweils ca. 60 Schritten die Zyklisch in unterschiedlichen CPU´s laufen via Signalaustausch (PUT/GET) prozesssicher miteinander Synchronisieren.

Ich generiere mir dabei bei jedem Schritt eine Fertigmeldung, die im absoluten Teil vor jedem Schritt immer zurückgesetz wird, und warte auf die Weiterschaltbedingung. In einer vorgelagerten Funktion setze ich mir dann die Freigabe zur Schrittweiterschaltung (für intern und extern), aber erst wenn beide Fertigmeldungen vorhanden sowie beide die gleiche Schrittnummer haben. Zurückgesetz werden die Weiterschaltbedingungen wenn sich die jeweiligen SK-Nummern verändern.

Dies funktioniert sowei ganz gut, leider kommt es aber bei schnell aufeinander folgenden Schritten zu dem Problem, dass eine der beiden SK schneller reagiert als die andere und somit keine Synchronität mehr aufgebaut werden kann.

Würde mich um gute Ratschläge freuen

P.S.: als letzter Ausweg bliebe mir nur noch für jeden Schritt ein seperates Bit für Fertigmeldung und Weiterschaltbedingung zu Generieren (ca.120)
 

borromeus

Well-known member
Beiträge
2.270
Punkte Reaktionen
329
Zuviel Werbung?
->Hier kostenlos registrieren
An der Gleichzeitigkeit sind schon die Physiker oftmals gescheitert.... ;-)
Was meinst Du mit:
"dass eine der beiden SK schneller reagiert als die andere und somit keine Synchronität mehr aufgebaut werden kann."

Was klar ist, dass es quasi unmöglich ist wirklich gleichzeitig zu sein, aber die grundegende Synchronität sollte nicht verloren gehen.
Die überträgst ja die Schrittnummer auch, wie Du schreibst... wieso eilt dann eine Schrittkette um 2 Schritte vor?
 
OP
R

Roman_79

New member
Beiträge
2
Punkte Reaktionen
0
Mir geht es natürlich nicht um die Synchronität innerhalb eines Schrittes, sonder um annähernd synchrone Schrittweiterschaltung.

Bsp. Problem:
Beide Schrittkette sind im gleichen Schritt und haben die Bedingung für die Fertigmeldung erfüllt. Dies hat zur Folge, dass für beide Sk gleichzeitig eine Weiterschaltungsfreigabe ausgegeben wird. Dabei schaltet die erste SK in den nächsten Schritt und überprüft die ihrerseits erneut die Fertigmeldung für den nächsten Schritt, wenn diese dann sofort das VKE1 erhällt und die externe SK den Schrittwechsel noch nicht durchgeführt hat wechselt die erste SK erneut in den nächsten Schritt.

Als Folge kann keine Freigabe zur Weiterschaltung mehr gegeben werden, da sich die SK´s in unterschiedlichen Schritten befinden.
 
Zuletzt bearbeitet:

borromeus

Well-known member
Beiträge
2.270
Punkte Reaktionen
329
Wie ist es damit?
Wenn die externe Freigabe kommt-> Flanke-> FreigabeBit setzen.
Wenn SK weiterspringt, dieses Bit zurücksetzen. Dann kann die SK erst wieder weiterlaufen wenn das externe Bit einmal gegangen und dann wieder gekommen ist.
 
Oben