LabVIEWForum.de
Was tun im Case False? - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Was tun im Case False? (/Thread-Was-tun-im-Case-False)

Seiten: 1 2 3


Was tun im Case False? - gfzk - 25.09.2009 09:58

Hallo,

ich möchte auf Tastendruck eine Messung in einem VI starten. Dazu habe ich das SubVi, dass für die Messung zuständig ist den True Case gelegt. Die Messdaten sollen in ein Array ausserhalb des Case übertragen werden. Was aber mache ich im False Fall, der Ausgang muss ja auch in diesem definiert sein, aber ich will die Werte ja nicht überschreiben die in True entstanden sind.

Gruß,
gfzk


Was tun im Case False? - schrotti - 25.09.2009 10:03

Ich habe deine Frage dreimal gelesen und verstehe dein Problem beim bestem Willen nicht. Zum Rätselraten fehlt mir auch die Lust.

Esit: Ah,jetzt ist ein Bild dabei. Die Antwort lautet Schieberegister.


Was tun im Case False? - SeBa - 25.09.2009 10:06

z.B.:
Leg das Array das aus dem True Case kommt in ein Shiftregister und verbinde das linke Shiftregister durch den False Case mit dem Rechten. Im True Case hängst du dann mit "in Array einfügen" die neuen Werte and das alte Array an.

Initialisieren des Shiftregisters mit einem leeren Array, wenn du vorher weißt wie groß das Array wird, das Array zuerst initialisieren, und statt "in Array einfügen" "Teilarray ersetzten" benutzen.

Gruß SeBa


Was tun im Case False? - cabua - 25.09.2009 10:10

Case False einfach löschen.
Rechte Mausstaste drauf - Delete This Case.


Was tun im Case False? - TSC - 25.09.2009 10:15

Verwende anstelle der Casestruktur eine Eventstruktur die wartet, bis du den Button gedrückt hast. Das erspart dir nicht nur die Gedanken um den Falsecase sondern schont auch noch deine CPU, weil das Programm nur dann arbeitet, wenn auch was passieren soll. Momentan würde im Falsecase ja einfach nur jede Millisekunde ein Schleifendurchlauf ohne Funktion und Sinn durchlaufen werden.

Sehr löblich, dass du ein wait in deine Schleife eingebaut hast.

LG
Torsten


Was tun im Case False? - gfzk - 25.09.2009 10:19

Danke für die schnellen Antworten, das mit dem Schieberegister ist mir einfach nicht eingefallen.

@cabua: das funktioniert leider garnicht, denn der Schalter liefert ja nicht nur ein True sonder auch ein False:

Fehlermeldung:
Eine Case-Struktur muss für jede mögliche Auswahl einen Case haben. Das kann ganz einfach durch Erstellen eines Standard-Cases oder durch Cases mit Wertebereichen von oder bis Unendlich erreicht werden.

Gruß, gfzk


Was tun im Case False? - gfzk - 25.09.2009 10:22

TSchAC:

das ist natürlich noch eleganter!

Die 1ms Verzögerung ist das Wenige, dass ich aus der LabVIEW Vorlesung noch weiss Smile


Was tun im Case False? - TSC - 25.09.2009 11:02

' schrieb:..
Die 1ms Verzögerung ist das Wenige, dass ich aus der LabVIEW Vorlesung noch weiss Smile
..
Nicht das Schlechteste, was du dir da behalten hast. :-)


Was tun im Case False? - Lucki - 25.09.2009 13:38

' schrieb:Danke für die schnellen Antworten, das mit dem Schieberegister ist mir einfach nicht eingefallen.
Muß Dir auch nicht, denn es gibt für fast jedes Schieberegistes als Alternative die Verwendung von lokalen Variablen. Das Programm dauert dann 1 Mikrosekunde länger als mit Schieberegister, dafür wird aber weniger Draht im BD verbraucht. Hier die Gegenüberstellung:
[attachment=21456]
Edit: Mir ist, wenn man schon lokale Variable verwendet, noch eine Lösung mit noch weniger Drahtverhau im BD eingefallen. (Die False Case bleiben hier einfach leer):
[attachment=21450]


Was tun im Case False? - abrissbirne - 28.09.2009 07:12

' schrieb:Muß Dir auch nicht, denn es gibt für fast jedes Schieberegistes als Alternative die Verwendung von lokalen Variablen. Das Programm dauert dann 1 Mikrosekunde länger als mit Schieberegister, dafür wird aber weniger Draht im BD verbraucht. Hier die Gegenüberstellung:
[attachment=49569:Falsecase.png]
Edit: Mir ist, wenn man schon lokale Variable verwendet, noch eine Lösung mit noch weniger Drahtverhau im BD eingefallen. (Die False Case bleiben hier einfach leer):
[attachment=49573:Fc2.png]
Diese Art der Programmierung widerspricht allerdings dem LV Grundgedanken der datneflussorientierten Programmierung, da lokale Variablen Sprunkbefehle repräsentieren. Datenfluss bedeutet nunmal auch einige Drähte im BD.