LabVIEWForum.de - Erstellung eines Zustandsautomaten für Zeiten

LabVIEWForum.de

Normale Version: Erstellung eines Zustandsautomaten für Zeiten
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
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
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)
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
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
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…
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
Hallo Freddy,

Zitat:Bitte das mit dem Parallelen laufen lassen nochmal bischen ausführlicher...
So in etwa:
[attachment=49363]
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!
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…
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!
Seiten: 1 2
Referenz-URLs