Die Kamera initialisieren
Data Layer
LumiScan Cam Driver bietet seine Funktionen auf dem Data Layer unter hdvisionsystems/lumiscan-cam-driver an.
Auf ctrlX OS (ctrlX CORE oder ctrlX IPC) nutzt LumiScan Cam Driver den ctrlX Data Layer.
Auf einem PC mit Windows 11 oder Ubuntu 24.04 nutzt LumiScan Cam Driver LumiScan Keryx.
Knotenadressen, Typen und Aufrufmuster sind auf beiden gleich. LumiScan Cam Driver bietet:
-
einen Stream, der seine Ergebnisse veröffentlicht (experimentell)
Wie Adressen aufgebaut sind, wie Funktionen aufgerufen werden, die Statuscodes und die Werkzeuge sind in LumiScan Keryx beschrieben.
Adressen
Jede Operation bietet einen Knoten ready und einen Knoten request für den Handshake. Die meisten Operationen bieten
außerdem einen Knoten execute, der die Operation mit einem einzelnen Schreibvorgang ausführt. Siehe
Eine Methode ausführen.
| Funktionalität | Zugriff | Adresse |
|---|---|---|
Capture |
Schreibgeschützt |
|
Beschreibbar |
|
|
Nur schreiben (Methode) |
|
|
Save |
Schreibgeschützt |
|
Beschreibbar |
|
|
Nur schreiben (Methode) |
|
|
Load |
Schreibgeschützt |
|
Beschreibbar |
|
|
Nur schreiben (Methode) |
|
|
Remove |
Schreibgeschützt |
|
Beschreibbar |
|
|
Nur schreiben (Methode) |
|
|
List Images |
Schreibgeschützt |
|
Beschreibbar |
|
|
Nur schreiben (Methode) |
|
|
Connect Camera |
Schreibgeschützt |
|
Beschreibbar |
|
|
Disconnect Camera |
Schreibgeschützt |
|
Beschreibbar |
|
|
Reset |
Schreibgeschützt |
|
Beschreibbar |
|
|
Status |
Schreibgeschützt |
|
Schreibgeschützt |
|
|
Set Camera IP |
Schreibgeschützt |
|
Beschreibbar |
|
Connect Camera, Disconnect Camera und Reset haben keinen Knoten execute. Sie können
mehrere Sekunden dauern, sodass ein wartender Methodenaufruf meist aufgeben würde, bevor die Kamera den Erfolg
meldet. Verwenden Sie für diese drei bitte den ready/request-Handshake.
|
Die Adressen des experimentellen Bild-Streams, alle unter <camera name>/control/publish/, sind in
Bilder streamen
aufgeführt.
Verbindungsschritte
-
Start, mit der Kamera verbinden:
-
Voraussetzung: Die Kamera ist physisch angeschlossen, aber in der Software noch nicht verbunden (XXX/connect-camera/ready = False)
-
Prüfen Sie XXX/connect-camera/ready = True
Wurde noch kein Bild aufgenommen (package-id ist null), ist save/ready false. -
Wird zwischen zwei Aufrufen der Funktion Save kein neues Bild aufgenommen, sendet das Programm trotzdem dieselbe Datei mit demselben Dateinamen.*
-
Ist die Einstellung korrekt und wurde bereits ein Bild aufgenommen, sendet das Programm das Bild an den konfigurierten Server.
\*Derzeit wird das Bild so benannt:
<camera_serial>_<time stamp in seconds>.<6-digit in seconds>.png.Um nicht jedes Mal die gesamte Adresse zu wiederholen, wird in diesem Abschnitt der unveränderliche Teil mit der übergeordneten Adresse durch XXX ersetzt.
Die Adressehdvisionsystems/lumiscan-cam-driver/<camera name>/control/connect-camera/readywird also als XXX/connect-camera/ready geschrieben.Entsprechend wird die Adresse
hdvisionsystems/lumiscan-cam-driver/<camera name>/control/connect-camera/requestals XXX/connect-camera/request geschrieben.Ist der Wert false, ist die Voraussetzung nicht erfüllt, oder es wurde keine Kamera gefunden.
Prüfen Sie, ob die Kamera-IP im selben lokalen Netzwerk liegt wie die ctrlX CORE oder der PC.Wenn XXX/capture/ready = False: -
Die Kamera könnte sich in einem Fehlerzustand befinden, nicht gestartet sein oder noch ein Bild aufnehmen.
-
Prüfen Sie den Statuscode für weitere Informationen.
Wenn XXX/capture/ready = True: -
Stellen Sie sicher, dass immer nur ein Prozess auf XXX/connect-camera/request zugreift.
-
Prüfen Sie, ob Sie dieselbe Data-Layer-Version wie die Kameraanwendung verwenden.
-
Kontaktieren Sie HD Vision Systems.
-
-
-
Setzen Sie XXX/connect-camera/request = True
-
Prüfen Sie XXX/connect-camera/ready = False
Wenn die Anwendung CamDriver nicht erkannt hat, dass sich die Variable geändert hat: -
Stellen Sie sicher, dass immer nur ein Prozess auf XXX/connect-camera/request zugreift.
-
Prüfen Sie, ob Sie dieselbe Data-Layer-Version wie die Kameraanwendung verwenden.
-
Kontaktieren Sie HD Vision Systems.
-
-
Setzen Sie XXX/connect-camera/request = False
-
Prüfen Sie
<camera name>/device-info/is-connected= True ----→ Die Kamera ist initialisiert und bereit, ein Bild aufzunehmenVerlassen Sie sich hier nicht auf XXX/status/code. Eine fehlgeschlagene Verbindung zeigt -10000nur etwa 100 ms lang; dann ist der Status wieder0(ready), obwohl die Kamera weiterhin nicht verbunden ist.
-
-
Bild aufnehmen
-
Voraussetzung: Die Kamera ist gestartet (XXX/connect-camera/ready = False)
-
Prüfen Sie XXX/capture/ready = True
-
Setzen Sie XXX/capture/request = True
-
Prüfen Sie XXX/capture/ready = False. Das Capture läuft bereits.
\* Die Bedeutung aller Statuscode-Werte ist in der Tabelle Werte des Statuscodes erklärt.
-
Setzen Sie XXX/capture/request = False
-
Prüfen Sie XXX/status/code (Kamera) = 0 ---→ Die Bildaufnahme war erfolgreich
Ein fehlgeschlagenes Capture lässt XXX/status/code auf 3(waitingForClient), nicht auf seinem Fehlercode, und XXX/capture/ready bleibt False, bis ein Reset erfolgreich ist. Um den Fehlercode des Capture zu lesen, nehmen Sie stattdessen mitcontrol/capture/executeauf. Siehe Wann eine Funktionalität läuft. -
Das Bild ist aufgenommen; Sie können es unter der Adresse
hdvisionsystems/lumiscan-cam-driver/<camera name>/output/imageabrufen
-
-
Kamera trennen
-
Voraussetzung: Die Kamera ist gestartet und nimmt nicht auf (XXX/disconnect-camera/ready = True (intern wird XXX/connect-camera/ready = False, XXX/capture/ready = True geprüft))
-
Prüfen Sie XXX/disconnect-camera/ready = True
-
Setzen Sie XXX/disconnect-camera/request = True
-
Prüfen Sie XXX/disconnect-camera/ready = False
-
Setzen Sie XXX/disconnect-camera/request = False
-
Prüfen Sie
<camera name>/device-info/is-connected= False ---→ Die Kamera ist getrennt -
Die Kamera ist freigegeben. Um sie erneut zu verwenden, führen Sie Connect Camera aus.
-
Bilddateien speichern
Für das Speichern von Bildern, die mit dem CamDriver aufgenommen wurden, stehen folgende Optionen zur Verfügung:
-
Intern auf dem Systemspeicher
-
USB-Speichergerät oder SD-Karte am Gerät (nur die Dateisysteme FAT32 oder EXT4 werden unterstützt) (ab LumiScan CamDriver 1.2.0) (ctrlX OS)
-
über einen Samba-Server (freigegebener Windows-Ordner) (ab LumiScan CamDriver 1.0.1)
| Beachten Sie, dass keine Bilder gespeichert werden, wenn die Einstellung nicht oder falsch konfiguriert wurde. |
So konfigurieren Sie ein USB-Speichergerät oder eine SD-Karte (ctrlX OS):
-
Schließen Sie das Speichergerät an oder stecken Sie die SD-Karte ein
-
Melden Sie sich an der ctrlX-OS-Weboberfläche an
-
Wählen Sie Settings
-
Wählen Sie Storage Devices
-
Wählen Sie in der Liste das Speichergerät, das Sie angeschlossen haben und verwenden möchten.
-
Klicken Sie auf die Option mount
| Verwendet das Speichergerät kein FAT32- oder EXT4-Dateisystem, können Sie es nicht einbinden. Stattdessen wird Ihnen angeboten, das Laufwerk mit einem dieser Dateisysteme zu formatieren. Beachten Sie, dass dabei alle vorhandenen Daten auf dem Speichergerät gelöscht werden. |
-
Wählen Sie im Dialogfeld
For data exchangeund bestätigen Sie mit einem Klick auf mount -
Der Pfad Ihres Speichergeräts wird in der rechten Spalte angezeigt (z. B.
/media/sdb1). Notieren Sie sich diesen Pfad.
-
Sie können die CamDriver-App so konfigurieren, dass sie diesen Pfad verwendet, wie im Abschnitt Beispielinhalt der Anwendungs-Einstellungsdatei beschrieben
So konfigurieren Sie einen externen Samba-Speicherordner:
-
Wählen Sie den Ordner, den Sie freigeben möchten.
-
Klicken Sie mit der rechten Maustaste darauf.
-
Wählen Sie Properties.
-
Wählen Sie die Registerkarte Sharing.
-
Gehen Sie zu Advanced Sharing.
-
Legen Sie ein Windows- oder Samba-Benutzerkonto mit Passwort an.
Für den Zugriff auf den freigegebenen Ordner benötigen Sie ein Windows- oder Samba-Benutzerkonto mit Passwort. Verwenden Sie aus Sicherheitsgründen bitte nicht Ihr reguläres Benutzerprofil.
Die Anwendung unterstützt derzeit nur das Speichern des Passworts im Klartext. -
Klicken Sie auf Apply.
-
Klicken Sie auf OK.
-
Schließen Sie das Fenster Advanced Sharing.
-
Prüfen Sie, ob Sie mit dem konfigurierten Benutzerkonto auf den Ordner zugreifen können.
So legen Sie ein Konto an:
-
Klicken Sie auf Permissions
-
Fügen Sie einen Benutzer hinzu
-
Konfigurieren Sie die Berechtigungen für diesen Benutzer.
Nach dem Anlegen eines externen freigegebenen Speichers müssen Sie die entsprechenden Änderungen in den Einstellungen in lumiscan-cam-driver.json vornehmen. Siehe Abschnitt Speichereinstellungen für weitere Informationen dazu. Prüfen Sie nach dem Neustart des Programms, ob ein Bild im freigegebenen Ordner liegt. Ist keines vorhanden, prüfen Sie das Protokoll auf Hinweise zu fehlerhaften Einstellungen.
-
-
Starten Sie das Programm neu.
-
Rufen Sie Connect Camera auf.
-
Rufen Sie Capture auf.
-
Rufen Sie Save auf.
Bilder laden
Um Bilddateien zu laden, gehen Sie wie folgt vor:
-
Speicher einrichten: Führen Sie die Schritte 1–10 im Abschnitt Bilddateien speichern aus, um den Speicherort für das Laden von Bildern zu konfigurieren.
-
Führen Sie Connect Camera aus.
-
Verwenden Sie den Befehl List Images, um die gespeicherten Bilder anzuzeigen.
-
Setzen Sie
input/image-index, um das gewünschte Bild anzugeben. -
Führen Sie Load aus, um das Bild in den Data Layer zu übertragen.
-
Simulationsmodus: Ist er aktiviert, lädt ein Aufruf von Capture ein Bild aus dem konfigurierten Speicherordner und springt für den nächsten Capture-Befehl automatisch zum nächsten Bild.
-
| Weitere Informationen zum Simulationsmodus finden Sie in Beispielinhalt einer Kameradatei, wo das Feld id erklärt wird. |
Werte des Statuscodes
Der aktuelle Status eines Kameramoduls wird auf
hdvisionsystems/lumiscan-cam-driver/<camera name>/control/status/code als Zahl und auf
hdvisionsystems/lumiscan-cam-driver/<camera name>/control/status/text als zugehöriger
Name veröffentlicht. Er meldet den Ausgang der letzten Operation, egal ob diese Operation mit
dem Handshake oder mit einer execute-Methode gestartet wurde.
| Statuscode-Nummer | String | Bedeutung |
|---|---|---|
0 |
"ready" |
Die letzte Funktionalität wurde erfolgreich ausgeführt, die Anwendung ist bereit, die nächste Funktionalität auszuführen. |
1 |
"settingUp" |
Das Modul oder die Funktion wird noch eingerichtet. |
2 |
"running" |
Die Funktion läuft gerade. |
3 |
"waitingForClient" |
Es wird auf den Client gewartet (in der Regel darauf, dass XXX/request zurückfällt). Auch das Ende eines über den Handshake angeforderten Capture, das fehlgeschlagen ist: siehe Wann eine Funktionalität läuft. |
-1 |
"undefinedError" |
Etwas ist schiefgegangen, und es gibt dafür keinen eigenen Fehlercode. |
-2 |
"invalidSetting" |
Die angegebene Einstellungsdatei konnte nicht geladen werden. |
-3 |
"invalidInput" |
Eines der Eingabefelder war ungültig, oder ein Capture wurde angefordert, während der Bild-Stream läuft. Der zweite Fall speichert keinen Fehler: Stoppen Sie den Stream und nehmen Sie erneut auf. Siehe Capture, während der Stream läuft. |
-4 |
"missingLicense" |
Stellen Sie sicher, dass die richtige Lizenz installiert ist. Siehe Voraussetzungen. |
-5 |
"restartRequired" |
Die Einstellungsdateien wurden auf dem Data Layer geändert: Starten Sie die Anwendung neu. Siehe Einstellungen auf dem Data Layer. |
-10000 |
"failedToConnectToCamera" |
Beim Verbinden mit der Kamera ist ein Problem aufgetreten; stellen Sie sicher, dass die Kamera angeschlossen ist. |
-10001 |
"pixelFormatNotSupported" |
Ungültiges Pixelformat: Tippfehler im Pixeltyp, oder die Kamera unterstützt dieses Pixelformat nicht. |
-10002 |
"couldNotSetPixelType" |
Das Pixelformat konnte nicht gesetzt werden. Die Kamera läuft noch; stoppen Sie sie und setzen Sie es erneut. |
-10003 |
"couldNotSetExposureTime" |
Die Belichtungszeit liegt außerhalb des zulässigen Bereichs. Erfragen Sie den zulässigen Wertebereich beim Kamerahersteller. |
-10004 |
"couldNotCaptureImage" |
Dieses Problem kann mehrere Ursachen haben:
* Die Kamera ist möglicherweise getrennt; verbinden Sie sie erneut. Tritt das häufig auf, kann es sich um einen Kommunikationsfehler durch schlechte Verbindungsqualität handeln.
* Verwenden Sie unbedingt ein „Foil Shielded Twisted Pair"-Kabel.
* ctrlX OS: Prüfen Sie die MTU-Größe in den Einstellungen der ctrlX-Weboberfläche. Sie sollte auf 8000 oder 9000 gesetzt sein.\* |
-10005 |
"noImageTaken" |
Es gibt noch kein Bild, mit dem gearbeitet werden kann. Nehmen Sie ein Bild auf, bevor Sie es speichern. |
-10006 |
"saveImageFailed" |
Prüfen Sie, ob: * ip, username, password in der Einstellung korrekt konfiguriert sind, * die IP von der ctrlX CORE oder dem PC aus erreichbar ist, * Ihre Samba-Freigabe (freigegebener Ordner) genügend freien Speicherplatz hat. |
-10007 |
"loadImageFailed" |
Die ausgewählte Bilddatei konnte nicht geladen werden. Prüfen Sie, ob die Datei noch im Speicherordner vorhanden und lesbar ist. |
-10008 |
"noImageToLoad" |
Im Speicherordner liegt kein Bild zum Laden. Verwenden Sie List Images, um zu prüfen, was gespeichert ist. |
-10009 |
"imageIndexOutOfRange" |
Der Wert von index-of-image-to-load verweist auf kein vorhandenes Bild. Verwenden Sie List Images, um zu prüfen, wie viele Bilder gespeichert sind. |
-10010 |
"removeImageFailed" |
Die ausgewählte Bilddatei konnte nicht entfernt werden. Prüfen Sie, ob der Speicherordner beschreibbar ist. |
-10011 |
"producerInitFailed" |
Der GenTL-Producer konnte nicht gestartet werden. Prüfen Sie, ob der für diese Kamera konfigurierte Producer installiert ist und sein Pfad korrekt ist. |
-10012 |
"softwareTriggerFailed" |
|
MTU-Größe ändern (ctrlX OS)
Dieser Abschnitt gilt für ctrlX OS. Auf einem PC stellen Sie die MTU-Größe (Jumbo Frames) in den Einstellungen des Netzwerkadapters ein, an dem die Kamera angeschlossen ist.
\* Wie Sie die MTU-Größe ändern, steht im nächsten Abschnitt MTU-Größe ändern.
So ändern Sie die MTU-Größe für die Kamera:
-
Melden Sie sich an der ctrlX-OS-Weboberfläche an.
-
Gehen Sie zu Home.
-
Wählen Sie Settings.
-
Wählen Sie Network Interfaces.
Die Nummer des aktuell verwendeten Ethernet-Ports finden Sie neben dem Port-Eintrag auf dem ctrlX-Gerät. In diesem Beispiel ist es XF12.
-
Wählen Sie den aktuell verwendeten Ethernet-Port Ihres ctrlX-Geräts.
-
Klappen Sie Advanced Settings auf.
-
Geben Sie im Feld MTU den gewünschten Wert ein (siehe Statuscode -10004 in Werte des Statuscodes).
-
Klicken Sie zur Bestätigung auf Save.
-
Eine Meldung bestätigt die Änderung auf dem Bildschirm.
-
Sobald die Änderungen gespeichert sind, können Sie das Programm schließen.
GenICam-Features
So bearbeiten Sie GenICam-Features:
-
Stellen Sie sicher, dass die Kamera, die Sie konfigurieren möchten, wie in Verbindungsschritte beschrieben verbunden ist.
-
Unter
hdvisionsystems/lumiscan-cam-driver/<cameraname>/featuresfinden Sie eine Reihe von Unterknoten, die Knoten enthalten. Sie entsprechen den GenICam-Feature-Kategorien und den einzelnen darin enthaltenen Features. Namen, Werte, Schreibrechte und Beschreibungen dieser Knoten werden direkt von der jeweiligen Kamera übernommen. Sie können sich also an den Beschreibungen in der Benutzeroberfläche orientieren.
Weitere Informationen zu diesen Features finden Sie in der Dokumentation Ihres Kameraherstellers.
IP-Konfiguration der Kamera erzwingen
Die IP-Konfiguration einer Kamera kann auf bestimmte Werte gesetzt werden. Das ist besonders nützlich, wenn die aktuelle Konfiguration fehlerhaft ist. Die hier beschriebene Methode funktioniert auch, wenn die Kamera normalerweise nicht verbunden oder erkannt wird, solange sie über dieselbe Netzwerkverbindung erreichbar bleibt.
Eine solche Situation kann auftreten, wenn die konfigurierte Subnetz-ID der Kamera nicht mit der Subnetz-ID der ctrlX CORE oder des PCs übereinstimmt. (Die Subnetz-ID ist ein Teil der konfigurierten IP-Adresse. Die Subnetzmaske legt fest, welcher Teil der IP-Adresse die Subnetz-ID darstellt.)
Die für das Erzwingen der IP-Konfiguration einer Kamera relevanten Data-Layer-Adressen finden Sie unter: hdvisionsystems/lumiscan-cam-driver/system/force-ip/
Die einzelnen Knoten sind in Tabelle 4 aufgeführt.
So erzwingen Sie die IP-Konfiguration einer Kamera:
-
Setzen Sie die gewünschte IP-Adresse, das Gateway und die Subnetzmaske sowie die MAC-Adresse der Kamera.
-
Setzen Sie das Request-Signal auf true und dann wieder auf false.
Dieser Ablauf entspricht dem Grundkonzept des Handshakes.
| Beim Bearbeiten dieser Werte werden sie direkt in die Kamera geschrieben. Seien Sie vorsichtig beim Bearbeiten von Werten, die die Netzwerkverbindung der Kamera betreffen, da dies zu einem Verbindungsverlust führen kann. Beachten Sie, dass das Ändern dieser Werte die Bildaufnahme beeinflussen kann. |
| Wenn die CamDriver-App eine Verbindung zu einer Kamera herstellt, versetzt sie die Kamera auch in den Aufnahmemodus. Das beeinflusst, welche Knoten beschrieben werden können. |
| Name | Beschreibung |
|---|---|
gateway |
Das Standard-Gateway, auf das die Kamera gesetzt wird |
ip |
Die statische IP-Adresse, auf die die Kamera gesetzt wird |
mac address |
Die MAC-Adresse der Kamera. Über diese Adresse wird die richtige Kamera identifiziert. |
subnet |
Die Subnetzmaske, auf die die Kamera gesetzt wird |
request |
Das Request-Signal; um das Erzwingen der IP zu starten, setzen Sie es auf true und dann wieder auf false |
ready |
Das Ready-Signal; es zeigt an, dass ein Request gestellt werden kann oder dass einer in Bearbeitung ist. |
Szenario 1: Kamera, Computer und ctrlX X3 über einen Switch verbinden
Dieses Szenario gilt für ctrlX OS (ctrlX CORE X3). Siehe auch Hardware-Aufbau für ctrlX X3.
-
Öffnen Sie auf der ctrlX X3
settings/NetworkInterfaces/XF10-
Setzen Sie General/MTU auf 8000
-
Deaktivieren Sie IPv4/DHCP
-
IPv4/Address: Stellen Sie sicher, dass 192.168.1.1 eingetragen ist (sollte standardmäßig bereits vorhanden sein)
-
Klicken Sie auf save
-