
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.
Empfehlung
IDS empfiehlt für jede neue Kameraanwendung die Verwendung von IDS peak als Programmierschnittstelle für USB3 Vision- und GigE Vision-konforme Industriekameras!
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.
Durch eine Adapter-Klasse mit Übersetzungen der wichtigsten uEye Funktionen können große Teile von Bestandsanwendungen annähernd vollständig portiert werden. Im Anhang 2 finden Sie eine Übersicht aller in IDS sherpa umgesetzten Funktionen der IDS Software Suite. Mit der editierbaren IDS sherpa-Sourcecode-Klasse kann der Anwender den Code zudem beliebig anpassen und sogar direkt mit der neuen Programmierschnittstelle von IDS peak weiterführen. IDS Sherpa ist damit "Hilfe zur Selbsthilfe" und Starthilfe für die Verwendung von USB3 Vision- und GigE Vision-konformen Industriekameras in Bestandsanwendungen.
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.
Schritt für Schritt in die Vision Welt
Es gibt verschiedene Möglichkeiten für Entwickler die Hilfen von IDS sherpa zu nutzen, um eine Anwendung für die Verwendung von IDS peak und Vision Kameras umzustellen.
- Direkte Umstellung der Anwendung nach IDS peak mithilfe der Übersetzungstabelle "IDS sherpa functions" im IDS sherpa Paket.
- Direkte Umstellung der Anwendung nach IDS peak durch kopieren von Funktions-Sourcecode aus den IDS sherpa Sourcecode-Beispielen.
- Einbinden der Adapter-Klasse "IdsSherpa" (IDS sherpa -> IDS peak) und Austauschen der Funktionsaufrufe der IDS Software Suite.
Alle Möglichkeiten sind mit unterschiedlichen Aufwänden und Einarbeitungszeit verbunden. Im Techtipp erklären wir Schritt-für-Schritt die Umstellung durch Verwendung der Adapter-Klasse, da hier am wenigsten Einarbeitung notwendig ist und durch die Klasse bereits viel Vorarbeit geleistet wurde. Dabei sind die Anforderungen natürlich bei jedem Anwender unterschiedlich, auf die wir hier nicht alle eingehen können.
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 1: Geeignete IDS Vision Kamera auswählen
Wie bereits erwähnt deckt IDS sherpa bzw. IDS peak nicht die vollständige Funktionalität der IDS Software Suite ab. Verwenden Sie Features, die in IDS sherpa nicht umgesetzt sind in Ihrer Anwendung, müssen Sie dafür trotz der Adapter-Klasse noch eigene Anpassungen im Anwendungscode vornehmen. Um nicht erst in einem späteren Schritt der Portierung auf fehlende Features zu stoßen, verschaffen Sie sich mit der IDS sherpa Funktionsliste ( siehe Anhang 2 ) einen Überblick. Wenn Sie Fragen dazu haben, sprechen Sie vor der Portierung mit unserer Systemberatung oder einem Vertriebsmitarbeiter.
Um schnell wieder zu einer funktionierenden Anwendung zu kommen, verwenden Sie ein IDS Vision Kameramodell, das alle Features Ihrer Anwendung über ihre Firmware abbilden kann. Sprechen Sie mit unserem Vertrieb über geeignete Kameramodelle.
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
Das Vorgehen zur Integration der Adapter-Klasse (inkl. Screenshots) ist im Anhang des Techtipps beschrieben:
Anhang 1: Integration von IDS sherpa in eine IDS Software Suite MFC-Anwendung
- Ordnerpfad der IDS peak SDK Header angeben
- Ordnerpfad der IDS peak SDK Bibliotheken angeben
- Compiler Flags einrichten
- Programmbibliotheken für die Ausführung kopieren (post-build step)
- IDS sherpa Dateien integrieren
- Programmcode modifizieren
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.
Tipp: IDS sherpa ermöglicht Mischbetrieb
Die Verwendung der IDS sherpa Adapterklassen "IdsSherpa" ermöglicht zudem den direkten Mischbetrieb von IDS Software Suite Kameras mit Vision-konformen USB3- und GigE Vision-Kameras in Ihrer Bestandsanwendung. Die Sourcecode-Beispielprogramme zeigen, wie die Kameras mit derselben Sourcecodebasis angesprochen und betrieben werden.
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.
Anhänge
Weiterführende Infos
Wenn Sie noch Fragen zu IDS sherpa haben, sprechen Sie mit unserem Vertrieb oder der Systemberatung. Weitere Infos zu IDS sherpa oder unserem modernen Software Development Kit IDS peak für alle USB3 Vision- und GigE Vision-konformen Industriekameras finden Sie mit folgenden Links:
- Webseite zu IDS peak
- IDS peak Fachbeitrag mit Erklärungen und allen Hintergründen zum neuen SDK
- IDS sherpa Download
- Video-Tutorial "In wenigen Schritten zur IDS peak Anwendung"
- USB3 Vision- und GigE Vision-konforme IDS Kameras
- Kontaktformular