Schnittstellen-Standards Kamera im Netz

Ein stetes Ärgernis für Anwender industrieller Bildverarbeitungssysteme sind Inkompatibilitäten beim Einsatz von Produkten von Drittherstellern. Bekannte Standards sind ohne Verstärkung auf wenige Meter Kabellänge beschränkt und erfordern relativ teure Stecker und Kabel. Warum also nicht einfach Ethernet nutzen? Ganz so einfach geht es dann doch wieder nicht.

Übliche Schnittstellen, wie sie an Kameras und (industriellen) Rechnersystemen zu finden sind, also USB und »FireWire«, haben ihre spezifischen Probleme - die maximale Kabellänge ist eines davon, bei FireWire kommen noch die Sub-Standards hinzu, die teilweise sogar zueinander inkompatibel sind. In der industriellen Bildverarbeitung hat sich »CameraLink« verbreitet, was über etwa 10 m problemlos funktioniert, jedoch aufgrund seiner komplexen Topologie spezielle Kabel und Stecker erfordert. »Wozu der Aufwand?« möchte man sich fragen, Ethernet liegt quasi überall und IP-Kameras sind nichts ungewöhnliches mehr.

Ein wenig Aufwand ist aber doch erforderlich. Schließlich kommt es in der industriellen Automatisierung besonders auf »Safety« und »Security« an. Datensicherheit ist die eine Seite, der Schutz von Leib und Leben nebst teuren Investitionsgütern die andere.

In der Standardausführung ist Ethernet für solche Anwendungen nicht ausgelegt, außerdem stehen die üblichen Frame- und Paketgrößen der effizienten, simultanen Übertragung relativ großer Bilddaten nebst viel kleineren Steuerungsinformationen im Wege. Dennoch ist TCP/IP eine gute Grundlage, und die Infrastruktur ist ohne-hin vorhanden - seit etwa zehn Jahren ist schließlich auch die industrielle Automatisierungstechnik im Ethernet-Zeitalter angekommen.

Geschlossener »Standard«

Aufgrund der eigentlich offenen, standardisierten Vernetzungskomponenten von Ethernet (IEEE 802.3) kann man es bedauerlich finden, dass »GigE Vision«, eine von der AIA (Automated Imaging Association) verbreiteter Schnittstelle auf Basis von Gigabit-Ethernet nicht ebenfalls offen zugänglich ist. Den »Standard« (der lediglich auf einer Übereinkunft der AIA-Mitglieder beruht und keinem »echten« Standardisierungsgremium unterliegt) können ausschließlich in der AIA organisierte Unternehmen einsehen und dementsprechend kompatible Produkte entwickeln.

Gemäß einiger eigenwilliger Definitionen handelt es sich um einen »offenen« Standard, jedoch benutzen weder die AIA noch die meisten Mitgliedsunternehmen diesen sehr dehnbaren Begriff, wenn es sich vermeiden lässt. Die meisten europäischen Länder wie auch die EU selbst betrachten GigE Vision nicht als offen. Immerhin sind die Spezifikationen nur per Vertraulichkeitsvereinbarung zugänglich, und das ausschließlich von der AIA. Die Lizenz erlaubt auch keine Open-Source-Code-Implementierungen, da dabei zwangsläufig Details des Standards öffentlich gemacht würden.

Aus diesem Grund müssen auch sämtliche SDKs (Software Development Kit) für GigE Vision closed-source sein. Dabei handelt es sich natürlich um akademische Erwägungen, denn tatsächlich gehören der AIA heute etwa 300 Unternehmen an, in der GigE-Vision-Standardisierungsinitiative engagieren sich immerhin etwa 50 Firmen. Generell stellt GigE Vision eine Infrastruktur bereit, um Hochgeschwindigkeits-Videodaten sowie zugehörige Steuerungsinformationen über Ethernet-Netze zu übertragen.

Es beruht auf dem IP-Standard (Internet Protocol) mit den entsprechenden Transport-Layern TCP (Transmission Control Protocol) und UDP (User Datagram Protocol). Ersteres gewährleistet den zuverlässigen, geordneten Datenverkehr zwischen Anwendungsprogrammen auf unterschiedlichen Rechnern. UDP erlaubt es Anwendungen, Nachrichten (Datagramme) zwischen Host-Rechnern im IP-Netz auszutauschen.

Das Protokoll legt dabei weniger Wert auf Zuverlässigkeit der Verbindung und geordnete Datenströme, hat dafür jedoch andere Vorteile. GigE Vision besteht aus vier Hauptkomponenten:

  • GigE Vision Control Protocol (GVCP): Nutzt UDP und definiert, wie Geräte gesteuert und konfiguriert werden. Es spezifiziert Datenkanäle sowie die eigentlichen Mechanismen des Sendens von Bild- und Konfigurationsdaten zwischen Kameras und Computern.
  • GigE Vision Stream Protocol (GVSP): Nutzt UDP und definiert Datentypen und die Arten, wie Bilddaten per Gigabit-Ethernet übertragen werden.
  • GigE Device Discovery Mechanism: Stellt Mechanismen zum Erlangen von IP-Adressen bereit.
  • Eine XML-Beschreibungsdatei, die auf »GenICam«, einem »Standard« der EMVA (European Machine Vision Association), basiert. Dieses »Datenblatt« gewährt Zugriff auf die Kamerasteuerungen und die Bild-Datenströme.

Per Gigabit-Ethernet (1000Base-T) sind theoretisch Übertragungsraten bis zu 1000 MBit/s möglich. Erste Hersteller haben bereits mit der Unterstützung von 10-Gigabit-Ethernet (IEEE 802.3ae-2002) begonnen. Ethernet-typisch sind Übertragungswege bis zu 100 m möglich, was sich durch handelsübliche Switches oder Repeater fast beliebig verlängern lässt. Selbstverständlich hängt die tatsächliche Leistungsfähigkeit einer GigE-Vision-Vernetzung stark von der Qualität der beteiligten Komponenten ab.

Großer Vorteil der Ethernet-Vernetzung gegenüber FireWire oder CameraLink ist, dass sich Netzwerkkabel vor Ort konfektionieren lassen - besonders für schwer zugängliche Stellen wichtig. Außerdem ist kein dedizierter Frame-Grabber mehr nötig, eine Netzwerkkarte genügt.

Die Software-Seite

Eine einheitliche Softwareschnittstelle definiert »GenICam« (Generic Interface for Cameras). Dieser Industriestandard der EMVA ermöglicht es, herstellerunabhängig Software zu entwickeln, die auf beliebige GigE-Vision-Kameras zugreifen kann. Ziel dahinter war es, die Kameraschnittstelle von der API der Benutzeranwendung zu entkoppeln. Entsprechend ist GenICam von der Technologie des Transport-Layers unabhängig und kann neben GigE Vision auch mit USB, CameraLink und anderen Schnittstellen implementiert werden. Die Hauptkomponenten sind:

  • GenApi (GenICam Application Programming Interface): Es erlaubt die Beschreibung der kompletten Kamerafunktion in einer XML-Konfigurationsdatei, die gewöhnlich direkt auf der Kamera gespeichert ist, was den automatischen Konfigurationsprozess vereinfacht. Eine Softwarebibliothek liest diese Datei, interpretiert sie und bekommt automatisch Zugang zum kompletten Funktionsumfang der Kamera.
  • SFNC (Standard Features Naming Convention): Eine Art Überstruktur oberhalb von GenApi. Sie definiert eine Konvention zur Namensgebung für typische Funktionen von Bildverarbeitungskameras. SFNC definiert ein universelles Kameramodell, das die meisten Kameras im Markt implementieren. Durch diese Konvention können allgemeine Anwendungen, Bibliotheken aber auch der Anwender standardkonforme Kameras ohne ein detailliertes Studium ihrer Dokumentation verstehen.
  • GenTL (GenICam Transport Layer): Beschreibt die Schnittstelle für die Erfassung von Bildsequenzen (oder zusätzlichen Nicht-Bilddaten) unabhängig vom Transport-Layer und der Plattform (Betriebssystem, Programmiersprache, usw.). Es sorgt für die Identifizierung und Einbindung der angeschlossenen Geräte (Kameras), verwaltet den Zugriff der verschiedenen Applikationen, konfiguriert diese über GenApi und steuert die komplette Bildaufnahme.

Die Funktion »Kamera-Konfiguration« unterstützt eine Reihe von Eigenschaften wie Bildgröße, Aufnahmegeschwindigkeit, Pixel-format, Gain, Offset, etc. Per »Bilderfassung« lassen sich Verbindungen zwischen der Kamera und der Benutzerschnittstelle herstellen und das Empfangen von Bildern veranlassen. Über die reinen Bilddaten hinaus lassen sich zusätzliche Daten übertragen, beispielsweise Histogramm, Zeitstempel oder ROI (Region Of Interest). Ein »Ereignis-Kanal« dient der direkten Kommunikation zwischen Kamera und Anwendung.