Hallo zusammen, habe hier einen Kathrein RFID-Reader "RRUI4-ETH-E4" (USB und LAN Anschluss) rumliegen, den ich gerne zum Testen von RFID-Lesen/Schreiben verwenden würde. Ich habe versucht, den Reader mit einer API (ReaderDll.dll) von 2009 anzusprechen, bekomme aber nach dem fehlerfreien Absenden von Kommandos per USB keine Antwort (über Callbackfunktionen, die man der DLL übergibt). Das macht Sinn, weil auch die mitgelieferte 2009er Software nicht auf das Gerät zugreifen kann, weil wohl die Firmware zu alt ist. Die 2008er mitgelieferte Software funktioniert, aber ich kriege es nicht hin, die passende API-DLL-Datei zu verwenden. Bekomme einen "internal error" zurückgeliefert (Code DLLIE_COMMUNICATIONERROR), nachdem ich verbunden bin aber bevor ich überhaupt ein Kommando absetze. Hier verbinde ich mich aber per LAN, weil für USB eine zusätzliche Datei KBUSB.dll eingebunden werden muss, ich aber nicht weiß wie das geht. Mir fehlt leider jeglicher Beispielcode. Die mitgelieferte Software verwendet exakt dieselbe DLL-Datei (klappt per LAN und USB), d.h. ich müsste es auch eigentlich irgendwie hinkriegen, selbst mit dieser DLL-Datei auf den Reader zugreifen zu können. Nun die Fragen: Kennt jemand Beispiele, wie man den Reader per USB anspricht? Oder noch besser: Woher bekomme ich eine aktuellere Firmware (habe v1.18.00), damit ich mit der 2009er API zugreifen kann (Vorteil für mich, da es dafür eine .NET-Variante gibt)? Danke schonmal!
Hi! Also ich würde Dir empfehlen den Ethernet-Anschluss zu nutzen, ich persönlich habe auf die dll verzichtet und baue eine Verbindung über Sockets zu der IP-Adresse auf, dann schicke ich die Kommandos raus, wie z.B. SyncGetEPCs um den EPC zu lesen und SyncReadDataSpecific um die TID, also die eindeutige Id, zu lesen. Die genauen Pakete hatte ich mit dem Kathrein Tool und Wireshark gesnifft.
Super, hat funktioniert! Habe jetzt nur Lesen und Schreiben von EPCs per Wireshark gesnifft, aber für kleine Tests reicht mir das aus. Danke für den Hinweis - übrigens unterscheidet sich das Protokoll stark zwischen der 2008er und 2009er Firmware (für das 2009er Protokoll habe ich nämlich eine Dokumentation). Als Hinweis: Jedes gesendete Paket beginnt mit aabb und endet mit aacc (Hex), als Filter für Wireshark empfiehlt sich "ip.dst == 192.168.200.200 && tcp.len > 0" (IP-Adresse meines Readers, nur abgesetzte Kommandos sniffen). Wenn man dann das Kommando in ReaderStart absetzt und das gewünschte Paket gesnifft hat, den Filter abschalten und die Daten der Antwort anschauen. Habe ein Python-Script angehängt, das ich zum Lesen/Schreiben von Tags geschrieben habe. Funktioniert mit Firmware v1.18.00 - vielleicht hilft's ja jemandem anderen noch :)
Hinweis zum Script: Man muss noch den Fall berücksichtigen, falls ein EPC 0xaacc enthält (= Endmarker für ein Paket). Kann also so nicht direkt verwendet werden!
Hier noch die .NET-Variante, die als Library aufgebaut ist. Obigen Hinweis habe ich eingearbeitet.
Korrektur: Habe den EPC in falscher Byte-Reihenfolge geschrieben. Ist jetzt korrigiert (siehe Anhang).
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.