Startseite » Allgemein »

Voll integrierte Bildverarbeitung

Entwicklungs- und Laufzeitsystem
Voll integrierte Bildverarbeitung

Mit dem integrierten Bildverarbeitungssystem NeuroCheck steht dem Applikationsingenieur ein System zur Verfügung, das die Performance dedizierter Bibliotheken mit der komfortablen grafischen Entwicklung durch Rapid-Prototyping-Werkzeuge und der Erweiterbarkeit komponentenbasierter Systeme verbindet.

In allen Bereichen der Industrie steigen die Qualitätsanforderungen. Zugleich werden Zeitpläne ständig knapper und Budgets immer enger. Sowohl Produkte als auch Fertigungseinrichtungen sollen bei höchster Qualität so schnell und kostengünstig wie möglich hergestellt werden. Dieser Trend erfasst natürlich auch die Hersteller von Anlagen für die automatisierte Sichtprüfung. Der hohe Software-Anteil und die besonderen Entwicklungsbedingungen dieser Systeme führen dabei zu spezifischen Problemen, insbesondere auf der Softwareseite.

Entwicklungszyklus von Bildverarbeitungsanlagen
Die „in Software gegossene“ Auswertestrategie ist, ungeachtet der Wichtigkeit von Bildaufnahme und Beleuchtung, das eigentliche Herz einer Bildverarbeitungsanlage. Ein besonderes Problem der Auswertesoftware liegt darin, dass ihre Entwicklung in einer ständigen Wechselwirkung mit den äußeren Bedingungen wie der Beschaffenheit der Prüfteile, den Aufnahmebedingungen und der Beleuchtungssituation stattfindet. Die Auswertestrategie, die sich schließlich in der Software manifestiert, kann nur anhand der realen Fertigungsbedingungen endgültig festgelegt werden. Andererseits gehören aber die softwareseitigen Auswertungsmöglichkeiten mit zu den Randbedingungen, die der Applikationsingenieur beim Aufbau der Anlage zu berücksichtigen hat.
Diese Situation erzeugt einen Entwicklungszyklus, der von ständigen inkrementellen Änderungen gekennzeichnet ist, was zu unvertretbar langen Entwicklungszeiten führt. Dies gilt um so mehr, da Bildverarbeitungsanlagen in hohem Maße durch „kriechende Spezifikationen“ gekennzeichnet sind, das heißt durch die Notwendigkeit, spät im Entwicklungsprozess oder nach Inbetriebnahme noch gravierende Änderungen vorzunehmen.
Zur Bewältigung derartiger Probleme sind im Bereich der Bildverarbeitungssoftware wie auch in anderen Gebieten der Softwaretechnologie zwei Trends zu beobachten: Rapid Prototyping und Komponentenbasierte Entwicklung.
Rapid Prototyping
Hierunter versteht man das rasche, interaktive Erstellen von Prototypen, die dem Verhalten und der Bedienung der zu entwickelnden Anwendung möglichst nahe kommen. In der Regel läuft dies so ab, dass der Applikationsingenieur mit Hilfe des Prototyping-Werkzeugs experimentiert, bis er eine Folge von Bildverarbeitungsschritten mit den zugehörigen Parametern gefunden hat, die aus dem Bildmaterial die gewünschte Qualitätsaussage gewinnen. Um die für Industrieanlagen nötige Verarbeitungsgeschwindigkeit zu erreichen, wird diese Vorschrift dann in der Regel als C-/C++ – Quelltext exportiert und in die endgültige Anwendung eingebunden.
Der wesentliche Vorteil des Rapid Prototyping liegt darin, dass der Applikationsingenieur mit einem interaktiven Werkzeug arbeiten kann, ohne zu programmieren, der Programmierer aber die Ergebnisse dieser Arbeit in Quelltextform erhält.
Allerdings muss der Programmierer um den vom Prototyping-Werkzeug erstellten Quelltext herum noch einen keineswegs trivialen Programmrahmen schaffen. Desweiteren ist die Erzeugung von Programmcode mit Hilfe grafischer Werkzeuge in aller Regel irreversibel. Änderungen, die bei der Integration des erzeugten Quellcodes in die Gesamtanwendung erforderlich werden, lassen sich dann nicht in die grafische Umgebung zurückführen. Dadurch wird die Synchronisation der Arbeit des Applikationsingenieurs mit dem Prototyping-Tool und die des Programmierers an der endgültigen Anwendung stark erschwert und häufig nur noch manuell möglich sein.
Komponentenbasierte Entwicklung
Der zur Zeit wohl auffälligste Trend in der Software-Technologie ist der Versuch, die Entwicklung von Software durch den Einsatz vorgefertigter Komponenten (analog zur Verwendung standardisierter Hardwarekomponenten) zu industrialisieren. Dadurch soll die Entwicklungsgeschwindigkeit erheblich gesteigert und im Idealfall die Programmierung so stark vereinfacht werden, dass der Applikationsingenieur die Anwendung selbst programmieren kann. Dadurch könnte der oben beschriebene inkrementelle Entwicklungszyklus beschleunigt werden.
Nun ist die Wiederverwendung einmal gefundener Lösungen in der Software-Entwicklung keineswegs eine neue Idee, sondern mindestens so alt wie die ersten Unterprogramm-Bibliotheken oder die Automatisierung mit Hilfe von Batchdateien. Unter komponentenbasierter Entwicklung im heutigen Sinn versteht man jedoch fast ausschließlich die Verwendung fertiger Binärkomponenten, die über Standardschnittstellen des jeweiligen Betriebssystems angesprochen werden. Die verbreitetste derartige Schnittstelle ist das Component-Object-Model (COM) von Microsoft Windows, das die Grundlage für Technologien wie OLE-Automation und Active-X-Controls darstellt. Solche Komponenten zeichnen sich vor allem durch folgende Eigenschaften aus:
l Bindung zur Laufzeit (statt statisch wie bei traditionellen Funktionsbibliotheken),
l Unabhängigkeit von bestimmten Compi- lern oder Programmiersprachen durch Spezifikation einer Kommunikations- schnittstelle,
l Eignung für visuelle Programmiersyste- me.
Besonders der letzte Punkt, die Ausrichtung auf die Entwicklung mit Systemen wie Visual Basic, führt die Hersteller von Komponentenbibliotheken zu der Aussage, der Anwendungsentwickler brauche nur noch mit einer Programmiersprache wie Visual Basic, Delphi oder auch C++ die logischen Verknüpfungen zwischen den Komponenten herzustellen.
Man sollte jedoch keinesfalls unterschätzen, welche Komplexität sich hinter diesem Satz verbirgt. Die Aufgabe des Programmiers ist keine geringere als die, ein schlüssiges Systemkonzept zu schaffen, in dem die verschiedenen Objekte miteinander und mit der Außenwelt kommunizieren können. Da COM nur den Austausch primitiver Datentypen zwischen Komponenten spezifiziert, nicht aber den komplexer Datenobjekte, wie sie in der Bildverarbeitung beispielsweise als Objektkonturen oder Flächenbeschreibungen auftreten, kann der Programmieraufwand für diesen Rahmen in jeder einzelnen Anwendung sehr aufwendig sein.
In diesem Zusammenhang ist es aufschlussreich, dass in sicherheitskritischen Bereichen wie Militär und Nukleartechnik hauptsächlich sehr große Komponenten eingesetzt werden: grafische Benutzeroberflächen, Betriebssysteme, Datenbanken1. Diese Komponenten decken jeweils ein ganzes Anwendungsgebiet ab und können daher die gesamte Verknüpfungslogik und den Datenfluss in dem betreffenden Anwendungsbereich vollständig kapseln. Dadurch wird sowohl die Anwendung leistungsfähiger als auch die Entwicklung effizienter, da in einem System mit einer durchgängigen Gesamtarchitektur komplexe Datenstrukturen auf einer hohen Abstraktionsstufe transportiert werden können und wesentlich weniger Arbeit für die Erstellung der Verknüpfungslogik und der Schnittstellen zur Außenwelt anfällt.
Integrierte Industrielle Bildverarbeitung
Den oben beschriebenen Ansätzen liegt die Feststellung zugrunde, dass die Anwendungsentwicklung am effizientesten ist, wenn der Applikationsingenieur selbst auswertet, andererseits er nicht sinnvoll die traditionelle Arbeit eines Programmierers übernehmen kann. Beide Ansätze bringen jedoch spezifische Probleme mit sich.
Ein Bildverarbeitungswerkzeug, das diese Probleme lösen soll, muss dem Applikationsingenieur ermöglichen, nicht nur einen Prototypen der Auswertung selbst zu erstellen, wie bei einem Rapid Prototyping Tool, sondern tatsächlich die gesamte Anwendung. Dazu muss es sowohl Prototyping-Tool als auch Laufzeitumgebung sein. Ein solches integriertes System muss ein breites Spektrum an Bildverarbeitungsaufgaben abdecken und sowohl hinsichtlich der Algorithmen als auch der Schnittstellen nach außen hinreichend leistungsfähig sein, so dass komplette Anlagen realisiert werden können, ohne dass der Applikationsingenieur ad hoc Erweiterungen vom Programmierer verlangen muss.
Damit wird der Programmierer aus dem Zyklus der Erstellung spezifischer Bildverarbeitungsanlagen weitgehend herausgehalten. Ebenso wenig muss sich der Applikationsingenieur mit softwaretechnischen Details auseinandersetzen, wie es der Fall wäre, wenn er die Anwendung selbst aus Komponenten zusammenstellen müßte. Die Tätigkeiten von Applikateur und Programmierer können weitgehend entkoppelt werden, so dass sich jeder auf sein Spezialgebiet konzentrieren kann.
Es ist allerdings klar, dass ein universell angelegtes integriertes System weder alle Spezialfälle jeder beliebigen Anwendung berücksichtigen kann noch sich der zunehmenden Integration und Vernetzung von Programmen und Systemen entziehen kann. Die integrierten Makrosprachen, Plug-In-Schnittstellen und OLE-Fähigkeiten von Office-Produkten oder Web-Browsern zeigen deutlich die Allgemeingültigkeit dieser Regel.
Ein universelles Bildverarbeitungssystem muss daher sowohl in seiner Funktionalität erweiterbar sein, als auch selbst als „große“ Komponente fungieren können, die das Anwendungsfeld Bildverarbeitung umfassend kapselt. Die Verwendung betriebssystemweit unterstützter Standards für diese Erweiterungen eröffnet dabei Programmierern und anderen Applikationen einen möglichst einfachen und allgemeinen Zugang zum System.
…mit NeuroCheck
Das Bildverarbeitungssystem NeuroCheck wurde aufgrund dieser Überlegungen als universelles, erweiterbares System entwickelt, das durch seine OLE-Automations-Schnittstelle auch als Komponente verwendet werden kann. Diese bietet sehr mächtige und hochintegrierte Bildverarbeitungsfunktionalität.
Die Entwicklung einer Bildverarbeitungsanwendung findet dabei vollständig grafisch-visuell in NeuroCheck statt. Das System dient gleichzeitig als Laufzeitumgebung. Es wird also weder ein Code erzeugt, der in andere Systeme eingebunden werden würde, noch wird ein Skript-Programm interpretiert – mit den dafür typischen Performanceverlusten. Die Prüfanwendung wird mit der vollen Geschwindigkeit compilierter Bibliotheksroutinen ausgeführt. Durch das integrierte Konzept kann die Prüfanwendung dennoch jederzeit mit dem vollen Komfort der grafischen Benutzerschnittstelle optimiert und wechselnden Anforderungen angepasst werden.
NeuroCheck wurde speziell für die industrielle Prüftechnik ausgelegt. Die dafür notwendige Prozessanbindung, zum Beispiel über digitale oder serielle Schnittstellen, ist daher ebenso in den Programmrahmen integriert wie standardisierte Datenausgabefunktionen für die Qualitätssicherung und eingebaute Möglichkeiten zur Diagnose von Fehlerursachen.
NeuroCheck deckt alle wesentlichen Anwendungsbereiche der industriellen Sichtprüfung wie Anwesenheitskontrolle, Barcode-Identifikation, Vermessung, Schrifterkennung, Oberflächenprüfung und Farbverarbeitung ab. Die Verwendung derselben Software für eine Vielzahl unterschiedlicher Anlagen reduziert Einarbeitungs- und Schulungsaufwand und verkürzt somit die Entwicklungszeiten noch weiter.
Spezielle Anforderungen einzelner Anwendungen, die von den eingebauten Funktionen nicht abgedeckt werden, lassen sich über eine DLL- Schnittstelle erfüllen. Dabei können auch OCX- Komponenten oder Routinen aus anderen Bibliotheken verwendet werden. Da dem Programmierer hierbei die gesamte Anwendungslogik des Programmrahmens bereits zur Verfügung steht, kann er sich voll auf die algorithmische Lösung konzentrieren. Mit Hilfe dieser Schnittstelle wurden von NeuroCheck-Anwendern bereits vielfältige Funktionen realisiert, wie zum Beispiel komplexe mathematische Auswertungen, Übernahme von Fremddaten aus anderen Messsystemen und Ansteuerung von Industrierobotern.
Auf der anderen Seite ermöglicht das OLE-Interface die Verwendung von NeuroCheck als Komponente in einem größeren System. Auch in diesem Fall ist die Aufgabe für den Programmierer weitaus einfacher als bei der Integration einer Vielzahl kleinerer Komponenten. Die gesamte Bildverarbeitung läuft voll integriert in NeuroCheck ab. Der Programmierer muss nur noch die benötigten Daten abholen, die dann mit denen anderer Systeme verknüpft werden können. Das OLE- Interface wurde von NeuroCheck-Anwendern beispielsweise zur Kopplung an ein Datenbanksystem zur Adressverifikation an Etikettendruckern genutzt und zur Realisierung der Steuerung eines komplexen Prüfplatzes mit mehreren Stationen.
Konfigurieren statt Programmieren
Die Konzeption als integriertes und erweiterbares System, die NeuroCheck zugrunde liegt, bietet folgende wichtigen Vorteile:
l Realisierung vollständiger Sichtprüflösungen durch den Applikationsingenieur ohne zusätzli- che Software-Entwicklung.
l Senkung von Entwicklungszeit und -kosten durch vollständig visuell geführte Entwicklung von Bildverarbeitungsanwendungen
l Verbindung von Entwicklungs- und Laufzeitsystem, dadurch Optimierung vor Ort schnell und komfortabel möglich.
l Entkopplung von Software- und Anwendungsentwicklung, dadurch Verbesserung der Soft- warequalität gegenüber Einzelentwicklungen.
Damit bietet NeuroCheck ideale Voraussetzungen für die wirtschaftliche Entwicklung von Sichtprüfanlagen im Rahmen enger Zeitpläne und begrenzter Programmiererkapazität.
Weitere Informationen A QE 414
Newsletter

Jetzt unseren Newsletter abonnieren

Quality Engineering
Titelbild QUALITY ENGINEERING Control Express 1
Ausgabe
Control Express 1.2024
LESEN
ABO
Webinare & Webcasts

Technisches Wissen aus erster Hand

Whitepaper

Whitepaper zum Thema QS


Industrie.de Infoservice
Vielen Dank für Ihre Bestellung!
Sie erhalten in Kürze eine Bestätigung per E-Mail.
Von Ihnen ausgesucht:
Weitere Informationen gewünscht?
Einfach neue Dokumente auswählen
und zuletzt Adresse eingeben.
Wie funktioniert der Industrie.de Infoservice?
Zur Hilfeseite »
Ihre Adresse:














Die Konradin Verlag Robert Kohlhammer GmbH erhebt, verarbeitet und nutzt die Daten, die der Nutzer bei der Registrierung zum Industrie.de Infoservice freiwillig zur Verfügung stellt, zum Zwecke der Erfüllung dieses Nutzungsverhältnisses. Der Nutzer erhält damit Zugang zu den Dokumenten des Industrie.de Infoservice.
AGB
datenschutz-online@konradin.de