LabVIEWForum.de - Case-Struktur führt True und False aus (Ereignisschleife)

LabVIEWForum.de

Normale Version: Case-Struktur führt True und False aus (Ereignisschleife)
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
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"

[attachment=58172]

There goes ja the Dog in the pan crazy.

Ideen?
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
Danke für den Tipp Jens, ich mach mal Mittag und dann schau ich mal.
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.

[attachment=58175]
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.
(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
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.
Von welchem SubVI sprichst du genau? Welche Schleife meinst du genau? Bahn

Gruß, Jens
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.
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. Hmm

EDIT: Wobei sich deine Suche nach Ö vor Aufruf deines SubVI ja sowieso erledigt hat, da du jetzt auf Zeilenumbruch reagierst.

Gruß, Jens
Seiten: 1 2
Referenz-URLs