Der schnelle Weg zum Vision Standard

Einfache Portierung einer IDS Software Suite-Bestandsanwendung

Mit IDS peak steht nun auch den IDS USB3- und GigE-Vision Industriekameras eine vollständige Softwareunterstützung zur Verfügung. Bei neuen Kameraprojekten profitieren IDS Kunden damit auch in der Vision Welt von einfacher Handhabung und uneingeschränktem Herstellersupport. Doch wenn Bestandskunden ihre langjährigen IDS Software Suite Anwendungen mit neuen Standard Vision Kameramodellen modernisieren wollen oder müssen, kann die zeitaufwändige Einarbeitung in eine neue Softwarebasis und deren Inbetriebnahme den vorgegebenen Zeit- und Kostenrahmen schnell übersteigen. Für Umsteiger stellt IDS deshalb ein Hilfspaket zur Verfügung. Mit IDS sherpa ist eine IDS Software Suite-Bestandsanwendung in wenigen Schritten kompatibel mit den Vision Standards und schnell wieder produktiv.

Basis des neuen Software Development Kits IDS peak sind die Vision Standards des EMVA (GenICam) und der AIA (GigE Vision, USB3 Vision). Mit modernen Konzepten bringt die neue Kamerasoftware viele Vorteile mit sich, die nicht nur im Unterbau zu finden sind. Auch die Programmier-API wurde grundlegend überarbeitet und heutigen Bedürfnissen angepasst. Kurz gesagt, sie ist neu und funktioniert anders als die bewährte IDS Software Suite!

Der Zeit- und Kostenaufwand, eine Bestandsanwendung komplett auf neue Kameras mit völlig anderem Software-Interface umzustellen, lohnt eigentlich nur, wenn diese auch in Zukunft produktiv eingesetzt und erweitert werden soll, beispielsweise um neue Funktionalitäten oder weitere Kameras einzubinden . Doch mit Unterstützung von IDS sherpa gestaltet sich die Umstellung auf IDS peak einfach und zeitsparend. Mit wenigen Schritten kann eine IDS Software Suite-Anwendung mit USB3- und GigE Vision-konformen Industriekameras wieder in Betrieb gehen, ohne das Kamera-Interface vollständig ändern zu müssen. Die verantwortlichen Softwareentwickler werden aber gleichzeitig geschult, neue Projekte mit dem neuen GenICam-konformen Software Development Kit IDS peak umzusetzen.

Was ist IDS sherpa?

IDS sherpa ist ein "Erste Hilfe" Paket für Anwender der IDS Software Suite, um bestehende Kameraanwendungen schnell auf den Betrieb mit IDS Vision Kameras umzustellen, ohne IDS peak bzw. GenICam zu kennen. Zentrale Komponente des Hilfspakets ist deshalb eine C++ Klasse, die in bestehende IDS Software Suite-Anwendungen eingebunden werden kann und sozusagen als Adapter zwischen Funktionsaufrufen der IDS Software Suite und IDS peak operiert. Mit einer API-Syntax, die der IDS Software Suite sehr ähnlich ist, erleichtert der Adapter die IDS peak-Integration in Bestandsanwendungen. Eine Übersetzungstabelle unterstützt dabei, bekannte Funktionalitäten der IDS Software Suite durch Funktionsblöcke des Adapters zu ersetzen. Zusätzlich gibt es neben einer Schritt-für-Schritt Anleitung auch Sourcecode-Beispiele, wodurch die Umstellung einfach nachvollziehbar und zugleich die Arbeitsweise mit IDS peak geschult wird.

Paketinhalt

  • Schritt-für-Schritt Anleitung "IDS sherpa Integration"
  • Übersetzungstabelle "IDS Software Suite -> IDS sherpa"
  • C++ Adapter-Klasse
  • Sourcecode Beispiele zeigen die Verwendung der Adapter-Klasse in verschiedenen Use Cases (einfacher Bildeinzug, Bildspeicher-Sequenzen, Multikamera-Mischbetrieb IDS Software Suite & IDS peak)

Was ist IDS sherpa nicht?

  • kein Wrapper
    IDS sherpa ist kein vollständiger 1:1 Wrapper der IDS Software Suite auf das neue GenICam-basierte IDS peak SDK bzw. auf GenICam selbst!
  • keine neue Schnittstelle
    Mit der Adapter-Klasse wird auch keine neue Software-Schnittstelle entstehen, die weiter gepflegt wird!
  • keine strikte Richtlinie
    Die Umsetzung in der Adapter-Klasse folgt keiner alleingültigen Regel. Der Sourcecode zeigt vielmehr Vorschläge und Möglichkeiten.
  • kein MUSS!
    Niemand muss IDS sherpa einsetzen und wer es einsetzt, kann und darf Änderungen im Sourcecode vornehmen!
  • nicht das Ziel, sondern der Weg dorthin!
    IDS sherpa ist lediglich ein Wegbereiter. Die Verwendung von Standard Vision Kameras mit IDS peak ist das Ziel. IDS sherpa zeigt die Arbeitsweise und Möglichkeiten von IDS peak und schult damit den Anwender im Umgang mit USB3 Vision- und GigE Vision-konformen Industriekameras.

Mit der Entwicklung von IDS peak stellt IDS eine neue, moderne und leicht verständlichen "It's so easy!" Programmierschnittstelle zur Verfügung, die flexibel, hardware-unabhängig und vollständig GenICam-konform ist. Im Vergleich zu GenICam selbst stellt IDS den einfachen Umgang und ein intuitives Programmiererlebnis wieder in den Vordergrund.

Eine vollständige Überdeckung der Funktionalitäten von IDS Software Suite und IDS peak ist schon aufgrund des unterschiedlichen Konzepts und Arbeitsweisen der beiden Schnittstellen nicht gegeben und auch in Zukunft nicht sinnvoll herzustellen. Viele Vorteile der eigentlichen Schnittstellen gehen durch eine direkte Übersetzung der Funktionalitäten verloren. Durch zukünftige Erweiterungen des IDS peak SDK kann der Funktionsumfang auch nicht identisch bleiben.

KEINE IDS peak Referenzimplementierung!
Die Wiederherstellung von Funktionalität der IDS Software Suite durch die IDS sherpa Adapter-Klasse darf keinesfalls als Referenzimplementierung für IDS peak verstanden werden! IDS peak folgt durch die GenICam-Basis einem anderen Funktionskonzept, wodurch viele Funktionalitäten anders ablaufen und aufgerufen werden. Auf Anwendungsebene ist genug Raum, um den Austausch einer Schnittstelle optimal vorzunehmen. Die Funktionsebene ist hingegen nur sehr umständlich und nur mit viel Aufwand wieder herstellbar. Der einzige Sinn der Kompatibilität auf dieser atomaren Ebene ist der Komfort, der einem "Wrapper" gleicht. Durch den offenen Sourcecode von IDS sherpa können Programmierer aber selbst entscheiden, ob sie den Komfort dieser Kompatibilität nutzen oder durch eine IDS peak Referenzimplementierung ersetzen und damit zukunftssicher machen.

Wem hilft IDS sherpa?

IDS sherpa richtet sich speziell an IDS-Bestandskunden, die bereits eine Kameraanwendung mit der IDS Software Suite betreiben und diese schnell für die Nutzung von Standard Vision Kameras umstellen wollen oder müssen. Durch Nutzung der mitgelieferten Adapter-Klasse sparen Entwickler der uEye Bestandskunden die Zeit zur vollständigen Einarbeitung und Integration von IDS peak, bzw. GenICam. Folgende beiden Anwendungsfälle verdeutlichen den Einsatzzweck von IDS sherpa:

Use Case 1: Eine Bestandsanwendung, umgesetzt mit der IDS Software Suite, muss mit einer neuen Vision Standard-konformen IDS Kamera ausgerüstet werden.
Ein Systemintegrator ist verantwortlich für eine Anlage mit uEye Kameras und den Programmcode, basierend auf der IDS Software Suite. Die Anlage muss aktualisiert werden und soll in dem Zuge mit IDS Kameras höherer Auflösung bestückt werden. Doch die benötigten Kameramodelle gibt es ausschließlich mit IDS Vision Firmware! Das bedeutet, sie nutzen bereits den neuen einheitlichen und zukunftsweisenden USB- oder GigE-Vision Standard und sind daher nicht mehr direkt lauffähig mit der Bestandsanwendung! Der Betreiber muss die Anlage in kürzester Zeit modernisieren und schnell wieder einsatzbereit machen. Er steht vor der Aufgabe, die Anwendung für eine völlig neue, zur Software inkompatible Kamera umzubauen, bei minimalem Kosten- und Zeitaufwand.
Mit IDS sherpa bekommt er eine funktionierende Adapter-Klasse, die seine Entwickler mit wenig Aufwand integrieren können. Die Anwendung wird damit annähernd 1:1 mit IDS Vision Kameras laufen. Die betroffenen Entwickler lernen zudem den Umgang mit Vision bzw. IDS peak, um neue Projekte direkt damit zu entwickeln. Mit IDS Vision Kameras behält seine Anwendung zudem gleichbleibende Qualität der Kamerabilder.

Use Case 2: In einer bestehenden IDS Software Suite-Anwendung mit UI-Kameras sollen oder müssen IDS Vision Kameras parallel betrieben werden.
Eine Bestandsanlage, die mit der IDS Software Suite programmiert wurde, soll neben den Bestandskameras parallel mit neuen Kameras arbeiten, die nur mit Vision Firmware angeboten werden. Auch hier muss der Betreiber die Anlage in kürzester Zeit modernisieren und sie schnell wieder einsatzbereit machen, bei minimalem Kosten und Zeitaufwand. Er steht vor der Überlegung, ob und wie er die Abläufe seiner Software zusätzlich zur IDS Software Suite mit einer anderen Kamera-Software aufrüstet oder ob er unter Umständen alle Bestandskameras ersetzt und auf eine einzige neue Kamerasoftware setzt.
Das mitgelieferte Sourcecode-Beispiel "IdsSherpaMulti" zeigt, wie ein Mischbetrieb mit der IDS sherpa Adapter-Klasse umgesetzt werden kann. Auch diese Anforderung ist mit IDS sherpa schnell und kostensparend realisiert. Nach der Umstellung werden die Bestandskameras vom Adapter über die IDS Software Suite angesprochen, die Vision Kameras arbeiten hingegen schon mit IDS peak. Durch IDS sherpa werden aber sowohl die Bestandskameras als auch die neuen Vision Kameras mit der selben Codebasis betrieben und liefern damit weiterhin identische Qualität für die Bestandsanlage.

Wie hilft IDS sherpa?

IDS sherpa minimiert den Aufwand, eine Bestandsanwendung auf IDS Vision Kameras umzurüsten. Die mitgelieferte C++ Adapter-Klasse "IdsSherpa" übersetzt API-Funktionsaufrufe der IDS Software Suite beispielhaft in entsprechenden Funktionen von IDS peak. Durch Einbindung der Klasse in eine IDS Software Suite Anwendung kann ein Entwickler bereits die wichtigsten Umsetzungen von Kamera-Funktionalitäten mit der Vision-basierten Kamerasoftware IDS peak verwenden. Das spart eine Menge Zeit und die Anwendung kann mit wenigen weiteren Modifikationen im Handumdrehen mit IDS Vision Kameras wieder in Betrieb gehen. Zudem lernen die betroffenen Entwickler bereits den Umgang mit Vision bzw. IDS peak, um neue Projekte direkt damit zu entwickeln.

Bestandsanwendungen mit IDS sherpa modernisieren
Bestandsanwendungen mit IDS sherpa modernisieren

Ausgangspunkt für diese beispielhafte Schritt-für-Schritt Portierung ist ein Windows-Entwicklungs-PC (Windows 7/8/10) mit dem Quellcode Ihrer MFC-Bestandsanwendung und der installierten IDS Software Suite. Beispielhaft verwenden wir im Techtipp das uEye Sourcecode-Beispiel "IdsSimpleLive", das Sie im Installationsverzeichnis der IDS Software Suite finden.

Voraussetzungen für die Portierung

Folgende Komponenten benötigen Sie für die beispielhafte Durchführung der Portierung der Bestandsanwendung:

  • Bestandskamera der IDS Software Suite Anwendung
  • IDS Vision Kamera mit geeignetem Feature-Umfang
  • IDS peak SDK (ab v1.1)
  • IDS sherpa Software Paket
  • Entwicklungsumgebung mit einem Compiler für C++ Version 14 (z.B. Visual Studio 2015 oder höher)

IDS peak ist unser modernes Software Development Kit für alle USB3 Vision- und GigE Vision-konformen Industriekameras. Die IDS peak Entwicklungs-Bibliotheken basieren auf modernen C++ Klassen und Objekten und setzt deshalb einen ebenso modernen Compiler voraus, der die eingesetzten Funktionalitäten kennt und unterstützt.

Schritt 2: Bestandsanwendung mit neuem Compiler erstellen

Um sicherzustellen, dass alle Sourcen und Bibliotheken vorhanden sind und mit der neuen IDE funktionieren, erstellen Sie Ihre unveränderte Bestandsanwendung damit zuerst neu. Nehmen Sie alle notwendigen Änderungen vor, um die Anwendung mit der IDS Software Suite erstellen und mit der Bestandskamera ausführen zu können.

Schritt 3: IDS peak installieren

Installieren Sie auf Ihrem Entwicklungs-PC das aktuelle IDS peak SDK, das Sie auf der IDS Webseite herunterladen können. Ist alles fertig eingerichtet, testen Sie Ihre neue IDS Vision Kamera. Starten Sie dazu das im Lieferumfang enthaltene IDS Vision Cockpit und öffnen Sie die angeschlossene Kamera. Zeigt die Kamera ein Livebild können Sie die Portierung Ihrer Anwendung fortsetzen.

Schritt 4: (optional) IDS sherpa Beispielanwendungen erstellen und testen

An dieser Stelle können Sie zum Testen von IDS sherpa, IDS peak, der neuen IDE und der Vollständigkeit aller benötigten Sourcecode Dateien auf die mitgelieferten Beispielanwendungen zurückgreifen. Alle notwendigen Änderungen sind darin bereits vorgenommen. Öffnen Sie dazu das entsprechende Visual Studio Beispielprojekt und erstellen Sie die Applikation. Die Beispiele zeigen, wie unterschiedliche Basisfunktionalitäten mit IDS sherpa bzw. IDS peak umgesetzt werden. Wenn Sie die Beispiele korrekt erstellen und ausführen können, ist sichergestellt, dass alle Voraussetzungen erfüllt sind und IDS sherpa mit IDS peak auf Ihrem PC funktioniert. Jetzt können Sie mit der Portierung Ihrer Anwendung fortfahren.

  • IDS sherpa - Freeze
    Einzelbilder einer Kamera abrufen und in einem Dialogfenster rendern.
  • IDS sherpa - Live
    Kontinuierliches Livebild einer Kamera in einem Dialogfenster darstellen unter Verwendung von Window-Messages.
  • IDS sherpa - Multi
    Paralleler Betrieb der IDS Software Suite und IDS peak in einer Anwendung mit IDS sherpa als Kamera-Basisklasse.
  • IDS sherpa - Sequence
    Bildspeicher-Sequenzen mit IDS peak bzw. IDS Software Suite verwenden.

Tipp
In allen Sourcecode Beispielprogrammen kann mittels der Präprozessor-Anweisung "USE_SHERPA" zwischen Bestandscode mit der IDS Software Suite und der IDS sherpa Implementierung umgeschaltet werden. Mit Verwendung des Adapters entscheidet dann lediglich das Kamera-Handle, ob mit IDS peak (IdsSherpa_peak.cpp) oder der IDS Software Suite (IdsSherpa_ueye.cpp) Kameras angesprochen werden.

Tipp
Wenn Sie mehrere Kameras angeschlossen haben, verwenden Sie die Seriennummern der Testkameras, um sie zu öffnen. Ändern Sie dazu den "InitCamera" Aufruf, indem Sie die Seriennummern als Parameter-String übergeben. Bsp. "ret = m_hCam->InitCamera("4002890498");"

Schritt 5: IDS sherpa in Bestandsanwendung integrieren

Jetzt kann die eigentliche Portierung Ihrer Anwendung mit Hilfe von IDS sherpa erfolgen. Dazu sind nur noch wenige Änderungen am Sourcecode Ihrer Anwendung vorzunehmen:

  • IDS peak Bibliotheken und Header in den Projekteigenschaften integrieren und Compiler Flags setzen
  • Die Adapter-Klasse von IDS sherpa importieren
  • Funktionsaufrufe der IDS Software Suite durch IDS sherpa Funktionen ersetzen

Ab jetzt sollte Ihre Anwendung wieder kompilieren. Durch die IDS sherpa Adapter-Klasse wird die Kameraanbindung mit der IDS Software Suite komplett auf den Vision Standard mit IDS peak umgestellt. Das bedeutet Sie können ab jetzt jede GenICam-konforme IDS Kamera in Ihrer Anwendung verwenden. Wenn Sie Ihre Anwendung über die bisherigen Features hinaus erweitern möchten, können Sie das ab jetzt direkt mittels der IDS peak Programmierschnittstelle erledigen.

Empfehlung

IDS sherpa ist hilfreich, um IDS Software Suite-Bestandsanwendungen schnell mit IDS Vision Kameras wieder in Betrieb zu nehmen und um Entwickler im Umgang mit IDS peak zu schulen. Doch wie in diesem Techtipp erklärt, ist IDS sherpa kein eigenständiges Softwareprodukt bzw. eine neue Schnittstelle, die Sie in neuen Kameraprojekten einsetzen sollen. Als bewusster Anwender der IDS Software Suite haben sie mit Durchführung des Techtipps auch das neue GenICam-basierte IDS peak SDK kennengelernt. Mit seiner leichtverständlichen "It's so easy!" Programmierschnittstelle vereinfacht es den Umgang mit GenICam. Verwenden Sie IDS peak als Schnittstelle für jede neue Kameraanwendung und profitieren Sie auch in Zukunft mit allen neuen USB3 Vision- und GigE Vision-konformen IDS Industriekameras vom intuitiven Programmiererlebnis des modernen Software Development Kit.