Machine Vision Standards Austauschbarkeit oder Kompatibilität?

Redakteur: Ines Stotz

IBV Mit dem Aufkommen von Machine Vision Standards hat sich die Industrie in einer nie dagewesen Weise auf eine Zusammenarbeit geeinigt. Daraus entstanden in den letzten zehn Jahren mit GenICam, GigE Vision oder USB3 Vision generische Schnittstellen für den Einsatz von Industriekameras mit einheitlichen Funktionsnamen und definiertem Feature-Umfang. Was ist zur Realisierung einer Anwendung noch zu beachten?

Anbieter zum Thema

Die Austauschbarkeit der Kamerahersteller durch standardisierte Schnittstellen kann ein Vorteil für die Realisierung einer Machine Vision Anwendung sein. Das allein ist aber noch nicht alles.
Die Austauschbarkeit der Kamerahersteller durch standardisierte Schnittstellen kann ein Vorteil für die Realisierung einer Machine Vision Anwendung sein. Das allein ist aber noch nicht alles.
(Bild: IDS Imaging Development Systems)

Die Design-In-Phase von Kameras in Machine Vision Anwendungen sollte sich dadurch vereinfachen und verkürzen, um Entwicklungskosten einzusparen. Die Austauschbarkeit und vollständiges Plug & Play von Geräten werden dabei immer als wesentliche Merkmale hervorgehoben.

Aber sind das die ausschlaggebenden Faktoren zur Realisierung einer Anwendung? Ist der vollständig generische Lösungsansatz für jede Applikation der richtige? Das kommt darauf an. Um eine erfolgreiche Anwendung zu erstellen, kann die Hersteller-Austauschbarkeit durchaus ein wichtiger Vorteil sein. Fest steht aber, dass die Erhaltung dieses Vorteils an Bedingungen geknüpft ist, die beim Aufbau einer Anwendung erst erarbeitet und zwingend einzuhalten sind. Die Entwicklung von Machine Vision Komponenten unter Einhaltung der Festlegungen der „Vision-Standards“ ist hingegen so wichtig, um in mehr Anwendungen als zuvor zum Einsatz zu kommen. Für die Hersteller ist das anzustrebende Ziel damit eher eine „gesteigerte Kompatibilität“, die durch die Nutzung der Standard-Vision-Protokolle automatisch gegeben ist.

Die Standardisierung seitens der Organisationen AIA (Global Association for Vision Information) und EMVA (European Machine Vision Association) stellt einen wichtigen Schritt dar, dem Interface Wirrwarr im Machine Vision Umfeld Einhalt zu gebieten. Nichts desto trotz lassen die Standards den Herstellern genügend Raum für die Implementierung zusätzlicher, spezifischer Features außerhalb der SFNC (Standard Feature Naming Convention), um eine Abgrenzung der Anbieter untereinander zu ermöglichen (Quality of Implementation). Mit der Nutzung dieser herstellerspezifischen Feature-Sets ist ein Herstellerwechsel unter Umständen nicht ohne Softwareanpassungen möglich.

Auch bei der Programmierschnittstelle bieten proprietäre Ansätze im Vergleich zu GenICam durchaus ein höheres Maß an Komfort und Benutzerfreundlichkeit durch den Einsatz von Convenience-Funktionen, die es im Vision Standard nicht gibt. Die Hersteller von Industriekameras wissen das und bieten deshalb oftmals eigene Programmierschnittstellen an, die aber auf den standardisierten Interfaces basieren.

Bleibt eine Anwendung durch die Nutzung dieser „proprietären Standards“ trotzdem herstellerübergreifend kompatibel oder sollte man dafür ausschließlich auf die Standardschnittstellen setzen?

1. Das standardisierte System im Detail

Um die Anforderungen und Ziele einer Anwendung sicher umzusetzen, sollten auch wichtige Details der generischen Systemlösung bekannt sein und im richtigen Maß eingesetzt werden.

Systemarchitektur

Auch wenn aktuelle Machine-Vision-Standard-Kameras mit GigE Vision bzw. USB3 Vision-Schnittstellen auch ohne ein herstellerspezifisches Softwarepaket „funktionieren“, bleibt die grundlegende Systemarchitektur notwendigerweise erhalten und muss auf einem System vorhanden sein.

Die Hardware-Ebene baut auf bekannte Technologien und Anschlusstechniken zur Übertragung von Kameradaten und Kommunikationsprotokollen (z.B. USB, Gigabit Ethernet). Gerätenahe Software (Treiber und Userspace-Bibliotheken) vermittelt mit einem API zwischen dem Transportkanal der Kamera und der Benutzeranwendung.

Mit GenICam als Basis erfolgte an mehreren Schnittstellen der Systemarchitektur eine Standardisierung, wodurch mehrere klar definierte und dokumentierte Ansatzpunkte für die Verwendung von Machine-Vision-Standard-Kameras geschaffen wurden.

Aus N mach 1 und aus 1 mach N

Mit GenICam (Generic Interface for Cameras) als Vermittler zwischen Benutzeranwendung und Gerätesoftware wird die Vielzahl von herstellerspezifischen Programmierschnittstellen auf eine einzige allgemeingültige beschränkt. GenICam ist eine Beschreibungssprache, sie abstrahiert den Zugang zu allen Kamerafunktionen hersteller- und transportprotokoll-übergreifend. Die verfügbaren Funktionen werden zur Verwendung bereitgestellt, ohne sie selbst zu kennen. Das macht sie zu einer idealen Anwendungsbasis, wenn es um Features geht, die sich mit jedem Kameramodell ändern oder durch Firmware-Updates erweitern können.

Durch die Einführung von Protokollen wie GigE Vision und USB3 Vision auf der Transportebene musste auch ein Umdenken bei der Kamerafirmware stattfinden. Kameras mit diesen standardisierten Transportprotokollen, die von den Mitgliedern der AIA definiert werden, sprechen eine einheitliche Sprache gegenüber der Gerätesoftware. Damit bricht auch die strikte Zusammengehörigkeit zwischen Kamerafirmware, Übertragungsprotokoll und Gerätesoftware auf. Die Kamera wird unabhängig von einer einzigen Herstellersoftware.

Unabhängigkeit bringt neue Möglichkeiten

Vision-kompatible Kameras können jetzt mit einem herstellerunabhängigen „Generic Transportlayer“ (GenTL) betrieben werden. Die GenAPI (Generic Application Programming Interface) ermöglicht das Auflisten und die Konfiguration der verfügbaren Kamerafeatures durch die Analyse der standardkonformen XML-Datei der Kamera. Der Inhalt dieser Datei beschreibt alle implementierten Kamerafeatures in einer Syntax, die im GenAPI Modul der GenICam Spezifikation definiert ist: Funktionsnamen, Parameterlisten, erweiterte Informationen, Funktionsbeschreibung. Sogar Tooltips, die eine Anwendung für die Features anzeigen soll, sind in der XML-Datei beschrieben. Die Kamera liefert quasi ihr eigenes Programmierhandbuch mit aus.

Dabei ist es unerheblich, ob es sich um Standard-Features handelt, die in der GenICam SFNC definiert sind oder um spezielle „Custom-Features“, die es nur bei einem Hersteller gibt, aber standardkonform implementiert wurden.

Technisch ist die herstellerunabhängige Zusammenarbeit von Hardware und Software vom Standard festgelegt und „erwünscht“. Die Unabhängigkeit ist aber nur seitens der Kamera zu 100 Prozent gegeben. GenICam Producer mancher Hersteller scheinen dem Anwender nahezulegen, mit welcher Kamera sie gerne zusammenarbeiten wollen. Das macht die Austauschbarkeit für Anwender manchmal etwas undurchsichtig.

Mit der Unabhängigkeit ergeben sich sowohl für Kamerahersteller als auch Anwender automatisch viele neue Möglichkeiten. Zum Beispiel die Entkopplung von Hardware- und Software-Releases. Ein neues Kameramodell bzw. neue Kamerafirmware kann in viel kürzerer Zeit bereitgestellt werden, da keine Anpassung, Dokumentation und Veröffentlichung einer Host-Software notwendig ist, um die Kamera zu betreiben.

Ebenso lassen sich Updates für einzelne Kameramodelle unabhängig von der Host-Software oder anderen Modellen sehr viel einfacher und schneller fertigstellen. Die Mitglieder der EMVA-Organisation arbeiten bereits an einer Update-Spezifikation, wie Vision-Kameras über jede beliebige standardkonforme Software mit einem herstellerspezifischen Update-Paket aktualisiert werden können. Eine zusätzliche Update-Modulspezifikation zum GenICam Standard wird noch im Sommer 2017 erwartet.

Die Unabhängigkeit bringt ganz automatisch eine erweiterte Plattformkompatibilität mit sich. Mit den Standard-Transportprotokollen wie bspw. GigE Vision oder USB3 Vision sind die Kameras auf jeder Plattform und jedem Betriebssystem lauffähig, für die es eine standardkonforme, herstelleroffene Software inklusive Transportlayer gibt. Auch wenn Sie nicht aus dem eigenen Haus stammt.

Diese Unabhängigkeit ist damit die Basis für die „Austauschbarkeit“.

GenTL ist nicht gleich GenTL

GenTL sind aber alles andere als gleich. Allein die Tatsache, dass sie sowohl Richtung Kamera als auch Richtung Benutzeranwendung eine standardisierte Schnittstelle aufweisen und sie eigentlich nur für das Auffinden und Ansprechen von Geräten inklusive Bildaufnahme zuständig sein sollen, macht sie nicht zwangsläufig kompatibel mit allen Vision-Kameras.

Ein standardisierter GenTL ist für eine Bildverarbeitungsbibliothek wie bspw. Halcon eine sehr sinnvolle Erweiterung, wenn er offen für Vision-Kameras aller Hersteller ist. Der Vorteil ist ein vollständiges Plug & Play für alle Kameras, ohne eine herstellerspezifische 3rd-Party-Bibliothek installieren zu müssen. Aus diesem Grund haben die MVTec-Entwickler Halcon mit einem eigenen herstellerübergreifend kompatiblen GenTL ausgestattet, der jede Vision-kompatible Kamera ohne eine spezielle Herstellersoftware verwenden kann.

Für Kamerahersteller bietet ein eigener GenTL trotz Standardvorgaben die Möglichkeit, dem Kunden eine Softwarekomponente bereitzustellen, die „optimal“ mit der eigenen Kamera interagiert und auch unter den Herstellersupport fällt. Keine ganz unwichtige Frage, wenn in einer Machine Vision Applikation ein Problem mit der Kamera auftritt. Wer ist dann zuständig, wenn Anwendung, BV-Bibliothek, GenTL und Kamera jeweils von unterschiedlichen Herstellern sind? Die Frage stellt sich nicht, wenn alle Komponenten von ein und demselben Hersteller stammen.

(ID:45112432)