Case- mit While Strukturen - Druckversion +- LabVIEWForum.de (https://www.labviewforum.de) +-- Forum: LabVIEW (/Forum-LabVIEW) +--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein) +--- Thema: Case- mit While Strukturen (/Thread-Case-mit-While-Strukturen) Seiten: 1 2 |
Case- mit While Strukturen - cnt_10 - 30.08.2010 09:24 Hallo zusammen! Ich habe ein Problem mit verschachtelten Struckturen. Innerhalb einer Case-Strucktur befinden sich weitere Case- und While-Struckturen. Damit möchte ich an einem Versuchsstand zwischen den Zuständen "Messen" ("M") und "Aufzeichnen" ("A") unterscheiden. Dabei soll "M" auch ohne "A" möglich sein, "A" jedoch nicht ohne "M". Sobald "A" betätigt wird und "M" aktiv ist soll nach dem Pfad der Aufzeichnungsdatei gefragt werden. Leider wird der "A"-Case aber nur aktiv, wenn die "M"-Schleife einmal gestoppt und wieder gestartet wird. Ich habe das Problem aus dem komplexen Steuerprogramm in ein einfaches VI übertragen und dabei die Random-Number-Funktion als Indikator einer laufenden Schleife eingesetzt. Ich hoffe ihr findet euch durchs Programm und könnt mir weiterhelfen. Sollte es irgendwie einfacher gehen, bin ich auch gerne bereit von meinem Case-While Fällen abzuweichen. Besten Dank schon mal, viele Grüße, Hannes LV-Version 8.6 Case- mit While Strukturen - M Nussbaumer - 30.08.2010 09:50 Wenn du es für mich auf Labview 8.5 runterspeichern könntest sehe ich es mir mal an Case- mit While Strukturen - chrissyPu - 30.08.2010 10:30 Hi, wie wäre es mit einer State-Machine (gibt es in den NI-Beispielen)? Ein Case fängt per Event-STruktur die Knöpfe ab und startet dann den Messvorgang. Wenn der Aufzeichnen-Knopf gedrückt wird, fragst Du im Event ggf. noch ab, ob es ein Speicherverzeichnis gibt (alternativ: Gleich in einer Initialisierungsroutine abfragen, dann hat man auch keinen zeitintensiven Code in der Event-STruktur). Falls nein, erst das festlegen, dann am Ende des entsprechenden Aufzeichnen-Cases in den Messcase springen. Noch eleganter wird es ggf. mit einer State-Machine als Consumer mit einer Producer-Consumer-Struktur (heißt in den Beispielen glaube ich Event-driven im Vergleich zu Data-driven), da kann man in der Queue gleich festlegen, dass beide Cases nacheinander abgefragt werden sollen... Grüße, ch VI nochmal in[attachment=29089]: Case- mit While Strukturen - RMR - 30.08.2010 10:58 Hallo ChrissyPu. Dein Beispielt funktioniert aber nur wenn "Aufzeichnen" schon TRUE ist bevor "Messen" als True kommt. Sonst bleibst du in der Messen-While hängen. Grüße, RMR Case- mit While Strukturen - cnt_10 - 30.08.2010 11:18 Erstmal Danke für für eure schnellen Antworten. @ RMR, genau das ist mein Problem. Natürlich macht es keinen Sinn sich bei einem Versuch schon von Anfang an für das Aufzeichnen entscheiden zu müssen. Mein Ziel ist es zu Messen und wenn die Werte gut aussehen zusätzlich aufzuzeichnen. @ ChrissyPu, ich mag elegante Lösungen und bin gerade dabei mich durch die NI-Beispiele zu graben Beste Grüße, Hannes Case- mit While Strukturen - RMR - 30.08.2010 11:34 Hi. Da gäbe es noch die Möglichkeit mit 2 parallelen WHILE. Ich war so frei das ChissyPu VI zu verschandeln und 2 parallele WHILE daraus zu machen. Jetzt kannst du natürlich auch AUFZEICHEN ohne zu MESSEN, aber das kannst du ja selbst noch verriegeln wenn du magst. VI ist LV 9 Hoffe geholfen zu haben, RMR edit 8.6 angehängt Case- mit While Strukturen - cnt_10 - 30.08.2010 11:53 :Dperfekt gelöst..danke dir! Für den Moment sind solche schnellen und unkomplizierten Lösungen einfach super! Ist ja fast schon peinlich da nicht selber drauf gekommen zu sein Und für die Zukunft werde ich mir aber diese Event-Struckturen im Hinterkopf behalten.. Beste Grüße, Hannes Case- mit While Strukturen - chrissyPu - 30.08.2010 12:08 Hi, das war kein Beispiel, sondern nur das runterkonvertierte Original-VI... Da ich's gerade offen hatte, bot sich das an... ch Case- mit While Strukturen - dimitri84 - 30.08.2010 12:23 @RMR Dein Beispiel ist alles andere als vollständig - Was ist mit der Kommunikation der beiden Schleife? So trivial ist das nicht. Das was du da "misst" ist nicht das was du speicherst. Hier ein Bespiel mit einer State-Machine. [attachment=29096] Gruß dimitri Case- mit While Strukturen - RMR - 31.08.2010 06:49 ' schrieb:@RMR Dein Beispiel ist alles andere als vollständig - Was ist mit der Kommunikation der beiden Schleife? So trivial ist das nicht. Das was du da "misst" ist nicht das was du speicherst. Hallo Dimitri, Das war mir durchaus bewusst, daß die beiden While nicht miteinander kommunizieren. War auch nur als "Quick n Dirty" gedacht. Der OP kann ja "Lokale Variablen":rolleyes: zum speichern verwenden, dann ist die "Kommunikation" gegeben. Die State gefällt mir, auch wenn ich mir gerade nicht vorstellen kann wie ich zB damit kontinuierlich über einen längeren Zeitraum aufzeichen kann. Hoffe das liegt nicht an der frühen Stunde.^_^ Bei meinen Anwendungen muss ich immer mal wieder die Daten auf Platte wegschreiben da die Versuchslaufzeiten oft über mehrere Tage oder Wochen dauern. Mri ist es daher zu riskant die Daten in einem Array im RAM stehen zu haben. Danke und Grüße, RMR |