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!
ich bin ganz von vorne angefangen und deine erste Tipp gefolgten und zwar ein Zustandsautomat zu erstellen.
Den habe ich auch gemacht und funktioniert teilweise. Also es gibt noch ein paar Sachen die ich noch nicht hinbekommen kann und die beschreibe ich in folgenden Text.
Wie soll das Programm funktionieren:
1. Initialisierung von X und Z Achsen:
Der Schrittmotor fährt den Wagen nach links bis zum Endschalter. Wenn der Endschalter gedrückt ist hört Case Init X1/2 auf und springt zum Init X2/2. Im Init X2/2 wird der den Wagen in Gegenrichtung also nach rechts bewegt, um einen Reset der Positionsfehler des Motors zu erreichen. Also jetzt ist der Endschalter nicht mehr gedrückt und X Achse ist auf 0 positioniert.
Selbe Vorgang passiert für Z Achse auch.
2. Abtasten XZ:
Richtung und Schrittweite "Abtaste X" = Richtung und Schrittweite "Abtaste X2"= s47, links(d0)
Richtung "Abtaste Z - links"= links(d0)
Richtung "Abtaste Z - rechts"= rechts(d1)------- Schrittweite für beide = s47
2.1 Funktionsweise:
a) "Abtaste X" bewegt sich um eine Schritt und eine Wiederholung--> "Abtaste Z - links"
b)"Abtaste Z - links", macht 150 Wiederholungen(W150)--> "Abtaste X2"
c) "Abtaste X" bewegt sich um eine Schritt und eine Wiederholung--> "Abtaste Z - rechts"
d) "Abtaste Z - rechts" = "Abtaste Z - links" aber Richtungsumkehr--> "Abtaste X"
Ich habe bei "Abtaste X" und "Abtaste X2" einen Timer von 10000ms eingestellt damit der Motor erst mit "Abtaste Z-links/rechts" fertig ist und dann mit "Abtaste X/X2" anfängt ansonsten überschreibt die
Steuerung die Befehle und X startet bevor Z fertig ist.
Meine Ziel:
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?
2. Bei drücken auf "Abbrechen" oder "Stop" stop soll das Programm auch beendet werden.
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.
Was werden Sie mich raten um meine Ziele erfüllen zu können?
Vielen Dank!
P.S. Entschuldigung für die Schreib- und Grammatikfehler, ich bin Austauschstudent und ich schreibe nur meine Bachelor-arbeit in DE.