Wie Bilderfassung und -verarbeitung die automatisierte Inspektion vereinfachen Auf dem Weg zur automatisierten Inspektion

Redakteur: Silvano Böni

Bilderfassung und -verarbeitung als Bestandteil von Produktionsanlagen ist kein neuer Technologietrend. Allerdings werden Systeme immer komplexer und die Leistungsanforderungen strikter. Die laufenden Verbesserungen bei Prozessortechnologien sorgen zwar für Fortschritte beim Durchsatz für Systeme zur Bilderfassung und -verarbeitung, da die Bearbeitung der Bilder in vielen Produktionsumgebungen nicht länger einen Engpass darstellt. Durch die erhöhten Geschwindigkeiten gestaltet sich jedoch die Synchronisierung schwieriger.

Firmen zum Thema

Bildverarbeitungssysteme wie das NI CVS-1457RT kombinieren einen FPGA mit einem Prozessor zur nahtlosen I/O-Synchronisation.
Bildverarbeitungssysteme wie das NI CVS-1457RT kombinieren einen FPGA mit einem Prozessor zur nahtlosen I/O-Synchronisation.
(Bild: National Instruments)

Das Bildverarbeitungssystem ist nur ein Teil eines aus mehreren Systemen zusammengesetzten Puzzles, das mit weiteren Geräten sowie I/O synchronisiert werden muss, um innerhalb einer Anwendung gut zu funktionieren. Ein gängiges Inspektionsszenario ist das Aussortieren fehlerhafter Teile während ihres Durchlaufs durch die Fertigungsstrasse. Diese Teile bewegen sich in einem bestimmten Abstand zwischen der Kamera und dem Auswerfer, welcher die fehlerhaften Teile entfernt, auf einem Fliessband voran. Während des Transports muss die Stelle auf einzelne Teile überwacht und zu den Ergebnissen der Bildanalyse im Verlauf der Strecke in Bezug gesetzt werden, um sicherzustellen, dass der Auswerfer fehlerhafte Teile korrekt aussortiert. Für das Synchronisieren des Sortiervorgangs mit dem Bildverarbeitungssystem existieren zahlreiche Methoden, beispielsweise der Einsatz von Zeitstempeln mit bekannten Verzögerungen und Näherungssensoren, die auch die Anzahl der Teile verfolgen, die sie passieren. Die am häufigsten genutzte Methode setzt allerdings auf Encoder. Läuft ein Teil am Prüfpunkt vorbei, erkennt der Näherungssensor es und löst die Kamera aus. Nach Erreichen eines bekannten Encoder-Zählerstands sortiert der Auswerfer das Teil auf Grundlage der Bildanalyse. Die Herausforderung hierbei besteht darin, dass ein Prozessor ständig den Encoder-Wert sowie die Näherungssensoren verfolgen muss, während er Bildverarbeitungsalgorithmen ausführt, um die Teile einzuordnen und mit dem Auswurfsystem zu kommunizieren. Daraus können sich komplexe Softwarearchitekturen ergeben sowie zusätzliche Latenz und erheblicher Jitter entstehen. Des Weiteren steigt das Risiko möglicher Ungenauigkeiten und auch der Durchsatz kann sinken.

FPGA-fähige I/O vereinfacht Entwicklung

Dieser Problematik können Ingenieure dadurch begegnen, dass sie die Synchronisation vom Prozessor in einen FPGA verlagern, dessen besondere Stärke die vollständig parallele Aufgabenausführung mit hoher Geschwindigkeit sowie minimalem Jitter und geringer Latenz ist. Ein FPGA kann Digitaleingangsleitungen lesen und darauf mit einer digitalen Ausgabe innerhalb von 20 Nanosekunden reagieren. Damit ist er Prozessoren weit überlegen, bei denen es zu Softwareverzögerungen und Overhead seitens des Betriebssystems kommt. Andere Aufgaben wie Netzwerkkommunikation, Überwachungssteuerung und Bildverarbeitung lassen sich womöglich weiterhin einfacher in einem Prozessor implementieren. Die Kombination aus Prozessor und FPGA stellt daher eine Architektur bereit, die für eine Vielzahl von automatisierten Prüfanwendungen ausreichend flexibel und leistungsstark ist. Bei neuen Bildverarbeitungssystemen, wie dem Compact Vision System NI CVS-1457RT von National Instruments, kommt diese Art von Architektur zum Einsatz. Dieses System beinhaltet einen Intel Atom Prozessor für die Bildverarbeitung, Netzwerkkommunikation und viele weitere Aufgaben, die PC-gestützte Systeme in der Regel ausführen, sowie einen integrierten FPGA von Xilinx für die industrietauglichen Digital-I/Os. Sein FPGA ist für bestimmte Funktionen vorkonfiguriert und sorgt dadurch für das Erzeugen von Abtastimpulsen, die Triggerung sowie das Auslesen und das Schreiben von Daten aus beziehungsweise in Digitalleitungen. Da ein FPGA rekonfigurierbar ist, können Ingenieure ihn mit dem LabView FPGA Module anpassen, sodass sie über zusätzliche Funktionalität wie benutzerdefinierte Trigger, Timing, PWM-Ausgänge, anwenderspezifische Digitalprotokolle und Hochgeschwindigkeits-Counter verfügen. Das Einbinden FPGA-basierter I/O in Bildverarbeitungssysteme macht manche speicherprogrammierbaren Steuerungen überflüssig. Dadurch werden Systemintegration und -synchronisation noch zielgerichteter. Mit dem FPGA lassen sich Kameratriggerung und Beleuchtungsimpulse steuern, Encoder und Sensoren auslesen sowie Auswurfmechanismen lenken – alles komplett parallel und innerhalb einer einzigen Programmierumgebung.

Bildergalerie

Enge Verbindung

Wird ein FPGA in dasselbe Gerät integriert wie der Prozessor, besteht die Möglichkeit, I/O und Bildverarbeitung eng zu verbinden. Beim NI CVS-1457RT beispielsweise wird neben der FPGA- und Prozessorarchitektur eine Funktion namens Vision RIO eingesetzt, um das Bildverarbeitungssystem mit dem Auswerfer und der zugehörigen I/O synchronisieren zu können. Diese einfache Programmierschnittstelle erlaubt es dem Anwender, eine Queue auf dem FPGA zu programmieren, die digitale Ausgangsimpulse enthält. Während sich die Teile über das Fliessband bewegen und überprüft werden, wird die Queue auf Basis der Ergebnisse der Bildanalyse um Impulse ergänzt. Wenn dann dieselben Teile beim Auswerfer angelangt sind, werden die Impulse sequenziell aus der Queue entfernt. Auf das zuvor genannte Beispiel mit Encoder bezogen, würde die Programmierschnittstelle Vision RIO dafür sorgen, dass der FPGA den Encoder-Zählerwert feststellt, wenn die Kamera ausgelöst wird. Fällt ein Teil bei der Überprüfung durch, fügt das Bildverarbeitungssystem einen Offset hinzu, welcher der Entfernung zwischen Kameratrigger und Trigger des Auswerfers Rechnung trägt. Als nächstes setzt der FPGA eine Queue ein, um den zu treibenden Digitalausgang, die Triggerbedingung und die Impulsdauer zu verfolgen. Jeder Impuls in der Queue wird beim konfigurierten Encoder-Zählerwert ausgelöst, wodurch fehlerhafte Teile ausgeworfen werden. Bei diesem Szenario wird die Queue nur dann um einen Impuls erweitert, wenn ein fehlerhaftes Teil entdeckt wird. Da der Auswerfer durch einen Encoder-Zählerwert ausgelöst wird, bewegen sich die korrekten Teile weiter, während der Auswerfer auf einen Zählerwert wartet, der mit dem nächsten fehlerhaften Teil übereinstimmt. In manchen Fällen kann der Abstand zwischen überprüften Teilen, die sich auf einer bestimmten Strecke bewegen, nicht garantiert werden, da sie auf dem Fliessband verrutschen können, während sie die Strecke zurücklegen. Tritt dieser Fall ein, wird die Auswerferstation bei einem bestimmten Encoder-Zählerwert nicht ausgelöst. Stattdessen löst ein Näherungssensor nahe des Auswerfers die Queue aus, damit sie den nächsten Impuls steuert. Im Gegensatz zum zuvor dargestellten Encoder-Beispiel wird die Queue auch dann ausgelöst, wenn ein korrektes Teil vorhanden ist. Damit korrekte Teile auf dem Band verbleiben, wird für jedes korrekte Teil ein Impuls von 0 ms zur Queue hinzugefügt. Dadurch ist es möglich, die Queue auszulösen, ohne den Auswerfer zu aktivieren. Diese einfache Lösung ist ein Ergebnis der Synchronisations- und Timingvorgänge, die auf dem FPGA erfolgen. Anwender müssen daher lediglich die Queue einmal zu Beginn konfigurieren und dann Impulse auf Grundlage der Prüfung hinzufügen. Durch diese zwei einfachen Schritte ist es möglich, das Entwickeln einer vollständigen Softwarearchitektur, die von Prozessorlatenz und -jitter abhängig ist, zu umgehen. Die Programmierschnittstelle lässt sich sogar für Anwendungen mit mehreren Auswerfern erweitern. Dabei werden die Auswerfer simultan aufgrund mehrerer Eingaben wie Zeitstempel, Encoder-Eingänge und Näherungssensoren gesteuert.

Technologische Fortschritte reduzieren Verkabelung

Technologische Fortschritte bei der Synchronisation wirken sich auch auf eine komplexe Verkabelung aus. GigE Vision gehört zu den am häufigsten eingesetzten Kameraschnittstellen für Anwendungen zur automatisierten Inspektion. Da ein Standard-Ethernet-Kabel für diesen Kamerabus verwendet wird, sind grössere Kabelreichweiten zu geringeren Kosten möglich. Die Netzwerklatenz bei Ethernet ist allerdings ein Grund dafür, dass Systementwickler dedizierte Triggerleitungen zu jeder Kamera verlegen. Eine aktuelle Funktion des GigE-Vision-Standards (Action Command) kann zu einer Lösung beitragen. Sie ermöglicht das deterministische Triggern von Kameras über den Ethernet-Bus. «Action Command»-Pakete reduzieren Jitter und Latenz auf wenige Mikrosekunden, ohne dafür ein dediziertes, deterministisches Netzwerk zu benötigen. Die Verbreitung der Technologie Power over Ethernet (PoE) trägt ebenfalls zu weniger komplexer Verkabelung bei, denn bei ihrem Einsatz sind keine dedizierten Kameranetzteile mehr erforderlich. Somit können nun Stromversorgung, Bildübertragung und deterministische Triggerung der Kamera über ein einziges Ethernet-Kabel erfolgen. Das Einbinden FPGA-basierter I/O und die Verringerung der Kabelmenge durch Funktionen wie dem «Action Command» sowie PoE-Technologie zeigen deutlich, wie sich integrierte Bildverarbeitungssysteme als leistungsstarke und kosteneffiziente Lösungen für Anwendungen zur automatisierten Inspektion erweisen können. <<

(ID:43210185)