LabVIEWForum.de
Zustandsautomat geht nicht in nächsten Schritt - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Zustandsautomat geht nicht in nächsten Schritt (/Thread-Zustandsautomat-geht-nicht-in-naechsten-Schritt)



Zustandsautomat geht nicht in nächsten Schritt - mrgigi - 30.09.2015 09:40

Guten Morgen Labviewprofis,

ich habe leider mal wieder ein Problem mit den Basics.

Erst einmal versuche ich nur, dass in den nächsten Case gewechselt wird bei Tastendruck in den jeweiligen Zustand gewechselt wird und von dort aus wieder bei entsprechnder Auswahl in den jeweiligen Zustand.

Also im Case Start sollen erst einmal alle Sensoren gelesen und ausgegeben werden (eigentlich soll dies im Case "Register lesen"passieren aber es wird ja nicht in den nächsten Case gewechselt) und von dort aus in den Case "Wait for Modi" gegenagen werden. Bis jetzt soll beim Tastendruck "Flask Heater" in den Case "Flask Heater" gesprungen werden und der DO aktiviert werden. Später werden dort aber nochmal vier Modi abgefragt.

Wenn nichts passiert soll halt immer in Start gesprungen werden damit die Sensoren weiter ausgegeben werden.

Was setz ich diesmal wieder nicht richtig um?

Vielen Dank euch!


RE: Zustandsautomat geht nicht in nächsten Schritt - mrgigi - 30.09.2015 11:19

Das Schieberegister war nicht richtig verbunden. War wahrscheinlich ein Fehler von einigen aber noch nicht die Lösung.

Das Hauptproblem ist, dass die Schleife nur einmal durchlaufen. Gelöst habe ich es noch nicht.
Gruß


RE: Zustandsautomat geht nicht in nächsten Schritt - panduci - 30.09.2015 11:29

Ich würde zunächst einmal den Zeitbaustein aus der Schleife entfernen da du ja über Ereignisse arbeitest.
Beim Tastendruck von "Flask Heater" wir er sicherlich nicht in den den gewollten State wechseln da du von der Ereignisstruktur nicht auf das Schieberegister gehst.
Weiters würde ich den Button "Flask Heater" in die Ereignisstruktur packen und in deinem State "Flask Heater" eine Konstante anstatt des Buttons verwenden.
Und sie zu dass du nicht den Standardwert verwendest bei deinen States.
Außerdem gibt es sehr gute Beispiele von State Machines in der LabVIEW Hilfe bzw. kannst du beim Projekt sogar eine Vorlage einer State Machine als Vorlage nutzen.

lg panduci


RE: Zustandsautomat geht nicht in nächsten Schritt - mrgigi - 30.09.2015 12:17

Vielen Dank!

Also den Taster hatte ich schon in die Eventstruktur gezogen und durch eine LokaleVariable anstatt des Buttons ersetzt, da ich dass schon so in einem Beispiel gesehen hatte.

Ich habe nochmal alles überpruft und neu verbunden und es funktioniert nun.
Was meinst du genau mit:
Und sieh zu dass du nicht den Standardwert verwendest bei deinen State

Dass ich nicht immer in den "Start" wieder gehe? Ich habe es nun in "Register auslesen" gepackt.

Gruß


RE: Zustandsautomat geht nicht in nächsten Schritt - panduci - 30.09.2015 13:19

Hallo,

damit meine ich dass du überall eine "Enum" Konstante verdrahten solltest, zwecks Lesbarkeit des Programmes.
Und nicht so wie du es beispielsweise im Anhang gemacht hast.
lg panduci