Machine Vision
In die Steuerung integriert
Machine-Vision-Systeme arbeiten bisher häufig als eigenständige Teillösung ohne direkte Einbindung in die 'normale' Steuerungstechnik. Es gibt jedoch Wege, die Bildverarbeitung direkt im Steuerungs-PC zu integrieren.
Bislang waren industrielle Bildverarbeitungssysteme in der Regel getrennt von der Steuerungstechnik angesiedelt. Vision-Experten haben die anstehenden Bildverarbeitungsaufgaben mit speziellen Werkzeugen in spezifischen Programmiersprachen meist auf einem eigenen PC oder in einer intelligenten Kamera gelöst. Neben einem hohen Engineering- und Supportaufwand haben solche Systeme den Nachteil, dass eine zeitliche Synchronisation zwischen Steuerungstechnik und Bildverarbeitung nahezu unmöglich ist. Beckhoff bietet Anwendern hierfür eine Alternative und erlaubt sowohl im Engineering als auch in der Runtime eine komplette Integration des Vision-Systems in die Steuerung.
Das Unternehmen verfolgt somit auch für die Bildverarbeitung den Weg, die Intelligenz in einem Industrie-PC zu konzentrieren. Die Kamera vor Ort benötigt somit keine eigene Intelligenz mehr, was kostengünstigere Systeme ermöglicht. Die Lösung im Steuerungs-PC in Software ist sehr flexibel und nur durch die Rechenleistung des IPC begrenzt. Zudem stehen im Gegensatz zu intelligenten Kameras sämtliche Bilddaten und auch Zwischenergebnisse für ein HMI oder für das Speichern von Bildern zur weiteren Analyse zur Verfügung.
Effizientes Engineering
Basis der Beckhoff-Lösung ist die Automatisierungssoftware ‚Twincat 3‘, die das Engineering von Elementen wie der Steuerungs- und Antriebstechnik, Safety- und nun auch von Vision-Aufgaben mit Hilfe von ‚Microsoft Visual Studio‘ ermöglicht. Damit steht dem Automatisierer das gleiche Werkzeug zur Verfügung, das auch der Programmierer für Standard-IT-Applikationen einsetzt. Ein wesentlicher Vorteil dieses Werkzeugs ist seine weltweite Bekanntheit und Akzeptanz. Auch die Schnittstellen zu Sourcecodecontrol, Datenbanken und Testwerkzeugen sind direkt nutzbar. Zudem lassen sich die Konfigurationen für die diversen, von ‚Twincat‘ unterstützten Feldbusse sowie mit ‚Twin-safe‘ auch die Konfiguration und Programmierung von sicherheitstechnischen Applikationen im gleichen Werkzeug durchführen. Motion mit NC PTP steht ebenso zur Verfügung wie die Konfiguration und Programmierung von CNC-Applikationen. Entsprechend konsequent war die Entscheidung, auch Bildverarbeitung in die Steuerung zu integrieren.
Ganz im Stil einer typischen SPS-Programmierung lassen sich auch Funktionen für Kontur- und Farberkennung, Keypoint Features sowie Messaufgaben nutzen.
© BeckhoffAuf dem Markt verfügbare Lösungen haben immer eigene Konfigurations- und Programmieroberflächen. Bei ‚Twincat Vision‘ werden Konfiguration, Kalibrierung und Programmierung komplett im ‚Visual Studio‘ durchgeführt. Der Anwender muss somit keine weiteren Werkzeuge oder spezielle Programmiersprachen erlernen. Die Integration in das HTML5-basierte HMI ist ebenfalls sichergestellt.
Somit erfolgt die Konfiguration einer Kamera im ‚Visual Studio‘ auf ähnlich einfache Weise wie die Konfiguration eines I/O-Knotens. Unterstützt werden hierbei alle Kameras, die GigE Vision als Bus und GenICam als Konfigurationsstandard nutzen. Durch die Unterstützung dieses Standards sind auch Kameras mit speziellen Eigenschaften leicht in das System zu integrieren. Über einen Scan werden alle an einem Netzwerk-Adapter des IPC angeschlossenen Kameras gefunden. Durch die Zuweisung jeder Kamera zur Beschreibungsdatei (GenICam) stehen sofort deren gesamte Parameter zur Verfügung. Auf diese Weise müssen weder manuelle IP-Adressen vergeben noch umfangreiche Listen mit Parametern erstellt werden. Bereits nach wenigen Augenblicken sind die Kameras einsatzbereit und die reale Aufnahme kann im ‚Visual Studio‘ eingeblendet werden. Alle Parameter lassen sich dann manuell in der Engineering-Phase oder im laufenden Betrieb durch SPS-Funktionsbausteine einstellen.
Soll das Bildverarbeitungssystem auch Vermessungsaufgaben abdecken, müssen die eingesetzten Kameras kalibriert und die Pixelgrößen in metrische Größen umgerechnet werden. Zur Kalibrierung lassen sich dabei die typischen Schachbrettmuster, Kreise oder auch dreidimensionale Kalibriermuster verwenden. Vorteilhaft ist dabei, dass nur ein einziges Bild für die Kalibrierung ausreicht: Im Servicefall, zum Beispiel beim Austausch einer Kamera und/oder eines Objektivs, erleichtert dies die Wiederinbetriebnahme und spart Kosten.
SPS-Programmierer mit Vision-Know-how
Sobald die Kamera eingerichtet und kalibriert ist, kann mit der eigentlichen Programmierung begonnen werden. Als Programmiersprachen stehen mit der in die Standard-Steuerungstechnik integrierten Lösung die gewohnten SPS-Programmiersprachen, C/C++ oder Matlab/Simulink zur Verfügung. Dies wird dazu führen, dass SPS-Programmierer zunehmend auch das Lösen von Bildverarbeitungsaufgaben übernehmen können, ohne dass Vision-Spezialisten oder Kenntnisse spezieller Programmiersprachen erforderlich sind. Somit wird sich auch die Bildverarbeitung zu einer selbstverständlichen Funktion für die Automatisierung entwickeln – ähnlich wie in den vergangenen Jahren die Funktionen Motion, Safety oder auch Messtechnik in die Steuerungssoftware integriert wurden.
Durch die in Echtzeit synchronisierten Automatisierungsanwendungen Motion, Robotik und Vision – hier die Bildverarbeitung kombiniert mit dem linearen Transportsystem XTS – erschließen sich Effizienzpotenziale für Maschinenbau und Prozessabläufe.
© BeckhoffDie Vision-Programmierung startet in der SPS durch das Hinzufügen einer Bibliothek. Damit stehen Funktionen und Funktionsbausteine für die Akquise eines Bildes, für die Aufbereitung und Filterung der Bilddaten sowie für das Erkennen von Objekten zur Verfügung. Auch das Vermessen von Objekten im Bild ist auf diese Weise möglich. Speziell im Bereich Verpackungstechnik ist das Erkennen und Identifizieren von Codes notwendig, was ebenfalls über entsprechende Bibliotheksfunktionen abgedeckt wird.
Um ein Bild in den IPC zu übertragen, muss zunächst die Aufnahme des Bildes über die Kamera getriggert werden. Das Trigger-Ereignis wird dazu meist digital ausgelöst – beispielsweise mit Hilfe einer Ethercat-Ausgangsklemme mit Distributed-Clocks-Funktionalität. Damit kann die Synchronisierung mit einer Genauigkeit im Mikrosekundenbereich erfolgen. Ist das Bild im IPC gespeichert, kommen weitere Algorithmen zur Filterung zum Einsatz. Um dabei beurteilen zu können, ob die Filter wirklich korrekt arbeiten, lassen sich alle Zwischenschritte als Bild im ‚Visual Studio‘ darstellen oder im HMI anzeigen.
Nach der Vorbereitung des Rohbildes werden die eigentlichen Such- und Analyse- algorithmen gestartet. Hier stehen derzeit mehr als 500 verschiedene Algorithmen in unterschiedlichen Kategorien zur Verfügung. Innerhalb der SPS können diese durch Online-Change-Parameter und/oder Code beliebig getauscht werden, ohne die SPS anzuhalten. Dies stellt im Vergleich zu klassischen C++-basierten Lösungen einen großen Vorteil bei der Inbetriebnahme dar.
Verzögerungen entfallen
Die präzise Vermessung einer Bohrung ist eine von zahlreichen Anwendungen, bei denen eine integrierte und hoch genau synchronisierte Vision-Lösung zur höheren Produktivität und Qualität im Fertigungsprozess beiträgt.
© BeckhoffAlle Bildverarbeitungsalgorithmen werden in der ‚Twincat‘-Echtzeit ausgeführt, was den Vorteil mit sich bringt, dass Vision-Algorithmen und SPS/Motion/Messtechnik synchron arbeiten. Die bisher nötige Kommunikation zwischen einer Nicht-Echtzeit-Applikation und der SPS/Motion/Messtechnik-Echtzeit-Umgebung ist nicht mehr nötig. Dadurch entfallen bisher übliche Verzögerungen aufgrund von Kommunikation und Jitter.
Mit einer eigens entwickelten LED-Ansteuerungsklemme für die Beleuchtungssteuerung bei Vision-Applikationen unterstützt Beckhoff die Integration der Bildverarbeitung in die Steuerungstechnik mit einem ersten speziellen Hardwareprodukt.
© BeckhoffDie Integration der Bildverarbeitung in die SPS hat den weiteren Vorteil, dass der SPS-Programmierer das Ergebnis eines Bildverarbeitungsalgorithmus direkt – wie einen analogen Sensor – verarbeiten kann. Dies verdeutlicht folgende Beispielanweisung „Wenn das im Bild erkannte Objekt rund ist, schalte diesen digitalen Ausgang auf TRUE.“ Zudem stehen dem Programmierer alle von der SPS bekannten Debugging-Features zur Verfügung. Zu jeder Zeit kann daher im Ablauf ein Bild angezeigt werden – als klassisches Monitoring einer Variablen, in diesem Fall des Bildes. Erfolgt eine Bearbeitung von Bildern in mehreren Stufen, kann das resultierende Bild in jeder Verarbeitungsstufe direkt im ‚Visual Studio‘ angezeigt werden. Auf diese Weise lassen sich Algorithmen schnell testen. Parameter können online geändert und die Auswirkungen – wie zum Beispiel die Änderung einer Region-of-Interest – direkt beobachtet werden. Durch den für SPS-Programmierer typischen Gebrauch des Online-Change sind selbst komplette Algorithmen bei laufender SPS austauschbar. Damit lässt sich die Bildverarbeitung schnell in Betrieb nehmen und optimieren.
Mit Ethercat und den verteilten Uhren (Distributed Clocks) ist auch die Synchronisation der externen Geräte einer Vision-Applikation möglich. Kameras verfügen in der Regel über einen digitalen Trigger-Eingang. Wird dieser durch einen digitalen Ausgang einer Ethercat-Klemme angesteuert, kann die Bildaufnahme hochgenau zum Beispiel mit der Position eines Förderbandes abgeglichen werden. Auch eine zeitlich exakte Ansteuerung von Beleuchtungskomponenten im µs-Bereich ist mit Ethercat und einer speziell für das Ansteuern von LED-Beleuchtungen entwickelten Ethercat-Klemme realisierbar.
Autor:
Dr. Josef Papenfort ist Produktmanager ‚Twincat‘ bei Beckhoff Automation in Verl.














