LabVIEWForum.de
Erstellung eines Zustandsautomaten für Zeiten - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Erstellung eines Zustandsautomaten für Zeiten (/Thread-Erstellung-eines-Zustandsautomaten-fuer-Zeiten)

Seiten: 1 2


Erstellung eines Zustandsautomaten für Zeiten - Fredy Dilker - 14.04.2014 08:54

Hallo liebe Gemeinde!

Ich hab mal ne Frage...
ICh möchte gerne eine Art Zustandsautomat realisieren. Dieser Automat soll folgende Aufgabe abarbeiten. Bei einem Beatmungsgerät sollen zwei verschiedene Luftflüsse für das Ein- & Ausatmen generiert werden. Diese Flüsse stehen auch noch mit unterschiedlichen Zeitdauern an. Das heißt, beim Einatmen: Fluss A mit Zeit A, und beim Ausatmen Fluss B mit Zeit B. HAt jemand ne Idee wie ich so etwas realisieren kann!?
Für eine kurze Antwort wäre ich sehr dankbar! ;-)

Liebste Grüße,

Freddy


RE: Erstellung eines Zustandsautomaten für Zeiten - GerdW - 14.04.2014 08:56

Hallo Freddy,

Zitat:HAt jemand ne Idee wie ich so etwas realisieren kann!?
Sowas realisiert man mit einer Statemachine!

Zitat:Das heißt, beim Einatmen: Fluss A mit Zeit A, und beim Ausatmen Fluss B mit Zeit B.
States:
1 - Flussrate einstellen
2 - warten(x s)


RE: Erstellung eines Zustandsautomaten für Zeiten - Fredy Dilker - 14.04.2014 10:43

Servus!
Merci für die flotte Antwort GerdW! :-)
Ja, das hab ich bis jetzt schon hin bekommen... ;-)
Ich hab aber noch ein Problem. Ich hab eine Warteuhr verwendet. Dies ist problematisch. Weil mein Hauptprogramm dann nix mehr macht in der Zwischenzeit!
Hat jemand nochmal einen Tip, wie ich das lösen kann, so dass das Hauptprogramm gleichzeitig (parallel) weiter läuft!?
Welches Timerelement muss ich denn dafür verwenden!? Die Warteuhr lässt das Programm ja quasi wirklich warten bis die Zeit verstrichen ist...
Anbei mein VI!

Danke schonmal!

Freddy


RE: Erstellung eines Zustandsautomaten für Zeiten - jg - 14.04.2014 10:54

Entweder "parallel" programmieren (z.B. Producer Consumer Schema) oder anstatt 1 Minute warten 600mal 100 ms warten oder Startzeit merken und immer wieder schauen, ob akt. Zeit minus Startzeit > Wartezeit ist.

Gruß, Jens


RE: Erstellung eines Zustandsautomaten für Zeiten - GerdW - 14.04.2014 10:55

Hallo Freddy,

Zitat:wie ich das lösen kann, so dass das Hauptprogramm gleichzeitig (parallel) weiter läuft!?
ruf doch einfach deine StateMachine parallel zum Rest deines Programms auf…


RE: Erstellung eines Zustandsautomaten für Zeiten - Fredy Dilker - 14.04.2014 12:11

Hallo!
Danke für die schnellen Antworten!
Aber ich krieg das gerade nicht gebacken...
Ich hab schon alles mögliche versucht... Aber irgendwie funktioniert das nicht so recht...
Bitte das mit dem Parallelen laufen lassen nochmal bischen ausführlicher... :-) Bitte, bitte!
Grüße,

Freddy


RE: Erstellung eines Zustandsautomaten für Zeiten - GerdW - 14.04.2014 12:33

Hallo Freddy,

Zitat:Bitte das mit dem Parallelen laufen lassen nochmal bischen ausführlicher...
So in etwa:
[attachment=49363]


RE: Erstellung eines Zustandsautomaten für Zeiten - Fredy Dilker - 14.04.2014 12:49

Aha! Das klappt aber bei mir wahrscheinlich nicht... Das hab ich ja die ganze Zeit so versucht... Aber ich benötige ja eine Datenabhängigkeit!
Denn die eine Whileschleife soll den Takt vorgeben und gibt gleichzeitig den Sollwert vor. Die Parallele Whileschleife bekommt den jeweilig aktuellen Sollwert übergeben... Zumindest müsste das so sein... Geht aber, wie gesagt, wahrscheinlich nicht...
Dann muss ich das anscheinend doch eher mit dem merken der aktuellen Zeit machen... Kann mir da jemand ein Beispiel erläutern!? Ich probiere hier schon den ganzen Tag rum... Und heut ist irgendwie der Wurm drinn... UndecidedBlink
Danke schonmal für die ganze Mühe!
Ich kome mir ja schon ziemlich nervig vor... :-)

Grüßerle!


RE: Erstellung eines Zustandsautomaten für Zeiten - GerdW - 14.04.2014 12:55

Hallo Freddy,

Zitat:Aha! Das klappt aber bei mir wahrscheinlich nicht... Das hab ich ja die ganze Zeit so versucht... Aber ich benötige ja eine Datenabhängigkeit! Denn die eine Whileschleife soll den Takt vorgeben und gibt gleichzeitig den Sollwert vor. Die Parallele Whileschleife bekommt den jeweilig aktuellen Sollwert übergeben... Zumindest müsste das so sein... Geht aber, wie gesagt, wahrscheinlich nicht...
Meinst du, du bist der einzige mit solchen Software-Anforderungen? Es gibt Lösungen dafür - aber danach hast du nicht gefragt Wink

- Schau dir mal das Producer-Consumer-Schema an - dafür gibt es eine fertige Projektvorlage in LabVIEW…
- Man kann Daten ohne Datenabhängigkeit übertragen. Im einfachsten Fall per lokaler Variable, im besseren Fall per Notifier oder Queue…


RE: Erstellung eines Zustandsautomaten für Zeiten - Fredy Dilker - 14.04.2014 14:22

Servus nochmal!
ICh hab jetzt mal diese Melderfunktion entdeckt... Damit lässt sich ja angeblich was Parallel abarbeiten! So das keine Totzeit im Hauptprogram entsteht bis die wartezeit vorbei ist... Geht aber bei mir trotzdem nicht!
Ich hänge es mal den Producer-teil an!
Mach ich grundlegend was falsch!?

Grüße!