Donnerstag, 19. August 2021


KI für die industrielle Automatisierung


Hat ein wenig gedauert den Prototyp II ins Leben zu rufen. Warum ??


Nun ja - mit der Webseite und JS waren die Ressourcen schnell ausgeschöpft. Außerdem konnte ich mit JS bis heute die S7-xx nicht in Betrieb nehmen. 

Den Grund kenne ich bis heute nicht. Aber erfahrene Siemens-Anwender in den Bereichen Simatic-SPS können sich ihren Teil dazu denken. Anders ausgedrückt, liefert die Kundenbindung oft eine Erklärung zu solchen Dingen.

Ich habe mich nun entschlossen das Ganze in C# unter VS 2019 zu programmieren. Da ich kein C#-Programmierer bin und dazu eine Menge Schnittstellen zu bestehenden Systemen notwendig waren, hat es eben eine wenig gedauert :)

Besonders schön ist die Programmierung der Schnittstelle PLC_API (siehe Bild), welche mit meiner  S7-1200 super funktioniert. Wie der derzeitige Stand der Software nun aussieht ist im folgenden Bild aus dem Deployment ersichtlich. 




Dazu einige Worte:
    C# ist für einen JS-Programmierer zunächst in den ersten Schritten, eine Katastrophe! Allerdings gibt es in der modernen Ausführung C# die Möglichkeiten Datentypen zu entbinden. So konnte ich Arrays über List mit unterschiedlichen Datentypen, so wie in JS, deklarieren.

Damit ist mit der Deklaration der Klassen im Stiel C++ der Weg in Richtung JS schon einmal geebnet. Strukturen (Struct)  in C# für meine Anwendung inakzeptabel und somit unbrauchbar. Genug mit dem Meckern, kommen wir zu eigentlichen Thema.

Nun haben wir ein kompiliertes Produkt unter Window 10 und können so im Modul KI-Automation (linke Seite im Bild) unsere Schnittstellen zur SPS, zum Web und schließlich zum Supervised Learning System in unseren Prototypen anwenden. Eine Verbindung zu einer noch nicht definierten  Datenbank folgt dann im letzten Prototype IV.

Auf der rechten Seite sehen wir das Modul KI-Automat, welches die Ausgangslayer über die Schnittstelle PLC-API in einen KI-Automat packt.

Der Prototyp II soll nun die Anwendung des KI_SLS im SLS-Modus manuell und automatik demonstrieren. 

Die Betriebsarten  (manuell, automatik) beziehen sich auf das SLS Modell und hat mit den Betriebsarten der Anlage nichts zu tun. 

Das folgenden Bild zeigt den ersten Schritt zum Modul KI-Automation in C# umgesetzt. Da muss natürlich noch einiges entwickelt werden :) 




Beschreibung der Aufgabe zum Prototyp II:
    In einer Anlage werden runde Teile auf einem Förderband in eine Zange transportiert. Dort soll ein Roboter das Teil auf einen Rundschalt-Tisch platzieren. Der Prototyp II bedient den kompletten Weg vom Fördersystem (Laufband) über eine Weiche zu eine Zange. Dazu gehören mehrere Zylinder, ein Bandmotor und zwei Schnittstellen zur Material-Anlieferung sowie ein Roboter. Das SLS erfolgt über mehrere Schritte mit noch digitalen Signalen und standardisierten Element aus der Automatisierung nach DIN 6-1131, wie z. B. ein TON-Timer. Der Prototyp II besteht aus folgenden drei Gruppen:
  • Förderband
  • Material-Schieber
  • Material-Zange
Jede Gruppe hat somit ihre digitalen Eingangs und Ausgangsparameter, welche in der SPS global ohne spezielle Bezeichner vorhanden sind. Das gilt auch für die Ausgangsparameter und Timer- bzw. Zählerbausteine usw. 

Die Zuordnung der Parameter zur SPS erfolgt über den Modus => Set Parameter (Radio Button). Das ist bereits geschehen. Wie das funktioniert, sehen wir im Prototyp III, da wir dort auch analoge Signale verarbeiten.

    Unsere Aufgabe hat nun einige tausend Synapsen und ist für einen SPS-Programmierer schon nicht mehr sooo ...  einfach umzusetzen, wenn er das gleiche Ergebnis, wie aus dem Ausgangslayer über das KI_SLS entstanden ist, erreichen möchte.

Antwort zur Frage: Wie erfolgt die Gewichtung der Synapsen im Eingangslayer:
    Diese Frage wird immer wieder gestellt und es ist nur verständlich, denn in der technischen  Automatisierung können wir die Gewichtung wie es traditionell so gezeigt wird, nicht anwenden. Die KI ist hier total anders bezüglich der Gewichtung und nicht vergleichbar mit den verschiedenen Gewichtungen in der traditionellen KI. Das gilt auch für irgendwelche Filter, welche in der KI-SLS nicht zu finden sind. Wir verwenden hier eine sogenannte Pipeline. Diese soll im Laufe der Prototypen noch vorgestellt werden. Die Pipeline garantiert die Sicherheit der Ausführung in der SPS, wenn gewünscht bis zu 100%! Vorausgesetzt ist natürlich die ordentliche Umsetzung der Ausgangslayer in der SPS !!

Die Pipeline unterscheidet sich im wesentlichen in den Anwendungen der KI-SLS (manuell oder automatisch) und liefert die Sicherheit als Voraussetzung für die Umsetzung in eine SPS. Im Vergleich zur traditionellen KI kann die Pipeline als Gewichtung betrachtet werden.

Nun betrachten wir den ersten Block zum Förderband:




Im oberen Bild sehen wir das ML in der Betriebsart Manuell/Semiauto. Hier werden die entsprechenden Aufnahme mit Hilfe der Pipeline gemacht. Diese Vorgehensweise entspricht ungefähr den Aufnahmen von verschiedenen Katzen im traditionellen KI-System, wenn man so will. Es ist für den Konstrukteur ein sehr wichtiger Schritt, den er dann später mit der Automatischen Aufnahme vergleichen könnte. Das ist allerdings meistens nicht mehr nötig. 

Das automatische SLS ist aufwendig und wird bei jeder Änderung in der Konstruktion erneut programmiert. Damit ist das händische Verfahren günstiger, solange keine dynamischen Prozesse vorhanden sind.

Das Ergebnis in den Ausgangs-Layern allerdings ist für beide Verfahren bis zu diesem Stand Prototyp II so ziemlich gleich.

Betrachten wir hierzu nun das Prozessbild:




Es hat sich nun einiges getan. Die Teile werden links auf das Förderband transportiert, wenn eine Material-Anforderung anliegt. Dann gelangt das Teil auf den Tisch zum Zylinder indem es vom Teil davor in die richtige Position geschoben wird, welcher dieses nun in die Zange schiebt. Nach der Bearbeitung in der Zange wird ein Roboter dieses Teil dann auf einen Rundschalt-Tisch montieren (nicht sichtbar).

Das ganze wird nun im automatischen Betrieb über das Modul Machine-Learning trainiert und dann das Ergebnis hier im Monitor getestet oder direkt auf die CPU S7-1200 geladen.

Fortsetzung folgt ---> im letzten Teil wird das Video in meinem YouTube Kanal veröffentlicht. Ich denke so in einigen Tagen, wenn keine Benken zur Veröffentlichung anliegen.
Hier schon mal das tonlose Testvideo:




Hersteller von Simulation-Programmen Industrie 4.0 können gerne Kontakt aufnehmen, falls Interesse an eine Zusammenarbeit über diese tolle Idee besteht :)

Hier nun der Link zu YouTube:



Der Prototyp III wird nun vorbereitet und beinhaltet ein Beispiel aus der Verfahrenstechnik mit analogen Signalen und PID-Reglern. 

Es wird zu diesem Thema eine Serie KI mit dem TIA-Portal geben. Dazu suche ich einen deutschen oder spanischen Anbieter.  Also keine Niederlassung in Deutschland wie z.B. Udemy!!