Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!
Alle Sequenzen flach nebeneinander gesetzt, den Datenfluss von links nach rechts verschoben, und alles etwas glatt gezogen. Funktional sollte kein Unterschied sein.
Jetzt kann man (ich) viel besser erkennen, was beim Ablauf eigentlich passiert. Spontan fällt mir auf, dass es relativ viele Schleifen in Schleifen gibt, die auf irgendwas warten. Abbruchkriterium ist jeweils der Stop-Button (bzw. eine lokale Variable davon).
"Kommunikation" zwischen verschiedenen Teilen findet über lokale Variablen statt.
Was ich als nächstes machen würde (...wenn ich Zeit hätte...)
- Variablen wo es geht durch Leitungen ersetzen.
- Alle Rahmen von Sequenzen entfernen wenn die zeitliche Abfolge schon durch Leitungen vorgegeben ist.
Jetzt sollte es nochmal deutlich übersichtlicher sein.
Dann kann man noch alles was parallel ablaufen kann, in seperate Schleifen packen und die Kommunikation zwischen den Schleifen durch Notifier und Queues realisieren.
Jetzt sollte der Ablauf schonmal schneller sein.
Last but not least könnte man den ganzen Ablauf als Statemachine nochmal neu nachprogrammieren. Mit den bis dahin gelernten Sachen sollte der Aufwand überschaubar sein. Vorteil ist eine deutlich bessere Wartbarkeit und Flexibilität.
am Wochenende habe ich mal ein ganz kleines bischen weiter gebastelt. Die unteren Schleifen könnten eventuell so funktionieren. Aber es war viel Kristallkugelleserei dabei. Also eher als Vorschlag verstehen, denn als Lösung.
Bei der oberen Schleife muss auf jeden Fall noch gebastelt werden. Dort gehört die eigentliche Ablaufsteuerung rein. Die laaaange Sequenz (ganz oben) kann danach endlich weg.
Ich mag es eigentlich nicht, so halbfertige Sachen zu posten. Aber sonst würde das VI die nächsten Wochen hier sinnlos rumliegen. So hilft es Dir vielleicht schonmal als Beispiel weiter.