Bildaufnahme¶
Die Aufnahme von Kamerabildern wird in Viper.NET durch Bildquellen realisiert. Mit ihnen werden alle Aspekte des Bildaufnahmeprozesses beschrieben, auch beigeordnete Prozesse. Insbesondere kann auch die Beleuchtung der Szene in einer Bildquelle definiert oder referenziert werden.
Beleuchtung¶
Zur Ansteuerung von Beleuchtungen bietet Viper.NET das Modul Lumos. Darin wird Hardware zur Beleuchtungssteuerung als Lichtcontroller eingebunden. Einzelnen Ausgänge des Steuergerätes sind als Lichtkanäle abgebildet. Das Schalten von Lumos Lichtkanälen erfolgt durch Aktivieren von Lichtsituationen, welche für eine Auswahl von Lichtkanälen jeweils eine Helligkeit festlegen.
Lichtsituationen können global in Lumos definiert und andernorts referenziert werden. Zumeist können sie auch am Verwendungsort lokal definiert werden, zum Beispiel in den Bildquellen.
Hinweis
Lichtsituationen sperren ihre Lichtkanäle für die Dauer Ihrer Aktivität. Wenn die Kanäle wieder freigegeben werden, bleibt deren Helligkeit aber unverändert. Lichter werden nie automatisch ausgeschalten. Einzige Ausnahme ist das Ausschalten von Lichtkanälen durch Jobs mit der Einstellung LightOffAfterJob.
Bildquellen in Viper.NET¶
Eine Bildquelle definiert die Quelle eines Eingabebildes innerhalb von Viper.NET. Es kann sich dabei sowohl um Hardwarequellen, wie zum Beispiel eine Flächenkamera, als auch Softwarequellen, wie etwa Bilder im Dateisystem oder Bildquellenreferenzen handeln. Als Quelle ist dabei nicht nur die reine Datenquelle zu verstehen, sondern der gesamte Bildaufnahmeprozess. Dazu gehören zum Beispiel Bild-Vorverarbeitungsabläufe oder die Beleuchtung.
Bildquellen sind keine unmittelbare Abbildung der Hardware, sondern definieren einen Parametersatz für die Bildaufnahme. Daher beziehen sich mehrere Bildquellen oft auf dieselbe Kamerahardware, um Bilder mit unterschiedlichen Parametern einzuziehen. Eine Bildquelle liefert bei einem Bildeinzug genau ein Bild. Hardware, die bei einer Triggerung mehrere Bilder liefert wird durch Master-Slave-Bildquellen abgebildet.
Die Bildquellenorganisation erfolgt in Bildquellenlisten auf verschiedenen Hierarchieebenen. Referenzbildquellen definieren Verweise zwischen den Listen, so dass redundante Konfigurationen vermieden werden.
Bildeinzug - Trigger-Arten¶
Der Bildeinzug von einer Bildquelle wird durch einen Trigger ausgelöst. Bei Bildquellen, die eine reale Kamera abbilden, kann der Bildeinzug sowohl per Software- als auch per Hardwaretrigger erfolgen. Reine Software-Bildquellen implementieren lediglich den Softwaretrigger. Die Konfiguration des Triggers erfolgt in den Bildquelleneinstellungen.
Softwaretrigger¶
Beim Softwaretrigger wird der Zeitpunkt des Bildeinzuges durch Viper.NET festgelegt, indem ein entsprechendes Signal an die Kamera gesendet wird. Üblicherweise muss in den Einstellungen der Bildquelle der Softwaretrigger eingestellt werden. Der Softwaretrigger wird häufig in Kombination mit einer Station mit Standardhandshake eingesetzt. Die Ausführung des Jobs löst dann den Bildeinzug aus.
Hardwaretrigger¶
Beim Hardware-Trigger wird der Zeitpunkt des Bildeinzuges durch ein Signal am Hardware-Eingang einer Kamera festgelegt. Üblicherweise muss dazu in den Einstellungen der Bildquellen ein Eingang als Signalquelle ausgewählt werden. Um nach dem Hardware-getriggerten Kamera-Bildeinzug eine Job-Ausführung zu starten, kann eine ImageTriggerStation verwendet werden oder eine kompatible Stations-Implementierung, die von einem Plugin bereit gestellt wird.
Bildübergabe¶
Die Bildaufnahme erfolgt in der Regel vor der Ausführung einer Toolgroup. Die Übergabe an die Toolgroup erfolgt dann über Terminals eines ImagesToolBlock. Die Bilder werden dazu entweder zu Beginn der Job-Ausführung eingezogen oder dem Job vom Aufrufer übergeben, zum Beispiel von der Image-Trigger-Station.
Ab Viper.NET 6.3 ist auch eine nachgelagerte Bildaufnahme während der Toolgroup-Ausführung möglich. Die Bilder werden dann im Ablauf über Tool-Terminals eines GImgSrcItfTool bereitgestellt.