Case-Struktur führt True und False aus (Ereignisschleife)
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!
Case-Struktur führt True und False aus (Ereignisschleife)
Hallo liebe LV-Gemeinde,
ich habe seit langem mal wieder eine Frage. Nach dem Umstieg auf LV2016 machte sich Ernüchterung breit, viele Abstürze und unerklärbares Verhalten waren normal. Gleiches beim neuen DAQmx. Nach vielen Updates ist es besser geworden.
Jetzt habe ich jedoch eine komische Verhaltensweise, welche ich euch mal zeigen möchte. Eventuell mache ich auch etwas falsch. Man denk immer man hat alles richtig gemacht und dann hat man doch wieder nen Ei.
Die zwei Strings oben sind die beiden möglichen Barcodes.
Bei Nr. 1 ergibt es ein False und ich bekomme die Ausgabe "Bitte scannen Sie den 2D-Code."
Bei Nr. 2 ergibt es wie gewünscht ein True und ich bekomme trotzdem die Ausgabe "Bitte scannen Sie den 2D-Code, welche im False-Case steht"
RE: Case-Struktur führt True und False aus (Ereignisschleife)
Du setzt die Ausgabe "String" auch nur im Time-Out-Case zurück. Zwecks "Update While Typing" bei der Eingabe "Barcode" werden bei Scan per Barcode-Scanner mglw. alle Buchstaben einzeln übertragen, die Eventstruktur bekommt das mit, und somit hast du erst einmal eine ganze Menge Events, bevor dein "Ö" erkannt wird.
Debug doch einfach mal, wie oft die Event-Struktur-Schleife wirklich aufgerufen wird.
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!
RE: Case-Struktur führt True und False aus (Ereignisschleife)
Hab das eben noch mal geprüft und du hast Recht. Mit jedem Schleifendurchlauf wird ein Char eingelesen und somit gibts bis zum Erscheinen des "Ö" ein False. Wie kann ich in diesem Fall die Fallunterscheidung realisieren?
In meinem Programm ist anstelle von "Barcode2" ein Sub-VI verlinkt in welchem die Namensauflösung erfolgt. Selbst wenn bei "Ö" ein True erreicht wird, wird dieses anscheinend nicht ausgeführt oder liefert kein Ergebnis. In der Highlightfkt. werden die pinken Strippen vom VI zum Indicator grau.
RE: Case-Struktur führt True und False aus (Ereignisschleife)
Update.
Wenn ich im Case "TRUE" die bool´sche Konstante von TRUE auf FALSE stelle, werden die Serien- und Artikelnummer ausgegeben. Sobald aber die While-Schleife beendet wird, gibts das Sub-VI nur zwei leere Strings aus. Ich raffs nicht.
LabVIEW 2016
23.08.2017, 12:39 (Dieser Beitrag wurde zuletzt bearbeitet: 23.08.2017 12:40 von jg.)
RE: Case-Struktur führt True und False aus (Ereignisschleife)
(23.08.2017 12:11 )HIMI schrieb: Hab das eben noch mal geprüft und du hast Recht. Mit jedem Schleifendurchlauf wird ein Char eingelesen und somit gibts bis zum Erscheinen des "Ö" ein False. Wie kann ich in diesem Fall die Fallunterscheidung realisieren?
Du könntest überprüfen, ob der Barcode-Scan wirklich beendet ist... Wenn ich es richtig im Kopf habe, dann geben Barcode-Scanner gerne einen Zeilenumbruch mit aus. Das könnte mit überprüft werden bei der Eingabe...
Gruß, Jens
(23.08.2017 12:32 )HIMI schrieb: Update.
Wenn ich im Case "TRUE" die bool´sche Konstante von TRUE auf FALSE stelle, werden die Serien- und Artikelnummer ausgegeben. Sobald aber die While-Schleife beendet wird, gibts das Sub-VI nur zwei leere Strings aus. Ich raffs nicht.
Bitte SubVI inkl. definierter Ausgaben posten. Und von welcher LabVIEW-Version bist du umgestiegen?
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!
RE: Case-Struktur führt True und False aus (Ereignisschleife)
Sehr gute Idee, der Scanner sollte parametrierbar sein. Zur Zeit liefert er keinen Zeilenumbruch o.ä.
Ich bin umgestiegen von LV2012.
Update.
Hab den Scanner parametriert und ein ENTER angehangen. Vorteil ist, dass man das "Update value while typing" nicht mehr braucht. Der Rubel rollt wieder. Mich würde nur trotzdem gern noch interessieren warum das Sub-VI die Werte nicht ausgibt, wenn die Schleife abgebrochen wird.
RE: Case-Struktur führt True und False aus (Ereignisschleife)
Das Bild in Beitrag #4 zeigt mein "Hauptprogramm" mit dem Sub-VI "SN_Art_String". Dieses Sub-VI liefert keine Werte, wenn im Hauptprogramm die While-Schleife durch die bool´sche Konstante im Case "True" beendet wird.
LabVIEW 2016
23.08.2017, 14:02 (Dieser Beitrag wurde zuletzt bearbeitet: 23.08.2017 14:05 von jg.)
RE: Case-Struktur führt True und False aus (Ereignisschleife)
Achso: Programmierfehler deinerseits (zumindest sieht es laut Screenshot so aus...), du gibts nur den Teil vor dem ersten Ö an dein SubVI weiter, und suchst dann nach einem weitern Ö als Trennzeichen.
EDIT: Wobei sich deine Suche nach Ö vor Aufruf deines SubVI ja sowieso erledigt hat, da du jetzt auf Zeilenumbruch reagierst.
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!