GenICam-Alternative zur Applikations- und Embedded-Entwicklung

Einfacherer Standard

GenICam-Alternative zur Applikations- und Embedded-Entwicklung

Als Erweiterung des GenICam-Standards ist IDS peak nicht nur ein standardkonformes SDK mit selbsterklärender Programmier-API, sondern auch eine unabhängige Software zum Betrieb, Konfiguration und Programmierung von Vision-konformen Kameras.

Benutzer können mit eigenen Anwendungen über IDS peak, direkt über GenICam oder über eine standardkonforme Drittanwendung auf die Vision-Kameras von IDS zugreifen. (Bild: IDS Imaging Development Systems GmbH)

Benutzer können mit eigenen Anwendungen über IDS peak, direkt über GenICam oder über eine standardkonforme Drittanwendung auf die Vision-Kameras von IDS zugreifen. (Bild: IDS Imaging Development Systems GmbH)

Wer heute Maschine Vision Anwendungen entwickelt, kommt an GenICam kaum vorbei. Die einheitliche Verwendung von Kameras unterschiedlicher Hersteller vereinfacht viele Integrationsprozesse und Inbetriebnahmen und macht Kamerahardware für den Anwender einfacher austauschbar. Industriekameras mit Interfaces wie USB3 Vision oder GigE Vision funktionieren automatisch mit den meisten GenICam-kompatiblen Anwendungen, ohne dass dazu herstellerspezifische Treibersoftware installiert werden muss, denn kompatible Vision Transport Layer bringen Bildverarbeitungsanwendungen wie z.B. Halcon bereits mit. Ist da überhaupt noch die Notwendigkeit für herstellereigene Entwicklungspakete?

Einfache Bedienbarkeit?

Mit der Verlagerung der Funktionalität in die Kameras hat die Standardisierung einen grundlegenden Wandel durchgesetzt. Dadurch entstand eine variable Softwarebasis, die zur Kommunikation mit allen Vision Kameras verwendbar ist. Alle Module und Funktionen sind kameraunabhängig. Auch kleinste Details und Parameter lassen sich einzeln ansprechen und einstellen. Das macht die Syntax der verwendeten Standardsprache zwar sehr flexibel, aber alles andere als einfach und übersichtlich nutzbar. Selbst für einfache Programmabläufe werden etliche Codezeilen und Parametereinstellungen in korrekter Kombination benötigt, was schnell zu fehleranfälligen und unübersichtlichen Abläufen führt. Die strikte Trennung und unterschiedliche Handhabung der Kamerafunktionalität über GenAPI und des reinen Bildspeicherpfads über die Transport Layer ist zwar strukturell nachvollziehbar, macht aber die Anwendungsentwicklung nicht einfacher und übersichtlicher. Die Programmier-API eines Produkts ist eine Benutzerschnittstelle und damit ein Werkzeug, das daran gemessen wird, wie gut es sich bedienen lässt. Als Schnittstelle repräsentiert sie für Entwickler die eigentliche Kamera und deren Möglichkeiten. Trotz GenICam können die Kamerahersteller dem Anwender allein durch die Features der Kameras keine ausreichende Unterstützung und damit auch keine bessere Anwendererfahrung bieten.

 Vision-App-Entwicklung mit IDS peak (Bild: IDS Imaging Development Systems GmbH)

Vision-App-Entwicklung mit IDS peak (Bild: IDS Imaging Development Systems GmbH)

Hardwareunabhängig und standardkonform

IDS hat aus den Kundenerfahrungen mit GenICam und der eigenen IDS Software Suite die Vor- und Nachteile identifiziert und IDS peak entwickelt. Mit GenICam als standardisierte Softwarebasis behält der Anwender auch mit dem neuen SDK weiterhin die freie Wahl, welche Kameras er einsetzen möchte, ohne dabei auf die Vorteile einer modernen Entwicklungsschnittstelle verzichten zu müssen. Für ein optimales Anwendererlebnis bringt das plattformunabhängige SDK IDS peak von Sourcecode Samples bis Transport Layer alle erforderlichen Komponenten mit, sodass Kunden direkt mit der Entwicklung eigener Anwendungen starten können. Als Nebeneffekt können Nutzer auf vollständigen Support für alle Anwendungskomponenten auf IDS als einzigen Ansprechpartner zurückgreifen. Das neue SDK stellt dabei für Anwendungsentwickler alle nötigen Bibliotheken und Softwareschnittstellen bereit. Gleichzeitig ist die neu entwickelte, objektorientierte Programmierschnittstelle aber erheblich einfacher zu bedienen als GenICam, ohne dessen Funktionsumfang einzuschränken bzw. zu umgehen. Die Kommunikation zur Kamerahardware erfolgt ausschließlich über die standardisierte Schnittstelle und die Vision Transport Layer, wodurch IDS peak absolut hardwareunabhängig und standardkonform bleibt. Die Austauschbarkeit und Kompatibilität mit allen USB3 Vision und GigE Vision konformen Industriekameras bleibt erhalten. Es gibt keinerlei herstellerspezifische Einschränkungen und selbst der Mischbetrieb von Kameras verschiedener Hersteller bzw. mit unterschiedlichen Schnittstellen ist möglich.

Funktionsweise

Dazu orientiert sich IDS peak an der Modulhierarchie, die durch den GenTL Standard vorgegeben ist. Die Module sind über Deskriptoren ansprechbar, die so etwas wie Visitenkarten darstellen. So lassen sich bereits ausgewählte Informationen der Module abfragen, bevor sie verfügbar und geöffnet sind. Wohingegen die Funktionalitäten der Module in unteren Schichten durch sogenannte Eltern-Kind-Beziehungen erst dann sichtbar und nutzbar werden, wenn die entsprechenden Module geöffnet und verfügbar sind. Dieses Prinzip verringert Fehler im Umgang mit den Klassen und damit auch Entwicklungszeit. Ein Beispiel dafür ist der Zugriff auf die Funktionen einer Kamera. Nur über eine bereits geöffnete Kamera bekommt man Zugriff auf ihre Nodemap. Erst darüber sind dann detaillierte Abfragen und spezielle Einstellungen dieser Kamera möglich. Convenience-Klassen und -Funktionen, die im Standard nicht vorhanden sind, vereinfachen den Umgang mit wiederkehrenden Prozessen, wie z.B. das Device- und Speicher-Handling. Der Einsatz der Modulklassen reduziert den notwendigen Anwendungscode und verbessert damit Lesbarkeit und Stabilität der Kameraanwendung.
Mit dem DeviceManager-Modul wird das Auffinden, Listen und Öffnen von angeschlossenen Kameras und das Verwalten der verfügbaren Transport Layer und Schnittstellen einfacher. Mit einem simplen Update-Befehl scannt das Modul das gesamte System und mit wenigen Codezeilen ist ein vollständiger Device Tree aufgebaut bzw. eine bestimmte Kamera geöffnet. Vereinfacht dargestellt, reichen vier Codezeilen, um mit dem IDS peak DeviceManager-Modul eine angeschlossene Kamera zu öffnen. IDS peak wird stetig um solche Module erweitert. Geplant sind bereits eine vereinfachende Kameraklasse und ein Acquisition-Manager für die Konfiguration des Bildeinzugs. Einige weitere bekannte Methoden wie z.B. der Einsatz von Shared Pointern, die automatisch ungenutzte Speicherressourcen freigeben, oder eine modulabhängige Thread-Sicherheit machen das neue SDK zu einem objektorientierten Programmier-Interface, das Programmierern sehr viel Unterstützung und Rückmeldung bei der Arbeit bietet.

Anwendungsskalierung und Feature-Erweiterung

Auch die appbasierten Industriekameras der IDS NXT rio und rome Familien bekommen eine Vision-konforme Firmware und sind dadurch mit IDS peak programmierbar. Anwendungsprozesse, die mit der Programmier-API auf einem Host-PC entwickelt und getestet wurden, sind mit dem SDK einfach als IDS Vision App exportierbar. Selbst programmierte Visionprozesse können direkt in einer NXT Kamera wie eine App auf einem Smartphone geladen und ausgeführt werden. Mittels Trigger- und IO-Schnittstellen der Kamera lassen sich z.B. Maschinensteuerungen direkt über Ergebnisse und Prozessentscheidungen benachrichtigen. Ein zusätzlicher Desktop-PC ist je nach Anwendung nicht mehr notwendig. Durch Smart GenICam stehen die Eingangs- und Ausgangsparameter von Vision Apps zusätzlich über die standardisierte XML-Beschreibungsdatei der Kamera für Kundenanwendungen und Vision-konforme Drittanwendung zur Verfügung. IDS Kunden sind dadurch in der Lage den Featureumfang ihrer NXT Kameras mit IDS peak selbstständig zur Laufzeit zu erweitern bzw. zu ändern. Softwareentwickler müssen zur Vision App-Erstellung keine neue Programmiersprache lernen. Mit IDS peak programmieren sie sowohl Desktopanwendungen als auch gleichzeitig Vision Apps für intelligente Kameras der NXT Familie. IDS stellt auch seinen USB3 Vision und GigE Vision Industriekameras mit IDS peak eine vollständige Softwareunterstützung zur Seite. Bestandskunden der IDS Software Suite können nun auch in der Vision Welt von einfacher Handhabung und uneingeschränktem Herstellersupport profitieren.

Themen:

| Fachartikel

Ausgabe:

inVISION 4 2019
IDS Imaging Development Systems GmbH

Das könnte Sie auch Interessieren