Blog KI2Automation
Dipl.-Ing. Johannes Hofer
Letzte Bearbeitung: 21.12.2024 (alle Urheberrechte liegen bei Johannes Hofer)
Erstes vollständiges KNN für die Automatisierung
Die Frage, ob man in der technischen Automatisierung eine KI ohne SPS-Programmierung einsetzen kann, ist nun zumindest für den digitalen Bereich beantwortet! Der analoge Teil ist keine Frage der Möglichkeit mehr, sondern nur noch eine zeitliche Angelegenheit zur Umsetzung in ein KNN.
Das im o. g. Bild dargestellte KNN (Künstliches Neuronales Netzwerk) ist Teil eines Projektes, welches aus sogenannten künstlichen Gliazellen (KGZ) besteht. Jede dieser Zellen besitzt ein entsprechendes KNN, welches der Aufgabenstellung entsprechend ausgelegt ist. Das KNN erfolgt nach einem vorgegebenen Muster und wird komplett automatisch trainiert.
Hier z. B. der von mir oft gezeigte pneumatische Zylinder, welcher mit einem Startsignal ausfährt. Die Endlagen des Zylinders sind mit Endschalter ausgestattet und liefern die entsprechenden Endlagen-Signale, damit ein automatisches Training eingeleitet werden kann. Selbstverständlich ist auch ein händisches Training zur Gewichtungen der Verbindungen zu den einzelnen KN vorbereitet. Die Verbindungen der künstlichen Neuronen können im Bild als Linien erkannt werden, welche vom Eingangslayer in die Matrix verbinden. Ebenso die Linien vom Perceptronlayer zum Ausgangslayer.
Der Starteingang wird durch ein KN vom Typ Gliazelle geliefert und besteht aus einer Kombination von Bedingungen, wie z. B. Hand oder Automatik. In der PLC-Programmierung auch als UND-ODER Verbindung bekannt. Künstliche Gliazellen und deren Bedeutung bzw. dessen Beziehungen werden in einem gesonderten Blog behandelt.
Die Matrix ist von mir speziell für die Steuerungstechnik ausgelegt und besteht aus einem First- und einem Lastlayer. Dazwischen befinden sich die Layer entsprechend der Aufgabenstellung zugeordnet. Hier sehen wir im Bild eine 2D-Matrix,welche einen Großteil der digitalen Muster abdeckt.
Die Gewichtsfaktoren eines jeden künstlichen Neurons werden zuerst auf einen Zufallswert gesetzt und danach automatisch oder händisch trainiert, indem man auf das kleine weisse Viereck im KN clickt. Dadurch wird der Zufallsgenerator aktiviert und erzeugt die Anzahl der notwendigen Zufallszahlen für dieses KN. Das Trainieren erfolgt danach mittels Click auf das KN, bis dieses feuert und ein roter Punkt gesetzt wird. Die Auslösung erfolgt durch die Sigmoid-Funktion.
Die Eingangsparameter können bis zu acht Klaster betragen. Das ist für eine KGZ bereits überdimensioniert. Aber man weiß ja nie, was da noch kommt. 😎
Erste Zusammenfassung für die Hochsprachen-Anwendung auf dem PC
Die Lerndaten zum ML sind in einer Datenbank gespeichert und werden vom Konstrukteur der Anlage oder durch den SPS-Programmierer festgelegt. Programmierkenntnisse zur SPS sind dafür nicht unbedingt erforderlich, aber analytisches Denken wird vorausgesetzt. Derzeit habe ich die wichtigsten KGZ bereits erstellt, trainiert und in einer PLC getestet. Das sind z. B. ODER-UND-Kombinationen, Timer, Counter, Speicherelemente usw. Zudem erfolgt derzeit ein spezielles Training für einen Test zur Lagerverwaltung und Steuerung eines Hallenkranes im Schüttgut-Bereich. Hier muss Pendelarmes Fahren der Laufkatze garantiert sein.
Für die PLC oder einem Mikrokontrollersystem werden zusätzliche Daten aus dem machine learning zur Auswertung im Real-Betrieb über einen Download zur Verfügung gestellt. Diese können auch im RUN-Betrieb ausgetauscht werden. Eine Auswertung für ein prozentuales Erfolgsergebnis wird durch die KI berechnet, nachdem das Training durch ML beendet wurde.
Somit ist in der PLC eine Überwachung der Prozesszustände je KGZ möglich und sorgt quasi für eine Prozessüberwachung der Steuerung in Echtzeit.
ML für KNN und die Matrix für SPS-Programmierer
Machine Learning (ML) ist eine Vorstufe zum Funktionsbaustein (FB), welche dem Pool künstliches neuronales Netz (KNN) zugeordnet ist.
Das ist neu und ersetzt im FB den so bekannten Programmiercode in den verschiedenen Programmiersprachen der SPS.
Die Matrix bildet dazu das KNN und kann nach Bedarf um eine oder mehreren Ebenen erweitert werden. In der Grundform existiert eine 2D-Matrix, welche die grundlegenden, digitalen Funktionen (UND, ODER, SET, RESET, XOR usw.) komplett ersetzen kann. Eine mögliche dritte Ebene (3D-Matrix) ist bereits vorbereitet und dient zur Erweiterung der Lerndaten, falls zwei Ebenen in der Trainingsphase ein nicht ausreichendes Ergebnis liefern. Der FB beinhaltet, wenn notwendig, den Algorithmus für das ML und wird als Bibliotheksbaustein verstanden.
Die Daten für den FB werden nach dem ML auf einem externen KI-System über eine Schnittstelle in seinem Instanz-DB zugewiesen oder eigenständig komplett in der SPS erzeugt. Diese Maßnahme stellt keine Performance-Einbuße dar, da die Ermittlung der erforderlichen Gewichtungsfaktoren üblicherweise im sogenannten Hochlauf (OB100) erfolgt.
Letztendlich ist ein ML vor dem RUN-Lauf über den OB100 sinnvoll, da die Gewichtungsfaktoren nicht automatisch im Instanz-DB vorhanden sind. Der Einsatz des FB’s aus der Bibliothek erfordert lediglich die Parameter des Bausteines (IPL und OPL) zur Erzeugung der notwendigen Steuerdaten.
Dagegen ermöglicht eine externe KI-Umgebung zudem eine ausgiebige Testphase, welche auch automatisch erfolgen kann. Das ist ein wesentlicher Vorteil gegenüber der direkten Programmierung an der SPS. Sind genügend nicht flüchtige Speicherbausteine in der SPS vorhanden, wird die externe Bearbeitung des FB’s für seine Daten wohl überwiegend eingesetzt werden, da ein Debuggen des FB’s in der SPS keinen praktischen Sinn mehr ergibt. So ist ein Einflechten des geänderten Bausteins (DB) ohne Probleme online durchführbar.
Die Lerndaten werden als Muster vorgegeben und dann automatisch über ML in der Matrix bearbeitet. So stehen alle Ergebnisse sofort für die SPS bereit zum Download. Erfolgt die Gewichtung der Matrix innerhalb der SPS, so werden nur die Modelldaten geladen.
Unter Modelldaten werden die vom Konstrukteur der Anlage wichtigsten Eigenschaften bestimmt. Dazu sind keine SPS-Programmierkenntnisse mehr notwendig. Durch die Verwendung eines KI-FBs können nun auch IEC-61131-3 Anwendungen mit ML und KNN gemischt werden! Da die Ergebnisse im digitalen KNN voraussehbar sind (boolische Algebra) und damit alle Möglichkeiten innerhalb des Netzes dargestellt werden, ist die Lernfähigkeit im Gegensatz zu analogen KNN eindeutig.
Im folgenden Bild ist eine künstliche Gliazelle (KGL) zu sehen, welche nach den Trainingsdaten einen automatischen Test durchläuft. Das Ergebnis zeigt den Testzustand und den sogenannten Propagation-Faktor (PF). Der SPS-Programmierer erreicht üblicherweise einen sehr niedrigen PF und gibt sich in den meisten Fällen mit seinem Testergebnis aus seiner eigenen Programmierung zufrieden. Erst wenn Probleme bekannt werden, wird darüber nachgedacht das Programm zu verbessern.
Nur alleine die Trainingsdaten führen schon zu diesem Erfolg und kann bewusst gesteigert werden, wenn nach dem automatischen Training von Hand nachtrainiert wird (Deep-Learning).
Eine völlig andere Herangehensweise für die Steuerungstechnik und Automatisierung mit dem Vorteil der robusten Hardware PLC und Umsetzung neuer Ideen durch die KI 😉
Ein Beispiel-Video für die SPS-Programmierer, welche immer wieder versuchen mit KNN ein Programm zu schreiben. Dieser Speicherbaustein (Flip-Flop) speichert sein Perceptron AC wieder zurück in den IPL . Eine übliche Technik, welche in KNN angewendet wird. Auch Neuronen können die Werte wieder in ein anderes Neuron zurück oder auch vorwärts kopieren, damit ein neuer Lernefekt entsteht. Diese Technik wird üblicherweise in der analogen Verarbeitung angewendet.
Analoge Verarbeitung mit KNN und Fuzzy-Logik
Eine besondere Herausforderung zeigt das obere Bild einer Vakkuum-Füllanlage (Video weiter unten). Hier erfolgt das Training nun über analoge Werte am IPL. Das händische Training durch einen Experten ist da schon komplexer und kann nicht von jedem Anwender so einfach durchgeführt werden. Deswegen ist hier ein automatisches Traing (ML) sehr wertvoll. Die Trainingsdaten werden speziell in dieser Gliazelle mit einer sogenannten Vorausschau in den folgenden Layern abgelegt. Eine besonders kluge Verwendung ein KNN mit sinngemäßer Fuzzy-Logik, da hier über das schwankende Vakuum besondere Forderungen entstehen könnten, wie z. B. die schwankenden Druckwerte zur Erfassung der Füllhöhe. Die Auslösung der Neuronen werden hier in verschiedenen Schichten erfolgen. So wie in der Fuzzy-Logik mit grob, mittel und fein. Das hat den Vorteil z. B. gegenüber einem PID-Regler, welcher u. a. sich schwer tut am Ende sauber ohne Schwingen zu regeln.
In diesem Fall ist die Anwendung über Fuzzy-Objekte gelöst worden. Hierbei wurde die Defuzzifizierung nicht wie üblich über die Fuzzyterme realisiert, sondern über das KNN. Dazu dient ein analoges Perzeptron (rechts im Bild) zur Steuerung des analogen Ventils. Wie im Bild zu sehen, haben wir hier gerade (Trainingsphase) die Situation über den Eingangswert (Istzustand) von 90.01% und dazu das Stellglied von 35.34%.
Die 12 KN (Multilayer) werden hier in verschiedenen Stufen trainiert, welche dem Fuzzythermen grob, mittel und fein entsprechen. So liefert der Multilayer am Ende der Füllung einen Korrekturwert, welcher dann nach jeder Füllung den Eingang Feedback am IPL anpasst. Die Lösung mit dem Multilayer und seinem Feedback, stellt eine optimale Lösung dar ! 😎
Eine Anwendung direkt in der SPS (Simatic S7-1500) erlaubt nun so die Druckwerte über das KNN auszugleichen und zusätzlich Differenzwerte in Merkern zu speichern. Die externe Nachbearbeitung eines KI-Systems nach dem Training entfällt somit, da sich das KNN in den verschiedenen Schichten auf die gespeicherten Daten beziehen kann! Das künstliche, neuronales Netz mit Fuzzy-Anteilen (KFNN) ist nicht nur sehr leistungsstark, sondern bietet eine ausgezeichnete Vorhersage zur nächsten Füllung, da einige Daten in der SPS nachhaltig aus dem vergangenen Prozess gespeichert wurden. 😎
Im Video zum analogen Netzwerk soll gezeigt werden, dass ein ML durch zusätzliches, händisches Training erweitert und damit verbessert werden kann. Das führt zu einem angepassten und eventuell optimalen Ergebnis zur gestellten Aufgabe, wie hier die Abfüllung über ein Vakuum.
Die Matrix besteht aus künstlichen Neuronen, deren Anzahl auf die entsprechende Aufgabe auszulegen sind. Hier reichen für die Vakkuum-Füllung 4 Layer mit je 3 KN aus. Das Training erfolgt unter der Anwendung einer Fuzzy-Idee, wie im Bild abgebildet. Es gibt insgesamt drei Bereiche, welche mit grob, mittel und fein zur Abstimmung der Auslösefunktion trainiert wurde. Hier wird wie bisher immer der positive Sigmoid als Auslösung verwendet. Die Daten zum Training sind hier in einer Tabelle festgelegt und werden in der SPS in einem DB gespeichert. Bei jedem Durchlauf (Abfüllung) wird das Ergebnis kontrolliert und als Feedback wieder in den Eingangsparameter kopiert. So können betriebsbedingte Schwankung im Vakuum oder auch Zufuhrleitungen mit unterschiedlichen Längen des Füllgutes berücksichtigt werden. Zudem werden die aktuellen Fülldaten in einem Ringspeicher (DB) in der SPS festgehalten und können so zur Kontrolle ausgelesen werden.
…. weitere Info folgt, wenn ich wieder etwas Zeit habe – Danke – ….