RFID lesen mit Easyident-KM22-USB - Druckversion +- LabVIEWForum.de (https://www.labviewforum.de) +-- Forum: LabVIEW (/Forum-LabVIEW) +--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein) +---- Forum: Instrument IO & VISA (/Forum-Instrument-IO-VISA) +---- Thema: RFID lesen mit Easyident-KM22-USB (/Thread-RFID-lesen-mit-Easyident-KM22-USB) Seiten: 1 2 |
RFID lesen mit Easyident-KM22-USB - Adam6de - 10.11.2010 10:04 Hallo, ich versuche gerade Transponder ID's mit dem USB-leser "Easyident-KM22-USB" zu erfassen. Der Leser bringt eine virtuelle COM-Schnittstelle mit, sodass ich einfach mit der Funktion VISA lesen gearbeitet habe. Mein Problem ist das die Funktion VISA-lesen ab und zu einen Fehler ( -1073807252 ) ausgibt, und ich nicht weis was ich damit anfangen soll. bzw. wie ich ihn abstellen kann. Für Lösungs und/oder Verbesserungsvorschläge an meinem VI wäre ich sehr dankbar. MFG Stefan [attachment=30483] RFID lesen mit Easyident-KM22-USB - GerdW - 10.11.2010 11:00 Hallo Stefan, schon mal die Fehlerbeschreibung dazu durchgelesen? "VISA: (Hex 0xBFFF006C) Während der Übertragung ist ein Überlauffehler aufgetreten. Ein Zeichen wurde von der Hardware nicht gelesen, bevor das nächste Zeichen ankam." Zitat:ab und zu einen Fehler ... ausgibt, und ich nicht weis was ich damit anfangen sollWenn nur "ab und zu" ein Fehler auftritt , kann man den ja programmatisch abfangen und den COM-Port zurücksetzen. Danach wie gehabt weitermachen... Zu deinem VI: - Schon mal den Aufräum-Knopf benutzt? - Warum initialisiert du den COM-Port in jeder Iteration? - Warum prüfst du auf 13 Zeichen? Gib doch einfach vor, nur 13 Zeichen lesen zu wollen... Außerdem wartest du doch eh schon auf ein Abschlußzeichen (aka TerminationChar), voreingestellt ist ein LF! Sendet der RFID-Leser etwas Messages unterschiedlicher Länge? - Warum den String erst in der Länge begrenzen und dann in eine Zahl wandeln? Überschüssige Zeichen werden ignoriert... - Den "error in" kann man direkt an den CaseSelector anschließen... - Guck dir das "Basic Serial Read and Write"-Example mal an! RFID lesen mit Easyident-KM22-USB - Adam6de - 10.11.2010 13:42 Hallo GerdW Ja ich hab mir die Fehlerbeschreibung schon mal angesehen. Die hat mich aber leider auch nicht weitergebracht. Ja ok Aufräumknopf nicht benutzt meine schuld!! - Warum initialisiert du den COM-Port in jeder Iteration? keine ahnung - Warum prüfst du auf 13 Zeichen? Gib doch einfach vor, nur 13 Zeichen lesen zu wollen... Außerdem wartest du doch eh schon auf ein Abschlußzeichen (aka TerminationChar), voreingestellt ist ein LF! Sendet der RFID-Leser etwas Messages unterschiedlicher Länge? Es kommt vor dass der Leser, warum auch immer, mal ein paar zeichen weglässt. Die Zeichenläge meiner ID ist immer gleich. - Warum den String erst in der Länge begrenzen und dann in eine Zahl wandeln? Überschüssige Zeichen werden ignoriert... Ich will das zeichen ganz rechts abschneiden da es eine Prüfsumme ist. - Den "error in" kann man direkt an den CaseSelector anschließen... Ok danke das wusste ich leider noch nicht. - Guck dir das "Basic Serial Read and Write"-Example mal an! Hab ich gemacht dort tritt der gleiche fehler auf. Ich hab herausgefunden wie ich den Fehler erzwingen kann. Wenn ich meinen RFID-Chip an den leser halte bevor ich VISA-lesen ausführe kommt der Fehler zu 90% zur Info Mein Leser sendet kontinuirlich die ID solange der Chip drangehalten wird. RFID lesen mit Easyident-KM22-USB - GerdW - 10.11.2010 14:47 Hallo Stefan, Zitat:VISA: (Hex 0xBFFF006C) Während der Übertragung ist ein Überlauffehler aufgetreten. Ein Zeichen wurde von der Hardware nicht gelesen, bevor das nächste Zeichen ankam.Der Fehler sagt: der interne Buffer lief über - ein neu empfangenes Zeichen hat ein altes, noch nicht verarbeitetes überschrieben. Zitat:Wenn ich meinen RFID-Chip an den leser halte bevor ich VISA-lesen ausführe kommt der Fehler zu 90%Der Fehler tritt auf, wenn dein RFID-Leser munter Werte sendet, die du aber noch nicht verarbeitest. Jetzt beides mal miteinander verknüpfen und dir dann einen anderen Programmablauf überlegen... Alternative Ratschläge: - Fehler abfangen und "löschen" - Buffer regelmäßig leeren RFID lesen mit Easyident-KM22-USB - Adam6de - 10.11.2010 15:39 So ich hab es jetzt nochmal anders versucht es funktioniert aber immer noch nicht richtig. Könntest du mir bitte etwas auf die Sprünge helfen? Danke Gruß Stefan [attachment=30494] RFID lesen mit Easyident-KM22-USB - A.Berndsen - 12.11.2010 08:40 Hallo Stefan, ich kann mir Dein VI leider nicht ansehen. (kein LV2010) Ich hoffe allerdings, daß Du als Grundgerüst für Dein VI des "Erzeuger-Verbraucher-Template" verwendest. Damit kannst Du die Leseoperationen für den RFID-Leser in einer Schleife (Erzeuger) kontinuierlich durchführen und die RFID-Id über eine Queue in einer zweiten Schleife (Verbraucher) verarbeiten. Damit sollte der Fehler zu beheben sein. Grüße Andreas Bitte bei Uploads LV-Version angeben. RFID lesen mit Easyident-KM22-USB - GerdW - 12.11.2010 08:49 Hallo Stefan, solange du keine Schleife verwendest, wirst du immer Probleme bekommen. Willst du jedesmal erst einen Knopf drücken/ein VI starten, wenn du eine RFID-Kennung in den Rechner lesen willst? Sowas sollte doch dauernd abgefragt werden... Dann muss man auch nicht dauernd den COM-Port initialisieren und wieder schließen! RFID lesen mit Easyident-KM22-USB - Y-P - 12.11.2010 08:50 @Andreas: Hier ist es für LabVIEW 8: [attachment=30493] Gruß Markus ' schrieb:ich kann mir Dein VI leider nicht ansehen. (kein LV2010) RFID lesen mit Easyident-KM22-USB - A.Berndsen - 12.11.2010 09:30 Da kann ich Gerd nur beipflichten. Das ganze muß erstmal in einer Schleife laufen. Kleine Anregung! [attachment=30534] Grüße Andreas @Y-P Danke! RFID lesen mit Easyident-KM22-USB - Adam6de - 15.11.2010 12:09 Vielen Dank für euere Antworten. ich bin jetzt schon ein ganzes Stück weiter. @GerdW nein ich will die RFID nicht dauernd abfragen sonder nur in einem bestimmten Teil des Programms. Da die ID nicht nur als Identifizierung sonder auch als Startsignal für den weiteren Programmablauf benutzt wird. Hier nochmal mein aktueller Stand des VI's |