INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

True false Case



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

07.08.2013, 17:07
Beitrag #1

TestingForLife Offline
LVF-Grünschnabel
*


Beiträge: 14
Registriert seit: May 2013

2010
2013
DE_EN


Deutschland
True false Case
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.


Angehängte Datei(en) Thumbnail(s)
       
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
07.08.2013, 17:13
Beitrag #2

Trinitatis Offline
LVF-Guru
*****


Beiträge: 1.694
Registriert seit: May 2008

7.1 / 8.0 /2014-1, 18
2002
DE

18055
Deutschland
RE: True false Case
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!Big Grin

Gruß, Marko
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
07.08.2013, 19:34
Beitrag #3

Y-P Offline
☻ᴥᴥᴥ☻ᴥᴥᴥ☻
LVF-Team

Beiträge: 12.612
Registriert seit: Feb 2006

Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN

71083
Deutschland
RE: True false Case
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

--------------------------------------------------------------------------
Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
07.08.2013, 20:36
Beitrag #4

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: True false Case
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

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
08.08.2013, 05:56
Beitrag #5

NWOmason Offline
Simultator
*****


Beiträge: 1.078
Registriert seit: Dec 2010

2012.SP1
2008
EN

93047
Deutschland
RE: True false Case
(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.

Dann würde ich zum Durcharbeiten folgender Tutorials raten:

Getting Started with NI LabVIEW Student Training
http://zone.ni.com/devzone/cda/tut/p/id/7466

Introduction to NI LabVIEW - Learn LabVIEW Basics
http://www.ni.com/gettingstarted/labviewbasics/

Beste Grüße,
NWO

9 von 10 Stimmen in meinem Kopf sagen: Ich bin nicht verrückt,
die andere summt die Melodie von Tetris
.

NI schrieb:To use the abort button is like using a tree to stop a car!

(20.01.2012 11:02 )NWOmason schrieb:  Getting Started with NI LabVIEW Student Training
http://zone.ni.com/devzone/cda/tut/p/id/7466

Introduction to NI LabVIEW - Learn LabVIEW Basics
http://www.ni.com/gettingstarted/labviewbasics/

Top 5 der Empfehlungen für LabVIEW-Einsteiger
http://www.ni.com/newsletter/51735/de/
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
08.08.2013, 08:03 (Dieser Beitrag wurde zuletzt bearbeitet: 08.08.2013 08:07 von GerdW.)
Beitrag #6

GerdW Offline
______________
LVF-Team

Beiträge: 17.412
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: True false Case
Hallo TFL,

allgemeine Antwort: THINK DATAFLOW!

Du hast programmiert:
Code:
IF Condition THEN
  5 Signale durchlassen
ELSE
  eine einzige Null ausgeben (<- !!!)
ENDIF
Schon hier sollte dir ein Problem auffallen: unterschiedliche Anzahl von Daten - begünstigt durch unüberlegten Einsatz des DDT.

Eigentlich brauchst du aber:
Code:
IF Condition THEN
  Signal(e) bearbeiten, anzeigen, speichern
ELSE
  do nothing
ENDIF
Wie gesagt: THINK DATAFLOW!

Und wie auch schon gesagt: DDT/ExpressVIs tragen nicht zur Übersichtlichkeit bei...
Wie du die Signale umsortierst, zeugt von überbordender Kreativität. Big Grin

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
08.08.2013, 08:47
Beitrag #7

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
RE: True false Case
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:
Code:
IF Condition THEN
Signal(e) bearbeiten, anzeigen, speichern
ELSE
do nothing
ENDIF
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:
   
und in Textsprache übersetzt würde das heißen:

IF Condition THEN
Y = true
ELSE
Y = Y
ENDIF
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
08.08.2013, 08:56
Beitrag #8

GerdW Offline
______________
LVF-Team

Beiträge: 17.412
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: True false Case
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?

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
08.08.2013, 10:19
Beitrag #9

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
RE: True false Case
(08.08.2013 08:56 )GerdW schrieb:  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?

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.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Innerhalb While-loop TRUE zu FALSE ändern iSzr 1 2.825 14.05.2018 09:37
Letzter Beitrag: GerdW
  Digitales 1-D Array in Boolsche True/False konvertieren flomo 5 5.223 13.12.2011 20:49
Letzter Beitrag: Y-P
  True-Dauer messen janauswilsche 4 4.195 25.05.2011 11:33
Letzter Beitrag: unicorn
  Digitale Kanäle bei VI Stop auf False zurück setzen FIE 5 4.754 28.08.2009 11:57
Letzter Beitrag: Y-P

Gehe zu: