ki2plc_builder
Dipl.-Ing. Johannes Hofer
Letzte Bearbeitung: 16.04.2025 (alle Urheberrechte liegen bei Johannes Hofer)
Künstliche, neuronale Netze der 3. Generation
Skipping Neuronen sind die dritte Generation zur KI und haben mich veranlasst, die Anwendung der neuronalen Netze mit Gewichtung und Backprobagation zu beenden. Spikes sind nun angesagt und diese haben wesentliche Eigenschaften, welche nicht nur gut zur Automatisierung passen, sondern sind besonders für SPS-Anwendungen geeignet. Mit zunehmender Remote-Arbeit auch in der Prozesstechnik zeigen, dass die traditionelle Programmierung nach IEC 611 31-3 immer mehr an Bedeutung verliert.
Als Grundlage soll das im Bild gezeigte Projekt mit SNN (spiking neural network) umgesetzt werden. Es handelt sich hier um einen Teilbereich, welcher tatsächlich etwas mehr Aufmerksamkeit benötigt, als im letzten Video auf meinem YouTube-Kanal gezeigt wurde. Die Umsetzung erfolgt nun nur noch über das Training der Spikes und liefert eine Lösung für eine standard CPU z. B. aus der S7-1500-Serie.
Das Ergebnis ist entweder direkt in der CPU inklusive Training über eine Visualisierung erreichbar oder die Trainingsdaten der SNN werden über eine Schnittstelle in die CPU geladen. Alternativ dazu kann auch ein SCL-Code (ST) generiert werden, sodass der SPS-Programmier immer noch handlungsfähig bleibt und die Inbetriebnahme mit dem TIA-Portal umsetzt.


Im rechten unteren Bild ist das Ergebnis meiner Recherchen über SNN zu sehen. Erstaunlich, denn die Spikes lassen sich nun den Eingängen der digitalen Eingangskarte zuordnen.
Damit ist jetzt das Debuggen in der SPS möglich geworden, da über die Spikes wieder ein Rückschluss auf die digitalen Merkmale (hier Eingänge) machbar sind. Wir trainieren das SNN einzeln zu den Perceptrons und beziehen uns dabei auf eine 16-Bit digitale Inputkarte. Diese ist hier virtuell und muss in der echten CPU nicht unbedingt 1:1 existieren.
Was noch fehlt, ist ein gutes Simulationsprogramm, damit ich nicht alles in C# programmieren muss. Ich denke an PLC-Lab von MHJ, denn auch hier kann man mit C#-Skript arbeiten. So erreicht man auch die CODESYS-SPSen 🙂
So kann aus ki2plc ein SPS-Code (derzeit SCL) über die gewonnenen Spikes generiert werden, welcher als FB in einer Simatik geladen werden könnte. Zudem ist eine Generierung in Python, C#-Skript oder ST für CODESYS ebenfalls denkbar.
Hier zwei Videos zum Thema aus meinem You-Tube-Kanal: https://youtu.be/QXaCZJvQO3I
Neuer Start mit Python und SCL-Generator
Für das Training der Spiking Neuronen wird eine sehr gute Simulation vorausgesetzt. Es geht hier nicht um die Darstellung schöner Bilder, sondern um eine Simulations, welche der tatsächlichen Inbetriebnahme entspricht. Aus diesem Grunde habe ich mich entschlossen, das Projekt neu aufzusetzen und zwar in der Programmiersprache Python. Das war jetzt nach einigen Schwierigkeiten eine gute Entscheidung, denn nun kommt zudem auch ein SCL-Generator mit üblichen Befehlen aus der IEC 61131-3 zum Einsatz. Das bedeutet, dass keine Frequenzen in einem DB gespeichert werden, sondern vom SPS-Programmierer ein lesbarer SCL-Code!
Damit ist der Code in SCL auch nachvollziehbar und ermöglicht so einen sinvollen Einsatz für den SPS-Programmierer in seiner gewohnten Programmierumgebung mit dem TIA.Portal

Neue Entwicklung mit Python geht wesentlich schneller voran, wie die komplizierte C#-Umgebung. Das macht die Sache und damit das Thema der Spiking-Netzwerke hoch interessant!