Viper.NET vereinfacht und beschleunigt das Erstellen von Industrietauglichen Bildverarbeitungsanwendungen. In Viper.NET ist der gesamte Verarbeitungsprozess vom Trigger bis zur Ergebnisrückgabe fertig integriert und automatisiert. Benutzer können sich auf ausgereifte Schnittstellen verlassen, die sowohl in unseren eigenen Anlagen als auch integrativ bei anderen Herstellern täglich eingesetzt und optimiert werden. Ein flexibles Plugin-Modell und große Freiheiten bei der Konfiguration von Viper.NET ermöglichen eine schnelle Funktionserweiterung für kundenspezifische Anforderungen.
Viper.NET setzt auf Cognex VisionPro, eine der besten PC-Vision Bibliotheken weltweit. Zusätzlich bietet Viper.NET die Möglichkeit, auf die umfangreichen Funktionen von HALCON zurückzugreifen.
Viper.NET verwendet Cognex ToolGroups als Schnittstelle zu Cognex VisionPro. Jede ToolGroup beschreibt eine Bildverarbeitungsaufgabe. Eine ToolGroup wird in Viper.NET über ein so genanntes ToolGroupItem eingebunden. Dieses definiert zusätzlich zur ToolGroup:
ToolGroupItems werden in Viper.NET in Jobs zusammengefasst. Der Job ist für die Ausführung eines ToolGroupItem zuständig. Es kann immer nur ein ToolGroupItem pro Durchlauf ausgeführt werden. Allerdings können mehrere Jobs definiert werden, die parallel ausgeführt werden. Ein Bildverarbeitungstyp besteht aus 1 bis n Jobs.
Jeder Job ist einer Station zugeordnet, die die Schnittstelle nach außen bereitstellt. Die Stationen sind nicht typabhängig, sondern anwendungsweit gültig.
Durch diesen Aufbau kann eine Steuerung mit nur einem Trigger mehrere Bildverarbeitungsaufgaben parallel anstoßen, was den Aufwand zur Integration von automatischen optischen Inspektionen z.B. in Rundtaktanlagen deutlich reduziert. Der Handshake zur Kommunikation zwischen Steuerung und Viper.NET besteht nur aus wenigen Bits. Es können auch mehrere Stationen definiert werden, die mit verschiedenen Steuerungen kommunizieren.
Wenn Bilder verarbeitet und analysiert werden sollen, müssen diese zunächst einmal eingelesen werden. Viper.NET stellt umfangreiche Schnittstellen für die Bildaufnahme bereit:
Weitere Schnittstellen können bei Bedarf schnell und unkompliziert eingebunden werden.
Insbesondere die native Anbindung der GigE Kameras bietet viele Vorteile verglichen mit den generischen Treibern:
In Viper.NET werden die Bildquellen außerhalb des Bildverarbeitungsablaufs konfiguriert und verwendet. Erst wenn die Bilder von allen Bildquellen eingezogen worden sind wird die Auswertung gestartet, wobei der Einzug standardmäßig parallel erfolgt. Es können beliebig viele Bildquellen verwendet werden.
Ein weiterer Vorteil von Viper.NET ist die integrierte Beleuchtungssteuerung, mit der pro Aufnahmesituation eine passende Beleuchtungssituation definiert werden kann.
Dabei spielt es keine Rolle, ob bei mehreren Kameras immer dieselbe oder verschiedene Beleuchtungssituationen verwendet werden, bzw. wie viele Beleuchtungen verwendet werden.
Das Modul zur Beleuchtungssteuerung unterstützt derzeit diese Controller:
Viper.NET unterstützt eine große Bandbreite von Steuerungen, die über ein eigenes IO-Modul eingebunden und abstrahiert werden.
Diese Einbindung hat diverse Vorteile:
Das IO-Modul wird über ein eigenes Tool "GInOutHwExplorer" in wenigen Minuten konfiguriert und getestet, was Inbetriebnahmezeiten deutlich reduziert.
Die Funktionalität von Viper.NET kann über Plugins erweitert werden, um projektspezifische Anpassungen an Ablauf oder Oberfläche vorzunehmen, oder um komplette automatische Abläufe zu integrieren. Da die Bildverarbeitungsfunktionalität selbst in einem Plugin gekapselt ist, kann die Software auch verwendet werden, um Prozesssteuerungen oder Laseranwendungen zu realisieren. Fast alle Softwareprojekte von Gefasoft werden auf diese Weise umgesetzt:
Bilder, die bei der Verarbeitung aufgenommen werden, werden in Viper.NET automatisch gespeichert. Sie können dabei selbst bestimmen, ob z.B. nur Bilder von Fehlerteilen abgespeichert werden sollen.
Viper.NET unterstützt Sie bei der nachträglichen Analyse von Bildern. Gespeicherte Bilder können automatisch durchlaufen werden.
Die Ergebnisse werden im Viper.NET Hauptfenster visualisiert. Es können einzelne Bilder, einzelne Ordner oder alle Bilder in der Verzeichnisstruktur ausgeführt werden. Auf diese Weise kann sehr schnell überprüft werden, wie sich Veränderungen an Parametern oder Abläufen auswirken. Übergeordnete Steuerungen können die Analysefunktion auch während des Automatikablaufs starten, z.B. um regelmäßig die Bildverarbeitungsroutinen gegen Referenzbilder zu prüfen.
Die Darstellung der Ergebnisse wird pro ToolGroupItem in Views definiert. Für eine View können beliebig viele SubDisplays angelegt werden:
Für jeden Benutzer kann eine eigene View definiert werden. Damit können für Einrichtpersonal komplexere Ansichten zur Analyse erstellt werden, während bei der normalen Produktion eine einfache Bild-/Fehleranzeige ausreichend ist.
Grundlage: Beispiel-Job von Cognex (Detect Defect using NxM Median Filter)
Vorgabewerte und Ergebnisse müssen häufig mit der übergeordneten Steuerung ausgetauscht werden. Viper.NET bietet auch hier einen sehr effektiven Mechanismus an.
Auf Ebene des IO-Moduls werden Variablen definiert, die den Quell- bzw. Zieldatenbereich sowie die Konvertierung der Daten definieren. Diese Variable können dann bei der Konfiguration eines ToolGroupItems einfach mit bestimmten Terminals verknüpft werden.
Eingabedaten werden beim Trigger eingelesen und vor der Ausführung der ToolGroup in das konfigurierte Terminal geschrieben. Ausgabedaten werden nur dann an die Steuerung gesendet wenn kein Ablauffehler (RunError) aufgetreten ist.
Zusätzlich zu Daten können auch Ergebnisbits auf IO-Ebene gesetzt werden. Der Zustand der Bits (High/Low) wird über das Überprüfungsergebnis von DataAnalysis-Terminals bestimmt.