Erste Schritte mit LumiScan Keryx
In dieser Anleitung probieren Sie LumiScan Keryx auf einem Windows-PC aus, ohne Kamera und ohne SPS.
LumiScan Cam Driver mit einer simulierten Kamera stellt die Knoten bereit; Sie sind der Client - zuerst
von Hand auf der Keryx-Seite, dann mit dem Kommandozeilen-Client krxclient, der genau so arbeitet wie
eine SPS.
Am Ende haben Sie:
-
den Broker gestartet und den Baum angesehen,
-
Werte gelesen und einen geschrieben,
-
die Kamera mit einem ready/request-Handshake verbunden - von Hand und mit einem Befehl,
-
ein Bild mit einer Execute-Methode aufgenommen und das Ergebnis geprüft,
-
die Kamera wieder getrennt.
Was Sie hier lernen, gilt genauso für jede LumiScan-App, auf einem PC und auf ctrlX OS. Das Konzept erklärt Was ist LumiScan Keryx?.
| Diese Anleitung verwendet einen Windows-PC. Auf ctrlX OS folgen Sie Anleitung: Mit Beispielbildern statt einer Kamera testen im Handbuch des Cam Drivers: Sie verbindet eine simulierte Kamera und nimmt ein Bild in der Weboberfläche von ctrlX OS auf, deren Data-Layer-Ansicht dort leistet, was hier die Keryx-Seite leistet. |
Bevor Sie beginnen
-
Ein PC mit Windows 11.
-
LumiScan Keryx und LumiScan Cam Driver installiert: zuerst Keryx, jedes Installationsprogramm als Administrator. Siehe Installation unter Windows.
-
Eine Lizenz für LumiScan Cam Driver: CodeMeter Runtime installiert und der LumiScan Key eingesteckt, siehe LumiScan Lizenzierung.
-
Optional: ein paar PNG-Bilder, damit die simulierte Kamera in Schritt 6 etwas liefern kann.
Öffnen Sie nach der Installation ein neues Terminal (Eingabeaufforderung oder PowerShell), damit es
die Einstellungen kennt, die das Keryx-Installationsprogramm vorgenommen hat. Wird krxclient nicht
gefunden, starten Sie es aus dem Installationsordner von LumiScan Keryx.
Unter Ubuntu 24.04 sind alle krxclient-Befehle gleich. Die Keryx-Seite und ihr Fenster gehören
nur zur Windows-Installation.
|
Schritt 1 - Keryx starten und die Keryx-Seite öffnen
-
Starten Sie LumiScan Keryx über das Windows-Startmenü.
Ein Fenster mit der Keryx-Seite öffnet sich. Läuft noch kein Broker, startet LumiScan Keryx ihn.
-
Sehen Sie sich den Baum an. Ohne App ist er noch leer: Keryx selbst stellt keine Knoten bereit - das tun die Apps.
Dieselbe Seite ist in jedem Browser auf diesem PC unter http://127.0.0.1:7555/ erreichbar.
Fertig, wenn: die Keryx-Seite zeigt, dass der Broker läuft.
Schritt 2 - Eine App mit simulierter Kamera starten
Der Cam Driver schreibt Beispiel-Einstellungen mit einer simulierten Kamera. Eine Kamera, deren
Seriennummer simulation enthält, braucht keine Hardware.
-
Schreiben Sie die Beispiel-Einstellungen in einen Arbeitsordner:
lumiscan-cam-driver --generate-settings C:\work\cam-driver-settingsDer Cam Driver schreibt
lumiscan-cam-driver.json, die Moduldateilumiscan-cam-driver-example-module.jsonund ihre Schemas, nennt den Ordner, aus dem er seine Einstellungen liest, und beendet sich. -
Öffnen Sie die Moduldatei und prüfen Sie, dass
idden Wertcamera1undserialden Wertsimulationhat. Weicht dieidab, verwenden Sie in allen Adressen unten Ihreidstattcamera1. -
Kopieren Sie die Dateien in den Einstellungsordner, den der Cam Driver genannt hat, standardmäßig
C:\ProgramData\HD Vision Systems GmbH\LumiScan Vision Suite\lumiscan-cam-driver\etc\lumiscan-cam-driver. -
Starten Sie den Cam Driver:
lumiscan-cam-driverLassen Sie das Terminal offen: Es zeigt die Meldungen des Cam Driver.
Auf der Keryx-Seite hat der Baum jetzt den Ordner hdvisionsystems mit lumiscan-cam-driver darin.
Fertig, wenn: hdvisionsystems/lumiscan-cam-driver/system/found-modules den Eintrag camera1 enthält
und der Ordner hdvisionsystems/lumiscan-cam-driver/camera1 existiert.
Schritt 3 - Werte lesen
Auf der Keryx-Seite: Öffnen Sie hdvisionsystems/lumiscan-cam-driver/camera1/control/status und wählen Sie code. Die Seite zeigt seinen
Wert, seinen Typ und was damit getan werden darf. 0 bedeutet bereit.
Mit krxclient: Öffnen Sie ein zweites Terminal und lesen Sie denselben Knoten:
krxclient read hdvisionsystems/lumiscan-cam-driver/camera1/control/status/code
krxclient read hdvisionsystems/lumiscan-cam-driver/camera1/control/status/text
krxclient gibt den Wert zusammen mit seinem Typ als JSON aus. Drei weitere Befehle helfen bei der
Orientierung:
krxclient browse hdvisionsystems/lumiscan-cam-driver/camera1/control
krxclient metadata hdvisionsystems/lumiscan-cam-driver/camera1/control/capture/execute
krxclient tree hdvisionsystems/lumiscan-cam-driver/camera1 --depth 2
browse listet die Kinder eines Ordners, metadata zeigt, was ein Knoten ist und was damit getan werden
darf, tree gibt einen ganzen Zweig aus.
Fertig, wenn: krxclient read den Statuscode 0 zeigt.
Schritt 4 - Einen Wert schreiben
Eingaben sind Knoten, die Sie schreiben, bevor Sie eine Funktion aufrufen. Schalten Sie als Beispiel die Vorschau des Kameramoduls ein, ein PNG jedes neuen Bildes:
Auf der Keryx-Seite: Wählen Sie hdvisionsystems/lumiscan-cam-driver/camera1/input/preview/enable, setzen Sie den Wert in seinem Editor auf
true und bestätigen Sie.
Mit krxclient:
krxclient write hdvisionsystems/lumiscan-cam-driver/camera1/input/preview/enable true
krxclient read hdvisionsystems/lumiscan-cam-driver/camera1/input/preview/enable
krxclient write übernimmt den Typ des aktuellen Werts des Knotens; ein Wert, der nicht zum Typ passt,
wird abgelehnt, bevor etwas gesendet wird.
| Nehmen Sie die Knoten, die Sie verfolgen, in die Beobachtungsliste (Watch list) der Keryx-Seite auf. Sie zeigt ihre Werte, während sie sich ändern - nützlich im nächsten Schritt. |
Fertig, wenn: hdvisionsystems/lumiscan-cam-driver/camera1/input/preview/enable den Wert true hat.
Schritt 5 - Die Kamera mit einem Handshake verbinden
Das Verbinden einer Kamera kann einige Sekunden dauern, deshalb ist es ein Handshake: Sie und die App
wechseln sich auf zwei Knoten ab, ready (gesetzt von der App) und request (gesetzt von Ihnen).
Von Hand, auf der Keryx-Seite
Nehmen Sie diese Knoten in die Beobachtungsliste auf:
-
hdvisionsystems/lumiscan-cam-driver/camera1/control/connect-camera/ready -
hdvisionsystems/lumiscan-cam-driver/camera1/control/connect-camera/request -
hdvisionsystems/lumiscan-cam-driver/camera1/control/status/code -
hdvisionsystems/lumiscan-cam-driver/camera1/device-info/is-connected
Dann:
-
Prüfen Sie, dass
readyden Werttruehat: Die App kann die Funktion starten. -
Setzen Sie
requestauftrue: Sie fordern sie an. -
Beobachten Sie, wie
readyauffalsewechselt: Die App hat die Anforderung gesehen. Der Statuscode zeigt3(wartet auf Sie). -
Setzen Sie
requestwieder auffalse: Sie bestätigen. Die App verbindet jetzt die Kamera. -
Beobachten Sie, wie
is-connectedauftruewechselt und der Statuscode wieder0wird.
Nach einer erfolgreichen Verbindung bleibt connect-camera/ready auf false - die Kamera ist ja
schon verbunden. Prüfen Sie das Ergebnis mit is-connected, nicht mit ready.
|
Mit einem Befehl
krxclient handshake führt dieselbe Abfolge so aus, wie es eine SPS tut. Um es auszuprobieren, trennen
Sie die Kamera zuerst - ebenfalls ein Handshake - und verbinden sie dann wieder:
krxclient handshake hdvisionsystems/lumiscan-cam-driver/camera1/control/disconnect-camera --status hdvisionsystems/lumiscan-cam-driver/camera1/control/status
krxclient handshake hdvisionsystems/lumiscan-cam-driver/camera1/control/connect-camera --status hdvisionsystems/lumiscan-cam-driver/camera1/control/status
krxclient read hdvisionsystems/lumiscan-cam-driver/camera1/device-info/is-connected
Jeder Handshake gibt am Ende Statuscode und -text aus. Mit --trace handshake.jsonl schreibt er jede
Änderung von ready und des Status mit Zeitpunkt in eine Datei - ein Protokoll dessen, was die App wann
getan hat.
Fertig, wenn: hdvisionsystems/lumiscan-cam-driver/camera1/device-info/is-connected den Wert true hat.
Schritt 6 - Ein Bild mit einer Execute-Methode aufnehmen
Ein Bild aufzunehmen geht schnell, deshalb ist es eine Execute-Methode: ein Schreibzugriff, beantwortet, wenn die Arbeit erledigt ist.
krxclient read hdvisionsystems/lumiscan-cam-driver/camera1/output/package-identifier
krxclient execute hdvisionsystems/lumiscan-cam-driver/camera1/control/capture/execute
krxclient read hdvisionsystems/lumiscan-cam-driver/camera1/control/status/code
krxclient read hdvisionsystems/lumiscan-cam-driver/camera1/output/package-identifier
Auf der Keryx-Seite hat dieselbe Methode eine Schaltfläche Invoke.
Prüfen Sie immer zwei Dinge:
-
Konnte der Aufruf ausgeführt werden?
krxclientendet mit0, wenn die App den Aufruf angenommen hat, mit1, wenn Keryx ihn abgelehnt hat - zum Beispiel weil die Kamera nicht verbunden ist - und mit2bei einer Zeitüberschreitung. -
War er erfolgreich? Der Statuscode ist
0, undoutput/package-identifierist um eins gestiegen. Das Bild liegt jetzt aufhdvisionsystems/lumiscan-cam-driver/camera1/output/image, mitwidth,heightundpixel-type.
|
Eine simulierte Kamera spielt die Bilder aus ihrem Speicherordner ab, eines je Aufnahme. Ist der Ordner
leer, schlägt die Aufnahme fehl: Der Statuscode ist kleiner als |
Fertig, wenn: Sie capture/execute aufgerufen und das Ergebnis auf control/status/code gelesen
haben.
Schritt 7 - Aufräumen
-
Trennen Sie die Kamera:
krxclient handshake hdvisionsystems/lumiscan-cam-driver/camera1/control/disconnect-camera --status hdvisionsystems/lumiscan-cam-driver/camera1/control/status -
Beenden Sie den Cam Driver mit Strg+C in seinem Terminal.
Der Broker läuft weiter; die nächste App, die Sie starten, nutzt ihn wieder.
Was Sie getan haben
| Sie haben | Auf der Keryx-Seite | Mit krxclient - und in einer SPS oder einem Programm |
|---|---|---|
einen Wert gelesen |
den Knoten wählen |
|
einen Wert geschrieben |
der Editor des Knotens |
|
einen Handshake ausgeführt |
|
|
eine Execute-Methode aufgerufen |
Invoke |
|
Wie es weitergeht
-
Die Apps aus einer SPS nutzen: OPC UA Connector auf einem PC Eine SPS anbinden auf ctrlX OS.
-
Jedes Bild ohne Aufruf je Bild erhalten: Streams.
-
Die Regeln jedes Musters: Handshake und Execute-Methoden.
-
Was die Statuscodes bedeuten: Statuscodes und Ergebnisse.
-
Eine vollständige Anwendung mit Kamera, Teilesuche und SPS: Ihre erste industrielle Vision-Anwendung.