True false Case - Druckversion +- LabVIEWForum.de (https://www.labviewforum.de) +-- Forum: LabVIEW (/Forum-LabVIEW) +--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein) +---- Forum: Datenerfassung (DAQ) (/Forum-Datenerfassung-DAQ) +---- Thema: True false Case (/Thread-True-false-Case) |
True false Case - TestingForLife - 07.08.2013 17:07 Hallo liebe Forenmitglieder, ich habe eine Frage, habe ein LabView-Programm, dass in einen case andauernd false "reingibt". Eigentlich dürfte kein Signal nach dem case rauskommen. Tut es aber. False soll nicht durchlassen (siehe Bild 1) und true soll durchlassen (siehe Bild 2). Da die false-Konstante "F" anliegt, kann das Programm aber gar nichts durchlassen nach dem case (eigentlich), aber es wird ignoriert, das Signal läuft einfach durch. Warum funktioniert der case hier nicht? Danke. RE: True false Case - Trinitatis - 07.08.2013 17:13 Hallo, setz dir dochmal eine Sonde in die beiden cases. Dann wirst du feststellen, dass schon der richtige case von LV gewählt wird. Ich denke, dein Problem liegt woanders. Dazu müsstest du aber mal zeigen, welche Signale da jeweils herauskommen. Dass die case-Struktur kaputt ist, wage ich zu bezweifeln! Gruß, Marko RE: True false Case - Y-P - 07.08.2013 19:34 Bei dem Datenwirrwarr, den Du hier hast blickt ja keiner durch. Ersetze mal die dynamischen Daten durch richtige Dateitypen (sprich ersetze den DAQ-Assistent und die Express-VIs). Bei Dir gibt's ja zig Typumwandlungen (Coercion Dots), dass Dir da sonst keiner weiterhelfen kann (allein schon beim Case kommt einmal ein Double "raus" und einmal dynamische Daten). Gruß Markus RE: True false Case - jg - 07.08.2013 20:36 Du gibst doch ein "Null" aus, auch das ist ein Signal. Was genau die ganzen Express-VIs machen, das lässt sich auf Grund des Screenshots nicht genau sagen. Wenn du willst, dass im False-Case keine weitere Datenverarbeitung stattfindet, dann ist die Lösung einfach: Case-Struktur größer machen... Gruß, Jens RE: True false Case - NWOmason - 08.08.2013 05:56 (07.08.2013 17:07 )TestingForLife schrieb: Warum funktioniert der case hier nicht? Der Case an sich funktioniert schon. Du musst einfach 'alles' was nicht ausgeführt werden soll bei 'False', in den Case ziehen! Weiter empfehle ich dir noch folgende Links zur Einarbeitung: (20.01.2012 11:02 )NWOmason schrieb:(20.01.2012 09:32 )prinz3nroll3 schrieb: aber leider bin ich ein blutiger Anfänger. Beste Grüße, NWO RE: True false Case - GerdW - 08.08.2013 08:03 Hallo TFL, allgemeine Antwort: THINK DATAFLOW! Du hast programmiert: Code: IF Condition THEN Eigentlich brauchst du aber: Code: IF Condition THEN Und wie auch schon gesagt: DDT/ExpressVIs tragen nicht zur Übersichtlichkeit bei... Wie du die Signale umsortierst, zeugt von überbordender Kreativität. RE: True false Case - Lucki - 08.08.2013 08:47 Sich klar auszudrücken scheint nicht zu den Stärken von Testxxx zu gehören. Falls er aber das gemeint hat: Zitat:Eigentlich brauchst du aber:dann wäre die Antwort: Das geht nicht mit der Casestruktur allein, dazu braucht man auch noch Shift-Register, Rückkopplungsknoten oder lokale Variable. Beispiel: [attachment=45808] und in Textsprache übersetzt würde das heißen: IF Condition THEN Y = true ELSE Y = Y ENDIF RE: True false Case - GerdW - 08.08.2013 08:56 Hallo Lucki, ich verstehe gerade nicht, was du ausdrücken willst, aber könnte man die Casestruktur in deinem Snippet nicht durch ein wesentlich übersichtlicheres OR-Gatter ersetzen? RE: True false Case - Lucki - 08.08.2013 10:19 (08.08.2013 08:56 )GerdW schrieb: Hallo Lucki, Natürlich ginge das, aber bei der Frage ging es um die Case-Struktur. Das Beispiel ist ansonsten sinnfrei, und daran würde auch eine anderer Code nichts ändern. Also noch mal: Der true-False Case-Struktur ist ja immer von der Form If true then A else B; Aber was tut man, wenn im "else" case nichts passieren soll? Ich kann mich schwach erinnern, dass ich da auch mal Schwierigkeiten hatte das Problem zu lösen. Die beiden Lösungmöglichkeiten sind: a) Die Casestruktur darf entweder gar keinen Ausgang haben (Beipiele: Der Variablen wird in einem Case ein Wert über eine Lokale Variable zugewiesen, oder es wird ein SubVI ausgeführt, welches keine Ausgänge hat.) b) Wenn sie aber einen Ausgang hat, dann muß dafür gesorgt werden, dass dem Ausgang im "else"-Case der alte Wert zugewiesen wird, das ist dann genau so als wäre nichts passiert. Und dazu diente das Beispiel. |