Hallo s-vdobre,
Zitat:1.Wenn Punkt 2 ausgeführt wird und einer von der Endschalter gedrückt wird muss das Programm sofort beendet werden. Weil in meinen Fall endet der Case aber der nächste wird gleich gestartet. Einen Befehl mit dem die Steuerung zurück gibt, dass der Schalter gedrückt ist, finde ich nicht. Also wie kann ich das realisieren?
Wenn dein Programm auf diesen Endschalter reagieren soll, dann musst du ihn auch abfragen.
Entweder deine Motorsteuerung bietet dir eine Möglichkeit, diesen Status abzufragen - oder du musst dir mit einer eigenen DAQ-Hardware helfen…
Zitat:2. Bei drücken auf "Abbrechen" oder "Stop" stop soll das Programm auch beendet werden.
Dann musst du diese Buttons auch in jedem State abfragen.
Oder du stellst sicher, dass die einzelnen States nur sehr kurz dauern, dann kannst du die Buttons natürlich nach jedem State abfragen…
Zitat:3. Punkt 2 "Abtasten XZ" soll 50 mal durchlaufen und dann aufhören. Hier habe ich mit Schleifen usw probiert und trotzdem komme ich nicht zum Erfolg.
Dann musst du dir ein zusätzliches Schieberegister anlegen, in dem dann ein Zähler verwaltet wird.
Wenn der Button "Abtasten XZ" geklickt wird, wird der Zähler auf 50 gesetzt. Jeder Aufruf von "Abtaste X" dekrementiert diesen Zähler. Wenn der Zähler "Null" erreicht, wird der erneute Aufruf von "Abtaste X" abgebrochen…
Das sind alles Bedingungen, mit denen du entscheidest, welcher State als nächstes aufgerufen wird. Man kann durchaus mehrere Bedingungen abfragen und daraus Entscheidungen generieren…