Fehlerbehebung
Diese Seite beginnt mit den allgemeinen Prüfungen, die für jedes Problem gelten. Danach folgen die Probleme, gruppiert nach Inferenz ausführen und Ergebnisse in ctrlX PLC Engineering lesen. Führen Sie zuerst die allgemeinen Prüfungen durch und suchen Sie dann Ihr Symptom.
Allgemeine Prüfungen
-
Lesen Sie den Status des Moduls:
hdvisionsystems/lumiscan-ai-object-matching/<network name>/control/status/codeundhdvisionsystems/lumiscan-ai-object-matching/<network name>/control/status/text. Die Bedeutung jedes Codes steht unter Statuscode-Werte. -
Lesen Sie den Status der Anwendung:
hdvisionsystems/lumiscan-ai-object-matching/system/restart-requiredundhdvisionsystems/lumiscan-ai-object-matching/system/status-text. Istrestart-requiredtrue, siehe Problem: Jedes Modul meldet Status -5 (restartRequired). -
Ist ein Modul nicht gestartet, lesen Sie
hdvisionsystems/lumiscan-ai-object-matching/system/settings. Eine Moduldatei, die nicht gelesen werden konnte, erscheint dort als{"$file": ..., "$error": ...};"$error"nennt den Grund. Siehe Was der Knoten zeigt. -
Lesen Sie das Log. Auf ctrlX OS schreibt die Anwendung ihre Meldungen in das Systemprotokoll von ctrlX OS. Lesen Sie sie im Logbuch der ctrlX-Weboberfläche oder mit
journalctl(siehe ctrlX Data Layer auf ctrlX OS). -
Prüfen Sie die Lizenz. Auf ctrlX OS beendet sich die Anwendung kurz nach dem Start, wenn die Lizenz fehlt; der Grund steht im Systemprotokoll. Eine fehlende Lizenz wird als Status
-4(MissingLicense) gemeldet. Siehe Voraussetzungen. -
Starten Sie die Anwendung neu, nachdem Sie eine Konfigurationsdatei geändert haben. Auch eine Änderung der Einstellungen auf dem Data Layer wirkt erst mit dem nächsten Start.
-
Probleme, die alle LumiScan-Apps gemeinsam haben - eine App oder ein Modul fehlt im Baum, ein Knoten ist „not found", ein Methodenaufruf wird abgelehnt -, sind unter Fehlerbehebung im Handbuch LumiScan Keryx beschrieben.
Inferenz ausführen
Problem: inference/ready bleibt False, oder die Inferenz endet mit Status 100001
-
<network name>/control/inference/readybleibtFalse, Sie können also keine Inferenz anfordern. -
inference/readyistTrue, aber der Request wird nie quittiert:readyfällt nicht, nachdem SierequestaufTruegesetzt haben. -
control/status/codeist100001(ImageQueueEmpty). Frühere Versionen meldeten Status10001(noNewExternalImage); dieser Code wird nicht mehr verwendet.
-
Status
100001: Das Bild konnte nicht gelesen werden. Der Bildknoten (input/imageoder die externe Bildadresse) enthält keine Daten oder konnte nicht gelesen werden. Das ist kein Fehler. -
Die Anwendung lädt noch die Konfiguration und richtet das Netz ein.
-
Der Bild-Stream des Moduls läuft.
-
Es ist keine Lizenz installiert.
-
Die Einstellungen wurden auf dem Data Layer geändert, und die Anwendung wartet auf einen Neustart (Status
-5). -
readyistTrue, aber der Request wird nicht quittiert: Die letzte Inferenz ist fehlgeschlagen, und das Modul hat einen Fehler. Es ignoriert jeden Request außerreset. -
Mehr als ein Prozess schreibt
control/inference/request.
-
Lesen Sie
control/status/codeundcontrol/status/textdes Moduls und schlagen Sie den Code unter Statuscode-Werte nach:-
1(settingUp): Das Modul wird noch eingerichtet. -
100001(ImageQueueEmpty): Das Bild konnte nicht gelesen werden. -
100002(StreamActive): Der Bild-Stream läuft, siehe Problem: Eine Inferenz-Anfrage wird mit Status 100002 (StreamActive) beantwortet. -
-4(MissingLicense): Die Lizenz fehlt. -
-5(restartRequired): Ein Neustart ist erforderlich, siehe Problem: Jedes Modul meldet Status -5 (restartRequired).
-
-
Prüfen Sie bei Status
100001den Bildknoten. Mit einer externen Bildadresse (externalImagePathin der Modulkonfigurationsdatei) prüfen Sie, ob<address>/data,<address>/height,<address>/widthund<address>/pixel-type(Mono8oderRGB8) Werte haben. Ohne externe Bildadresse prüfen Siehdvisionsystems/lumiscan-ai-object-matching/<network name>/input/image. -
Lesen Sie
control/subscribe/output/stream/active. Erwartet für eine Inferenz auf Anfrage:false. -
Ist
readyTrue, fällt aber nach Ihrem Request nicht, suchen Sie im Log nach einer fehlgeschlagenen Inferenz. -
Prüfen Sie, ob nur ein Prozess auf
control/inference/requestzugreift.
-
Wenn das Bild nicht gelesen werden konnte (Status
100001): Stellen Sie ein Bild aus der Bildquelle bereit, zum Beispiel eine Aufnahme mit dem LumiScan Cam Driver, und führen Sie die Inferenz erneut aus. Für ein Bild aufinput/imageschreiben Sie das Rohbild und setzen seine Breite, Höhe und sein Pixelformat, siehe Inferenz starten. Die Anwendung prüft nicht, ob das Bild neu ist: Ein Bild, das sich seit der letzten Inferenz nicht geändert hat, wird erneut inferiert. -
Wenn das Modul noch eingerichtet wird: Warten Sie, bis
inference/readyTrueist. -
Wenn der Bild-Stream läuft: Stoppen Sie zuerst den Stream, siehe Problem: Eine Inferenz-Anfrage wird mit Status 100002 (StreamActive) beantwortet.
-
Wenn keine Lizenz installiert ist: Installieren Sie die Lizenz, siehe Voraussetzungen.
-
Wenn ein Neustart erforderlich ist (Status
-5): Starten Sie die Anwendung neu, siehe Problem: Jedes Modul meldet Status -5 (restartRequired). -
Wenn das Modul nach einer fehlgeschlagenen Inferenz einen Fehler hat:
-
Fordern Sie
resetan (mit dem Handshake aufcontrol/reset/oder mitcontrol/reset/execute). -
Prüfen Sie das Log der Anwendung auf die Ursache.
-
Fordern Sie die Inferenz erneut an.
-
-
Wenn mehr als ein Prozess
requestschreibt: Stellen Sie sicher, dass jeweils nur ein Prozess aufcontrol/inference/requestzugreift. Andernfalls ist das Ergebnis des Handshakes undefiniert.
Senden Sie die unter Informationen für den Support aufgeführten Informationen an den Support, zusammen mit den Werten von control/status/code, control/status/text, control/inference/ready und output/package-identifier und der Angabe, ob Sie den Handshake oder control/inference/execute verwenden.
Problem: status/code ist nach jeder Inferenz 3
Nach jeder über den Handshake angeforderten Inferenz ist control/status/code 3 (waitingForClient), unabhängig davon, ob die Inferenz erfolgreich war.
-
So arbeitet der Handshake: Eine über den Handshake angeforderte Inferenz endet unabhängig von ihrem Ausgang mit Status
3.status/codezeigt nicht, ob sie erfolgreich war.
-
Merken Sie sich vor dem Anfordern der Inferenz den Wert von
<network name>/output/package-identifier. -
Wenn
inference/readywiederTrueist, lesen Sieoutput/package-identifiererneut. Erwartet: Er ist um eins gestiegen. Er steigt mit jeder erfolgreichen Inferenz um eins, und nur dann (siehe Ausgang einer Inferenz). -
Ist er nicht gestiegen, ist die Inferenz fehlgeschlagen. Fordern Sie die nächste Inferenz an: Fällt
inference/readynicht, hat das Modul nach einer fehlgeschlagenen Inferenz einen Fehler.
-
Wenn
output/package-identifierum eins gestiegen ist: Die Inferenz war erfolgreich. Lesen Sie das Ergebnis unter<network name>/output/result. -
Wenn er nicht gestiegen ist, weil das Bild nicht gelesen werden konnte (es gab kein Bild, oder es war leer): Stellen Sie ein Bild bereit und fordern Sie die Inferenz erneut an.
-
Wenn er nicht gestiegen ist, weil die Inferenz selbst fehlgeschlagen ist: Das Modul hat einen Fehler und ignoriert jeden Request außer
reset. Fordern Sieresetan und prüfen Sie das Log der Anwendung auf die Ursache. -
Wenn Sie den Ausgang direkt auf
status/codelesen möchten: Starten Sie die Inferenz stattdessen mitcontrol/inference/execute(ab v2.1.0).status/codebehält dann den Ausgang:0,100001oder-1. Siehe Eine Methode ausführen.
Senden Sie die unter Informationen für den Support aufgeführten Informationen an den Support, zusammen mit dem Wert von output/package-identifier vor und nach der Inferenz.
Problem: Ein Schreibvorgang auf execute wird abgelehnt
Ab v2.1.0. Ein Schreibvorgang auf <network name>/control/<function>/execute wird mit einem der folgenden Ergebnisse beantwortet. Die Funktion läuft nicht; ein abgelehnter Schreibvorgang wird nie in eine Warteschlange gestellt.
| ctrlX Data Layer | LumiScan Keryx |
|---|---|
|
|
|
|
|
|
-
DL_TOO_MANY_OPERATIONS/TooManyOperations: Eine andere Funktion des Moduls läuft, über den Handshake oder ein anderesexecute. -
DL_INVALID_OPERATION_MODE/InvalidOperationMode: Dasready-Signal der Funktion istFalse, das Modul kann sie also nicht ausführen - zum Beispielinference, solange der Bild-Stream läuft. -
DL_RESOURCE_UNAVAILABLE/ResourceUnavailable: Die Anwendung wird beendet; oder die Einstellungen wurden auf dem Data Layer geändert und ein Neustart ist erforderlich (Status-5); oder das Modul hat nach einer fehlgeschlagenen Inferenz einen Fehler.reset/executewird wegen des Fehlers nie abgelehnt.
-
Notieren Sie das genaue Ergebnis des Schreibvorgangs und schlagen Sie es unter Eine Methode ausführen nach (siehe auch Ein Methodenaufruf wird abgelehnt im Handbuch LumiScan Keryx).
-
Bei
DL_INVALID_OPERATION_MODE/InvalidOperationMode: Lesen Sie denready-Knoten der Funktion (für eine Inferenzcontrol/inference/ready) undcontrol/status/code. Lesen Siecontrol/subscribe/output/stream/active:truebedeutet, dass der Bild-Stream läuft. -
Bei
DL_RESOURCE_UNAVAILABLE/ResourceUnavailable: Lesen Siehdvisionsystems/lumiscan-ai-object-matching/system/restart-required.truebedeutet, dass ein Neustart erforderlich ist. -
Lesen Sie das Log. Die Apps protokollieren die erste Ablehnung einer Methode, danach höchstens eine Zeile alle zehn Sekunden für dieselbe Methode und dasselbe Ergebnis.
-
Wenn eine andere Funktion läuft (
DL_TOO_MANY_OPERATIONS/TooManyOperations): Wiederholen Sie den Aufruf. Der Schreibvorgang gelingt, sobald diese Operation abgeschlossen ist. -
Wenn das
ready-SignalFalseist (DL_INVALID_OPERATION_MODE/InvalidOperationMode): Bringen Sie das Modul zuerst in den passenden Zustand; bloßes Wiederholen schlägt weiter fehl. Wiederholen Sie den Aufruf nicht in einer Schleife. Läuft der Bild-Stream, stoppen Sie ihn zuerst, siehe Problem: Eine Inferenz-Anfrage wird mit Status 100002 (StreamActive) beantwortet. -
Wenn ein Neustart erforderlich ist: Starten Sie die Anwendung neu, siehe Problem: Jedes Modul meldet Status -5 (restartRequired).
-
Wenn das Modul nach einer fehlgeschlagenen Inferenz einen Fehler hat: Führen Sie
resetaus (control/reset/execute) und wiederholen Sie dann den Aufruf. -
Wenn die Anwendung beendet wird: Die Funktion kann nicht laufen. Wenn die Anwendung wieder gestartet ist, können ihre Knoten wieder gelesen werden; wiederholen Sie dann den Aufruf.
Senden Sie die unter Informationen für den Support aufgeführten Informationen an den Support, zusammen mit dem genauen Ergebnis des Schreibvorgangs, der aufgerufenen Funktion und dem Wert von control/status/code.
Problem: Eine Inferenz-Anfrage wird mit Status 100002 (StreamActive) beantwortet
Ab v2.2.0 (Bild-Stream, experimentell).
-
Nach einem Request auf
control/inference/requestistcontrol/status/code100002(StreamActive), und der Request wird nicht quittiert. -
control/inference/readyistFalse. -
control/inference/executeantwortet mitDL_INVALID_OPERATION_MODE(LumiScan Keryx:InvalidOperationMode).
-
Das Modul inferiert seinen Bild-Stream. Der Stream und die Inferenz auf Anfrage verwenden dasselbe Netz, deshalb laufen sie nie gleichzeitig (siehe Inferenz auf Anfrage, während der Stream läuft). Das ist kein Fehler, und kein Reset ist nötig.
-
Das Modul ist im Stream-Modus gestartet:
stream.enableist in der Modulkonfigurationsdateitrue.control/subscribe/executespeichertenable, sodass das Modul nach einem Neustart seinen Stream sofort wieder startet.
-
Lesen Sie
control/subscribe/output/stream/active.truebedeutet, dass das Modul seinen Bild-Stream inferiert. -
Lesen Sie
setting/stream/enableundsetting/stream/address: Sie zeigen, was das Modul jetzt anwendet, wie im Abschnittstreamder Modulkonfigurationsdatei gespeichert.
-
Wenn Sie eine Inferenz auf Anfrage benötigen:
-
Stoppen Sie den Stream: Schreiben Sie
falseaufcontrol/subscribe/input/enableundtrueaufcontrol/subscribe/execute. Das wird gespeichert: Das Modul startet wieder so, wie es verlassen wurde. -
Prüfen Sie, ob
control/subscribe/output/stream/activefalseundcontrol/inference/readyTrueist. -
Fordern Sie die Inferenz an.
-
-
Wenn Sie die Ergebnisse des Streams benötigen: Abonnieren Sie
control/subscribe/output/stream/resultund lesen Sie die Ergebnisse dort.
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 und setting/stream/enable und dem Abschnitt stream der Modulkonfigurationsdatei.
Problem: Jedes Modul meldet Status -5 (restartRequired)
-
Jedes Modul meldet Status
-5(restartRequired). Es beantwortet keinen Request, und seineready-Signale sindfalse. -
hdvisionsystems/lumiscan-ai-object-matching/system/restart-requiredisttrue. -
Jede
execute-Methode eines Moduls antwortet mitDL_RESOURCE_UNAVAILABLE/ResourceUnavailable. Das schließtresetein. -
Ein laufender Bild-Stream stoppt.
-
Das Log enthält die Meldung auf der Stufe Fehler.
-
Die Einstellungen wurden auf dem Data Layer geändert (
hdvisionsystems/lumiscan-ai-object-matching/system/settings). Die Änderung ist gespeichert, wirkt aber erst mit dem nächsten Start (siehe Neustart erforderlich). -
activate-moduleoderdeactivate-modulewurde aufgerufen. Die Änderung gilt ab dem nächsten Start. -
Eine Datei konnte nicht gespeichert werden: Der Schreibvorgang antwortete mit
DL_CREATION_FAILED/CreationFailed. Zuvor geänderte Dateien bleiben geändert, sodass die Anwendung trotzdem einen Neustart erfordert.
-
Lesen Sie
hdvisionsystems/lumiscan-ai-object-matching/system/restart-required. Erwartet in diesem Zustand:true. -
Lesen Sie
hdvisionsystems/lumiscan-ai-object-matching/system/status-text. Er nennt die geänderten Dateien. -
Lesen Sie
hdvisionsystems/lumiscan-ai-object-matching/system/settings. Er zeigt die Dateien wie gespeichert, also das, was der nächste Start lädt. -
Hat ein Schreibvorgang auf
settingsmitDL_CREATION_FAILED/CreationFailedgeantwortet, suchen Sie im Log nach der Datei, die nicht gespeichert werden konnte.
Ein Reset beendet diesen Zustand nicht; nur ein Neustart.
-
Wenn die Einstellungen auf dem Data Layer geändert oder ein Modul aktiviert oder deaktiviert wurde:
-
Rufen Sie
hdvisionsystems/lumiscan-ai-object-matching/system/control/restart/executeauf. Die Methode antwortet mitDL_OK/Ok, sobald der Neustart begonnen hat. Auf ctrlX OS startet ctrlX OS die Anwendung nach etwa fünf Sekunden erneut. -
Warten Sie, bis
hdvisionsystems/lumiscan-ai-object-matching/system/restart-requiredwieder gelesen werden kann. Erwartet:false.
-
-
Wenn eine Datei nicht gespeichert werden konnte (
DL_CREATION_FAILED/CreationFailed): Korrigieren Sie die Dateien und starten Sie die Anwendung dann wie oben beschrieben neu.
Senden Sie die unter Informationen für den Support aufgeführten Informationen an den Support, zusammen mit dem Inhalt von system/status-text und system/settings.
Ergebnisse in ctrlX PLC Engineering lesen
Problem: Der Ordner schemas existiert nicht
Auf ctrlX OS existiert in Manage app data der Ordner lumiscan-ai-object-matching/schemas nicht, Sie können object_detection.fbs also nicht aus lumiscan-ai-object-matching/schemas/flatbuffers herunterladen.
-
Die Anwendung ist nicht erfolgreich gestartet. Der Ordner
schemaswird beim Start angelegt, nach der Lizenzprüfung. -
Die Lizenz fehlt. Die Anwendung beendet sich dann kurz nach dem Start.
-
Lesen Sie das Systemprotokoll von ctrlX OS im Logbuch der ctrlX-Weboberfläche oder mit
journalctl. Fehlt die Lizenz, steht der Grund dort. -
Prüfen Sie, ob die ctrlX-Lizenz
SWL-W-XCx-OBJxMATCHxHDVSx-V2NNinstalliert ist.
-
Wenn die Lizenz fehlt: Installieren Sie eine gültige Lizenz, siehe Voraussetzungen und Fehlerbehebung im Handbuch LumiScan Lizenzierung. Prüfen Sie dann in Manage app data, ob der Ordner
lumiscan-ai-object-matching/schemas/flatbuffersexistiert. -
Wenn die Anwendung aus einem anderen Grund nicht gestartet ist: Der Grund steht im Systemprotokoll. Wenden Sie sich an den Support.
Bearbeiten Sie keine Dateien in schemas: Die Anwendung löscht den Ordner bei jedem Start und legt ihn neu an.
Senden Sie die unter Informationen für den Support aufgeführten Informationen an den Support, zusammen mit den Meldungen der Anwendung aus dem Systemprotokoll von ctrlX OS.
Problem: Import from FlatBuffers file… fehlt im Kontextmenü
Sie klicken in ctrlX PLC Engineering im Gerätebaum mit der rechten Maustaste auf Application. Das Kontextmenü enthält Import from FlatBuffers file… nicht.
-
Die ctrlX-Data-Layer-Bibliothek
CXA_Datalayerfehlt.
-
Prüfen Sie, ob Sie ctrlX PLC Engineering 2.6 oder neuer verwenden.
-
Prüfen Sie im Library Manager des SPS-Projekts, ob
CXA_DatalayerundCXA_Flatbuffersreferenziert sind.
-
Wenn die ctrlX-Data-Layer-Bibliothek fehlt:
-
Wählen Sie in der Menüleiste von PLC Engineering Tools > Library Repository….
-
Suchen Sie nach
CXA_Datalayer, wählen Sie die Bibliothek aus und klicken Sie auf Open. -
Wiederholen Sie den Import: Klicken Sie mit der rechten Maustaste auf Application, wählen Sie Import from FlatBuffers file… und wählen Sie
object_detection.fbs.Die Screenshots finden Sie unter Die ctrlX-Data-Layer-Bibliothek installieren.
-
-
Wenn nach dem Import eine andere Bibliothek fehlt: Fügen Sie sie im Library Manager hinzu.
Senden Sie die unter Informationen für den Support aufgeführten Informationen an den Support, zusammen mit der Version von ctrlX PLC Engineering und den im Library Manager aufgeführten Bibliotheken.
Problem: Nach dem Import erscheint die Meldung "Identifier 'VectorT' not defined"
Nach dem Import von object_detection.fbs zeigt der Editor des Funktionsbausteins hdv_object_detection2d_InstanceTVec die Meldung Identifier 'VectorT' not defined (beobachtet mit ctrlX PLC Engineering 3.6).
-
Der Funktionsbaustein
hdv_object_detection2d_InstanceTVecerweitertflatbuffers.VectorT. Die Version der BibliothekCXA_Flatbuffers, die für ctrlX PLC Engineering 3.6 verfügbar ist (0.1.3.3), enthält diesen Funktionsbaustein nicht.
-
Öffnen Sie den Editor von
hdv_object_detection2d_InstanceTVec. Erwartet: Die Meldung erscheint in der ZeileFUNCTION_BLOCK hdv_object_detection2d_InstanceTVec EXTENDS flatbuffers.VectorT. -
Prüfen Sie im Library Manager, welche Version von
CXA_Flatbuffersdas SPS-Projekt referenziert.
Die Meldung beeinträchtigt das Lesen der Ergebnisse nicht.
-
Wenn die Meldung erscheint:
-
Verwenden Sie
hdv_object_detection2d_InstanceTVecnicht in Ihrem Programm. Er wird zum Lesen der Ergebnisse nicht benötigt. Auf einzelne Instanzen greifen Sie mitgetInstancesvonhdv_object_detection2d_Resultzu, siehe Beispiel: Position und Score einer Instanz lesen. -
Stört die Meldung, löschen Sie den Funktionsbaustein
hdv_object_detection2d_InstanceTVecaus der Anwendung. Kein anderer erzeugter Funktionsbaustein verweist auf ihn.
-
Senden Sie die unter Informationen für den Support aufgeführten Informationen an den Support, zusammen mit der Version von ctrlX PLC Engineering, der Version von CXA_Flatbuffers und der genauen Meldung.
Informationen für den Support
Besteht ein Problem weiter, senden Sie die folgenden Informationen an den Support:
-
Die Version von LumiScan AI Object Matching.
-
Die Plattform: ctrlX OS auf einer ctrlX CORE oder einem ctrlX IPC, mit der Version von ctrlX OS (mit TPU-Beschleunigung auch die Version von App Hardware Support); oder ein PC mit Windows 11 oder Ubuntu 24.04 und LumiScan Keryx.
-
Bei Problemen in ctrlX PLC Engineering: die Version von ctrlX PLC Engineering und der Bibliotheken
CXA_DatalayerundCXA_Flatbuffers. -
Das Log der Anwendung. Auf ctrlX OS die Meldungen der Anwendung aus dem Systemprotokoll von ctrlX OS (Logbuch der ctrlX-Weboberfläche oder
journalctl). Auf einem PC das Log der Anwendung. -
Datum und Uhrzeit des Fehlers.
-
Den Status auf dem Data Layer: welchen Data Layer Sie verwenden (ctrlX Data Layer oder LumiScan Keryx; auf einem PC die Data-Layer-Adresse), die Werte von
control/status/codeundcontrol/status/textdes Moduls,system/restart-requiredundsystem/status-textund bei einem abgelehnten Methodenaufruf das genaue Ergebnis des Schreibvorgangs. -
Die Konfigurationsdateien aus dem Ordner
lumiscan-ai-object-matching: die Konfigurationsdatei der Anwendungai-object-matching.json, die Modulkonfigurationsdatei und die Modellbeschreibungsdatei (.json) inmodels. Alternativ senden Sie den Inhalt vonhdvisionsystems/lumiscan-ai-object-matching/system/settings: Jeder Wert mit dem Namenpassworderscheint dort als"***".
Wenden Sie sich an den Customer Success von HD Vision Systems unter customer.success@hdvisionsystems.com oder +49 6221 6721905. Für Lizenzen wenden Sie sich an licenses@hdvisionsystems.com.