Anleitung: Eine GenICam-Kamera an die ctrlX CORE anschließen
Diese Anleitung schließt eine Ethernet-Kamera nach dem GenICam-Standard (GigE Vision) an eine ctrlX CORE an und führt bis zu einem aufgenommenen Bild auf dem ctrlX Data Layer. Sie benötigen dafür nur die ctrlX-Weboberfläche.
Am Ende gilt:
-
Die Kamera hat eine feste IP-Adresse im Netzwerk der ctrlX CORE.
-
LumiScan Cam Driver hat ein Modul für die Kamera und findet sie.
-
Die Kamera ist verbunden, und jede Aufnahme legt ein Bild auf den Data Layer.
-
Aufgenommene Bilder lassen sich optional im internen Speicher, auf einem USB-Speichergerät, einer SD-Karte oder einer Netzwerkfreigabe speichern.
Bevor Sie beginnen
Hardware
-
ctrlX CORE, zum Beispiel ctrlX CORE X3 oder X7
-
GenICam-konforme Ethernet-Kamera (GigE Vision)
-
Engineering-PC mit Browser
-
Geschirmte Ethernet-Kabel (Foil Shielded Twisted Pair)
-
Optional: ein Ethernet-Switch, der Jumbo Frames unterstützt
Software und Lizenzen
-
LumiScan Cam Driver auf der ctrlX CORE installiert, mit einer Lizenz je Kamera, siehe Voraussetzungen
-
Das Konfigurationswerkzeug des Kameraherstellers, um die IP-Adresse der Kamera einzustellen
Wie es zusammenhängt
LumiScan Cam Driver wird mit zwei Arten von Dateien konfiguriert und vollständig über den Data Layer gesteuert:
-
lumiscan-cam-driver.json, die Anwendungseinstellungen, nennt inmodulesdie zu ladenden Kameramodule und enthält die Einstellungen des Geräts, etwa Protokollierung und Bildspeicher. -
Eine Moduldatei je Kamera, zum Beispiel
camera1.json, benennt die Kamera über ihre Seriennummer und legt Belichtungszeit und Pixelformat fest. Ihreidwird zum Namen des Moduls auf dem Data Layer:hdvisionsystems/lumiscan-cam-driver/<id>/….
Jede Operation eines Moduls - verbinden, aufnehmen, speichern - liegt unter
hdvisionsystems/lumiscan-cam-driver/<id>/control/<Operation>/. Sie wird entweder mit dem
ready/request-Handshake gestartet oder, bei den meisten Operationen, mit einem einzigen Schreibzugriff
auf execute. Siehe Eine Methode ausführen und
Grundkonzept des Handshakes.
Die Einstellungsdateien werden nur beim Start der Anwendung gelesen. Starten Sie LumiScan Cam Driver nach jeder Änderung neu.
Schritt 1 - Netzwerk einrichten
-
Geben Sie der Kamera mit dem Konfigurationswerkzeug des Herstellers eine feste IP-Adresse:
-
Stellen Sie eine statische (persistente) IP-Adresse ein, zum Beispiel
192.168.1.21, Subnetzmaske255.255.255.0. -
Schalten Sie DHCP und Auto IP (Link Local) aus.
Die Adresse muss im Subnetz des ctrlX-CORE-Anschlusses liegen, an dem die Kamera betrieben wird. Ist die Kamera schon an der ctrlX CORE angeschlossen, aber im falschen Subnetz, können Sie die Adresse auch von dort aus setzen, siehe Kamera-IP-Adresse einrichten.
-
-
Verbinden Sie Kamera, ctrlX CORE und Engineering-PC. Zwei Topologien sind möglich - alle drei an einem Switch oder die Kamera direkt an der ctrlX CORE. Beide sind in Hardware-Aufbau für ctrlX X3 beschrieben.
-
Geben Sie dem Engineering-PC eine freie Adresse im selben Subnetz, zum Beispiel
192.168.1.123. Verwenden Sie nicht die Adresse des ctrlX-CORE-Anschlusses; bei einer ctrlX CORE X3 hat XF10 die Adresse192.168.1.1. -
Öffnen Sie in der ctrlX-Weboberfläche Settings > Network Interfaces und wählen Sie den Anschluss, an dem die Kamera hängt.
-
Prüfen Sie die statische IPv4-Adresse des Anschlusses und schalten Sie DHCP aus.
-
Setzen Sie unter Advanced settings die MTU auf
8000oder9000und klicken Sie auf Save.
Abbildung 1. Netzwerkschnittstelle der ctrlX CORE mit statischer IP-Adresse und MTU
|
Bilder sind groß, deshalb sendet die Kamera sie in Jumbo Frames. Ohne große MTU - am Anschluss der
ctrlX CORE und an jedem Switch dazwischen - schlagen Aufnahmen mit dem Statuscode |
Schritt 2 - LumiScan Cam Driver konfigurieren
-
Gehen Sie in der ctrlX-Weboberfläche zu Home > Manage app data und klicken Sie auf Open file view.
Abbildung 2. Dateiansicht der App-Daten öffnen -
Öffnen Sie den Ordner
lumiscan-cam-driver. Er enthält die Anwendungseinstellungen, die Moduldateien sowie die Ordnerschemasundimages. -
Legen Sie die Moduldatei für Ihre Kamera an, zum Beispiel
camera1.json. Am einfachsten kopieren Sie die mitinstallierte Beispiel-Moduldatei und ändern diese Werte:{ "id": "camera1", "serial": "LX123456", "exposureTimeUS": 4321, "pixelFormat": "RGB8" }-
id- der Name des Moduls auf dem Data Layer. Nur Kleinbuchstaben, Ziffern,-und_, eindeutig über alle Module. -
serial- die Seriennummer der Kamera, wie sie auf der Kamera steht oder vom Herstellerwerkzeug angezeigt wird. -
exposureTimeUS- Belichtungszeit in Mikrosekunden. -
pixelFormat-RGB8oderMono8.Behalten Sie die Einträge
$schemaundmetader Beispieldatei bei. Alle Parameter sind in Beispielinhalt einer Kameradatei beschrieben.
-
-
Öffnen Sie
lumiscan-cam-driver.jsonund tragen Sie die Moduldatei in die Listemodulesein:"modules": [ "camera1.json" ]Jede Datei der Liste muss existieren, und zwei Module dürfen nicht dieselbe Kamera-Seriennummer verwenden.
Abbildung 3. Anwendungseinstellungen mit der Liste der Moduldateien -
Klicken Sie auf Save und starten Sie LumiScan Cam Driver neu: Settings > Apps, LumiScan Cam Driver auswählen und auf Restart klicken.
Die Einstellungen lassen sich auch auf dem Data Layer lesen und ändern, unter
hdvisionsystems/lumiscan-cam-driver/system/settings. Siehe
Einstellungen auf dem Data Layer.
|
Schritt 3 - Prüfen, ob die Kamera gefunden wird
Öffnen Sie in der ctrlX-Weboberfläche Settings > Data Layer und gehen Sie zu
hdvisionsystems/lumiscan-cam-driver/system. Die im Netzwerk gefundenen Kameras stehen in:
-
found-camera-serials -
found-camera-ip-addresses -
found-camera-mac-addresses -
found-camera-modules
Die Listen haben dieselbe Reihenfolge: Die erste Seriennummer gehört zur ersten IP-Adresse und zur ersten MAC-Adresse.
Erwartet: Die Seriennummer aus Ihrer Moduldatei ist aufgeführt, mit einer IP-Adresse im Subnetz des
ctrlX-CORE-Anschlusses. Unter hdvisionsystems/lumiscan-cam-driver gibt es einen Ordner mit der id
Ihres Moduls.
Fehlt die Kamera, prüfen Sie zuerst Verkabelung und Subnetz. Fehlt der Modulordner, lesen Sie
system/settings: Eine Moduldatei, die nicht gelesen werden konnte, steht dort mit dem Grund.
Schritt 4 - Die Kamera verbinden
Das Verbinden dauert einige Sekunden und wird deshalb nur als Handshake angeboten. Verwenden Sie diese Knoten:
hdvisionsystems/lumiscan-cam-driver/camera1/control/connect-camera/ready hdvisionsystems/lumiscan-cam-driver/camera1/control/connect-camera/request
-
Warten Sie, bis
readyden Werttruehat. -
Setzen Sie
requestauftrue. -
Warten Sie, bis
readyden Wertfalsehat: Die Anwendung hat die Anforderung gesehen. -
Setzen Sie
requestwieder auffalse. -
Prüfen Sie
hdvisionsystems/lumiscan-cam-driver/camera1/device-info/is-connected.
Erwartet: is-connected ist true. Die Kamera ist verbunden und bereit für Aufnahmen.
|
Prüfen Sie die Verbindung mit |
Schritt 5 - Ein Bild aufnehmen
Am einfachsten ist ein Schreibzugriff auf die Methode execute:
-
Schreiben Sie auf
hdvisionsystems/lumiscan-cam-driver/camera1/control/capture/execute. Der Schreibzugriff kehrt zurück, wenn die Aufnahme beendet ist. -
Lesen Sie
hdvisionsystems/lumiscan-cam-driver/camera1/control/status/code.
Erwartet: Der Statuscode ist 0, und output/package-identifier ist um eins gestiegen. Das Bild liegt
jetzt auf
hdvisionsystems/lumiscan-cam-driver/camera1/output/image
mit data, width, height und pixel-type. Andere LumiScan-Anwendungen lesen es von dieser Adresse.
Sie können auch mit dem Handshake über control/capture/ready und control/capture/request aufnehmen.
Eine fehlgeschlagene Aufnahme endet dann beim Statuscode 3; siehe
Wann eine Funktion ausgeführt wird.
output/image enthält Sensor-Rohdaten. Um das Bild anzusehen, öffnen Sie LumiScan Cockpit, oder
schalten Sie camera1/input/preview/enable ein: Dann liegt nach jeder Aufnahme ein PNG auf
camera1/output/preview/encoded-data (ab v2.1.0).
|
Schritt 6 - Aufgenommene Bilder speichern (optional)
Bilder werden nur gespeichert, wenn ein Speicher konfiguriert ist. Er wird im Abschnitt system von
lumiscan-cam-driver.json festgelegt. Für den internen Speicher der Anwendung:
"system": {
"storage": {
"type": "Internal",
"parameters": {
"rootPath": "images"
}
}
}
Ein relativer rootPath ist ein Ordner im eigenen Verzeichnis der Anwendung. Für ein USB-Speichergerät
oder eine SD-Karte verwenden Sie deren Einhängepfad, zum Beispiel /media/sdb1/myCapturedImages. Für
einen freigegebenen Windows-Ordner verwenden Sie den Typ Samba. Alle Möglichkeiten sind in
Speichereinstellungen
und Bilddateien speichern
beschrieben.
-
Speichern Sie die Datei und starten Sie LumiScan Cam Driver neu.
-
Verbinden Sie die Kamera (Schritt 4) und nehmen Sie ein Bild auf (Schritt 5).
-
Schreiben Sie auf
hdvisionsystems/lumiscan-cam-driver/camera1/control/save/execute.
Erwartet: Der Statuscode ist 0, und das Bild erscheint als PNG-Datei im Speicherordner, standardmäßig
in einem Unterordner mit dem Namen der Kamera.
Ergebnis
-
Die Kamera hat eine feste IP-Adresse und wird von LumiScan Cam Driver gefunden.
-
Das Kameramodul ist konfiguriert und verbunden.
-
Jede Aufnahme legt ein neues Bild auf
hdvisionsystems/lumiscan-cam-driver/camera1/output/image. -
Aufgenommene Bilder lassen sich im konfigurierten Speicher ablegen.
Wie es weitergeht
-
Bilder und Ergebnisse in LumiScan Cockpit ansehen.
-
Das Bild mit einer anderen LumiScan-Anwendung auswerten: deren Bildadresse auf
hdvisionsystems/lumiscan-cam-driver/camera1/output/imagesetzen. -
Kamerafunktionen wie Verstärkung oder Triggermodus unter
camera1/featureseinstellen, siehe GenICam-Features. -
Probleme bei Erkennung, Verbindung oder Aufnahme: siehe Fehlerbehebung.