Fehlerbehebung
Diese Seite beschreibt Probleme mit LumiScan Barcode Reader und wie Sie sie lösen. Beginnen Sie mit den allgemeinen Prüfungen, und suchen Sie dann unten Ihr Symptom: Jedes Problem nennt seine Symptome, die möglichen Ursachen, eine Diagnose und die Lösung. Probleme des Data Layer selbst sind unter Fehlerbehebung Data Layer beschrieben, Lizenzprobleme unter Fehlerbehebung Lizenzierung.
Allgemeine Prüfungen
-
Lesen Sie das Protokoll der Anwendung. Auf ctrlX OS ist das Protokoll der Anwendung das Systemprotokoll. Der Reader schreibt den Grund dorthin, wenn ein Lauf fehlschlägt, wenn
control/subscribe/executeodercontrol/unsubscribe/executeabgelehnt wird, wenn die Quelle des Bild-Streams nicht abonniert werden kann (der erste Fehlschlag), wenn Frames nicht gelesen werden können (höchstens eine Zeile alle 5 Sekunden) und wenn ein Wert in seiner Einstellungsdatei nicht verwendet werden kann. -
Prüfen Sie die Adressen. Alle Knoten liegen direkt unter
hdvisionsystems/lumiscan-barcode-reader/; der Reader hat keine Module. Adressen sind kleingeschrieben. Erwartet: Ihre SPS oder Ihr Client verwendet genau diese Adressen, wie in der Data-Layer-Referenz aufgeführt. -
Prüfen Sie die Bildquelle. Die Anwendung, die den Bildknoten veröffentlicht, normalerweise LumiScan Cam Driver, muss auf demselben Gerät laufen (ctrlX OS) oder mit demselben LumiScan Keryx verbunden sein wie der Reader (PC). Erwartet: Der in
input/image-addressgenannte Knoten stelltdata,width,heightundpixel-typebereit. -
Prüfen Sie, ob ein Lauf fehlgeschlagen ist. Dieser Reader veröffentlicht keinen Knoten
status-codeoderstatus-text. Ein fehlgeschlagener Lauf lässtoutput/resultsunverändert, mit den Codes des vorherigen Laufs. Lesen Sieoutput/resultsvor und nach dem Lauf und vergleichen Sie, oder prüfen Sie das Protokoll. Siehe Woran erkenne ich, ob ein Lauf fehlgeschlagen ist?. -
Prüfen Sie die Einstellungsdatei des Bild-Streams. Der Reader speichert seine Stream-Einstellungen in
barcode-reader.jsonim Konfigurationsverzeichnis der Anwendung:Plattform Konfigurationsverzeichnis ctrlX OS
/var/snap/rexroth-solutions/common/solutions/activeConfiguration/lumiscan-barcode-readerPC (Windows)
%APP_RESOURCE_DIR%\etc\lumiscan-barcode-reader; ohneAPP_RESOURCE_DIRC:\ProgramData\HD Vision Systems GmbH\LumiScan Vision Suite\lumiscan-barcode\etc\lumiscan-barcode-readerDie Datei wird einmal gelesen, beim Start der Anwendung: Von Hand vorgenommene Änderungen wirken beim nächsten Start. Ein Wert, der nicht verwendet werden kann, wird ignoriert und protokolliert; eine Datei, die kein gültiges JSON ist, wird ignoriert und protokolliert. Siehe In der Einstellungsdatei gespeichert.
Problem: Der Reader beendet sich beim Start
Auf ctrlX OS beendet sich der Reader kurz nach dem Start. Seine Knoten unter hdvisionsystems/lumiscan-barcode-reader verschwinden aus dem Data Layer.
-
Die ctrlX-Lizenz
SWL-W-XCx-BARxxCRDSxHDVSx-V1NNist auf dem ctrlX-OS-Gerät, auf dem der Reader läuft, nicht verfügbar. Die Lizenz wird beim Start bis zu zehn Sekunden lang geprüft; wird in dieser Zeit keine verfügbar, beendet sich der Reader.
-
Öffnen Sie das Systemprotokoll von ctrlX OS - erwartet: der Grund für das Beenden. Das Systemprotokoll nennt die fehlende Lizenz.
-
Prüfen Sie die Lizenzen im License Manager von ctrlX OS - erwartet: Die ctrlX-Lizenz
SWL-W-XCx-BARxxCRDSxHDVSx-V1NNist auf dem Gerät verfügbar, auf dem der Reader läuft. Ein Lizenzplatz deckt den Reader ab. Die Advanced-LizenzSWL-W-XCx-BARxxCRDAxHDVSx-V1NNwird für den Start nicht benötigt: Ohne sie läuft der Reader mit den Standard-Funktionen.
-
Wenn die ctrlX-Lizenz fehlt:
-
Kaufen Sie die Lizenz
SWL-W-XCx-BARxxCRDSxHDVSx-V1NNim ctrlX Store. -
Aktivieren Sie sie im License Manager von ctrlX OS auf dem Gerät, auf dem der Reader läuft. Folgen Sie dabei der Dokumentation von Bosch Rexroth für ctrlX OS.
-
Starten Sie den Reader erneut. Erwartet: Er läuft weiter, und seine Knoten sind im Data Layer.
-
Senden Sie die unter Informationen für den Support aufgeführten Informationen an den Support, zusammen mit den Zeilen des Systemprotokolls von ctrlX OS, die die Lizenz nennen. Für Lizenzen wenden Sie sich an licenses@hdvisionsystems.com.
Problem: output/results ist ein leeres Array
Nachdem execute zurückgekehrt ist, enthält output/results ein leeres Array: CodeDetectResultArray.results hat keinen Eintrag. Im Bild-Stream hat ein Ergebnis auf control/subscribe/output/stream/result ein leeres Array results.
-
Das Bild enthält keinen Barcode. Ein leeres
output/resultsist kein Fehler: Es bedeutet, dass das Bild erfolgreich gelesen wurde und keinen Barcode enthielt. Ein Lauf, der nichts gefunden hat, veröffentlicht ein leeres Array und keinen Fehler. -
Der Code ist kein linearer (1D-)Barcode. Der Reader liest die lineare Familie von ZXing, zum Beispiel Code 128, Code 39, EAN-13 und UPC-A. Data-Matrix-, QR- und Aztec-Codes lesen seine Schwester-Apps.
-
input/image-addressnennt einen Bildknoten, der den Code nicht zeigt. Jeder Lauf liest den gesamten aktuellen Inhalt des dort genannten Bildknotens. -
Der letzte Lauf ist fehlgeschlagen, und das leere Array ist das Ergebnis eines früheren Laufs. Ein fehlgeschlagener Lauf lässt
output/resultsunverändert. Ein Lauf schlägt fehl, wenn das Bild nicht gelesen werden kann: keine Adresse gesetzt, eine Adresse, die sich nicht auflösen lässt, ein fehlender oder zu kurzerdata-Puffer oder ein nicht unterstütztes Pixelformat.
-
Lesen Sie das Protokoll der Anwendung zum Zeitpunkt des Laufs - erwartet: kein Fehlschlag. Ein fehlgeschlagener Lauf schreibt seinen Grund dorthin; auf ctrlX OS ist das das Systemprotokoll.
-
Lesen Sie
input/image-address- erwartet: die Adresse des Bildknotens der Kamera, die den Code sieht, zum Beispielhdvisionsystems/lumiscan-cam-driver/camera1/output/image. -
Prüfen Sie die Art des Codes - erwartet: ein linearer (1D-)Barcode, zum Beispiel Code 128, Code 39, EAN-13 oder UPC-A.
-
Wenn das Bild keinen Barcode enthält: Mit dem Reader ist alles in Ordnung. Rufen Sie
executeerneut auf, wenn der Bildknoten ein Bild mit dem Code enthält. -
Wenn der Code kein linearer Barcode ist: Verwenden Sie die Schwester-App für seine Symbologie: LumiScan DMC Reader, LumiScan QR Code Reader oder LumiScan Aztec Code Reader. Sie funktionieren auf dieselbe Weise.
-
Wenn
input/image-addresseinen anderen Bildknoten nennt:-
Schreiben Sie die Adresse des richtigen Bildknotens in
input/image-address. Es ist die Adresse des Bildknotens selbst, nicht die seines Kindknotensdata. Die Adresse wird gemerkt. -
Schreiben Sie einen leeren Wert in
execute. Erwartet:output/resultsenthält einen Eintrag pro Code.
-
-
Wenn der letzte Lauf fehlgeschlagen ist: Beseitigen Sie den Grund, den das Protokoll nennt: Setzen Sie
input/image-address, korrigieren Sie eine Adresse, die sich nicht auflösen lässt, oder sorgen Sie dafür, dass die Bildquelle vollständigedatain einem unterstützten Pixelformat liefert (siehe Voraussetzungen). Schreiben Sie dann erneut einen leeren Wert inexecute. Erwartet: Das Protokoll zeigt für diesen Lauf keinen Fehlschlag.
Siehe Einen Code lesen und Das Ergebnis.
Senden Sie die unter Informationen für den Support aufgeführten Informationen an den Support, zusammen mit dem Wert von input/image-address, width, height und pixel-type dieses Bildknotens und der Symbologie des Codes.
Problem: control/subscribe/execute wird abgelehnt
Ein Schreibvorgang auf control/subscribe/execute (oder auf control/unsubscribe/execute) antwortet mit DL_INVALID_VALUE (ctrlX OS) oder Rejected (PC) oder mit DL_CREATION_FAILED (ctrlX OS) oder CreationFailed (PC) statt mit DL_OK (ctrlX OS) oder Ok (PC). Nichts hat sich geändert: setting/stream/ zeigt weiterhin die zuvor angewendeten Werte.
-
DL_INVALID_VALUE/Rejectedvoncontrol/subscribe/execute: Stream-Modus ohne Adresse oder eine Warteschlangengröße außerhalb von1bis64. -
DL_INVALID_VALUE/Rejectedvoncontrol/unsubscribe/execute: Die Adresse ist nicht die Quelle, oder es gibt keine Quelle. -
DL_CREATION_FAILED/CreationFailed: Die Einstellungsdateibarcode-reader.jsonkonnte nicht geschrieben werden, zum Beispiel weil sie kein gültiges JSON ist.
-
Lesen Sie die Antwort des Methodenaufrufs - erwartet:
DL_OKoderOk.DL_INVALID_VALUEoderRejectedweist auf eine Eingabe hin,DL_CREATION_FAILEDoderCreationFailedauf die Einstellungsdatei. -
Lesen Sie das Protokoll der Anwendung - erwartet: der Grund für die Ablehnung. Auf dem ctrlX Data Layer trägt ein abgelehnter Aufruf keinen Grund; der Reader schreibt ihn in sein Protokoll.
-
Lesen Sie nach einem abgelehnten
control/subscribe/executedie Knotencontrol/subscribe/input/enable,control/subscribe/input/addressundcontrol/subscribe/input/queue-size- erwartet: eine Adresse, sobaldenabletrueist, und eine Warteschlangengröße von1bis64. -
Vergleichen Sie nach einem abgelehnten
control/unsubscribe/executeden Wert voncontrol/unsubscribe/input/addressmitsetting/stream/address- erwartet: dieselbe Adresse. Ein/an einem der beiden Enden zählt nicht. -
Öffnen Sie nach
DL_CREATION_FAILEDoderCreationFaileddie Dateibarcode-reader.jsonim Konfigurationsverzeichnis (siehe Allgemeine Prüfungen) - erwartet: eine gültige JSON-Datei.
-
Wenn der Stream-Modus keine Adresse hat: Schreiben Sie den Stream-Ordner der Kamera, zum Beispiel
hdvisionsystems/lumiscan-cam-driver/camera1/control/publish/output/stream, incontrol/subscribe/input/address, und schreiben Sie dann erneut aufcontrol/subscribe/execute. Erwartet:DL_OKoderOk. -
Wenn die Warteschlangengröße außerhalb von
1bis64liegt: Schreiben Sie einen Wert von1bis64incontrol/subscribe/input/queue-size, und schreiben Sie dann erneut aufcontrol/subscribe/execute. Erwartet:DL_OKoderOk. -
Wenn die zu entfernende Adresse nicht die Quelle ist: Schreiben Sie die Adresse, die
setting/stream/addressanzeigt, incontrol/unsubscribe/input/address, und schreiben Sie dann erneut aufcontrol/unsubscribe/execute. Istsetting/stream/addressleer, gibt es keine Quelle, die entfernt werden kann. -
Wenn die Einstellungsdatei nicht geschrieben werden konnte:
-
Korrigieren Sie
barcode-reader.json, sodass die Datei gültiges JSON ist. Auf einem PC schreibtlumiscan-barcode --generate-settings <folder>ein Beispiel, mit dem Sie beginnen können. -
Schreiben Sie erneut auf
control/subscribe/execute. Erwartet:DL_OKoderOk, undsetting/stream/zeigt die neuen Werte.Von Hand vorgenommene Änderungen an der Datei wirken beim nächsten Start der Anwendung.
-
Senden Sie die unter Informationen für den Support aufgeführten Informationen an den Support, zusammen mit der Antwort des Methodenaufrufs, den Werten der Eingaben von control/subscribe (oder von control/unsubscribe/input/address) und barcode-reader.json.
Problem: Der Stream läuft, aber es treffen keine Ergebnisse ein, oder failed-frames steigt
Nach control/subscribe/execute trifft auf control/subscribe/output/stream/result kein Ergebnis ein, oder der Zähler control/subscribe/output/stream/statistics/failed-frames steigt.
-
Der Stream des Readers läuft nicht: Die Eingaben von
control/subscribewurden geschrieben, abercontrol/subscribe/executewurde nicht aufgerufen. Eine Eingabe allein zu schreiben ändert nichts. -
Von der Quelle treffen keine Frames ein: Der Stream des Cam Driver läuft nicht, oder
control/subscribe/input/addressist nicht der Stream-Ordner der Kamera. Der Stream des Cam Driver bleibt über einen Neustart des Cam Driver nicht erhalten. -
Die Quelle kann nicht abonniert werden. Der Reader versucht es dann alle 5 Sekunden erneut, solange der Stream läuft.
-
Frames treffen ein, können aber nicht gelesen werden, zum Beispiel Frames in einem Pixelformat, das der Reader nicht unterstützt, oder Frames, deren Pixel die angegebene Größe nicht ausfüllen.
-
Ergebnisse werden veröffentlicht, aber Ihr Client abonniert
control/subscribe/output/stream/resultnicht. Ein Lesen des Knotens liefert nur das neueste Ergebnis.
-
Lesen Sie
control/subscribe/output/stream/active- erwartet:true. Ist der Wertfalse, lesen Siesetting/stream/enableundsetting/stream/address- erwartet:trueund der Stream-Ordner der Kamera. -
Lesen Sie
hdvisionsystems/lumiscan-cam-driver/<camera name>/control/publish/output/stream/active- erwartet:true. -
Lesen Sie
control/subscribe/output/stream/statistics/received-frameszweimal, im Abstand von einigen Sekunden - erwartet: Der Wert steigt. Die Zähler werden etwa viermal pro Sekunde aktualisiert, solange der Stream läuft. -
Lesen Sie
statistics/failed-framesundcontrol/subscribe/output/stream/last-failure- erwartet:failed-framessteigt nicht, undlast-failureist leer.last-failuresagt, warum der letzte Frame, der nicht gelesen werden konnte, fehlgeschlagen ist; der Knoten wird geleert, wenn der Stream startet. -
Lesen Sie
statistics/processed-frames- erwartet: Der Wert steigt. Für jeden verarbeiteten Frame wird ein Ergebnis aufcontrol/subscribe/output/stream/resultveröffentlicht. -
Lesen Sie das Protokoll der Anwendung - erwartet: kein Fehlschlag beim Abonnieren der Quelle und keine fehlgeschlagenen Frames.
-
Wenn der Stream des Readers nicht läuft:
-
Schreiben Sie den Stream-Ordner der Kamera in
control/subscribe/input/address. -
Setzen Sie
control/subscribe/input/enableauftrue. -
Schreiben Sie auf
control/subscribe/execute. Erwartet:DL_OKoderOk, danach istcontrol/subscribe/output/stream/activetrue.
-
-
Wenn der Stream des Cam Driver nicht läuft: Starten Sie ihn, siehe das Handbuch des Cam Driver, Bilder streamen. Sein Stream bleibt über einen Neustart nicht erhalten: Verbinden Sie nach jedem Start des Cam Driver die Kamera, und rufen Sie seine Methode
control/publish/executemitenable=trueauf. Der Stream des Readers kann vor dem Stream des Cam Driver gestartet werden; Ergebnisse treffen ein, sobald Frames eintreffen. -
Wenn die Adresse nicht der Stream-Ordner der Kamera ist: Schreiben Sie den Ordner, zum Beispiel
hdvisionsystems/lumiscan-cam-driver/camera1/control/publish/output/stream, incontrol/subscribe/input/address, und schreiben Sie aufcontrol/subscribe/execute. Der Reader liest den Knotenframedes Ordners. Erwartet:received-framessteigt. -
Wenn die Quelle nicht abonniert werden kann: Stellen Sie sicher, dass der Cam Driver läuft und den in
control/subscribe/input/addressgenannten Stream-Ordner veröffentlicht. Solange der Stream läuft, versucht der Reader die Quelle alle 5 Sekunden erneut; bei derselben Adresse müssen Sie nicht erneut ausführen. -
Wenn Frames nicht gelesen werden können: Lesen Sie den Grund in
control/subscribe/output/stream/last-failure. Stellen Sie sicher, dass die Frames ein unterstütztes Pixelformat verwenden:Mono8,Mono12,RGB8,RGB12,BGR8,BGR12,Bayer_GR8,Bayer_RG8,Bayer_GR12oderBayer_RG12(siehe Voraussetzungen). Erwartet:failed-framessteigt nicht mehr. -
Wenn
processed-framessteigt, Ihr Client aber nichts erhält: Abonnieren Siecontrol/subscribe/output/stream/result, um jedes Ergebnis zu erhalten. Oder setzen Siecontrol/subscribe/input/keep-latest-outputauftrue, und schreiben Sie aufcontrol/subscribe/execute: Der Reader schreibt dann jedes Stream-Ergebnis zusätzlich inoutput/results. Auf einem PC zeigtkrxclient subscribe hdvisionsystems/lumiscan-barcode-reader/control/subscribe/output/stream/result --count 5, dass Ergebnisse eintreffen; es zeigt einen Flatbuffer nur mit seiner Größe an.
Ein Frame ohne Barcode ergibt ein Ergebnis mit einem leeren Array results, siehe Problem: output/results ist ein leeres Array. Siehe auch Die Statistik lesen und Ein Stream liefert nichts.
Der Bild-Stream ist experimentell. Er wurde nur unter Windows mit LumiScan Keryx und simulierten Bildern getestet; er wurde nicht unter Linux (ctrlX OS oder Ubuntu), auf dem ctrlX Data Layer oder mit einer echten Kamera geprüft. Senden Sie die unter Informationen für den Support aufgeführten Informationen an den Support, zusammen mit den Werten von control/subscribe/output/stream/active, control/subscribe/output/stream/last-failure, den Zählern unter control/subscribe/output/stream/statistics/ und setting/stream/ sowie dem Wert von control/publish/output/stream/active des Cam Driver.
Problem: Nach einem Neustart streamt der Reader von selbst wieder
Nach einem Neustart der Anwendung ist control/subscribe/output/stream/active true, und auf control/subscribe/output/stream/result treffen Ergebnisse ein, obwohl Ihr Programm nichts ausgeführt hat.
-
Der Reader startet so, wie er war. Das ist beabsichtigt:
control/subscribe/executeundcontrol/unsubscribe/executespeichern, was sie anwenden, im Abschnittstreamvonbarcode-reader.json. Nach einem Neustart abonniert der Reader dieselbe Quelle und startet, wennstream.enabletrueist, seinen Stream sofort. -
stream.enablewurde inbarcode-reader.jsonvon Hand auftruegesetzt.truestartet den Stream beim Start der Anwendung.
-
Lesen Sie
setting/stream/enableundsetting/stream/address- sie zeigen, was zuletzt angewendet wurde, so wie die Einstellungsdatei es speichert. Erwartet, wenn der Reader nach einem Start nicht streamen soll:setting/stream/enableistfalse. -
Öffnen Sie
barcode-reader.jsonim Konfigurationsverzeichnis (siehe Allgemeine Prüfungen) - erwartet, wenn der Reader nach einem Start nicht streamen soll:stream.enableistfalseoder fehlt.
-
Wenn der Reader nach einem Start nicht streamen soll: Setzen Sie
control/subscribe/input/enableauffalse, und schreiben Sie dann aufcontrol/subscribe/execute. Das stoppt den Stream sofort und wird inbarcode-reader.jsongespeichert; der Reader startet beim nächsten Mal also außerhalb des Stream-Modus. Der Frame, der gerade gelesen wird, wird zuerst abgeschlossen. Erwartet:control/subscribe/output/stream/activeistfalse, undsetting/stream/enableistfalse. -
Wenn der Reader auch die Quelle nicht behalten soll: Schreiben Sie die Adresse, die
setting/stream/addressanzeigt, incontrol/unsubscribe/input/address, und schreiben Sie dann aufcontrol/unsubscribe/execute. Damit endet der Stream-Modus. Erwartet:setting/stream/addressist leer.
Senden Sie die unter Informationen für den Support aufgeführten Informationen an den Support, zusammen mit barcode-reader.json und den Werten von setting/stream/.
Informationen für den Support
Besteht ein Problem weiterhin, senden Sie diese Informationen an den Support:
-
Software-Version: die Version von LumiScan Barcode Reader, die Sie einsetzen. Die Dateien, die der Bild-Stream in
settings-history/im Konfigurationsverzeichnis ablegt, halten sie alssoftware.versionfest. -
Plattform: ctrlX OS (ctrlX CORE oder ctrlX IPC) und die Version von ctrlX OS, oder ein PC mit Windows 11 oder Ubuntu 24.04.
-
Data Layer: der ctrlX Data Layer (ctrlX OS) oder LumiScan Keryx (PC). Auf einem PC zusätzlich die Broker-Adresse, die der Reader verwendet; jede App nennt sie beim Start in ihrem Protokoll.
-
Protokoll: das Protokoll der Anwendung aus der Zeit des Fehlers; auf ctrlX OS das Systemprotokoll.
-
Zeitpunkt: Datum und Uhrzeit des Fehlers.
-
Kommunikationsstatus: die Antwort eines abgelehnten Methodenaufrufs (zum Beispiel
DL_INVALID_VALUE) und die Knotenwerte, die der Eintrag des Problems nennt. -
Konfigurationsdateien:
barcode-reader.jsonund die Dateien insettings-history/aus dem Konfigurationsverzeichnis (siehe Allgemeine Prüfungen).
Wenden Sie sich an den Customer Success von HD Vision Systems unter customer.success@hdvisionsystems.com oder +49 6221 6721905; für Lizenzen an licenses@hdvisionsystems.com.