Fehlerbehebung

Beginnen Sie mit den Allgemeine Prüfungen: Sie helfen bei jedem Problem mit dem Data Layer. Suchen Sie dann Ihr Symptom in den folgenden Abschnitten und arbeiten Sie dessen Schritte der Reihe nach ab. Der letzte Abschnitt nennt, was Sie an den Support senden, wenn das Problem weiterhin besteht.

Allgemeine Prüfungen

Prüfen Sie zuerst diese Punkte:

  • Die App läuft und ist auf dem Data Layer. Öffnen Sie auf einem PC die Keryx-Seite http://127.0.0.1:7555/ (Windows) oder führen Sie krxclient tree hdvisionsystems --depth 1 aus: Der Baum zeigt den Ordner hdvisionsystems mit einem Ordner pro laufender App. Auf ctrlX OS verwenden Sie die Data-Layer-Ansicht der Weboberfläche von ctrlX OS. Siehe Werkzeuge.

  • Alle Programme verwenden denselben Broker (PC). Jede App nennt beim Start in ihrem Log die Broker-Adresse, die sie verwendet. Jede App, Cockpit und der OPC UA Connector müssen dieselbe Adresse verwenden. Standard ist tcp://127.0.0.1:5555; --keryx-url oder LUMISCAN_KERYX_URL ändert sie. Siehe Optionen und Umgebungsvariablen.

  • Die App bedient ihre Module. Für jede App mit Modulen listet hdvisionsystems/<app>/system/found-modules diese auf. Ist die Liste leer, nennt hdvisionsystems/<app>/system/status-text den Grund.

  • Der Status des Moduls. Cam Driver, AI Object Matching und Calibration melden ihn auf <module>/control/status/code und control/status/text: Werte unter 0 sind Fehler. Die Finder melden jede Methode auf <method>/output/status-code und status-text. Verwenden Sie die Zahlen, nicht die Texte. Siehe Statuscodes und Ergebnisse.

  • Die Adressen passen zur App-Version. Adressen sind kleingeschrieben. In den kommenden Releases sind mehrere Knoten umgezogen, ohne Alias unter der alten Adresse: Vergleichen Sie Ihr Programm mit der Data Layer Reference der App-Version, die Sie einsetzen.

  • Die Logs. Die Apps protokollieren die erste Ablehnung einer Methode und danach für dieselbe Methode und dasselbe Ergebnis höchstens eine Zeile alle zehn Sekunden.

    Log Wo

    Eine App auf ctrlX OS

    das Systemprotokoll von ctrlX OS: das Logbuch der ctrlX-Weboberfläche oder journalctl

    Der Broker unter Windows (Log, Aufzeichnungen und broker.json)

    C:\ProgramData\HD Vision Systems GmbH\LumiScan Keryx

    Der Broker unter Ubuntu

    /tmp/lumiscan-keryx

    LumiScan Keryx Utilities

    %LOCALAPPDATA%\LumiScan Keryx Utilities\logs\keryx-utilities.log

Broker, Apps und Knoten

Problem: Eine App wartet auf den Broker (PC)

Symptome

Eine App auf einem PC protokolliert, dass sie keinen Data-Layer-Broker erreichen konnte (could not reach a Keryx broker), und wartet.

Mögliche Ursachen
  • Es ist der erste Start: Der Broker braucht einige Sekunden, bis er antwortet.

  • LumiScan Keryx ist nicht installiert.

  • Das Terminal wurde vor der Installation von LumiScan Keryx geöffnet. Das Installationsprogramm setzt die Variablen HDV_KERYX_BROKER und HDV_KERYX_PAGE; ein Programm oder Terminal, das bereits geöffnet war, sieht sie nicht.

  • Der automatische Start ist ausgeschaltet: --no-keryx-autostart oder LUMISCAN_KERYX_AUTOSTART=0.

  • Der Broker wurde auf der Keryx-Seite mit Shut down broker gestoppt.

  • Die Adresse ist eine ipc://-Adresse relativ zu einem Ordner: Keine App startet dafür einen Broker.

  • Die Adresse ist die eines anderen Computers: Eine App verbindet sich nur damit und startet dort nie einen Broker.

Diagnose
  1. Warten Sie nach dem ersten Start einige Sekunden - erwartet: Die App verbindet sich, sobald der Broker antwortet.

  2. Lesen Sie die Broker-Adresse im Log der App beim Start - erwartet: die Adresse, die Sie verwenden wollen, standardmäßig tcp://127.0.0.1:5555.

  3. Prüfen Sie, ob LumiScan Keryx installiert ist und ob Sie das Terminal nach der Installation geöffnet haben.

  4. Prüfen Sie die Optionen und Umgebungsvariablen der App - erwartet: Weder --no-keryx-autostart noch LUMISCAN_KERYX_AUTOSTART=0 ist gesetzt, es sei denn, Sie starten den Broker selbst.

  5. Prüfen Sie, ob auf der Keryx-Seite Shut down broker geklickt wurde. Danach starten die Apps den Broker nicht von selbst erneut.

  6. Bei einer ipc://-Adresse: Prüfen Sie, ob der Broker und jede App aus demselben Ordner gestartet wurden.

Lösung
  • Wenn es der erste Start ist: Warten Sie. Die App verbindet sich, sobald der Broker antwortet.

  • Wenn LumiScan Keryx nicht installiert ist:

    1. Installieren Sie zuerst LumiScan Keryx, dann die Apps. Führen Sie jedes Installationsprogramm als Administrator aus.

    2. Öffnen Sie ein neues Terminal und starten Sie die App erneut.

  • Wenn das Terminal vor der Installation geöffnet wurde: Öffnen Sie ein neues Terminal und starten Sie die App erneut.

  • Wenn der automatische Start ausgeschaltet ist: Entfernen Sie die Option oder die Variable, oder starten Sie den Broker selbst: krxsystem --backend hdv --url <address>.

  • Wenn der Broker heruntergefahren wurde: Klicken Sie auf der Keryx-Seite auf Start broker oder öffnen Sie das LumiScan Keryx-Fenster. Auch ein von Hand gestartetes krxsystem oder ein Neustart des PCs startet ihn wieder.

  • Wenn die Adresse eine relative ipc://-Adresse ist: Starten Sie den Broker selbst (krxsystem --backend hdv --url <address>) und starten Sie dann jede App aus genau diesem Ordner.

  • Wenn die Adresse die eines anderen Computers ist: Der Betrieb von Apps auf mehreren PCs an einem Broker wird in diesem Handbuch nicht behandelt. Wenden Sie sich an den Support.

Wenn das Problem weiterhin besteht

Senden Sie die unter Informationen für den Support genannten Informationen an den Support, zusammen mit der Meldung aus dem Log der App, der Broker-Adresse, die die App dort nennt, und dem Log des Brokers.

Problem: Eine App oder ein Modul fehlt im Baum

Symptome

Der Baum enthält unter hdvisionsystems keinen Ordner für die App, oder ein erwartetes Modul erscheint nicht auf dem Data Layer: hdvisionsystems/<app>/system/found-modules führt es nicht auf.

Mögliche Ursachen
  • Die App läuft nicht.

  • Die App verwendet einen anderen Broker als das Programm, mit dem Sie nachsehen (PC).

  • Die Einstellungsdatei konnte nicht geladen werden.

  • Die Lizenz fehlt. Auf ctrlX OS beendet sich eine App ohne gültige Lizenz kurz nach dem Start.

  • Der Modulname enthält Großbuchstaben oder andere Zeichen als a-z, 0-9, - und _. Cam Driver und AI Object Matching lehnen ein solches Modul ab.

  • Cam Driver, AI Object Matching, Calibration: Die Moduldatei wurde mit system/control/activate-module/execute aktiviert, die App wurde seitdem aber nicht neu gestartet.

  • Template Finder, Object Finder, Area Detector, Text Reader: Das Modul wurde mit system/create-module/execute angelegt und nicht gespeichert, und die App wurde seitdem neu gestartet.

Diagnose
  1. Prüfen Sie den Baum - auf einem PC auf der Keryx-Seite oder mit krxclient tree; auf ctrlX OS in der Weboberfläche von ctrlX OS; erwartet: Der Ordner hdvisionsystems enthält einen Ordner pro laufender App.

  2. Vergleichen Sie auf einem PC die Broker-Adresse im Log der App mit der Adresse von Cockpit, dem OPC UA Connector oder dem verwendeten Werkzeug - erwartet: dieselbe Adresse.

  3. Lesen Sie hdvisionsystems/<app>/system/found-modules - erwartet: Das Modul ist aufgeführt.

  4. Falls nicht, lesen Sie hdvisionsystems/<app>/system/status-text - erwartet: Dort steht, warum die App kein Modul bedient, meist eine Einstellungsdatei, die nicht geladen werden konnte, oder eine fehlende Lizenz.

  5. Prüfen Sie den Modulnamen - erwartet: nur Kleinbuchstaben, Ziffern, - und _. Der Name stammt aus id in der Moduldatei (Cam Driver), aus name in der Moduldatei (AI Object Matching), aus dem Namen der Moduldatei (Calibration) oder aus der Modul-ID (die Finder). Siehe Modulnamen.

  6. Lesen Sie auf ctrlX OS das Systemprotokoll - erwartet: keine Meldung, dass die Lizenz fehlt.

Lösung
  • Wenn die App nicht läuft: Starten Sie sie und warten Sie, bis sie vollständig gestartet ist.

  • Wenn die App einen anderen Broker verwendet: Übergeben Sie jeder App, Cockpit und dem OPC UA Connector dieselbe --keryx-url.

  • Wenn die Einstellungsdatei nicht geladen werden konnte: Korrigieren Sie sie und starten Sie die App erneut. Auf einem PC sind die Einstellungen Dateien im Einstellungsordner der App (unter Windows C:\ProgramData\HD Vision Systems GmbH\LumiScan Vision Suite\<program>\etc\<settings folder>); die Option --generate-settings schreibt ein Beispiel. Siehe Speicherorte der Dateien. Auf ctrlX OS laden Sie sie hoch, wie es das Handbuch der App unter Uploading Data beschreibt.

  • Wenn die Lizenz fehlt: Siehe LumiScan Lizenzierung.

  • Wenn der Modulname ungültig ist: Verwenden Sie Modulnamen in Kleinbuchstaben.

  • Wenn die App seit der Aktivierung nicht neu gestartet wurde: Rufen Sie hdvisionsystems/<app>/system/control/restart/execute auf.

  • Wenn ein Finder-Modul nicht gespeichert wurde:

    1. Legen Sie das Modul mit system/create-module/execute erneut an.

    2. Speichern Sie die Modulliste mit system/save-current-modules/execute und die Eingaben des Moduls mit system/save-module-inputs/execute.

Wenn das Problem weiterhin besteht

Senden Sie die unter Informationen für den Support genannten Informationen an den Support, zusammen mit dem Inhalt von system/found-modules und system/status-text sowie der Moduldatei.

Problem: Ein Knoten ist „not found"

Symptome

Ein Lese-, Schreib- oder Methodenaufruf meldet, dass der Knoten nicht gefunden wurde: NodeNotFound (LumiScan Keryx), DL_INVALID_ADDRESS (ctrlX Data Layer) oder BadNodeIdUnknown (OPC UA). Ein Programm, das für ein früheres Release geschrieben wurde, findet einen Knoten nicht mehr, den es verwendet hat.

Mögliche Ursachen
  • Groß-/Kleinschreibung oder Schreibweise der Adresse ist falsch. Adressen sind kleingeschrieben.

  • Der Knoten ist umgezogen. In den kommenden Releases sind mehrere Knoten umgezogen, ohne Alias unter der alten Adresse, zum Beispiel der Stream des Cam Driver von input/stream/enable nach control/publish/input/enable.

  • Die App startet gerade neu: Ihre Knoten verschwinden, bis sie wieder läuft.

  • Das Modul fehlt, siehe Problem: Eine App oder ein Modul fehlt im Baum.

Diagnose
  1. Vergleichen Sie die Adresse mit dem Baum - auf einem PC auf der Keryx-Seite oder aus krxclient tree; auf ctrlX OS in der Weboberfläche von ctrlX OS; erwartet: dieselbe Groß-/Kleinschreibung und Schreibweise.

  2. Vergleichen Sie die Adresse mit der Data Layer Reference der App-Version, die Sie einsetzen - erwartet: Der Knoten ist dort unter dieser Adresse aufgeführt.

  3. Prüfen Sie, ob die App gerade neu startet - erwartet: system/restart-required kann gelesen werden.

Lösung
  • Wenn Groß-/Kleinschreibung oder Schreibweise falsch ist: Korrigieren Sie die Adresse.

  • Wenn der Knoten umgezogen ist: Ändern Sie Ihr Programm auf die Adresse in der Data Layer Reference der App-Version, die Sie einsetzen.

  • Wenn die App gerade neu startet: Warten Sie, bis system/restart-required wieder gelesen werden kann.

  • Wenn das Modul fehlt: Siehe Problem: Eine App oder ein Modul fehlt im Baum.

Wenn das Problem weiterhin besteht

Senden Sie die unter Informationen für den Support genannten Informationen an den Support, zusammen mit der Adresse, die nicht gefunden wird, und dem Ergebnis des Aufrufs.

Funktionen aufrufen

Problem: Ein Methodenaufruf wird abgelehnt

Symptome

Ein Schreibvorgang auf einen execute-Knoten antwortet nicht mit Ok (DL_OK, OPC UA Good), sondern mit einem der Ergebnisse aus Ergebnisse eines Methodenaufrufs, zum Beispiel TooManyOperations, InvalidOperationMode, ResourceUnavailable oder Rejected. Auf dem ctrlX Data Layer trägt ein abgelehnter Aufruf keinen Grund.

Mögliche Ursachen
  • TooManyOperations (ctrlX DL_TOO_MANY_OPERATIONS, OPC UA BadTooManyOperations): Eine andere Operation desselben Moduls läuft - ein Execute, ein Handshake oder bei den Findern ein Frame eines Streams.

  • InvalidOperationMode (ctrlX DL_INVALID_OPERATION_MODE, OPC UA BadInvalidState): Die Funktion ist nicht bereit. Ihr ready ist false, zum Beispiel weil keine Lizenz vorhanden ist, die Kamera nicht verbunden ist oder ein Stream läuft.

  • ResourceUnavailable (ctrlX DL_RESOURCE_UNAVAILABLE, OPC UA BadResourceUnavailable): Nach einer Änderung über system/settings ist ein Neustart erforderlich (Status -5), die App wird beendet, oder ein AI-Modul hat einen Fehler.

  • Rejected (ctrlX DL_INVALID_VALUE, OPC UA BadRequestNotAllowed): Eine Eingabe ist ungültig; nichts wurde geändert.

  • NodeNotFound (ctrlX DL_INVALID_ADDRESS, OPC UA BadNodeIdUnknown): Ein Bild, eine Quelle, ein Modul oder der Knoten selbst wurde nicht gefunden.

  • CreationFailed (ctrlX DL_CREATION_FAILED): Etwas konnte nicht geschrieben oder angelegt werden, zum Beispiel eine Datei, ein bereits vorhandenes Modul oder eine nicht verfügbare Lizenz.

  • InternalError (ctrlX DL_FAILED, OPC UA BadInternalError): Die Operation ist fehlgeschlagen.

Diagnose
  1. Notieren Sie das Ergebnis des Aufrufs und schlagen Sie es unter Ergebnisse eines Methodenaufrufs nach.

  2. Lesen Sie das Log der App - erwartet: der Grund der Ablehnung. Die Apps schreiben ihn dorthin, weil ein abgelehnter Aufruf auf dem ctrlX Data Layer keinen trägt.

  3. Cam Driver, AI Object Matching, Calibration: Lesen Sie control/<function>/ready zusammen mit control/status/code und control/status/text. ready nennt die fehlende Voraussetzung; der Statustext trägt noch die Meldung des Fehlers, der sie verursacht hat.

  4. Finder: Lesen Sie <method>/output/status-code und status-text. Siehe Ausführungsstatus der Finder.

Lösung
  • Wenn eine andere Operation des Moduls läuft (TooManyOperations): Wiederholen Sie den Aufruf. Er gelingt, sobald die laufende Operation abgeschlossen ist.

  • Wenn die Funktion nicht bereit ist (InvalidOperationMode): Bringen Sie das Modul zuerst in den erforderlichen Zustand, verbinden Sie zum Beispiel die Kamera. Bloßes Wiederholen schlägt weiter fehl: Wiederholen Sie nicht in einer Schleife. capture des Cam Driver und inference von AI Object Matching sind nicht bereit, während ihr Stream läuft: Stoppen Sie zuerst den Stream, siehe Streams und einzelne Operationen. Das Handbuch der App nennt, wann jedes ready true ist.

  • Wenn ein Neustart erforderlich ist (ResourceUnavailable, Status -5): Siehe Problem: Status -5 (restartRequired) oder ResourceUnavailable bei jedem Aufruf.

  • Wenn die App beendet wird oder ein AI-Modul einen Fehler hat (ResourceUnavailable): Lesen Sie den Status und starten Sie die App neu, wenn erforderlich.

  • Wenn eine Eingabe ungültig ist (Rejected): Korrigieren Sie die Eingabe und rufen Sie erneut auf.

  • Wenn etwas nicht gefunden wurde (NodeNotFound): Prüfen Sie die Adresse und ihre Groß-/Kleinschreibung, siehe Problem: Ein Knoten ist „not found".

  • Wenn etwas nicht geschrieben oder angelegt werden konnte (CreationFailed) oder die Operation fehlgeschlagen ist (InternalError): Lesen Sie das Log und den Status; dort steht der Grund.

Wenn das Problem weiterhin besteht

Senden Sie die unter Informationen für den Support genannten Informationen an den Support, zusammen mit der Adresse der Methode, ihrem Ergebnis, den Werten von ready, control/status/code und control/status/text sowie den Log-Zeilen zur Ablehnung.

Problem: Status -5 (restartRequired) oder ResourceUnavailable bei jedem Aufruf

Symptome

Jedes Modul der App meldet control/status/code = -5 (restartRequired), und seine Methoden antworten mit ResourceUnavailable (ctrlX DL_RESOURCE_UNAVAILABLE, OPC UA BadResourceUnavailable).

Mögliche Ursachen
  • Die Einstellungen wurden über system/settings geändert. Sie werden beim nächsten Start wirksam.

Diagnose
  1. Lesen Sie hdvisionsystems/<app>/system/restart-required - erwartet nach einer gespeicherten Änderung: true, bis die App neu startet.

Lösung
  • Wenn die Einstellungen über system/settings geändert wurden:

    1. Rufen Sie hdvisionsystems/<app>/system/control/restart/execute auf. Die Knoten der App verschwinden, bis sie wieder läuft.

    2. Warten Sie, bis system/restart-required wieder gelesen werden kann.

    3. Führen Sie Ihre Startsequenz erneut aus: In input/ geschriebene Werte bleiben nicht erhalten, die Kamera ist nicht verbunden und der Stream des Cam Driver ist aus. Siehe Was bei einem Neustart erhalten bleibt.

Wenn das Problem weiterhin besteht

Senden Sie die unter Informationen für den Support genannten Informationen an den Support, zusammen mit dem Wert von system/restart-required und dem Inhalt von system/settings.

Problem: Der Execute-Aufruf antwortet mit Ok (DL_OK), aber nichts ist passiert

Symptome

Cam Driver, AI Object Matching, Calibration: Ein Schreibvorgang auf einen execute-Knoten antwortet mit Ok (DL_OK, OPC UA Good), aber die Operation hatte keine Wirkung.

Mögliche Ursachen
  • Die Operation wurde ausgeführt, ist aber fehlgeschlagen. Das Ergebnis des Schreibvorgangs sagt nur aus, dass die Operation ausgeführt wurde. Ob sie erfolgreich war, steht im Modulstatus.

Diagnose
  1. Lesen Sie direkt nach dem Aufruf control/status/code und control/status/text - erwartet: 0 (ready). Werte unter 0 sind Fehler.

  2. Schlagen Sie den Code unter Modulstatus nach. App-spezifische Codes stehen im Handbuch der jeweiligen App.

Lösung
Wenn das Problem weiterhin besteht

Senden Sie die unter Informationen für den Support genannten Informationen an den Support, zusammen mit der Adresse der Methode und den Werten von control/status/code und control/status/text nach dem Aufruf.

Problem: Ein Handshake wird nicht abgeschlossen oder zeigt den falschen Ausgang

Symptome

ready bleibt nach dem Request false; ein capture des Cam Driver oder eine inference von AI Object Matching per Handshake endet mit Status 3 (waitingForClient); oder ein fehlgeschlagenes connect-camera des Cam Driver zeigt seinen Fehler nur etwa 100 ms lang.

Mögliche Ursachen
  • request ist noch true: Das Modul wartet darauf, dass request zurückfällt, so lange es dauert.

  • Zwei Programme schreiben denselben request-Knoten, und ein Request geht verloren.

  • capture des Cam Driver: Ein fehlgeschlagenes Capture endet mit Status 3, nicht mit seinem eigenen Fehlercode, und capture/ready bleibt false, bis ein reset gelingt. Ein fehlgeschlagenes reset, save oder load bleibt ebenfalls bestehen, bis ein reset gelingt.

  • inference von AI Object Matching: Jede Inferenz endet mit Status 3, unabhängig von ihrem Ausgang. Nach einer fehlgeschlagenen Inferenz und solange das Modul einen Fehler hat, wird jeder Request außer reset ignoriert. Während der Stream läuft, ist inference/ready false, und ein Request erhält Status 100002.

  • Cam Driver: Jeder andere Fehler bleibt nur etwa 100 ms lang im Status stehen.

  • Cam Driver ohne Lizenz: Jedes ready ist false, und der Status ist -4.

Diagnose
  1. Folgen Sie den Schritten unter Der Ablauf, fragen Sie dabei alle 50 bis 100 ms ab, und notieren Sie den Schritt, an dem es stehen bleibt.

  2. Lesen Sie request, nachdem ready false geworden ist - erwartet: Ihr Programm hat es wieder auf false gesetzt.

  3. Prüfen Sie, welche Programme den request-Knoten schreiben - erwartet: nur eines.

  4. Bei einem capture des Cam Driver oder einer inference von AI Object Matching: Lesen Sie output/package-identifier davor und danach - erwartet: Er ist um eins gestiegen, wenn die Operation erfolgreich war.

  5. Bei einem connect-camera des Cam Driver: Lesen Sie device-info/is-connected - erwartet: true, wenn die Kamera verbunden ist.

  6. Beim Cam Driver: Lesen Sie control/status/code - erwartet: nicht -4.

Lösung
  • Wenn request noch true ist: Setzen Sie request auf false.

  • Wenn zwei Programme request schreiben: Lassen Sie nur ein Programm schreiben. Ein Programm, das sich nicht mit anderen abstimmen kann, verwendet die Execute-Methode, die einen zweiten Aufruf ablehnt, solange einer läuft.

  • Wenn ein capture oder eine inference mit Status 3 endet: So enden sie. Erkennen Sie den Erfolg an output/package-identifier, oder verwenden Sie die Execute-Methode: Der Status behält dann den eigenen Code der Operation. Führen Sie nach einem fehlgeschlagenen Capture reset aus.

  • Wenn AI Object Matching nach einer fehlgeschlagenen Inferenz Requests ignoriert: Führen Sie reset aus; es wird sofort ausgeführt.

  • Wenn der Stream von AI Object Matching läuft (Status 100002): Stoppen Sie zuerst den Stream.

  • Wenn ein Fehler des Cam Driver nach etwa 100 ms aus dem Status verschwindet: Prüfen Sie eine Verbindung mit device-info/is-connected, nicht mit dem Status.

  • Wenn der Cam Driver keine Lizenz hat (Status -4): Siehe LumiScan Lizenzierung.

Wenn das Problem weiterhin besteht

Senden Sie die unter Informationen für den Support genannten Informationen an den Support, zusammen mit der Funktion, dem Schritt, an dem der Handshake stehen bleibt, und den Werten von ready, request, control/status/code und output/package-identifier.

Streams

Problem: Ein Stream liefert nichts

Symptome

Von einem Stream kommen keine Ergebnisse an: output/stream/active bleibt false, oder die Zähler unter …​/stream/statistics/ steigen nicht mehr. Nach einem Neustart kommen keine Bilder an.

Mögliche Ursachen
  • Die Eingaben wurden geschrieben, aber execute wurde nicht aufgerufen. Die Eingaben wirken erst bei execute; enable allein zu schreiben startet nichts.

  • enable ist true ohne Adresse. Der Aufruf wird abgelehnt (Rejected, ctrlX DL_INVALID_VALUE), und nichts ändert sich.

  • Die address des Konsumenten ist nicht der Stream-Ordner des Produzenten.

  • Das Modul kann nicht laufen: Lizenz, Netz nicht geladen oder Neustart erforderlich.

  • Der Cam Driver wurde neu gestartet: Sein Stream und die Kameraverbindung bleiben bei einem Neustart nicht erhalten.

  • connect-camera, disconnect-camera oder reset hat den Stream des Cam Driver gestoppt.

  • Nichts triggert die Kamera. Der Cam Driver triggert die Kamera nie von selbst.

  • Calibration: Ihr Abschnitt stream hat keinen onEntry-Schritt, der angibt, wie die Quelle zu lesen ist.

Diagnose
  1. Lesen Sie an der Kamera control/publish/output/stream/active - erwartet: true.

  2. Lesen Sie am Konsumenten control/subscribe/output/stream/active - erwartet: true.

  3. Lesen Sie am Konsumenten setting/stream/…​ - erwartet: enable ist true, und address ist der Stream-Ordner des Produzenten, zum Beispiel hdvisionsystems/lumiscan-cam-driver/camera1/control/publish/output/stream.

  4. Verfolgen Sie die Kette mit den Zählern unter …​/stream/statistics/ - erwartet: Sie steigen. Der erste Zähler, der nicht steigt, zeigt, wo die Kette stehen bleibt. Siehe Die Kette verfolgen.

    1. Der Cam Driver zählt keine frames: Nichts triggert die Kamera.

    2. Calibration: failed-updates steigt, und es erscheinen keine Punkte: Der onEntry-Schritt fehlt.

    3. Finder und Code Reader: control/subscribe/output/stream/last-failure nennt, warum das letzte Element fehlgeschlagen ist.

  5. Lesen Sie control/status/code und das Log des Moduls, an dem die Kette stehen bleibt.

Lösung
  • Wenn execute nicht aufgerufen wurde: Rufen Sie nach dem Schreiben der Eingaben control/subscribe/execute (bei einem Konsumenten) oder control/publish/execute (beim Cam Driver) auf. Warten Sie dann, bis output/stream/active true ist.

  • Wenn enable true ohne Adresse ist: Schreiben Sie control/subscribe/input/address und rufen Sie dann control/subscribe/execute auf.

  • Wenn die Adresse nicht der Stream-Ordner des Produzenten ist: Schreiben Sie den Ordner, zum Beispiel hdvisionsystems/lumiscan-cam-driver/camera1/control/publish/output/stream, und rufen Sie execute auf.

  • Wenn das Modul nicht laufen kann: Beheben Sie die Ursache, die control/status/code und das Log nennen. Zu einem erforderlichen Neustart siehe Problem: Status -5 (restartRequired) oder ResourceUnavailable bei jedem Aufruf.

  • Wenn der Cam Driver neu gestartet wurde oder der Stream durch connect-camera, disconnect-camera oder reset gestoppt wurde:

    1. Führen Sie den Handshake connect-camera aus.

    2. Rufen Sie control/publish/execute mit enable = true auf.

    3. Die Konsumenten abonnieren von selbst erneut.

  • Wenn nichts die Kamera triggert: Prüfen Sie ihren Trigger-Modus oder rufen Sie control/trigger/execute auf.

  • Wenn der onEntry-Schritt von Calibration fehlt: Ergänzen Sie ihn im Abschnitt stream. Siehe das Handbuch von Calibration.

Wenn das Problem weiterhin besteht

Senden Sie die unter Informationen für den Support genannten Informationen an den Support, zusammen mit den Werten von output/stream/active, setting/stream/…​ und den Zählern unter …​/stream/statistics/ jedes Moduls der Kette.

Problem: Stream-Ergebnisse sind veraltet oder vermischt

Symptome

Die Ergebnisse, die Ihr Programm liest, sind veraltet, oder Werte verschiedener Ergebnisse sind vermischt.

Mögliche Ursachen
  • Ihr Programm hat gelesen, während ein neues Ergebnis geschrieben wurde.

Diagnose
  1. Prüfen Sie, wie Ihr Programm die einfachen Ausgabeknoten liest - erwartet: Es liest sie, nachdem sich output/package-identifier geändert hat. output/package-identifier wird zuletzt geschrieben.

Lösung
  • Wenn Ihr Programm liest, während ein neues Ergebnis geschrieben wird: Lesen Sie die Ausgaben, wenn sich output/package-identifier ändert, oder abonnieren Sie einen einzelnen Knoten wie plain-points von Calibration. Siehe Neuestes Ergebnis behalten.

Wenn das Problem weiterhin besteht

Senden Sie die unter Informationen für den Support genannten Informationen an den Support, zusammen mit den Knoten, die Ihr Programm liest, und deren Reihenfolge.

OPC UA Connector

Problem: Ein OPC-UA-Client kann sich nicht verbinden

Symptome

Der Client kann sich nicht mit opc.tcp://<pc>:4840 verbinden.

Mögliche Ursachen
  • Der Connector läuft nicht: Er wurde vor dem Broker gestartet und hat sich beendet, siehe Problem: Das Fenster des Connectors schließt sich sofort.

  • Die Firewall des PCs blockiert TCP-Port 4840.

  • Der Client besteht auf einem sicheren Kanal. Der Connector unterstützt nur Security Policy None und anonyme Anmeldung.

  • Der Connector wurde auf einem anderen Port gestartet (--port).

Diagnose
  1. Prüfen Sie, ob der Connector läuft - erwartet: Sein Fenster ist geöffnet.

  2. Prüfen Sie die Firewall des PCs - erwartet: TCP 4840 ist für die Adresse der SPS oder des Clients geöffnet.

  3. Prüfen Sie die Sicherheitseinstellungen des Clients - erwartet: Security Policy None, anonyme Anmeldung.

  4. Prüfen Sie die Optionen des Connectors - erwartet: der Port, den der Client verwendet.

Lösung
  • Wenn der Connector nicht läuft: Starten Sie zuerst die Apps, dann den Connector.

  • Wenn die Firewall den Port blockiert: Öffnen Sie TCP 4840 nur für die Adresse der SPS.

  • Wenn der Client auf einem sicheren Kanal besteht: Stellen Sie ihn auf Security Policy None und anonyme Anmeldung. Zertifikate, Benutzernamen und Verschlüsselung werden nicht unterstützt. Siehe Sicherheit.

  • Wenn der Connector auf einem anderen Port läuft: Verbinden Sie sich mit diesem Port.

Wenn das Problem weiterhin besteht

Senden Sie die unter Informationen für den Support genannten Informationen an den Support, zusammen mit den Optionen des Connectors, seinem Log und der Fehlermeldung des Clients.

Problem: Das Fenster des Connectors schließt sich sofort

Symptome

Das Fenster des OPC UA Connector schließt sich direkt nach dem Start; der Connector beendet sich mit Exit-Code 1.

Mögliche Ursachen
  • Es läuft kein Broker. Der Connector startet nie einen Broker: Ohne Broker protokolliert er den Grund und beendet sich.

  • Die --keryx-url des Connectors nennt einen anderen Broker als den, den die Apps verwenden.

Diagnose
  1. Prüfen Sie, ob die Apps laufen - erwartet: Die Keryx-Seite zeigt hdvisionsystems mit den Apps.

  2. Vergleichen Sie die --keryx-url des Connectors mit der Broker-Adresse, die die Apps in ihren Logs nennen - erwartet: dieselbe Adresse.

  3. Lesen Sie das Log des Connectors - erwartet: der Grund, warum er sich beendet hat.

Lösung
  • Wenn kein Broker läuft: Starten Sie zuerst die Apps, dann den Connector.

  • Wenn der Connector eine andere Adresse verwendet: Übergeben Sie ihm dieselbe --keryx-url wie den Apps.

Wenn das Problem weiterhin besteht

Senden Sie die unter Informationen für den Support genannten Informationen an den Support, zusammen mit den Optionen des Connectors und seinem Log.

Problem: Objects ist leer oder enthält kein hdvisionsystems

Symptome

Der Client ist verbunden, aber Objects ist leer oder enthält kein hdvisionsystems.

Mögliche Ursachen
  • Die Apps laufen nicht.

  • Die --keryx-url des Connectors nennt einen anderen Broker als den, den die Apps verwenden.

  • Eine App wurde gerade erst gestartet: Der Connector durchläuft den Baum alle 2 Sekunden erneut.

Diagnose
  1. Prüfen Sie, ob die Apps laufen - erwartet: Die Keryx-Seite zeigt hdvisionsystems mit den Apps.

  2. Vergleichen Sie die --keryx-url des Connectors mit der Broker-Adresse, die die Apps in ihren Logs nennen - erwartet: dieselbe Adresse.

  3. Browsen Sie nach etwa 2 Sekunden erneut - erwartet: Eine später gestartete App erscheint.

Lösung
  • Wenn die Apps nicht laufen: Starten Sie sie.

  • Wenn der Connector eine andere Adresse verwendet: Starten Sie ihn mit derselben --keryx-url wie die Apps neu.

  • Wenn eine App gerade erst gestartet wurde: Browsen Sie erneut. Es gibt keine Model-Change-Events: Ein Client, der sein Browse-Ergebnis zwischengespeichert hat, muss erneut browsen.

Wenn das Problem weiterhin besteht

Senden Sie die unter Informationen für den Support genannten Informationen an den Support, zusammen mit den Optionen des Connectors und seinem Log.

Problem: BadNodeIdUnknown

Symptome

Ein Lese-, Schreib- oder Methodenaufruf über OPC UA antwortet mit BadNodeIdUnknown.

Mögliche Ursachen
  • Die Adresse, ihre Groß-/Kleinschreibung oder der Namespace-Index ist falsch.

  • Die App läuft nicht.

  • Das Modul fehlt.

Diagnose
  1. Ermitteln Sie den Namespace-Index n der URI urn:hdvisionsystems:keryx im NamespaceArray des Servers - erwartet: der Index, den Ihr Programm verwendet.

  2. Prüfen Sie die NodeId - erwartet: ns=<n>;s=<address>, mit der Data-Layer-Adresse in Kleinbuchstaben, zum Beispiel ns=<n>;s=hdvisionsystems/lumiscan-cam-driver/camera1/control/status/code.

  3. Lesen Sie hdvisionsystems/<app>/system/found-modules - erwartet: Das Modul ist aufgeführt.

Lösung
  • Wenn der Namespace-Index falsch ist: Ermitteln Sie ihn nach jedem Verbindungsaufbau anhand seiner URI. Schreiben Sie keinen festen Index in Ihr Programm: Bei einem anderen Start kann er anders nummeriert sein.

  • Wenn die Adresse falsch ist: Korrigieren Sie Groß-/Kleinschreibung und Schreibweise, siehe Problem: Ein Knoten ist „not found".

  • Wenn die App nicht läuft oder das Modul fehlt: Siehe Problem: Eine App oder ein Modul fehlt im Baum.

Wenn das Problem weiterhin besteht

Senden Sie die unter Informationen für den Support genannten Informationen an den Support, zusammen mit der NodeId und dem Inhalt des NamespaceArray des Servers.

Problem: BadTypeMismatch beim Schreiben

Symptome

Ein Schreibvorgang über OPC UA antwortet mit BadTypeMismatch.

Mögliche Ursachen
  • Der Typ des Werts entspricht nicht exakt dem Typ des Knotens. Der Connector konvertiert nicht: Ein Boolean-Knoten nimmt einen Boolean an, nicht 0 oder 1; ein UInt32-Knoten nimmt UInt32 an, nicht Int32.

Diagnose
  1. Ermitteln Sie den Typ des Knotens, zum Beispiel auf der Keryx-Seite (wählen Sie den Knoten aus) - erwartet: der Typ, den Ihr Client sendet, zugeordnet wie unter Lesen, Schreiben und Typen.

Lösung
  • Wenn der Typ abweicht: Senden Sie exakt den Typ des Knotens, zum Beispiel Boolean für Flags und UInt32 für queue-size.

Wenn das Problem weiterhin besteht

Senden Sie die unter Informationen für den Support genannten Informationen an den Support, zusammen mit der Adresse des Knotens und dem Typ, den Ihr Client sendet.

Problem: Eine Subscription erhält nur einen Wert oder verpasst Ergebnisse

Symptome

Ein Monitored Item meldet nur einen Wert oder weniger Benachrichtigungen, als die App pusht.

Mögliche Ursachen
  • Die Einstellungen des Monitored Item weichen von den empfohlenen ab: Sampling Interval nicht 0, eine Queue Size von 1 (nur der neueste Push kommt an) oder ein anderer DataChange Trigger als StatusValueTimestamp (zwei identische Ergebnisse zählen als eines).

  • Der Knoten pusht nicht: Ein Wert, der zu groß ist, um gepusht zu werden, meldet sich im Event-Modus nie.

  • Der Connector hat beim Start festgestellt, dass der Event-Modus nicht funktioniert, und tastet jedes Item per Timer ab.

Diagnose
  1. Vergleichen Sie die Subscription mit Subscriptions - erwartet: Publishing Interval 10 ms oder mehr, Sampling Interval 0, Queue Size 10 bis 100, DataChange Trigger StatusValueTimestamp, DiscardOldest true.

  2. Lesen Sie zuerst das Log des Connectors - erwartet: keine Meldung, dass er im Sampling-Modus arbeitet.

Lösung
  • Wenn die Einstellungen abweichen: Stellen Sie sie wie empfohlen ein. Verwenden Sie Sampling Interval 0 nur bei Knoten, die pushen.

  • Wenn der Knoten nicht pusht: Verwenden Sie dafür ein positives Sampling Interval.

  • Wenn der Connector im Sampling-Modus arbeitet: Wenden Sie sich mit seinem Log an den Support.

Wenn das Problem weiterhin besteht

Senden Sie die unter Informationen für den Support genannten Informationen an den Support, zusammen mit den Einstellungen der Subscription und dem Log des Connectors.

Problem: Benachrichtigungen bleiben nach einem Neustart des Connectors oder einer App aus

Symptome

Nach einem Neustart des Connectors erhält der Client keine Benachrichtigungen. Nach einem Neustart einer App meldet sich ein Monitored Item nicht wieder, oder Lesezugriffe liefern BadTimeout, dann BadNoCommunication.

Mögliche Ursachen
  • Der Connector wurde neu gestartet: Die Subscriptions des Clients sind weg.

  • Eine App wurde gestoppt oder neu gestartet. Eine App, die stoppt, behält ihre Knoten im Baum; Lesezugriffe darauf liefern BadTimeout, dann BadNoCommunication, bis sich die App wieder registriert. Nach dem Neustart ist die Kamera nicht verbunden und der Stream des Cam Driver ist aus.

Diagnose
  1. Prüfen Sie, ob der Connector oder eine App zu dem Zeitpunkt neu gestartet wurde, an dem die Benachrichtigungen ausblieben.

  2. Lesen Sie einen Knoten der App - erwartet: ein Wert, nicht BadTimeout oder BadNoCommunication.

Lösung
  • Wenn der Connector neu gestartet wurde: Verbinden Sie sich neu und legen Sie die Subscriptions erneut an.

  • Wenn eine App neu gestartet wurde:

    1. Warten Sie, bis sich die App wieder registriert hat.

    2. Führen Sie Ihre Startsequenz erneut aus.

    3. Meldet sich ein Monitored Item nicht wieder, löschen Sie es und legen Sie es neu an.

Wenn das Problem weiterhin besteht

Senden Sie die unter Informationen für den Support genannten Informationen an den Support, zusammen mit dem Zeitpunkt des Neustarts und dem Log des Connectors.

Informationen für den Support

Besteht das Problem weiter, wenden Sie sich an customer.success@hdvisionsystems.com, +49 6221 6721905. Für Lizenzen: licenses@hdvisionsystems.com. Senden Sie bitte:

  • die App und ihre Version;

  • die Plattform: Windows 11, Ubuntu 24.04 oder ctrlX OS mit seiner Version;

  • Datum und Uhrzeit des Fehlers;

  • das Log der App; auf ctrlX OS aus dem Systemprotokoll (Logbuch der ctrlX-Weboberfläche oder journalctl);

  • auf einem PC das Log des Brokers aus C:\ProgramData\HD Vision Systems GmbH\LumiScan Keryx (Windows) oder /tmp/lumiscan-keryx (Ubuntu) und, falls Sie sie verwenden, die Logs des OPC UA Connector und von LumiScan Keryx Utilities;

  • den Kommunikationsstatus: die Data-Layer-Adresse, die die Apps verwenden, den Inhalt von system/found-modules und system/status-text, den Modulstatus (control/status/code und text bzw. status-code und status-text eines Finders), das Ergebnis eines abgelehnten Aufrufs und bei OPC UA den Statuscode und die Optionen des Connectors;

  • die Konfiguration: die Einstellungsdateien der App (auf einem PC in C:\ProgramData\HD Vision Systems GmbH\LumiScan Vision Suite\<program>\etc\<settings folder>, auf ctrlX OS im Ordner der App unter /var/snap/rexroth-solutions/common/solutions/activeConfiguration) oder den Inhalt von system/settings, und auf einem PC broker.json.