LabVIEWForum.de - Schrittmotor steuern

LabVIEWForum.de

Normale Version: Schrittmotor steuern
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Ich habe einen Schrittmotor, den ich über LabView steuern kann.

Jetzt möchte ich eine automatische Steuerung für diesen programmieren. Die Drehbewegung des Motors wird in eine axiale Bewegung des Motors übertragen. Ich möchte die Achse als erstes zu einem bestimmten Startwert fahren, dann sollen in einem Interwall verschiedene Werte abgefahren werden mit immer gleichem Abstand und eine konstanten Wartezeit. Am Schluss soll die Achse wieder in ihre Ausgangsposition zurückgefahren werden.

Ich habe es im Moment mit einer Sequenzstruktur programmiert. Ich möchte einen Notstop einprogrammieren. Ist für diesen Zweck eine Sequenzstruktur zu empfehlen, weil ich habe schon mehrfach gelesen, man solle diese vermeiden, aber ich weiß nicht wie man sonst Interwall, Wartezeit, Start- und Endwert sinvoll vorgeben kann.

Viele Grüße
' schrieb:Ich habe es im Moment mit einer Sequenzstruktur programmiert. Ich möchte einen Notstop einprogrammieren. Ist für diesen Zweck eine Sequenzstruktur zu empfehlen,
NEIN
' schrieb:weil ich habe schon mehrfach gelesen, man solle diese vermeiden,
Genau!
' schrieb:aber ich weiß nicht wie man sonst Interwall, Wartezeit, Start- und Endwert sinvoll vorgeben kann.
State-Machine (Zustandsautomat). Such mal im Forum, sollte massig Bsps dazu geben.

Gruß, Jens
Ok,

ich habe hier mal was zusammengebastelt. Der Tank könnte meinen Motor darstellen.
Gibt es hierzu Verbesserungsvorschläge?

Grüße
Lv85_img
Als ganz kleiner Verbesserungsvorschlag würde ich dir noch dazu raten, anstatt Zahlen für die States Enums (mit Typedef) zu verwenden.
Ist einfach besser lesbar und hilft den Code zu dokumentieren.
Ok, danke,

aber was ist in diesem Fall der Vorteil der StateMaschine? Ich habe dasselbe auch mit einer Sequenzstruktur programmieren können.
Du kannst einen Fehler-Zustand definieren, in den du von jedem deiner Zustände direkt hineinspringen kannst. Macht es wesentlich übersichtlicher als in jedem Schritt der Sequenz zu überprüfen, ob ein Fehler/Notaus vorliegt und ihn dann ggf. zu überspringen.

Gruß, Jens
Referenz-URLs