(05.08.2016 14:12 )GerdW schrieb: Hallo joptimus,
bitte immer auf Crossposts hinweisen!
Wozu brauchst du die innere While-Loop in der mittleren Statemachine?
Sorry, vergessen. Habe meinen Post aktualisiert.
Die innere While-Schleife brauche ich, damit der Programmablauf des jeweiligen Messprogramms abgearbeitet wird. Es werden alle z.B. 100 ms Bedingungen geprüft, um zwischen den Zuständen zu wechseln.
z.B. Idle -> nach 5x100 ms Motor an -> Achse bewegt sich -> nach 53x100 ms (wenn Position erreicht ist) Stop
Hätte ich die Schleife nicht, würde es nur eine Ausführung geben.
Das ist doch soweit ich das beurteilen kann genau ein Zustandsautomat: Eine While-Schleife mit einer Case-Struktur darin.
Die äußere While-Schleife gehört zum äußeren Zustandsautomat. Die innere gehört zum inneren. Quasi ein Zustandsautomat in einem Zustandsautomaten. Das ist genau die Komplikation, deren Lösung sich mir aus dem Beschreibungsdokument heraus nicht erschließt.
Edit:
Ich habe das gerade mal so implementiert wie im Bild dargestellt. Es läuft auf den ersten Blick...nur ob ich mir damit nicht doch irgendwo Probleme reinhole, kann ich (noch) nicht sagen.