Moderne Produktionsanlagen sind mit einer Vielzahl digitaler Schnittstellen ausgestattet. Sie ermöglichen eine effiziente Überwachung, Steuerung und Datenanalyse. Aber was ist mit den vielen älteren, analogen Maschinen und Anlagen, die in zahlreichen Fabriken immer noch in Betrieb sind? Diese Anlagen sind oft nicht nur robust und zuverlässig, sondern auch finanziell abgeschrieben und daher aus wirtschaftlicher Sicht immer noch sehr wertvoll. Ihr Manko: Sie sind nicht für die digitale Welt gerüstet.
Genau hier setzt der hier vorgestellte Prototyp an. Es geht darum, analoge Anzeigen – wie sie beispielsweise an alten Produktionsanlagen zu finden sind – zu digitalisieren. Durch die Digitalisierung dieser Schnittstellen können auch diese “Oldtimer” in das digitale Zeitalter überführt werden. Das ermöglicht nicht nur eine bessere Integration in moderne Produktionsumgebungen, sondern auch eine datengestützte Analyse und Optimierung.
Der Versuchsaufbau
Der zugrunde liegende Use Case umfasst die analoge Anzeige, die einen definierten Betriebsparameter einer fiktiven Produktionsanlage visualisiert. Das Ziel des Prototyps besteht darin, diesen Betriebsparameter zunächst mit Hilfe einer Kamera zu digitalisieren, und ihn im zweiten Schritt als Zeitreihenparameter in ThingsBoard zu speichern und die Live-Werte dort als Dashboard nachzubilden.
Dafür wurde mit Hilfe eines Raspberry Pi Pico Chips und einiger Hardware eine analoge Anzeige implementiert.
Der Zeiger der Anzeige wurde so programmiert, dass er einen zufälligen Wertebereich der Skala (0-15) ansteuert und dort für eine zufällige Anzahl Sekunden verweilt (zwischen 1 und 5 Sekunden).
Eine Kamera wurde dabei so ausgerichtet, dass sie die analoge Anzeige aufnehmen kann. Die Kamerabilder werden nun in Echtzeit einem selbst implementierten Computer Vision Algorithmus zugeführt, der den angezeigten Skalenwert (d.h. der Wert, auf den der Zeiger zeigt) ermittelt und an ThingsBoard weiterleitet. Dort wird der Wert als Zeitreihe gespeichert und in einem Dashboard dargestellt.
Digital Retrofitting - Der Algorithmus
Das Kernstück des Prototyps bildet dabei der Algorithmus, der die Kamerabilder verarbeitet und so die Produktionsdaten der analogen Schnittstelle digitalisiert. Er wurde von der IT-Novum konzipiert und in C++ implementiert.
Die grundlegende Idee des Algorithmus besteht darin:
- Das Kamerabild vorzubereiten.
- Die Außenkonturen des Zeigers zu erkennen.
- Anhand der Außenkonturen den Winkel des Zeigers zu ermitteln.
- Den angezeigten Skalenwert mit Hilfe des Winkels und des Skalenmodells zu berechnen.
- Die Erkennung zu stabilisieren.
- Den Skalenwert an ThingsBoard zu übermitteln.
Vorverarbeitung
Die Vorverarbeitung des Kamerabildes umfasst eine Graubildkonvertierung (die Farbwerte sind in den weiten Schritten nicht notwendig) und ein bilateraler Filter. Dieser halbwegs intelligente Filter glättet das Kamerabild (entfernt also das Rauschen) und lässt dabei die Kanten im Bild unverändert scharf.
Erkennung der Außenkonturen des Zeigers
Nun muss der Zeiger erkannt werden. Dafür greift der Algorithmus auf Altbekanntes zurück und verwendet einen sogenannten Canny Edge Detector. Dieser liefert, wie im folgenden Bild zu sehen, robust und zuverlässig die Außenkonturen des Kamerabildes.
Doch damit werden alle Kanten ermittelt, nicht bloß die des Zeigers. Um diese herauszufiltern, wird eine sogenannte Hough Transformation (HT) angewandt. Die HT ist ein Voting-Algorithmus, in dem jeder Kantenpixel (die weißen Pixel in der Abbildung oben rechts) für alle durch ihn laufenden Linien „stimmen“ darf. Die Pixel an den Außenkonturen des Zeigers stimmen unter anderem genau für die Linie, die sie alle verbindet. Und zwar einstimmig. Diese Linie (bzw. beiden Linien, da es zwei Außenseiten des Zeigers gibt) erhalten also eine Stimme von allen Pixeln, auf denen sie liegt.
Linien werden dabei in Polarkoordinaten angegeben (d.h. sie haben einen Winkel und einen Abstand zum Mittelpunkt des zugrundeliegenden Koordinatensystems). Die Wahl der Pixel wird akkumuliert, wie in folgendem Beispiel:
Links ist ein Eingabebild mit zwei sich kreuzenden Linien. Rechts ist das Abstimmungsergebnis der einzelnen Pixel angegeben. Man sieht, dass die Gewinner dieser Wahl helle Punkte ergeben. Diese Punkte definieren dann die Polarkoordinaten der beiden Linien des Eingabebildes links.
Das Ergebnis dieses Schritts sind die Außenkonturen des Zeigers, allerdings inkl. (nicht zu vermeidender) Messfehler!
Wie man sieht, werden pro Außenkontur mehrere Linien (in rot) erkannt. Um diese Messfehler zu minimieren, werden die Linien geclustert und Ausreißer entfernt. Das Ergebnis schaut wie folgt aus:
Übrig bleibt eine einzige Linie, die exakt auf dem Zeiger liegt.
Winkelschätzung
Durch die mathematische Repräsentation der (roten) Linie in Polarkoordinaten fällt der Winkel der Linie als Nebenprodukt ab, sodass dieser nicht separat berechnet werden muss.
Berechnung des Skalenwerts
Um aus dem Winkel der Linie den Skalenwert zu berechnen, bedarf es eines Skalenmodells. Dieses beinhaltet den minimalen und maximalen Winkel (hier 0 – 180°) sowie den minimalen und maximalen Skalenwert (hier 0-15). Da die Skala linear ist, kann aus dem Winkel sehr einfach der Skalenwert berechnet werden. Nicht-lineare Skalen bedürfen etwas mehr Aufwand und ihr Skalenwert kann beispielsweise mit Hilfe einer nichtlinearen Regression geschätzt werden.
Stabilisierung der Detektion
Kamerabilder unterliegen Messfehlern, und so ist die Erkennung des Skalenwerts von Natur aus ein wenig schwankend. Diese werden im Algorithmus mit Hilfe eines A/B Trackers ausgeglichen, der den aktuellen Skalenwert sowie die aktuelle Änderungsrate des Zeigers berücksichtigt. Eine (ungenaue) Messung des Skalenwerts wird so stets mit dem erwarteten Skalenwert verglichen und ein Mittelwert aus beiden gebildet. Damit stabilisiert sich der gemessene Skalenwert deutlich. Das Ergebnis sieht wie folgt aus:
Übermittlung an ThingsBoard
Nun muss der Skalenwert an ThingsBoard übermittelt werden. Dafür leitet der Algorithmus mit Hilfe des MQTT Protokolls den gemessenen Skalenwert an HiveMQ weiter. ThingsBoard am anderen Ende ruft die Skalenwerte ab und verarbeitet bzw. stellt diese in Echtzeit im Dashboard dar.
Digitale Repräsentation in ThingsBoard
In ThingsBoard wird der Skalenwert als Zeitreihe abgespeichert und Live-Daten des Algorithmus in einem Dashboard dargestellt. In der folgenden Abbildung wurden Kamerabild (und der ermittelte Skalenwert) neben das ThingsBoard-Dashboard gelegt:
Während sich der Zeiger der Anzeige bewegt, werden mit minimaler Verzögerung (im Millisekundenbereich) die aktuellen Skalenwerte im Dashboard angezeigt.
Erweiterung im Rahmen der Smart Production
Wie oben dargestellt können die Produktionsdaten alter Anlagen über Digital Retrofitting digitalisiert und so die Anlagen für Industrie 4.0 fit gemacht werden. In unserem Fallbeispiel haben wir einen Betriebsparameter einer analogen Anzeige per Kamera und entsprechendem Algorithmus digitalisiert und ThingsBoard zugeführt.
Eine denkbare Erweiterung des Use Cases an dieser Stelle wäre etwa die Implementierung von Regelketten zur Zustandsüberwachung, um Grenzbereiche des Betriebsparameters auszuloten und durch geeignete Maßnahmen automatisiert entgegenzuwirken. So können Produktionsabläufe auch mit alten Anlagen digital optimiert werden.
Fazit
Zusammenfassend ist die Digitalisierung analoger Anzeigen ein spannendes und vielversprechendes Gebiet, das zeigt, wie die Brücke zwischen alter und neuer Technologie geschlagen werden kann. Es ist ein Beweis dafür, dass auch in Zeiten rasanten technologischen Wandels der Wert bewährter Technik nicht unterschätzt werden sollte.