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 Siekrxclient tree hdvisionsystems --depth 1aus: Der Baum zeigt den Ordnerhdvisionsystemsmit 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-urloderLUMISCAN_KERYX_URLändert sie. Siehe Optionen und Umgebungsvariablen. -
Die App bedient ihre Module. Für jede App mit Modulen listet
hdvisionsystems/<app>/system/found-modulesdiese auf. Ist die Liste leer, nennthdvisionsystems/<app>/system/status-textden Grund. -
Der Status des Moduls. Cam Driver, AI Object Matching und Calibration melden ihn auf
<module>/control/status/codeundcontrol/status/text: Werte unter0sind Fehler. Die Finder melden jede Methode auf<method>/output/status-codeundstatus-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
journalctlDer Broker unter Windows (Log, Aufzeichnungen und
broker.json)C:\ProgramData\HD Vision Systems GmbH\LumiScan KeryxDer Broker unter Ubuntu
/tmp/lumiscan-keryxLumiScan Keryx Utilities
%LOCALAPPDATA%\LumiScan Keryx Utilities\logs\keryx-utilities.log
Broker, Apps und Knoten
Problem: Eine App wartet auf den Broker (PC)
Eine App auf einem PC protokolliert, dass sie keinen Data-Layer-Broker
erreichen konnte (could not reach a Keryx broker), und wartet.
-
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_BROKERundHDV_KERYX_PAGE; ein Programm oder Terminal, das bereits geöffnet war, sieht sie nicht. -
Der automatische Start ist ausgeschaltet:
--no-keryx-autostartoderLUMISCAN_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.
-
Warten Sie nach dem ersten Start einige Sekunden - erwartet: Die App verbindet sich, sobald der Broker antwortet.
-
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. -
Prüfen Sie, ob LumiScan Keryx installiert ist und ob Sie das Terminal nach der Installation geöffnet haben.
-
Prüfen Sie die Optionen und Umgebungsvariablen der App - erwartet: Weder
--no-keryx-autostartnochLUMISCAN_KERYX_AUTOSTART=0ist gesetzt, es sei denn, Sie starten den Broker selbst. -
Prüfen Sie, ob auf der Keryx-Seite Shut down broker geklickt wurde. Danach starten die Apps den Broker nicht von selbst erneut.
-
Bei einer
ipc://-Adresse: Prüfen Sie, ob der Broker und jede App aus demselben Ordner gestartet wurden.
-
Wenn es der erste Start ist: Warten Sie. Die App verbindet sich, sobald der Broker antwortet.
-
Wenn LumiScan Keryx nicht installiert ist:
-
Installieren Sie zuerst LumiScan Keryx, dann die Apps. Führen Sie jedes Installationsprogramm als Administrator aus.
-
Ö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
krxsystemoder 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.
Siehe LumiScan Keryx auf einem PC.
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
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.
-
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/executeaktiviert, die App wurde seitdem aber nicht neu gestartet. -
Template Finder, Object Finder, Area Detector, Text Reader: Das Modul wurde mit
system/create-module/executeangelegt und nicht gespeichert, und die App wurde seitdem neu gestartet.
-
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 Ordnerhdvisionsystemsenthält einen Ordner pro laufender App. -
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.
-
Lesen Sie
hdvisionsystems/<app>/system/found-modules- erwartet: Das Modul ist aufgeführt. -
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. -
Prüfen Sie den Modulnamen - erwartet: nur Kleinbuchstaben, Ziffern,
-und_. Der Name stammt ausidin der Moduldatei (Cam Driver), ausnamein der Moduldatei (AI Object Matching), aus dem Namen der Moduldatei (Calibration) oder aus der Modul-ID (die Finder). Siehe Modulnamen. -
Lesen Sie auf ctrlX OS das Systemprotokoll - erwartet: keine Meldung, dass die Lizenz fehlt.
-
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-settingsschreibt 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/executeauf. -
Wenn ein Finder-Modul nicht gespeichert wurde:
-
Legen Sie das Modul mit
system/create-module/executeerneut an. -
Speichern Sie die Modulliste mit
system/save-current-modules/executeund die Eingaben des Moduls mitsystem/save-module-inputs/execute.
-
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"
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.
-
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/enablenachcontrol/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.
-
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. -
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.
-
Prüfen Sie, ob die App gerade neu startet - erwartet:
system/restart-requiredkann gelesen werden.
-
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-requiredwieder gelesen werden kann. -
Wenn das Modul fehlt: Siehe Problem: Eine App oder ein Modul fehlt im Baum.
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
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.
-
TooManyOperations(ctrlXDL_TOO_MANY_OPERATIONS, OPC UABadTooManyOperations): Eine andere Operation desselben Moduls läuft - ein Execute, ein Handshake oder bei den Findern ein Frame eines Streams. -
InvalidOperationMode(ctrlXDL_INVALID_OPERATION_MODE, OPC UABadInvalidState): Die Funktion ist nicht bereit. Ihrreadyistfalse, zum Beispiel weil keine Lizenz vorhanden ist, die Kamera nicht verbunden ist oder ein Stream läuft. -
ResourceUnavailable(ctrlXDL_RESOURCE_UNAVAILABLE, OPC UABadResourceUnavailable): Nach einer Änderung übersystem/settingsist ein Neustart erforderlich (Status-5), die App wird beendet, oder ein AI-Modul hat einen Fehler. -
Rejected(ctrlXDL_INVALID_VALUE, OPC UABadRequestNotAllowed): Eine Eingabe ist ungültig; nichts wurde geändert. -
NodeNotFound(ctrlXDL_INVALID_ADDRESS, OPC UABadNodeIdUnknown): Ein Bild, eine Quelle, ein Modul oder der Knoten selbst wurde nicht gefunden. -
CreationFailed(ctrlXDL_CREATION_FAILED): Etwas konnte nicht geschrieben oder angelegt werden, zum Beispiel eine Datei, ein bereits vorhandenes Modul oder eine nicht verfügbare Lizenz. -
InternalError(ctrlXDL_FAILED, OPC UABadInternalError): Die Operation ist fehlgeschlagen.
-
Notieren Sie das Ergebnis des Aufrufs und schlagen Sie es unter Ergebnisse eines Methodenaufrufs nach.
-
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.
-
Cam Driver, AI Object Matching, Calibration: Lesen Sie
control/<function>/readyzusammen mitcontrol/status/codeundcontrol/status/text.readynennt die fehlende Voraussetzung; der Statustext trägt noch die Meldung des Fehlers, der sie verursacht hat. -
Finder: Lesen Sie
<method>/output/status-codeundstatus-text. Siehe Ausführungsstatus der Finder.
-
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.capturedes Cam Driver undinferencevon 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 jedesreadytrueist. -
Wenn ein Neustart erforderlich ist (
ResourceUnavailable, Status-5): Siehe Problem: Status-5(restartRequired) oderResourceUnavailablebei 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.
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
Jedes Modul der App meldet control/status/code = -5 (restartRequired), und seine Methoden antworten
mit ResourceUnavailable (ctrlX DL_RESOURCE_UNAVAILABLE, OPC UA BadResourceUnavailable).
-
Die Einstellungen wurden über
system/settingsgeändert. Sie werden beim nächsten Start wirksam.
-
Lesen Sie
hdvisionsystems/<app>/system/restart-required- erwartet nach einer gespeicherten Änderung:true, bis die App neu startet.
-
Wenn die Einstellungen über
system/settingsgeändert wurden:-
Rufen Sie
hdvisionsystems/<app>/system/control/restart/executeauf. Die Knoten der App verschwinden, bis sie wieder läuft. -
Warten Sie, bis
system/restart-requiredwieder gelesen werden kann. -
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.
-
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
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.
-
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.
-
Lesen Sie direkt nach dem Aufruf
control/status/codeundcontrol/status/text- erwartet:0(ready). Werte unter0sind Fehler. -
Schlagen Sie den Code unter Modulstatus nach. App-spezifische Codes stehen im Handbuch der jeweiligen App.
-
Wenn der Status unter
0liegt: Beheben Sie die Ursache, die der Code nennt, korrigieren Sie zum Beispiel eine Eingabe (-3,invalidInput) oder starten Sie die App neu (-5, siehe Problem: Status-5(restartRequired) oderResourceUnavailablebei jedem Aufruf). Rufen Sie dann erneut auf. -
Lesen Sie in Ihrem Programm nach dem Aufruf immer
control/status/code. Siehe Wo Eingaben, Ausgaben und Ausgang stehen.
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
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.
-
requestist nochtrue: Das Modul wartet darauf, dassrequestzurückfällt, so lange es dauert. -
Zwei Programme schreiben denselben
request-Knoten, und ein Request geht verloren. -
capturedes Cam Driver: Ein fehlgeschlagenes Capture endet mit Status3, nicht mit seinem eigenen Fehlercode, undcapture/readybleibtfalse, bis einresetgelingt. Ein fehlgeschlagenesreset,saveoderloadbleibt ebenfalls bestehen, bis einresetgelingt. -
inferencevon AI Object Matching: Jede Inferenz endet mit Status3, unabhängig von ihrem Ausgang. Nach einer fehlgeschlagenen Inferenz und solange das Modul einen Fehler hat, wird jeder Request außerresetignoriert. Während der Stream läuft, istinference/readyfalse, und ein Request erhält Status100002. -
Cam Driver: Jeder andere Fehler bleibt nur etwa 100 ms lang im Status stehen.
-
Cam Driver ohne Lizenz: Jedes
readyistfalse, und der Status ist-4.
-
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.
-
Lesen Sie
request, nachdemreadyfalsegeworden ist - erwartet: Ihr Programm hat es wieder auffalsegesetzt. -
Prüfen Sie, welche Programme den
request-Knoten schreiben - erwartet: nur eines. -
Bei einem
capturedes Cam Driver oder einerinferencevon AI Object Matching: Lesen Sieoutput/package-identifierdavor und danach - erwartet: Er ist um eins gestiegen, wenn die Operation erfolgreich war. -
Bei einem
connect-camerades Cam Driver: Lesen Siedevice-info/is-connected- erwartet:true, wenn die Kamera verbunden ist. -
Beim Cam Driver: Lesen Sie
control/status/code- erwartet: nicht-4.
-
Wenn
requestnochtrueist: Setzen Sierequestauffalse. -
Wenn zwei Programme
requestschreiben: 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
captureoder eineinferencemit Status3endet: So enden sie. Erkennen Sie den Erfolg anoutput/package-identifier, oder verwenden Sie die Execute-Methode: Der Status behält dann den eigenen Code der Operation. Führen Sie nach einem fehlgeschlagenen Captureresetaus. -
Wenn AI Object Matching nach einer fehlgeschlagenen Inferenz Requests ignoriert: Führen Sie
resetaus; 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.
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
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.
-
Die Eingaben wurden geschrieben, aber
executewurde nicht aufgerufen. Die Eingaben wirken erst beiexecute;enableallein zu schreiben startet nichts. -
enableisttrueohne Adresse. Der Aufruf wird abgelehnt (Rejected, ctrlXDL_INVALID_VALUE), und nichts ändert sich. -
Die
addressdes 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-cameraoderresethat den Stream des Cam Driver gestoppt. -
Nichts triggert die Kamera. Der Cam Driver triggert die Kamera nie von selbst.
-
Calibration: Ihr Abschnitt
streamhat keinenonEntry-Schritt, der angibt, wie die Quelle zu lesen ist.
-
Lesen Sie an der Kamera
control/publish/output/stream/active- erwartet:true. -
Lesen Sie am Konsumenten
control/subscribe/output/stream/active- erwartet:true. -
Lesen Sie am Konsumenten
setting/stream/…- erwartet:enableisttrue, undaddressist der Stream-Ordner des Produzenten, zum Beispielhdvisionsystems/lumiscan-cam-driver/camera1/control/publish/output/stream. -
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.-
Der Cam Driver zählt keine
frames: Nichts triggert die Kamera. -
Calibration:
failed-updatessteigt, und es erscheinen keine Punkte: DeronEntry-Schritt fehlt. -
Finder und Code Reader:
control/subscribe/output/stream/last-failurenennt, warum das letzte Element fehlgeschlagen ist.
-
-
Lesen Sie
control/status/codeund das Log des Moduls, an dem die Kette stehen bleibt.
-
Wenn
executenicht aufgerufen wurde: Rufen Sie nach dem Schreiben der Eingabencontrol/subscribe/execute(bei einem Konsumenten) odercontrol/publish/execute(beim Cam Driver) auf. Warten Sie dann, bisoutput/stream/activetrueist. -
Wenn
enabletrueohne Adresse ist: Schreiben Siecontrol/subscribe/input/addressund rufen Sie danncontrol/subscribe/executeauf. -
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 Sieexecuteauf. -
Wenn das Modul nicht laufen kann: Beheben Sie die Ursache, die
control/status/codeund das Log nennen. Zu einem erforderlichen Neustart siehe Problem: Status-5(restartRequired) oderResourceUnavailablebei jedem Aufruf. -
Wenn der Cam Driver neu gestartet wurde oder der Stream durch
connect-camera,disconnect-cameraoderresetgestoppt wurde:-
Führen Sie den Handshake
connect-cameraaus. -
Rufen Sie
control/publish/executemitenable=trueauf. -
Die Konsumenten abonnieren von selbst erneut.
-
-
Wenn nichts die Kamera triggert: Prüfen Sie ihren Trigger-Modus oder rufen Sie
control/trigger/executeauf. -
Wenn der
onEntry-Schritt von Calibration fehlt: Ergänzen Sie ihn im Abschnittstream. Siehe das Handbuch von Calibration.
Siehe Stream starten und stoppen.
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
Die Ergebnisse, die Ihr Programm liest, sind veraltet, oder Werte verschiedener Ergebnisse sind vermischt.
-
Ihr Programm hat gelesen, während ein neues Ergebnis geschrieben wurde.
-
Prüfen Sie, wie Ihr Programm die einfachen Ausgabeknoten liest - erwartet: Es liest sie, nachdem sich
output/package-identifiergeändert hat.output/package-identifierwird zuletzt geschrieben.
-
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 wieplain-pointsvon Calibration. Siehe Neuestes Ergebnis behalten.
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
Der Client kann sich nicht mit opc.tcp://<pc>:4840 verbinden.
-
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).
-
Prüfen Sie, ob der Connector läuft - erwartet: Sein Fenster ist geöffnet.
-
Prüfen Sie die Firewall des PCs - erwartet: TCP 4840 ist für die Adresse der SPS oder des Clients geöffnet.
-
Prüfen Sie die Sicherheitseinstellungen des Clients - erwartet: Security Policy None, anonyme Anmeldung.
-
Prüfen Sie die Optionen des Connectors - erwartet: der Port, den der Client verwendet.
-
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.
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
Das Fenster des OPC UA Connector schließt sich direkt nach dem Start; der Connector beendet sich mit Exit-Code 1.
-
Es läuft kein Broker. Der Connector startet nie einen Broker: Ohne Broker protokolliert er den Grund und beendet sich.
-
Die
--keryx-urldes Connectors nennt einen anderen Broker als den, den die Apps verwenden.
-
Prüfen Sie, ob die Apps laufen - erwartet: Die Keryx-Seite zeigt
hdvisionsystemsmit den Apps. -
Vergleichen Sie die
--keryx-urldes Connectors mit der Broker-Adresse, die die Apps in ihren Logs nennen - erwartet: dieselbe Adresse. -
Lesen Sie das Log des Connectors - erwartet: der Grund, warum er sich beendet hat.
-
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-urlwie den Apps.
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
Der Client ist verbunden, aber Objects ist leer oder enthält kein hdvisionsystems.
-
Die Apps laufen nicht.
-
Die
--keryx-urldes 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.
-
Prüfen Sie, ob die Apps laufen - erwartet: Die Keryx-Seite zeigt
hdvisionsystemsmit den Apps. -
Vergleichen Sie die
--keryx-urldes Connectors mit der Broker-Adresse, die die Apps in ihren Logs nennen - erwartet: dieselbe Adresse. -
Browsen Sie nach etwa 2 Sekunden erneut - erwartet: Eine später gestartete App erscheint.
-
Wenn die Apps nicht laufen: Starten Sie sie.
-
Wenn der Connector eine andere Adresse verwendet: Starten Sie ihn mit derselben
--keryx-urlwie 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.
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
Ein Lese-, Schreib- oder Methodenaufruf über OPC UA antwortet mit BadNodeIdUnknown.
-
Die Adresse, ihre Groß-/Kleinschreibung oder der Namespace-Index ist falsch.
-
Die App läuft nicht.
-
Das Modul fehlt.
-
Ermitteln Sie den Namespace-Index
nder URIurn:hdvisionsystems:keryximNamespaceArraydes Servers - erwartet: der Index, den Ihr Programm verwendet. -
Prüfen Sie die NodeId - erwartet:
ns=<n>;s=<address>, mit der Data-Layer-Adresse in Kleinbuchstaben, zum Beispielns=<n>;s=hdvisionsystems/lumiscan-cam-driver/camera1/control/status/code. -
Lesen Sie
hdvisionsystems/<app>/system/found-modules- erwartet: Das Modul ist aufgeführt.
-
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.
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
Ein Schreibvorgang über OPC UA antwortet mit BadTypeMismatch.
-
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; einUInt32-Knoten nimmt UInt32 an, nicht Int32.
-
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.
-
Wenn der Typ abweicht: Senden Sie exakt den Typ des Knotens, zum Beispiel
Booleanfür Flags undUInt32fürqueue-size.
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
Ein Monitored Item meldet nur einen Wert oder weniger Benachrichtigungen, als die App pusht.
-
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 alsStatusValueTimestamp(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.
-
Vergleichen Sie die Subscription mit Subscriptions - erwartet: Publishing Interval 10 ms oder mehr, Sampling Interval
0, Queue Size 10 bis 100, DataChange TriggerStatusValueTimestamp, DiscardOldesttrue. -
Lesen Sie zuerst das Log des Connectors - erwartet: keine Meldung, dass er im Sampling-Modus arbeitet.
-
Wenn die Einstellungen abweichen: Stellen Sie sie wie empfohlen ein. Verwenden Sie Sampling Interval
0nur 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.
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
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.
-
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, dannBadNoCommunication, bis sich die App wieder registriert. Nach dem Neustart ist die Kamera nicht verbunden und der Stream des Cam Driver ist aus.
-
Prüfen Sie, ob der Connector oder eine App zu dem Zeitpunkt neu gestartet wurde, an dem die Benachrichtigungen ausblieben.
-
Lesen Sie einen Knoten der App - erwartet: ein Wert, nicht
BadTimeoutoderBadNoCommunication.
-
Wenn der Connector neu gestartet wurde: Verbinden Sie sich neu und legen Sie die Subscriptions erneut an.
-
Wenn eine App neu gestartet wurde:
-
Warten Sie, bis sich die App wieder registriert hat.
-
Führen Sie Ihre Startsequenz erneut aus.
-
Meldet sich ein Monitored Item nicht wieder, löschen Sie es und legen Sie es neu an.
-
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-modulesundsystem/status-text, den Modulstatus (control/status/codeundtextbzw.status-codeundstatus-texteines 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 vonsystem/settings, und auf einem PCbroker.json.