KNNP
Dipl.-Ing. Johannes Hofer
Letzte Bearbeitung: 07.06.2026
Nachdem ich einige neue Wege der KNNP (ML) ausprobiert habe, bin ich nun derzeit bei nachfolgend, beschriebenen Ergebnis hängen geblieben.
Wie heißt es so schön: back to the roots
Die Neuronentechnik ist sicherlich faszinierend und hat mich nach der Erkenntnis, dass künstliche Neuronen für die SPS immer feuern (spikes), zum KNNP geführt. Hier steht KNNP für künstlich neuronaler Netzwerkplan und ist nicht mit einem neuronalen Netzwerkdiagramm zu verwechseln.
Die Anwendung eines neuronalen Netzwerkes bis hin zum neuronalen Netzwerkplan innerhalb einer SPS war bei meinen ersten Versuchen mit dem TIA-Portal in der Programmiersprache SCL zwar teilweise erfolgreich, aber mit erheblichen Nachteilen bezüglich des Editors und der Anwendungssprache SCL begleitet. Ganz besonders der angewendete Serverteil innerhalb der SPS, welcher die Projektierung mit einem handelsüblichen Browser ermöglichen sollte, ist für mich aus verschiedenen Gründen ungeeignet. Dazu möchte ich nicht ins Detail gehen, da zudem die Sprache SCL vom Hersteller der SPS nicht dafür geplant wurde, solche fortschrittlichen, schon fast intelligenten Strukturen, zu entwerfen. Diese Tatsache führte letztendlich u. A. so zu häufigen Problemen, diese Idee praktisch auf elegante Weise umzusetzen.
Aus diesem Grund habe ich alternativ einen Weg über eine andere SPS gesucht und bin schließlich bei verschiedenen SPSen gelandet, welche ebenfalls bezüglich der Geschwindigkeit zur Abarbeitung der Neuronen erfolgreich waren und unter Berücksichtigung der IEC 61131-Sprachen kompatibel sind.
Zu bemerken ist, dass es nicht nur an der Ausführungsgeschwindigkeit der Hardware gelegen hatte, sondern an der Möglichkeit des Editors in SCL oder ST, mit Schleifen und Arrays zu arbeiten und vor allem diese zu debuggen.
Das war nicht nur sehr mühselig, zudem auch sehr, sehr zeitaufwendig. Eine verständliche Verarbeitung für den Anwender (Elektriker etc.) zu erreichen, wurde letztendlich dadurch möglich, dass die Neuronenwerte (LReal) aus den verschiedenen Layern wieder zu einem Stromlaufplan führten. Jedes Neuron feuert bei einem eintrainierten Wert und könnte im einfachsten Sinne auch als Relay betrachtet werden.
Back to the Roots ist im wahrsten Sinne des Wortes schon aus dieser Sicht tatsächlich gelungen.
Somit ist der Einsatz eines Programmierers zur Erstellung für einen KNNP nicht unbedingt erforderlich, sondern nur ein Training, welches normalerweise der Konstrukteur oder der Inbetriebnahme-Techniker der Anlage durchführen sollte. Zur Kontrolle des so trainierten Netzwerkplanes kann daraus zusätzlich ein Stromlaufplan generiert werden. 😎
Ein riesiger Vorteil, da die KI dafür bekannt ist, dass dessen Ergebnis oft nicht nachvollziehbar ist, sondern nur deren Gewichtungen. Ein Netzwerk aus künstlichen Neuronen kann hier optisch visualisiert werden und dessen Ergebnis auch gegebenenfalls als Stromlaufplan zu beurteilen ist.

Im Bild ist eine „Simatic-Lösung“ ersichtlich. Insgesamt sind im FL=First-Layer über 16 Neuronen zu sehen. Im Beispiel für den Ausgang A0.7 sieht man den Strompfad mit den Schaltern dazu, welcher aus den neuronalen Werten generiert wird. Da das TIA-Portal für die Visualisierung weiterhin notwendig ist, sehe ich hier keinen direkten Vorteil mehr. Deswegen wird derzeit die Arduino Opta (Finder) auf Herz und Nieren getestet!
Speichertrainierbare Steuerung 😎 (STS)
Zielsetzung ist es nun, eine Firmeware zu entwickeln, welche ein browserbasiertes Training am Gerät (SPS) ermöglicht und damit eine völlige Unabhängigkeit zu einer kostenpflichtigen Programmierumgebung bietet.
Zudem sind ein Elektroplan oder sonstige andere Planungunterlagen nicht unbedingt erforderlich! Eine Programmiersprache zur Inbetriebnahme entfällt komplett.
Das senkt die Einstiegshürde erheblich! Zudem ist die SPS über den Browser und einer IP zur SPS weltweit zugänglich!
Lediglich müssen die Eingänge und Ausgänge richtig auf Klemme verdrahtet werden. Wo diese Klemmleiste dann zur SPS verdrahtet ist, spielt keine wesentliche Rolle. Nur sollten Eingänge auf SPS-Eingänge und Ausgänge auf SPS-Ausgänge richtig verdrahtet sein. 😎
Damit ist bereits eine wesentliche Kosteneinsparung aus der Projektierung gegeben. Zudem liefert die SPS über den Browser, nach dem Training eines künstlichen Neurons, dazu automatich auch einen Stromlaufplan. Dieser ist dann aus der SPS abgeleitet und können nach dem Training entsprechend angepasst werden. So kann auch der Elektriker den Verlauf im Nachhinein nach seinen Kenntnissen anpassen.

Bildquelle: https://store.arduino.cc/collections/opta-family
Die Zykluszeiten dieser SPS sind enorm und liegen im Vergleich für den Anwender/Programmierer zur S7-1500 in mys und nicht in ms. Vom Speicherausbau im Giga-Bereich ganz zu schweigen. Da kann ein ausgiebiger KNNP trainiert werden.
Abgesehen von den Zykluszeiten ist für mich die Programmierung mit der IDE in C/C++ wesentlich eleganter und debugfähig (falls notwendig). Diese ist für den SPS-Anwender nicht notwendig, sondern wurde von mir nur für die Entwicklung des Trainingssystems (Firmware) genutzt.
Das Training erfolgt für den Anwender über einen handelsüblichen Browser, ebenso die Kontrolle des Trainings über die Strompfade des Stromlaufplanes, welche aus den Daten des KNNP’s und deren WF auf den Browser abgeleitet werden könnten.
Das Training kann somit, wie in einem späteren Video ersichtlich sein wird, nachvollzogen werden. Das ist üblicherweise bei Machine-Learning nicht der Fall. Der so aus den Trainingsdaten abgeleitete Stromlaufplan bietet zudem zusätzliche Möglichkeiten für die Editierung und Anpassung der einzelnen Neuronen nach dem Training.
Da freut sich der Elektriker, da er nun mit KOP, FUP und sonstigem Kram nichts mehr zu tun hat.
Ein ausführliches Beispiel für eine Schranke an einem Parkplatz soll zeigen, dass die OPTA eine ausgezeichnete Alternative zur Simatic-Plc darstellt.
Sie wird so zur Ki2Plc-OPTA!
Also, was will man mehr? 😎 Hier der erste Testaufbau im Bild für eine Vorab-Inbetriebnahme der Schranke. Die Opta hat eine Erweiterung mit zusätzlichen 16 Dig. Ein- und 8 Dig-Ausgängen. Insgesamt werden damit 24 Dig. Eingänge und 12 Dig. Ausgänge trainiert.
Auf der rechten Seite (Bild unten) sieht man ein Training ohne besonderen Sinn. Aber es werden bereits komplette Neuronen im Strompfad integriert (M0.0 z.B. u.a.)


Konzept-Beschreibung:
Das ist ein absolut sauberes Engineering-Konzept. Durch das blockweise Training wird die rechenintensive Optimierung der Gewichte von der zeitkritischen Steuerungslogik entkoppelt. Während die SPS im Mikrosekundenbereich ihre Neuronalen Netze abarbeitet, berechnet der „Hintergrund-Prozess“ (getriggert durch die Web-Labels) in Ruhe die neuen Parameter. Dieses Konzept gilt während des Trainings. Danach werden die Daten des trainierten Neurons in den bestehenden NNP übersetzt und gesondert als Task bearbeitet. So kann das Training in den laufenden Prozess nahtlos übernommen werden.
Mit Merkern wird das neu trainierte Neuron oder eine Gruppe aus Neuronen beobachtet, um danach schließlich am Ausgang durch ein Perceptron übernommen zu werden.
Die Opta spielt hier ihre Stärken voll aus: Der STM32H7-Kern ist so schnell, dass die Matrix-Operationen eines NNP für ihn kaum eine Last darstellen, solange man sie nicht in jedem einzelnen Task-Zyklus unnötig aufbläht und während des Trainings im Speicher gut organisiert. Das sind allerdings Aufgaben der Firmeware und für den Inbetriebnahme-Techniker unbedeutsam.
Das Training kann so für den Elektriker durch die SPS auch als Stromlaufplan (Bild unten) auf dem Browser verständlich dargestellt werden. Eine gelungene Kombination mit C++, JS und KOP (AWL) in der SPS vereinbart.
Im Beispiel wird hier nun schon der NNP so langsam sichtbar. Mehrere Netze bilden einen künstlichen Neuronalen Netzwerk Plan. Hier sehen wir direkt ohne Kenntnisse eines Schaltplans, eines Programmes oder sonstige Fachbegriffe aus der SPS-Welt, wie die Neuronen zusammenwirken und welche Perceptrons und Neuronen zur Zeit gesetzt werden. Jedes Neuron beinhaltet zwei Timer (TON, TOF) und einen Vergleichswert zum feuern.
Die Datenstrukturen werden direkt vom Webserver der Opta hier auf dem Browser Google Chrome abgebildet.

Im oberen Bild sind die Vernetzungen der Neuronen zu sehen. Es gibt Vernetzungen mit den Perzeprons, welche farblich gekennzeichnet werden. So kann schnell erkannt werden, warum das Perceptron feuert. Üblicher Weise ist das Perceptron ein digitaler Ausgang.
Im sogenannten Einzeltraining werden Aktionen für nur einzelne Neuronen erfasst. Damit können auch zeitktitische Abläufe trainiert werden. Das Zeitverhalten wird über je zwei Timer (TON, TOF) innerhalb eines Neurons trainiert. Auch ist eine Vernetzung der Neuronen möglich. Hier im Bild die beiden grünen Linien unten links, verbinden zwei Neuronen, welche wieder mit einem Perceptron verbunden sind.
Man gewöhnt sich diese Art zu trainieren schnell an und wundert sich oft wie danach der Stromlaufplan aussieht. Hier rechts im Bild ist ein Neuron mit 8 digitalen Eingängen zu sehen. Diese können auch Merker oder Ausgänge sein. So entstehen praxisgerechte Vernetzungen, wie sie über traditionelle Wege nur über sogenannte Netzwerke und deren KOP oder FUP von Programmierern entwickelt werden.
Fortsetzung folgt ….