Fehlerbehebung

Diese Seite beschreibt Probleme und Fehlermeldungen von LumiScan Object Finder, nach Kategorien geordnet. Beginnen Sie mit den allgemeinen Prüfungen und suchen Sie dann unten Ihr Symptom: Jedes Problem nennt die Symptome, die möglichen Ursachen, eine Diagnose und die Lösung. Probleme des Data Layer selbst sind in der Fehlerbehebung des Data Layer beschrieben, Lizenzprobleme in der Fehlerbehebung der Lizenzierung.

Allgemeine Prüfungen

  1. Prüfen Sie den Statuscode. Lesen Sie output/status-code der Operation, die fehlgeschlagen ist. Erwartet: 1. Ein Wert größer als 0 bedeutet Erfolg, 0 bedeutet, dass die Operation seit dem Start der Anwendung nicht gelaufen ist, und ein Wert kleiner als 0 bedeutet, dass sie fehlgeschlagen ist und nichts erzeugt hat. Die Codes stehen in Ausführungsstatus.

  2. Lesen Sie den Statustext. Lesen Sie output/status-text derselben Operation. Er beginnt mit ok: oder error: und nennt jede ungültige Eingabe und ihren Wert. Ein fehlgeschlagener Schreibvorgang auf execute antwortet nur mit einem Statuscode (über REST ein bloßes 400); der Grund steht also nur auf output/status-text.

  3. Lesen Sie das Anwendungsprotokoll. Es enthält denselben Text, mit einer eigenen Warnzeile für jede ungültige Eingabe: auf ctrlX OS im ctrlX Logbook oder mit journalctl, auf einem PC in der Konsolenausgabe der Anwendung. Wie viel protokolliert wird, legt logLevel im Block system von lumiscan-object-finder.json fest (TRACE, DEBUG, INFO, WARN, ERROR, FATAL oder OFF). Der Wert wird beim Start gelesen; starten Sie die Anwendung nach einer Änderung also neu. Siehe Data-Layer-Referenz.

  4. Prüfen Sie die Bildquelle. Die Kameraanwendung, normalerweise LumiScan Cam Driver, muss auf demselben Gerät laufen - demselben ctrlX CORE oder ctrlX IPC oder demselben PC - und ein Bild aufgenommen haben. Ein Zugriff auf einen entfernten Data Layer wird nicht unterstützt. Erwartet: Der in input/input-image-address genannte Knoten stellt data, width, height und pixel-type bereit.

  5. Prüfen Sie die Reihenfolge der Aufrufe. Ein Modul führt jeweils eine Operation aus, und jeder Durchlauf leert beim Start seine Ausgaben. Erwartet: Ihr Programm wartet, bis execute zurückkehrt, liest die Ausgaben und löst erst dann den nächsten Durchlauf aus.

  6. Prüfen Sie die Lizenz (ctrlX OS). Erwartet: Die Anwendung läuft nach dem Start weiter. Ohne Lizenz beendet sie sich kurz nach dem Start; siehe Problem: Die Anwendung beendet sich kurz nach dem Start.

Das Konfigurationsverzeichnis enthält lumiscan-object-finder.json, die Moduldateien <module-id>.json, die Objekte und settings-history/:

Plattform Konfigurationsverzeichnis

ctrlX OS

/var/snap/rexroth-solutions/common/solutions/activeConfiguration/lumiscan-object-finder, Teil der aktiven Solution

PC (Windows)

%APP_RESOURCE_DIR%\etc\lumiscan-object-finder; ohne APP_RESOURCE_DIR C:\ProgramData\HD Vision Systems GmbH\LumiScan Vision Suite\lumiscan-obj-find\etc\lumiscan-object-finder

Statuscodes und Fehlermeldungen

Problem: Statuscode -1 (busy)

Symptome

output/status-code von find-object ist -1. Der Schreibvorgang auf execute antwortet mit TooManyOperations (ctrlX: DL_TOO_MANY_OPERATIONS). Es wurde nichts getan, und output/result behält seinen Wert. Bei einer streamenden Kamera passiert das oft. Auch system/remove-module kann mit -1 (busy) antworten.

Mögliche Ursachen
  • Eine andere Operation desselben Moduls lief noch. Ein zweiter Aufruf wird nicht in eine Warteschlange gestellt; er kehrt sofort zurück und tut nichts.

  • Der Bild-Stream des Moduls durchsucht gerade ein Bild. Der Stream und find-object laufen auf einem Modul nie gleichzeitig.

Diagnose
  1. Prüfen Sie in Ihrem Programm, ob es erneut auf execute desselben Moduls schreibt, bevor der vorherige Schreibvorgang zurückgekehrt ist. Erwartet: ein Aufruf pro Modul zur Zeit.

  2. Lesen Sie <module-id>/control/subscribe/output/stream/active. true bedeutet, dass der Stream dieses Moduls läuft.

Lösung
  • Wenn eine andere Operation noch lief: Warten Sie, bis das laufende execute zurückkehrt, und rufen Sie die Methode dann erneut auf. Die Sperre gilt pro Modul, andere Module werden also nicht aufgehalten.

  • Wenn der Stream des Moduls läuft:

    1. Stoppen Sie den Stream, bevor Sie die Methode aufrufen: Setzen Sie control/subscribe/input/enable auf false und schreiben Sie auf control/subscribe/execute. Oder rufen Sie die Methode erneut auf.

    2. Um stattdessen die Ergebnisse des Streams zu verwenden, schalten Sie control/subscribe/input/keep-latest-output ein und lesen find-object/output/result.

  • Wenn system/remove-module mit busy antwortet: Stoppen Sie zuerst den Stream des Moduls. Das Entfernen eines Moduls stoppt seinen Stream.

Wenn das Problem weiterhin besteht

Senden Sie die unter Informationen für den Support aufgeführten Informationen an den Support, zusammen mit der Modul-ID, der Antwort des Schreibvorgangs auf execute und dem Wert von control/subscribe/output/stream/active.

Problem: Statuscode -2 (ungültige Eingabe)

Symptome

output/status-code ist -2. output/status-text beginnt mit error: und nennt jede Eingabe, die nicht verwendet werden kann, zusammen mit ihrem Wert. Alle ungültigen Eingaben werden gemeinsam gemeldet.

Mögliche Ursachen
  • Eine erforderliche Eingabe ist leer. input/object-id von find-object ist erforderlich.

  • Die Bildadresse zeigt auf diese Anwendung selbst.

  • input/object-id von system/create-object oder input/object-dir von system/set-object-dir ist ein absoluter Pfad oder ein Pfad, der mit .. aus dem Konfigurationsverzeichnis hinausführt.

Diagnose
  1. Lesen Sie output/status-text der Operation. Erwartet: Er nennt die fehlerhafte Eingabe und ihren Wert.

  2. Lesen Sie das Anwendungsprotokoll. Jede ungültige Eingabe hat eine eigene Warnzeile.

Lösung
  • Wenn eine erforderliche Eingabe leer ist: Setzen Sie sie. Für find-object setzen Sie input/object-id auf einen Eintrag von system/objects.

  • Wenn die Bildadresse auf diese Anwendung zeigt: Setzen Sie input/input-image-address auf den Bildknoten der Kameraanwendung, zum Beispiel hdvisionsystems/lumiscan-cam-driver/camera1/output/image.

  • Wenn ein Pfad absolut ist oder das Konfigurationsverzeichnis verlässt: Geben Sie ihn relativ zum Konfigurationsverzeichnis an, zum Beispiel production-parts.

Führen Sie die Operation dann erneut aus. Erwartet: output/status-code ist 1. Siehe Ausführungsstatus und Objektspeicher.

Wenn das Problem weiterhin besteht

Senden Sie die unter Informationen für den Support aufgeführten Informationen an den Support, zusammen mit dem Inhalt von output/status-text.

Problem: Statuscode -3 (Bild lesen fehlgeschlagen)

Symptome

output/status-code von find-object oder system/create-object ist -3.

Mögliche Ursachen
  • Die Kameraanwendung läuft nicht, oder sie läuft auf einem anderen Gerät.

  • Die Kameraanwendung hat noch kein Bild aufgenommen.

  • Die Adresse in input/input-image-address ist falsch.

  • Der Bildknoten an der Adresse fehlt, ist leer oder inkonsistent.

  • Das Bild verwendet ein nicht unterstütztes Pixelformat. Unterstützt werden Mono8, Mono12, RGB8, RGB12, BGR8, BGR12, BayerGR8, BayerGR12, BayerRG8 und BayerRG12.

Diagnose
  1. Prüfen Sie, ob die Kameraanwendung, normalerweise LumiScan Cam Driver, auf demselben Gerät läuft. Erwartet: Sie läuft auf demselben ctrlX CORE oder ctrlX IPC oder auf demselben PC.

  2. Vergleichen Sie input/input-image-address mit der Adresse des Bildknotens der Kamera, zum Beispiel hdvisionsystems/lumiscan-cam-driver/camera1/output/image. Erwartet: identisch.

  3. Lesen Sie width, height und pixel-type des Bildknotens. Erwartet: Werte größer als 0 und ein pixel-type aus der obigen Liste.

Lösung
  • Wenn die Kameraanwendung nicht läuft: Starten Sie sie auf demselben Gerät und nehmen Sie ein Bild auf.

  • Wenn noch kein Bild aufgenommen wurde: Nehmen Sie in der Kameraanwendung ein Bild auf.

  • Wenn die Adresse falsch ist: Korrigieren Sie input/input-image-address.

  • Wenn das Pixelformat nicht unterstützt wird: Verwenden Sie eines der unterstützten Pixelformate, siehe Voraussetzungen.

Führen Sie die Operation dann erneut aus. Erwartet: output/status-code ist 1.

Wenn das Problem weiterhin besteht

Senden Sie die unter Informationen für den Support aufgeführten Informationen an den Support, zusammen mit dem Inhalt von output/status-text, der Bildadresse und dem pixel-type des Bildknotens.

Problem: Statuscode -4 (Quelle nicht gefunden)

Symptome

output/status-code von find-object ist -4.

Mögliche Ursachen
  • Das Bild des Objekts fehlt oder ist nicht lesbar: input/object-id nennt keinen Eintrag von system/objects.

  • Das Objektverzeichnis fehlt oder ist nicht lesbar.

  • Das Bild liegt in einem anderen Verzeichnis als dem verwendeten.

Diagnose
  1. Vergleichen Sie input/object-id mit system/objects. Erwartet: Die ID ist aufgeführt, in derselben Schreibweise.

  2. Lesen Sie system/object-dir. Erwartet: Es nennt das Verzeichnis, das die .png-Datei des Objekts enthält.

  3. Prüfen Sie die Datei in diesem Verzeichnis. Erwartet: eine kleingeschriebene .png-Datei auf der obersten Ebene des Verzeichnisses, nach dem Objekt benannt.

Lösung
  • Wenn die Objekt-ID nicht aufgeführt ist: Korrigieren Sie input/object-id, oder lernen Sie das Objekt mit system/create-object ein. Eine Datei, die Sie auf anderem Weg in das Verzeichnis legen, wird erst nach einer Aktualisierung aufgeführt, siehe Problem: Eine hochgeladene .png-Datei erscheint nicht auf system/objects.

  • Wenn das Verzeichnis nicht das erwartete ist: Wechseln Sie mit system/set-object-dir, siehe Objektspeicher.

Führen Sie find-object dann erneut aus. Erwartet: output/status-code ist 1.

Wenn das Problem weiterhin besteht

Senden Sie die unter Informationen für den Support aufgeführten Informationen an den Support, zusammen mit dem Inhalt von output/status-text, input/object-id, system/object-dir und system/objects.

Problem: Die Ausschnittsregion passt nicht in das Bild

Symptome

system/create-object antwortet mit Status -5 (ungültige Ausschnittsregion), und output/status-text nennt den Rand und die Bildgröße, zum Beispiel:

error: Crop region does not fit inside the 1920x1080 image: crop/startY + crop/height (1000 + 200 = 1200) exceeds the image height 1080

Bei find-object nennt output/status-text die Eingabe und die Grenze, die sie verletzt hat, zum Beispiel error: crop/startX + crop/width (100 + 900 = 1000) exceeds the image width 640. Im Bild-Stream schlägt das Bild fehl, und control/subscribe/output/stream/last-failure nennt eine Ausschnittsregion, die nicht in das Bild passt.

Mögliche Ursachen
  • Die Region reicht über einen Rand des Bildes hinaus. Der gesamte Ausschnitt muss innerhalb des Bildes liegen; er wird abgelehnt, nicht beschnitten.

  • Bei system/create-object ist input/crop/width oder input/crop/height 0. Beide müssen größer als 0 sein.

Diagnose
  1. Lesen Sie die Bildgröße aus der Meldung ab, oder width und height des Bildknotens.

  2. Addieren Sie input/crop/startX und input/crop/width sowie input/crop/startY und input/crop/height. Erwartet: Die Summen sind nicht größer als die Bildbreite und die Bildhöhe.

Lösung
  • Wenn die Region über einen Rand hinausreicht: Korrigieren Sie input/crop/startX, startY, width oder height, sodass die Region in die in der Meldung genannte Bildgröße passt.

  • Wenn Breite oder Höhe 0 ist (create-object): Setzen Sie beide auf die Größe der Region, größer als 0.

Führen Sie die Operation dann erneut aus. Erwartet: output/status-code ist 1. Siehe Ein Objekt anlegen.

Wenn das Problem weiterhin besteht

Senden Sie die unter Informationen für den Support aufgeführten Informationen an den Support, zusammen mit dem Inhalt von output/status-text und den vier Werten unter input/crop/.

Problem: Der Durchlauf schlägt fehl und benennt das Objekt

Symptome

find-object schlägt mit einem negativen Statuscode fehl, und output/status-text benennt das Objekt. Das geschieht oft, nachdem input/preprocess/bin-size erhöht wurde. Es wird nie als leeres Ergebnis gemeldet.

Mögliche Ursachen
  • Das Objekt ist zu weit gebinnt. Sein Bild hat dann die Kanten nicht mehr, auf die sich der Detektor stützt, und der Detektor lehnt es ab, zum Beispiel ein 128x128-Objekt bei bin-size 8 (auf 16x16 verkleinert). Kleine Objekte erreichen diese Grenze früher als große.

  • Das Bild wurde beim Einlernen entlang der Silhouette des Teils ausgeschnitten. Ein Bild muss eine Mindestzahl starker Gradientenpunkte liefern, und ein Ausschnitt, der an der Silhouette endet, verbirgt die Kontur vor dem Detektor.

Diagnose
  1. Lesen Sie input/preprocess/bin-size des Moduls. Senken Sie den Wert um eine Stufe und führen Sie find-object erneut aus. Erwartet: output/status-code ist 1.

  2. Schlägt der Durchlauf auch bei bin-size 1 fehl, öffnen Sie die .png-Datei des Objekts im Objektverzeichnis. Erwartet: ein dünnes, gleichmäßiges Band Hintergrund von etwa 5 Pixeln um das Teil.

Lösung
  • Wenn das Objekt zu weit gebinnt ist: Senken Sie input/preprocess/bin-size wieder. Erhöhen Sie den Wert schrittweise und hören Sie auf, wenn die Scores Richtung Schwellwert zu fallen beginnen.

  • Wenn das Bild an der Silhouette ausgeschnitten wurde: Lernen Sie das Objekt mit system/create-object erneut ein, mit etwa 5 Pixeln Hintergrund um das Teil. Siehe Ein Objekt anlegen.

Wenn das Problem weiterhin besteht

Senden Sie die unter Informationen für den Support aufgeführten Informationen an den Support, zusammen mit dem Inhalt von output/status-text, dem Wert von bin-size und der .png-Datei des Objekts.

Problem: Statuscode -6 (Schreiben fehlgeschlagen)

Symptome

output/status-code von system/save-module-inputs oder system/create-object ist -6.

Mögliche Ursachen
  • Eine Datei konnte nicht geschrieben werden - meist ein Berechtigungsproblem oder ein voller Datenträger.

Diagnose
  1. Lesen Sie output/status-text der Operation. Erwartet: Er nennt die Datei, die nicht geschrieben werden konnte.

  2. Lesen Sie das Anwendungsprotokoll zum Zeitpunkt des Aufrufs.

  3. Prüfen Sie das Konfigurationsverzeichnis (siehe Allgemeine Prüfungen). Erwartet: Es existiert, und die Anwendung kann hineinschreiben.

Lösung
  • Wenn es ein Berechtigungsproblem ist: Machen Sie das Konfigurationsverzeichnis für die Anwendung beschreibbar.

  • Wenn der Datenträger voll ist: Geben Sie auf dem Gerät Speicherplatz frei.

Führen Sie die Operation dann erneut aus. Erwartet: output/status-code ist 1.

Wenn das Problem weiterhin besteht

Senden Sie die unter Informationen für den Support aufgeführten Informationen an den Support, zusammen mit dem Inhalt von output/status-text.

Suchergebnisse

Problem: Das Ergebnis ist leer, obwohl der Statuscode 1 ist

Symptome

output/status-code von find-object ist 1, aber matches in output/result ist leer (best_score 0.0, best_object_id leer). Oder ein echtes Teil wird in manchen Bildern gefunden und in anderen verfehlt: nur in manchen Orientierungen oder nur in manchen Arbeitsabständen.

Mögliche Ursachen

Ein leeres Ergebnis mit Statuscode 1 bedeutet, dass das Objekt nicht im durchsuchten Bild war, und nichts anderes. Jeder andere Grund - fehlendes Bild des Objekts, unbrauchbares Bild, ungültige Pyramidenebene, bin-size lässt zu wenig vom Objekt übrig - wird als negativer Statuscode gemeldet. Wird ein echtes Teil verfehlt:

  • input/crop schließt das Teil aus.

  • Die Scores der echten Teile liegen unter input/confidence-threshold (Standard 0.6). Ein Schwellwert ab 0.9 lehnt in der Regel alles ab.

  • Das Teil kommt in einer Orientierung an, für die kein Objekt eingelernt wurde. Der Detektor dreht kein Bild.

  • Das Teil liegt näher an der Kamera oder weiter von ihr entfernt als in dem Bild, aus dem es eingelernt wurde.

Diagnose
  1. Lesen Sie output/status-code. Erwartet: 1. Ist er negativ, ist der Durchlauf fehlgeschlagen: Lesen Sie output/status-text und sehen Sie sich die Einträge unter Statuscodes und Fehlermeldungen an.

  2. Prüfen Sie, ob input/object-id auf system/objects steht.

  3. Lesen Sie die vier Werte unter input/crop/. Erwartet: alle 0 (das ganze Bild) oder eine Region, die das Teil enthält.

  4. Setzen Sie input/confidence-threshold auf 0.4, führen Sie die Suche mit echten Teilen aus und notieren Sie den score der echten Treffer in output/result. Erwartet: Der verwendete Schwellwert liegt unter dem schlechtesten Score eines echten Teils.

  5. Vergleichen Sie ein Bild, in dem das Teil verfehlt wird, mit dem Bild, aus dem das Objekt eingelernt wurde. Erwartet: dieselbe Orientierung und derselbe Arbeitsabstand.

Lösung
  • Wenn der Ausschnitt das Teil ausschließt: Vergrößern Sie die Region, oder setzen Sie alle vier Werte unter input/crop/ auf 0.

  • Wenn die Scores knapp unter dem Schwellwert liegen: Setzen Sie input/confidence-threshold etwas unter den schlechtesten Score, den ein echtes Teil erzeugt. Liegen die Scores nahe am Schwellwert oder sind die Bilder verrauscht, setzen Sie input/preprocess/blur-sigma-x auf 1.0 (die Glättung ist standardmäßig aus) und messen Sie erneut.

  • Wenn das Teil in bestimmten Orientierungen verfehlt wird: Lernen Sie ein weiteres Objekt in der verfehlten Orientierung ein, zum Beispiel screw-m6-tilted, und suchen Sie es in einem eigenen Durchlauf. Keine Einstellung behebt das.

  • Wenn das Teil in einem anderen Arbeitsabstand verfehlt wird: Lernen Sie ein Objekt in diesem Abstand ein.

  • Wenn das Teil nicht im Bild war: Das Ergebnis ist korrekt; es muss nichts geändert werden.

Wenn das Problem weiterhin besteht

Senden Sie die unter Informationen für den Support aufgeführten Informationen an den Support, zusammen mit input/object-id, dem Schwellwert, den gemessenen Scores und der .png-Datei des Objekts.

Problem: Ein Teil wird mehrfach gemeldet

Symptome

matches in output/result enthält für ein Teil eine Häufung von Treffern, die wenige Pixel auseinanderliegen.

Mögliche Ursachen
  • input/nms-min-dist ist 0 (der Standardwert), was jeden Treffer behält.

  • input/nms-min-dist ist kleiner als der Abstand zwischen den Treffern eines Teils.

Diagnose
  1. Lesen Sie input/nms-min-dist des Moduls. 0 behält jeden Treffer.

  2. Vergleichen Sie x und y der Treffer eines Teils mit der Größe des Teils in Pixeln.

Lösung
  • Setzen Sie input/nms-min-dist auf etwa die halbe Größe des Teils in Pixeln, zum Beispiel 40. Fallen mehrere Treffer in diesen Abstand, wird nur der mit dem höchsten Score behalten.

Der Standardwert 0 ist nur sinnvoll, wenn Teile tatsächlich dichter beieinanderliegen als ihre eigene Größe. Siehe Die Suche abstimmen.

Wenn das Problem weiterhin besteht

Senden Sie die unter Informationen für den Support aufgeführten Informationen an den Support, zusammen mit output/result und dem Wert von input/nms-min-dist.

Problem: output/result ist leer, obwohl die Suche eben noch funktioniert hat

Symptome

Ein Durchlauf hat Treffer erzeugt, und kurz danach ist output/result leer.

Mögliche Ursachen
  • Der nächste Durchlauf hat begonnen. Jeder Durchlauf leert seine eigenen Ausgaben, sobald er beginnt, bevor irgendetwas fehlschlagen kann. Ein Durchlauf, der aus irgendeinem Grund fehlschlägt, hinterlässt sie leer.

  • Ein mit -1 (busy) abgelehnter Aufruf leert nichts; wurde der zweite Aufruf abgelehnt, ist das also nicht die Ursache.

Diagnose
  1. Prüfen Sie die Reihenfolge der Aufrufe in Ihrem Programm. Erwartet: Es liest output/result, bevor es das nächste execute auslöst.

  2. Lesen Sie output/status-code des letzten Durchlaufs. Ein negativer Wert bedeutet, dass dieser Durchlauf fehlgeschlagen ist und output/result leer hinterlassen hat.

Lösung
  • Wenn der nächste Durchlauf zu früh begonnen hat: Warten Sie, bis execute zurückkehrt, lesen Sie die Ausgaben, und lösen Sie erst dann den nächsten Durchlauf aus.

  • Wenn der letzte Durchlauf fehlgeschlagen ist: Folgen Sie dem Eintrag zu seinem Statuscode.

Wenn das Problem weiterhin besteht

Senden Sie die unter Informationen für den Support aufgeführten Informationen an den Support, zusammen mit der Abfolge der Aufrufe Ihres Programms.

Objekte

Problem: Eine hochgeladene .png-Datei erscheint nicht auf system/objects

Symptome

Eine .png-Datei liegt im Objektverzeichnis, aber system/objects führt sie nicht auf.

Mögliche Ursachen
  • Die Liste wurde nicht aktualisiert. system/objects wird nur beim Start, beim Verzeichniswechsel durch system/set-object-dir und beim Speichern einer Vorlage durch system/create-object aktualisiert. Auf anderem Weg hinzugefügte Dateien - ein Upload oder eine SSH-Sitzung auf ctrlX OS, eine auf einem PC von Hand hineinkopierte Datei - werden beim nächsten dieser Ereignisse übernommen.

  • Der Dateiname endet nicht auf ein kleingeschriebenes .png. .PNG-Dateien werden übersprungen.

  • Die Datei liegt in einem Unterverzeichnis. Nur Dateien auf der obersten Ebene des Objektverzeichnisses werden aufgeführt.

  • Die Datei liegt in einem anderen Verzeichnis als dem, das system/object-dir nennt.

Diagnose
  1. Lesen Sie system/object-dir. Erwartet: Es nennt das Verzeichnis, das die Datei enthält.

  2. Prüfen Sie den Dateinamen. Erwartet: Er endet auf ein kleingeschriebenes .png, und die Datei liegt auf der obersten Ebene des Verzeichnisses.

Lösung
  • Wenn Dateiname oder Ablageort falsch sind: Verwenden Sie einen kleingeschriebenen .png-Dateinamen auf der obersten Ebene des Objektverzeichnisses.

  • Danach: Führen Sie system/set-object-dir aus oder starten Sie die Anwendung neu. Erwartet: system/objects führt das Objekt auf.

Wenn das Problem weiterhin besteht

Senden Sie die unter Informationen für den Support aufgeführten Informationen an den Support, zusammen mit system/object-dir, system/objects und dem Dateinamen.

Bild-Stream (experimentell)

Problem: Der Bild-Stream liefert keine Ergebnisse

Symptome

control/subscribe/output/stream/active bleibt false, auf control/subscribe/output/stream/result treffen keine Ergebnisse ein, oder control/subscribe/output/stream/statistics/failed-frames wächst.

Mögliche Ursachen
  • Nur die Eingaben wurden geschrieben. control/subscribe/input/enable allein zu schreiben startet nichts; control/subscribe/execute wendet die Eingaben an.

  • control/subscribe/execute wurde abgelehnt (Rejected, ctrlX: DL_INVALID_VALUE): Stream-Modus ohne Adresse oder eine Warteschlangengröße außerhalb von 1 bis 64.

  • Die Einstellungsdatei <module-id>.json konnte nicht geschrieben werden, zum Beispiel weil sie kein gültiges JSON ist (CreationFailed, ctrlX: DL_CREATION_FAILED). Nichts wurde geändert.

  • Der Stream des Cam Driver läuft nicht, es treffen also keine Bilder ein.

  • Die Quelle kann nicht abonniert werden. Das Modul versucht es alle 5 Sekunden erneut, solange der Stream läuft, und protokolliert den ersten Fehlschlag.

  • Bilder können nicht durchsucht werden, aus den Gründen, die find-object in seinem status-text nennt.

Diagnose
  1. Lesen Sie hdvisionsystems/lumiscan-cam-driver/<camera name>/control/publish/output/stream/active. Erwartet: true.

  2. Lesen Sie setting/stream/enable und setting/stream/address des Moduls. Erwartet: true und der Stream-Ordner der Kamera, zum Beispiel hdvisionsystems/lumiscan-cam-driver/camera1/control/publish/output/stream. Sie zeigen, was zuletzt angewendet wurde.

  3. Prüfen Sie die Antwort des Schreibvorgangs auf control/subscribe/execute. Erwartet: Ok (ctrlX: DL_OK). Diese Methoden haben keinen status-text; der Grund für eine Ablehnung steht im Anwendungsprotokoll.

  4. Lesen Sie control/subscribe/output/stream/active. Erwartet: true.

  5. Lesen Sie received-frames, processed-frames und failed-frames unter control/subscribe/output/stream/statistics/. Der erste Zähler, der nicht wächst, zeigt, wo die Kette abbricht.

  6. Wächst failed-frames, lesen Sie control/subscribe/output/stream/last-failure. Er nennt den Grund für das letzte fehlgeschlagene Bild, zum Beispiel:

    a frame of 'hdvisionsystems/lumiscan-cam-driver/camera1/control/publish/output/stream' failed: invalid input: object-id is empty - name the object to search for, see system/objects
Lösung
  • Wenn nur die Eingaben geschrieben wurden: Setzen Sie control/subscribe/input/enable auf true und schreiben Sie auf control/subscribe/execute. Warten Sie, bis control/subscribe/output/stream/active true ist.

  • Wenn der Aufruf abgelehnt wurde (Rejected, DL_INVALID_VALUE): Schreiben Sie den Stream-Ordner der Kamera auf control/subscribe/input/address, setzen Sie control/subscribe/input/queue-size auf einen Wert von 1 bis 64 und schreiben Sie erneut auf control/subscribe/execute.

  • Wenn die Einstellungsdatei nicht geschrieben werden konnte (CreationFailed, DL_CREATION_FAILED): Machen Sie <module-id>.json im Konfigurationsverzeichnis wieder zu gültigem JSON, ohne Kommentare, und schreiben Sie dann erneut auf control/subscribe/execute.

  • Wenn der Stream des Cam Driver nicht läuft: Starten Sie ihn. Er bleibt nach einem Neustart nicht erhalten: Rufen Sie nach jedem Start sein control/publish/execute mit enable = true auf, und verbinden Sie zuerst die Kamera. Siehe Ein Stream liefert nichts.

  • Wenn die Quelle nicht abonniert werden kann: Prüfen Sie, ob control/subscribe/input/address der Stream-Ordner der Kamera ist und der Cam Driver auf demselben Gerät läuft.

  • Wenn Bilder fehlschlagen: Korrigieren Sie die Eingabe, die last-failure nennt, wie bei einem einzelnen Aufruf von find-object.

Wenn das Problem weiterhin besteht

Senden Sie die unter Informationen für den Support aufgeführten Informationen an den Support, zusammen mit den Werten unter setting/stream/, den Zählern unter control/subscribe/output/stream/statistics/, control/subscribe/output/stream/last-failure und der <module-id>.json des Moduls.

Module, Einstellungen und Lizenzierung

Problem: Meine Einstellungen oder Module sind nach einem Neustart verschwunden

Symptome

Nach einem Neustart der Anwendung fehlt ein Modul in system/modules, oder die Eingaben eines Moduls stehen wieder auf ihren Standardwerten.

Mögliche Ursachen
  • Die Modulliste wurde nicht gespeichert. Einstellungen und neue Module wirken sofort, werden aber erst gespeichert, wenn Sie es verlangen; die Modulliste und die Einstellungen jedes Moduls werden getrennt gespeichert.

  • Die Einstellungen des Moduls wurden nicht gespeichert.

  • Ein Speichern ist fehlgeschlagen: system/save-module-inputs oder system/save-current-modules hat nicht Status 1 gemeldet.

  • <module-id>.json enthält Kommentare. Der Stream liest eine solche Datei, aber die Eingaben des Moduls werden dann beim Start nicht wiederhergestellt; das Protokoll meldet die Datei als unlesbar.

  • Eine Einstellung, deren Knoten nach einem Software-Update nicht mehr existiert, wird mit einem Protokolleintrag übersprungen.

Diagnose
  1. Lesen Sie system/modules nach dem Neustart. Erwartet: alle Ihre Module.

  2. Prüfen Sie das Konfigurationsverzeichnis (siehe Allgemeine Prüfungen). Erwartet: lumiscan-object-finder.json nennt Ihre Module, und für jedes Modul, dessen Einstellungen Sie gespeichert haben, gibt es eine <module-id>.json.

  3. Lesen Sie das Anwendungsprotokoll des Starts. Erwartet: keine als unlesbar gemeldete Moduldatei, keine übersprungene Einstellung.

Lösung
  • Wenn die Einstellungen oder die Modulliste nicht gespeichert wurden:

    1. Setzen Sie system/save-module-inputs/input/module-id (zum Beispiel module-1) und schreiben Sie auf system/save-module-inputs/execute. Tun Sie das für jedes Modul.

    2. Schreiben Sie auf system/save-current-modules/execute.

    3. Prüfen Sie, ob beide Status 1 melden.

  • Wenn die Moduldatei Kommentare enthält: Entfernen Sie sie aus <module-id>.json. Von Hand an der Datei vorgenommene Änderungen wirken beim nächsten Start.

  • Wenn nach einem Update eine Einstellung übersprungen wurde: Setzen Sie die Eingabe erneut und speichern Sie die Einstellungen des Moduls.

Die Bild-Stream-Einstellungen eines Moduls brauchen keinen zusätzlichen Schritt: control/subscribe/execute speichert sie selbst in <module-id>.json. Damit das Modul selbst zurückkommt, speichern Sie auch die Modulliste. Siehe Modulverwaltung und In der Einstellungsdatei erhalten.

Wenn das Problem weiterhin besteht

Senden Sie die unter Informationen für den Support aufgeführten Informationen an den Support, zusammen mit lumiscan-object-finder.json und den Moduldateien <module-id>.json.

Problem: Die Anwendung beendet sich kurz nach dem Start

Symptome

Auf ctrlX OS beendet sich die Anwendung kurz nach dem Start. Ihre Knoten unter hdvisionsystems/lumiscan-object-finder verschwinden aus dem Data Layer.

Mögliche Ursachen
Diagnose
  1. Öffnen Sie das Systemprotokoll von ctrlX OS (ctrlX Logbook oder journalctl). Erwartet: Es nennt den Grund und die fehlende Lizenz.

  2. Vergleichen Sie die Lizenz mit der ctrlX-Lizenz von LumiScan Object Finder, SWL-W-XCx-OBJECTxFDxHDVS-V1NN. Erwartet: Sie ist auf dem Gerät installiert, auf dem die Anwendung läuft.

Lösung
  • Wenn die Lizenz fehlt: Installieren Sie eine gültige Lizenz auf dem Gerät und starten Sie die Anwendung erneut. Erwartet: Sie läuft weiter, und ihre Knoten sind im Data Layer.

Wenn das Problem weiterhin besteht

Senden Sie die unter Informationen für den Support aufgeführten Informationen an den Support, zusammen mit den Zeilen des Systemprotokolls, die die Lizenz nennen. Für Lizenzen wenden Sie sich an licenses@hdvisionsystems.com.

Problem: Statuscode -11 (Lizenz nicht verfügbar)

Symptome

Ein Modul wird mit Statuscode -11 abgelehnt.

Mögliche Ursachen
  • Keine Lizenz auf dem Gerät deckt das Modul ab. Eine Lizenz deckt zehn Module ab; das elfte Modul belegt eine zweite Lizenz desselben Schlüssels.

Diagnose
  1. Zählen Sie die Einträge von system/modules. Erwartet: nicht mehr als zehn Module pro Lizenz auf dem Gerät.

  2. Lesen Sie output/status-text der Operation, die mit -11 geantwortet hat.

Lösung
  • Wenn mehr Module existieren, als die Lizenzen abdecken: Entfernen Sie die nicht benötigten Module mit system/remove-module und speichern Sie die Modulliste mit system/save-current-modules, oder beschaffen Sie eine weitere Lizenz.

Wenn das Problem weiterhin besteht

Senden Sie die unter Informationen für den Support aufgeführten Informationen an den Support, zusammen mit system/modules. Für Lizenzen wenden Sie sich an licenses@hdvisionsystems.com.

Informationen für den Support

Besteht ein Problem weiterhin, senden Sie diese Informationen an den Support:

  • Softwareversion: die Version von LumiScan Object Finder, die Sie verwenden. Die Dateien in settings-history/ im Konfigurationsverzeichnis halten sie als software.version fest.

  • Plattform: ctrlX OS (ctrlX CORE oder ctrlX IPC) und die Version von ctrlX OS, oder ein PC mit Windows 11 oder Ubuntu 24.04. Nennen Sie auch die Bezugsquelle: HD Vision Systems oder ctrlX Store.

  • Data Layer: der ctrlX Data Layer (ctrlX OS) oder LumiScan Keryx (PC). Auf einem PC auch die Data-Layer-Adresse, die die Anwendung verwendet.

  • Protokoll: das Anwendungsprotokoll zum Zeitpunkt des Fehlers - auf ctrlX OS aus dem ctrlX Logbook oder mit journalctl, auf einem PC die Konsolenausgabe der Anwendung.

  • Zeitpunkt: Datum und Uhrzeit des Fehlers.

  • Kommunikationsstatus: output/status-code und output/status-text der fehlgeschlagenen Operation und die Antwort des Schreibvorgangs auf execute (zum Beispiel TooManyOperations oder DL_TOO_MANY_OPERATIONS).

  • Konfigurationsdateien: lumiscan-object-finder.json, die <module-id>.json des betroffenen Moduls und, für den Bild-Stream, die Datei in settings-history/, die sein Einstellungs-Hash nennt. Wo sie liegen, steht unter 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. Siehe auch Bevor Sie den Support kontaktieren in der LumiScan-FAQ.