LabVIEWForum.de
Barcode - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Barcode (/Thread-Barcode)

Seiten: 1 2 3 4 5


Barcode - selma - 10.06.2010 10:47

' schrieb:Hallo Selma,

es gibt auch eine "empty string"-Konstante...

"Was nicht funktioniert ist: Der Stng wird nich überschrieben, er setzt den neuen Code einfach daunter."
Häh? Wo wird denn dein Barcode gesetzt? In deinem Bild wird Barcode nur gelesen, aber nirgends geschrieben...
Du könntest aber, wie schon mal erwähnt, nach der Auswertung des Barcodes (d.h. nach der Case-Struktur) einen "empty string" in eine lokale Variable "barcode" schreiben. Datenfluß dabei beachten!

"Es findet kein Vergleich statt, die Case-Struktur bleibt auf Voreinstellung stehen."
Es findet schon ein Vergleich statt, das Ergebnis ist halt nur der Default-Case, da kein anderer passt.Smile

Wo wird denn dein Barcode gesetzt?
In den String Barcode
"Es findet kein Vergleich statt, die Case-Struktur bleibt auf Voreinstellung stehen."
Ich habe doch in die Case-Struktur genau die Werte eingetragen die von Scanner kommen.???


Barcode - GerdW - 10.06.2010 11:13

Hallo Selma,

"Ich habe doch in die Case-Struktur genau die Werte eingetragen die von Scanner kommen.???"

Also: vorher hast du noch gesagt, dass deine Barcode-Strings immer angehangen werden an schon vorhandene Zeichen. Wenn dem immer noch so ist, kann die Case-Struktur natürlich nichts mit dem Mischmasch anfangen, da immer der ganze String verglichen wird.
Beispiel: du gibst als Case "11" und "22" vor. Der erste Scan liefert "11", es wird der entsprechende Case aufgerufen. Beim nächsten Scan wird "22" an die schon vorhandene "11" angehangen - in "Barcode" steht jetzt "1122". Das ist aber nicht als Case definiert und es wird der Default-Case verwendet...
Edit: Bist du dir sicher, dass der Scanner nicht auch unprintable chars liefert, die du bisher übersehen hast?

Also: wie schon beschrieben den "Barcode"-String nach der Auswertung löschen. Tipp dazu: da du ja eh schon die PropertyNode "Keyfocus" benutzt, kannst du sie um die Property "Value" erweitern und mit einem "empty string" verdrahten. Jetzt noch den Dataflow per Errorcluster herstellen, der fehlte in deinem letzten Bild...
PS: Wie stellst du sicher, dass der Scanner erst dann Daten ins Barcode-Control schreibt, wenn es nach der Auswertung wieder aktiv/erlaubt/gewünscht ist?

PPS: Ich sagte meinen Studenten immer: LV-Programmieren hat nur zu 10% damit zu tun, die Programmiersprache zu kennen. Die wichtigen 90% sind die Fähigkeit, vorher das Problem zu analysieren und dann einen PAP (Programmablaufplan) erstellen zu können...Smile


Barcode - selma - 10.06.2010 12:20

Ich versteh es nicht und das mit den Englichen bezeichnungen macht mir das noch schwerer.
Kann mir das jemand mal übersetzt und mir weiter Helfen.


Barcode - GerdW - 10.06.2010 12:28

Hallo Selma,

Programmieren (unabhängig von der verwendeten Programmierumgebung) und dann diese engl. Begriffe nicht kennen??? Dafür programmierst du aber schon recht lange...

Property = Eigenschaft, P.node=Eigenschaftsknoten, Value=Wert, empty string= leere Zeichenkette
Hab ich was vergessen?
Ja, hatte was vergessen: unprintable chars (eigentlich non-printable chars)=Steuerzeichen

Edit: Propertynode erweitern = Rechtsklick+Eigenschaft hinzufügen oder einfach mit der Maus auf den unteren Rand klicken und ziehen


Barcode - selma - 10.06.2010 12:44

[attachment=27032]

So weit so gut ich schnall es glaube ich nicht so ganz.


Barcode - GerdW - 10.06.2010 12:57

Hallo Selma,

nochmal Schritt für Schritt:
1) Propertynode erweitern (wie's geht s.o.), sodass 2 Properties auf einmal gesetzt werden (d.h. die beiden einzelnen zu einem Knoten zusammenfassen)
2) um dein "Barcode"-Control eine flache Sequenzstruktur legen
3) vor den Rahmen der Sequenz aus Punkt 2 per Rechtsklick (auf den vorhandenen Rahmen) einen zweiten Frame/Rahmen erzeugen, dort hinein eine Wartefunktion von ca. 10s=10000ms
4) ErrorOut der jetzt einzigen Propertynode mit dem linken Rahmen der Sequenz verbinden

Mit dieser Wartezeit erreichst du, dass nach dem Löschen des Strings genügend Zeit bleibt, um einen neuen Wert einzuscannen - sonst würdest du sofort nach der Propertynode aus dem String lesen, und den hast du ja gerade erst gelöscht...


Barcode - selma - 10.06.2010 15:55

' schrieb:Hallo Selma,

nochmal Schritt für Schritt:
1) Propertynode erweitern (wie's geht s.o.), sodass 2 Properties auf einmal gesetzt werden (d.h. die beiden einzelnen zu einem Knoten zusammenfassen)
2) um dein "Barcode"-Control eine flache Sequenzstruktur legen
3) vor den Rahmen der Sequenz aus Punkt 2 per Rechtsklick (auf den vorhandenen Rahmen) einen zweiten Frame/Rahmen erzeugen, dort hinein eine Wartefunktion von ca. 10s=10000ms
4) ErrorOut der jetzt einzigen Propertynode mit dem linken Rahmen der Sequenz verbinden

Mit dieser Wartezeit erreichst du, dass nach dem Löschen des Strings genügend Zeit bleibt, um einen neuen Wert einzuscannen - sonst würdest du sofort nach der Propertynode aus dem String lesen, und den hast du ja gerade erst gelöscht...

So weit habe ich es, ich weiß, dass dieses noch nicht deiner Beschreibung entspricht.
Habe gerade entdeckt das man noch das Häckchen oben Link in LabVIEW drücken muß um die eingabe zu bestättigen.
Der Tastenfokus funktioniert auch nur zwi mal den nicht mehr?
Was mir noch Aufgefallen ist,das wenn ich ausversehen zweimal Scanne, ich auch zwei Codes in den String habe.
Noe
[attachment=27038]
[attachment=27039]
Lv09_img2


Barcode - GerdW - 10.06.2010 17:49

Hallo selma,

bei mir funktioniert der Keyfocus öfter als zweimal...
Edit: zweite Version mit Event-Struktur...

Lv09_img2


Barcode - selma - 11.06.2010 08:20

Guten morgen,
es gibt noch folgenes Problem: nach dem Scannen muß noch die Eingabe bestättig werden ( über das Häckchen oben link in der Ecke )
Wie kan man dieses automatiesiren?
Wenn ich ausversehen zweimal Scanne, ich auch zwei Codes in den String.
Gibt es da eine Lösung?
MfG Selma


Barcode - GerdW - 11.06.2010 08:23

Hallo Selma,

kann man sicher automatisieren!

Hast du mal in die Event-Variante geschaut? Dort habe ich die Stringeingabe auf "Update Value while typing" gesetzt. Damit wird sofort ein ValueChange-Event ausgelöst, sobald sich der Wert in "Barcode" ändert. Jetzt könntest du auf "richtig erkannten Barcode" testen und im Erfolgsfall den "Barcode"-String wieder löschen...