Videos

Dipl.-Ing. Johannes Hofer

Letzte Bearbeitung: 26.09.2024

Ki2Plc mit Simatic S7-1500

Dieses Video ohne Vertonung, zeigt eine Beispielanwendung von Ki2Plc mit dem Visual-Studio, dem TIA-Portal und mit PLCsim. Zur Verbindung von PlcSim verwende ich das Tool Nettoplcsim-S7o-v-1-2-5-0.

Hier wird eine Timerfunktion trainiert und in die SPS geladen. Dort befindet sich das Plugin zur Ausführung der geladenen, künstlichen Neuronen (KN) mit ihren Knoten. So kann jedes geladene KN in der SPS gestartet werden, ohne dazu eine Programmerweiterung zu installieren. Das bedeutet, es werden keine Timer, Counter oder weitere logische Funktionen aus der IEC 61131 für die logischen Verknüpfungen verwendet!

Trainierte KN kommen so ohne Programmierkenntnisse zur SPS zum Einsatz und können als KI-Version in einer Datenbank hinterlegt werden. So entsteht mit der Zeit eine eigene KI-Bibliothek 😉


Sigmoid und dessen Bedeutung

Der Sigmoid wird zu jedem Knoten in der Soma gebildet und abschließend daraus ein Sigmoid zum KN berechnet. Dieses Video zeigt die Bedeutung des Sigmoid am Beispiel eines Zylinders, welcher durch ein Ventil mit Federrückstellung gesteuert wird.

Ein hoher Sigmoid bedeutet hohe Sicherheit

Das Ziel ist es, so viele Möglichkeiten im KN zu trainieren. Insgesamt können 16 Knoten in einem KN trainiert werden. Am Schluß des Videos wird die Vernetzung der Knoten in der Soma gezeigt. Auf diese Weise sind die Zusammenhänge der Knoten im KN übersichtlich erkennbar und zudem kann ein quasi Debug durchgeführt werden. 😏


Speicherverhalten eines Perceptrons

Das Nervenzellen sich etwas merken können, soll auch im KN nachgeahmt werden. Damit sind digitale Speicher möglich, welche sich natürlich auch wieder löschen lassen. Ist einmal ein Knoten als Speicher gekennzeichnet, so kann dessen Perceptron nicht mehr für normale, digitale Funktionen genutzt werden. Ein Speichersignal wird gelöscht, indem man das gleiche Perceptron ohne Speichermerkmal trainiert. Das wird im Video genügend gezeigt, sodass die Speicherpunkte im Axon des KN verstanden werden sollten. 🙃


Verbindung Perceptron mit Perceptron

Besonders interessant, aber auch komplizierter sind die Verbinden von KN mit anderen KN. Das heisst, daß wir nicht mit digitalen Eingängen arbeiten um Knoten zu trainieren, sondern mit dem Perceptron eines anderen KN selbst.

Wir verbinden die Perceptrons eines KN mit den Eingängen eines anderen KN.

Also Dentriten am Soma werden mit den Dentriten am Axon verbunden. KN geben also die Information aus den Knoten weiter an andere KN. Das wäre sozusagen der Merker, welcher in der traditionalen SPS zur Anwendung kommt. In der SPS werden allerdings keine Merker gesetzt, wenn so ein KN in die SPS geladen wird.

Einfach das Video ansehen und versuchen zu verstehen, was da so gemacht wird. Sicherlich wird das beim ersten Anschauen noch nicht so richtig verstanden. Hier kann man in Ruhe, ohne Werbung das Video beliebig oft betrachten 😁


Zählerverhalten eines Perceptrons

Counter sind eigentlich keine Option für die KN. Dafür könnte man die SPS-üblichen Methoden verwenden, denn glücklicherweise kann das traditionelle Programmieren jederzeit in der SPS weiterhin, zusätzlich genutzt werden. Der Vollständigkeits halber ist das aber im KN zusätzlich umgesetzt worden. Also, was solls. Die Zählerfunktion ist als Abwärtszähler programmiert. Man setzt einen Startwert und dieser wird dann je nach Training mit einem digitalen Eingang oder einem anderen Perceptron eines anderen KN als Zählimpuls verwendet. Ist der eingestellte Zählwert auf Null angekommen, dann wird solange gefeuert, bis der letzte Zählimpuls wieder verschwindet. Also wieder False wird. Das ist eigentlich schon allers. Im Video wird das Training nicht gezeigt, sondern an jedem Knoten untersucht, was dort mal trainiert wurde. Auch das ist wichtig für eine spätere Analyse, damit so ein abgeschlossenes Training nachvollzogen werden kann.


Analog-Neuron

Das analoge Neuron ist sicherlich die meist gefragte Anwendung, da hier nicht nur die 4 digitale Perzeptrons ins Spiel kommen, sondern zudem das Training des analogen Wertes. In den meisten Fällen wird es einen doppelten Sigmoid geben, zwischen diesen entsprechend trainiert werden muss.

Im Video ist das Training der Perceptrons nicht gezeigt, da die Anwendung ohnehin nicht so einfach darzustellen ist. Man kann sich aber gut vorstellen, dass jedes Perceptron einfach durch das Anklicken bei einem bestimmten Analogwert zugeordnet wird.

Auch hier ist zu bemerken, dass keine speziellen Funktionen verwendet werden. Also z. B. Zweipunktregler oder PID. In der SPS wird immer das übliche Plugin verwendet.

Der Vorteil ist, dass sich die SW in der SPS nicht ändern, egal welches KN geladen wird.


Wo ist nun die KI?

Das Abbild zeigt ein künstliches Neurons (KN) und ist sicherlich kein schlechter Gedanke, denn man muß sich gezwungenermaßen über verschiedene Wege schlaumachen, wie so ein Neuron schließlich funktioniert. Danach kommt der wesentliche Schritt: Wie kann ich das neue Wissen über meine Neuronen nun in künstliche Neuronen für die Steuerungstechnik anwenden?

Davon abgesehen, dass ich hier eine Menge Arbeit in C# zu leisten habe, zeigt die Umsetzung einen gewissen Schwierigkeitsgrad, diese für Steuerungstechniker und Fachpersonen aus benachbarten Themen praktisch zu verstehen. Der KI-Fachmann allerdings hat da wohl noch größere Verständnisprobleme, da schliesslich nur die Angabe einiger Sigmoid-Werte noch keine KI bedeuten 🤨

Das Training

Bei praktischen Versuchen hat sich auch gezeigt, dass die Begrenzung auf eine digitale Eingangskarte mit 16 Eingängen die Knotenbildung in der Soma nicht ausreichend praxisbezogen ist! Beispielhaft befinden sind die betreffenden Eingänge nicht in nur einer Eingangskarte, sondern verteilt auf andere Eingangs-karten und zudem ist die zu trainierende Logik zusätzlich auch mit Merkern durchzuführen, so die Steuerungstechniker! Betrachtet man nun das Bild genauer, dann sind die digitalen Eingänge an der Soma (Kreisbogen oben links) noch nicht spezifiziert. Das Training dazu im unteren Bild-Abschnitt allerdings, bezieht sich derzeit auf nur eine Eingangskarte oder den Perzeptron anderer KN. Das ist nicht ausreichend, aber immerhin doch schon etwas, oder?

Letztendlich ist das sogenannte Training (siehe die Videos) nichts anderes als eine neue Darstellung der digitalen Steuerungstechnik, könnte man auch behaupten. 😏

Also keine direkte IEC 61131 … oder Grafset oder so, sondern KI bezogen oder hier, besser KN bezogen ?. Die Umsetzung für eine Integration im eine KI ist im Ansatz jedoch richtig, denke ich, da hier schon Treffer mittels Training über das Sigmoid detektiert werden können. Allerdings fällt auf, dass hier noch die Datenbankanwendung fehlt, damit eine Auswahl der bereits trainierten KN stattfinden kann. Damit sind die Trainingsdaten gemeint, welche hier noch im Projekt (Knoten) versteckt sind. Nun ja – dass kann man schnell nachholen. Danach wird man allerdings feststellen, dass es sich hier immer noch um eine quasi-Umsetzung der alten Steuerungstechnik handelt.

Die Umsetzung in eine KI, also KI2Plc oder allgemein K2Automation ist sicherlich möglich, wenn das hier gezeigte Training erweitert wird und die Trainingsdaten gespeichert werden.

Wir sollten keine Algorithmen (EVA-Prinzip) trainieren, sondern die Gedanken einer Steuerungsfachperson an eine mögliche Beteiligung der KI trainieren. Beispiel: Wenn wir eine Faust machen, kommt zuerst der Gedanke, allerdings bereits unter Berücksichtigung der Aktoren und danach die Umsetzung der entsprechenden Aktoren (Muskeln etc.) als Aktion. D. h. die Aktoren, wie digitale Ausgänge, müssen bereits schon im Training mit einbezogen werden. Nur so lässt sich das fertige Training für eine KI zur Automatisierung und Einsatz in der SPS umsetzen.

Somit ist es nicht ausreichend, wenn die Klappertechnik und die Programmierung eines Schaltplanes (KOP, FUP etc.) weiterhin Bestandteile der Gedanken bleiben. Damit ist im wesentlichen das schon erwähnte EVA-Prinzip gemeint. Am Beispiel der SPS (erstes Video) werden bereits keine üblichen Bausteine (UND-, ODER-Blöcke, Timer, Zähler etc.) im SPS-Programm mehr verwendet. Die trainierten KN werden einfach in die SPS neu geladen und vom Plugin in der SPS interpretiert. Die praktische Umsetzung ist bis hierhin zwar schon von mir nachgewiesen, aber noch sehr begrenzt in der Wirkung und zudem als SPS-Programmierer schwer zu verstehen.

Ändern wir das Training in KI-gerechte Gedanken, so können wir die Umsetzung in eine Steuerungseinheit nicht nur testen und über KI-Methoden prüfen, sondern ein Interface benutzen, welches auch der Steuerungstechniker nachvollziehen kann. Der Nachteil besteht darin, dass ein Plugin nicht mehr als SPS-Programm im Sinne des SPS-Programmierers erkennbar ist.

Allerdings für eine mögliche Fehlererkennung sehr genau spezifiziert, da es sich hier nun um einen geprüften Datensatz aus dem KI-Training handelt. Ich würde sogar behaupten, dass es hier mehr Sicherheit bietet als ein übliches Programm. Dies bedeutet eine völlig neue Arbeitsweise von quasi-Bibliotheksbausteinen aus der KI und der üblichen Vermischung von eigens erstellten Programmen in FUP oder ähnlichen Sprachen.

Das kann dann der SPS-Programmierer immer noch selbst entscheiden.

Auf einer neuen Page (KI2Automation) werde ich nun diese Gedanken vorstellen. Also gibt es mal wieder was Neues zu programmieren. Diesmal allerdings mit einer wesentlichen Anpassung an die praktische Umsetzung mit Hilfe der auf dem Markt angebotenen KI-Werkzeuge. So soll es eine Datenbank für die Trainingsdaten geben, damit eine KI-gestützte Arbeitsweise zum Training stattfinden kann. 😎


Bis zur neuen Page mit KI2Automation dauert es ein wenig … 🙋‍♂️