Lukas W. schrieb:
> Ohne Breakpoint wird der Programmcode dann wieder
> nicht richtig ausgeführt egal ob im Debugmodus
> oder normal Programmiert. Woran könnte das liegen ?
Daran, dass Dein (Denk-)Modell nicht stimmt.
Die Zustände der Mechanik und die Zustände des steuernden
Automaten sind erstmal nicht identisch: Wenn die Mechanik
betriebsmäßig ZWEI Zustände kennt, z.B. "Eingefahren" und
"Ausgefahren", muss der steuernde Automat VIER Zustände
kennen: "Eingefahren", "Ausfahren", "Ausgefahren" und
"Einfahren". Das liegt einfach daran, dass der steuernde
Automat wesentlich schneller ist als die gesteuerte
Mechanik, so dass "Übergänge" der Mechanik in "Zustände"
des steuernden Automaten abgebildet werden müssen.
Die nächste Falle lauert schon: Mit vier Endlagenschaltern
können zwar vier verschiedene Zustände codiert werden --
von diesen sind aber nur drei betriebsmäßig zulässig:
- "00" = "Aktor in Bewegung",
- "10" = "vordere Endlage",
- "01" = "hintere Endlage",
- "11" = unzulässig (--> Fehler).
Man braucht also zur korrekten Behandlung erstens einen
Timeout und muss zweitens die Vorgeschichte berücksichtigen,
um softwaremäßig "Einfahren" und "Ausfahren" unterscheiden
zu können.
Ungefähr darauf wollte Dirk wohl mit seiner kurzen Frage
hinweisen, nehme ich an.