Mittwoch, 29. Dezember 2021

 Copyright ©  Dipl.-Ing. Johannes Hofer 2021, Auszug aus dem neuen Active learn book                                                 

Die KI-SPS

Die Möglichkeit einer Programmierung für eine SPS, um diese am Geschehen der künstlichen Intelligenz zu beteiligen



1.1     SPS wird KI-SPS

Kann die Anwendung durch die SPS für eine KI eingesetzt werden und wenn ja, macht das einen Sinn? 

Zunächst muss sich der interessierte Gedanken darüber machen, was so im Wesentlichen überhaupt eine KI ist und wie diese dann für die speziellen Anforderungen an eine SPS-Anwendung umgesetzt werden kann. Ich habe dazu etliche Videos, Berichte und Dokumentationen studiert und versucht das neue Thema KI als SPS-Programmierer zu verstehen und möchte meine Erkenntnisse so zusammenzufassen, dass SPS-Programmierer, egal welche Altersgruppe und erworbenen Berufserfahrung, so ein wenig Verständnis zum Thema finden und die KI für die eigenen Anwendungen in der SPS interessant macht.

Da werden Synapsen mit Daten versorgt und dann als Eingangslayer bezeichnet, welche über spezielle Funktionen im sogenannten Deep-Learning spezialisiert werden, damit entsprechende Ausgangslayer entstehen können. Diese werden dann wieder für den Techniker lesbaren Code weitergegeben. Alle Fachleute der KI mögen mir verzeihen, wenn ich das so einfach darstelle, denn schließlich handelt es sich ja um eine wissenschaftliche, hoch einzustufende Technologie 😊.

Die bekanntesten Beispiele in der KI sind die Datenerfassung per Foto, welche dann über das Expertenwissen (Deep-Learning) wieder dazu führt, dass am Ausgangslayer ein Teil der Fotos wiedererkannt werden. Das hört sich sehr lustig an, so wie ich das formuliere, aber das ist tatsächlich so, zumindest erfreut diese Darstellung meine Zuhörer in Seminaren oder dergleichen.

Der Webseiten-Programmierer stuft die KI sicherlich anders ein, als ein SPS-Programmierer und es gibt eine ganze Menge weitere Anwendungsgebiete die fachspezifisch die KI als Erfolgserlebnis einstufen und sich viele Interessenten derzeit regelrecht darauf stürzen. Und wenn es nur die Daten für eine Erfassung in Eingangslayer sind, ist hier für SPSen ein wesentlicher Faktor für die weitere Verarbeitung (Deep-Learning) notwendig, damit der Eindruck entsteht, es handelt sich hier um künstliche Intelligenz 😊.

Ein Berater zur KI und deren Prozesse für das Marketing hatte mir zum Thema KI-SPS die Frage gestellt: Wo bekommst du eigentlich die Daten her?

Nun konnte ich das nicht so einfach beantworten, da ich in dieser Phase noch nicht genügend Kenntnisse über die KI hatte und der Fachberater wusste nicht was eine SPS ist.

Jetzt bin ich genau an dem Punkt, der mir heute nach ca. einem Jahr eine Antwort liefert. Die KI in der SPS ist nicht mit der Automatisierung durch KI im Gewerbe Marketing oder ähnliche Gebiete wie Webseiten vergleichbar, trotzdem es mittlerweile sehr interessante Artikel über den Anschluss zur KI in SPS Anwendungen gibt.

Dazu noch eine wichtige, weitere Darstellung bezüglich Geräte. Eine SPS könnte ja auch ein Raspberry PI sein oder sowas aus der Arduino-Welt oder aus IOT-2000. Hier sind Datenmengen nicht so das Problem, da entsprechend der Preisklasse genügend Speicher für eine KI-SPS zur Verfügung steht. Also auf geht’s mit einer PLC die IEC-6311-31 nicht versteht, sondern nur moderne Hochsprachen und wie bei IOT sich sogar imaginär in eine Wolke befinden könnte 😊.

So einfach ist dieser Gedanke nicht, denn eine SPS hat zudem eine recht hohe Anforderung an die Sicherheit der ausführenden Hardware. Abgesehen von modern sind neuzeitige Hochsprachen eigentlich nur der Zeit angepasste Sprachkonzepte. Fertige Module aus der IEC-Welt und den dazu gehörigen Sprachkonzepten der graphischen Programmierung, stellen da schon eine andere Arbeitswelt dar. Wie diese fertigen Bausteine programmiert sind, ist nicht bekannt, sondern nur deren Anwendung.

Auch wenn das nicht ganz so einfach ist, was ein Glück, dass es diese Sprachkonzepte heute gibt, denn wer will schon wissen, wie es tatsächlich funktioniert 😊

Eine SPS als KI-SPS wäre denkbar, wenn die Daten dazu so geliefert werden, dass diese im Speicher der SPS sinnvoll untergebracht werden können. Die SPS ist für Datenmengen nicht ausgelegt, sondern eher für die sicher Verarbeitung der Daten, welche direkt unmittelbar zum Prozess gehören. Das bezieht sich selbstverständlich auf eine kostengünstige SPS, denn Gigabytes gibt es auch für viel Geld . Zudem benötigt man ein Deep-Learning, denn schließlich gehört das zur KI und letztendlich Ausgangslayer. So - die SPS wäre also als KI-SPS einsetzbar ohne den Verlust der gewohnten Sicherheit bezüglich der Hardware-Ausstattung.

Und was ist mit der Software?  Ein KI-Konzept bringt selbstverständlich eine gewisse Sicherheit, denn schließlich haben wir es hier mit KI zu tun und so ein KI-Prozess ist mit einem Standard-Algorithmus aus bewährten Bausteinen ausgestattet. Den so programmierten KI-Automat können wir abgesehen in einer SPS auch in einem Raspberry Pi einsetzen. So hätten wir auf beiden Seiten einen Gewinn – denke ich.

Mal aus einer anderen Perspektive betrachtet, dass SPS-Hersteller einen riesigen Aufwand veranstalten, um sichere SPSen zu bauen und dazu leider nur eine sehr begrenzte, firmeninterne Programmierung anbieten, dann ist hier nach meiner Meinung erst recht ein Platz für KI zu schaffen. Aus dem bekannten Seilbahnunglück 2021 ist eine solche Ableitung bezüglich der KI trotz Sicherheits-SPS sehr wohl zu bedenken – denke ich schon wieder 😊.

Zusammenfassend kann die Idee der KI-SPS sehr erfolgreich sein, wenn eine komplette, neue Überarbeitung der vergangenen Konzepte erfolgt und alte Ideen und Erfindungen modernisiert werden. Geschied das nicht, wird die traditionelle SPS den KI-Anschluss sicherlich verlieren.


Zusätzliche Info zum Signatur-Diagramm im Video:



Fortsetzung folgt im nächsten Post .... 💇

Verleger können sich gerne melden 😊



 

Mittwoch, 24. November 2021

Copyright ©  Dipl.-Ing. Johannes Hofer 2021                                                            

KI für SPS-Programmierer

Die KI-SPS 


Einleitung

Muss man denn heutzutage tatsächlich alles mit einer KI erledigen? Für den Einsatz der KI in der industriellen Steuerungstechnik könnte das bedeutet, dass der traditionelle SPS-Programmierer ersetzt oder zumindest wesentlich in seiner Programmierarbeit unterstützt wird.

Zudem besteht auch leider die Möglichkeit, dass die KI in den SPSen gar nicht einziehen wird.

Abgesehen davon wird es bei Anwendung der KI in der SPS dann so sein, dass sich die Qualität und damit auch die Sichere Anwendung der Software in der SPS durch die KI enorm steigert. All diese Überlegungen setzen folgerichtig voraus, dass die KI in der SPS richtig verstanden wird und man nicht wieder beginnt zu programmieren.

Wie das gemeint ist? Nun ja, man muss in sogenannten Synapsen denken – und davon braucht man eine ganze Menge.

Synapsen in einer SPS? Also was es so alles gibt 😏

Es kann doch nicht sein, dass heutzutage der SPS-Programmierer noch mit FUP, KOP, AWL oder ähnlichen Programmieranweisungen arbeiten muss. In Bezug auf die kostenintensiven Inbetriebnahmen und das hohe Risiko der Produzenten, sowie die meist folgende Wartung und Richtigstellung nach der Inbetriebnahme, kann doch ein KI-System, das viel besser und wirtschaftlicher erledigen – oder?

Die SPS soll durch Lernen „quasi programmiert“ und nicht durch eigene, erstellte Algorithmen passend zur Aufgabenstellung codiert werden. Dazu ein wichtiger und wahrer Leitsatz:

Eine nicht geplante Programmierung wird ein Zufallsprodukt erzeugen.

Wieso jetzt dieser Einwand? Kann mir doch keiner erzählen, dass ich meine Software nicht plane – oder? Es gibt doch meist ein Pflichtenheft und solche Dinge. Das ist doch schon mal eine gewisse Planung und außerdem gibt es doch verschiedene Planungswerkzeuge wie Grafcet oder Schrittdiagramme usw.

Zugegeben wird viel auf der Baustelle erledigt und da könnte das mit der ungeplanten Software schon ein wenig wahr sein. Abgesehen von dem Ärger und Folgen, die man sich da so einhandelt, könnte das neue und aktuelle Thema der KI eventuell doch die so bekannten Inbetriebnahme Probleme in einem anderen Licht erscheinen lassen. Ich will es mal so ausdrücken.

Programmieren auf der Baustelle wird oft auch als Baustellenprogrammierung bezeichnet und zeigt eine mangelhafte Vorbereitung zur Projektaufgabe oder verdeutlicht auf einfache Weise, dass das Programm zur Inbetriebnahme nicht erstellt wurde.

Der neue Weg bedeutet also, dass KI für die SPS durch einen KI-Automaten umgesetzt wird. Diese Automatenprogrammierung ist ein fester Bestandteil einer Anwendung und somit eine SW mit festgelegten Algorithmen, welche wie eine Bibliothek betrachtet werden kann. So könnte die Baustellenprogrammierung sehr stark eingeschränkt werden oder sogar vielleicht auch der Vergangenheit angehören.

Denken Sie doch einmal über Ihre Anwendung in der traditionellen SPS nach. Da werden Timer, Zähler und viele weitere Bausteine zusammengefasst und kommen so in Ihrer Applikation zum Einsatz. Stellen Sie sich mal vor der Timer würde nicht funktionieren und das nach tagelanger Fehlersuche. Undenkbar, oder?

Bibliotheksbausteine, aber auch einfache, logische Bausteine wie UND, ODER usw. sind doch seit geraumer Zeit in vertrauensvollen Händen und werden ohne Bedenken eingesetzt.

Dann stellt sich mir die Frage ob ich dann auch einen KI-Automaten einsetzen kann?. Der Unterschied ist zwar wesentlich, denn hier verwende ich keine „einfachen“ Bausteine mehr, sondern ein System, bestehend aus Daten und festgelegten Regeln. In der Umsetzung allerdings verbergen sich allerdings wieder die uns bekannten Bibliotheksbausteine. Warum also der Neuzeit nicht anpassen!

Falls der Programmierer nach der Abarbeitung des KI-Automaten noch einen Einfluss auf das programmierte Geschehen ausüben möchte, besteht die Möglichkeit einer zusätzlichen Bearbeitung mittels IEC 611-31. Das wird zumindest immer wieder gefordert und kann ohne weitere Probleme nach Wunsch zusätzlich eingefügt werden. So gilt:

Der oder die SPS-Programmierer entscheiden wieviel KI das Programm beinhalten wird und richtet sich nach der geforderten Sicherheit, entsprechend der notwendigen Komplexität.

Das könnte doch eine Alternative sein, die moderne Denkweise für dieses Thema mal genauer zu betrachten! Um Probleme bei den verschiedenen Versionen und Typen der SPSen aus dem Weg zu gehen, soll eine Programmierung des Automaten möglichst versionsfrei gestaltet sein.

Das hört sich doch schon mal interessant an - oder?

SPS wird KI-SPS

Kann eine SPS für eine KI eingesetzt werden und wenn ja, macht das einen Sinn? 

Zunächst muss sich der interessierte Gedanken darüber machen, was so im Wesentlichen überhaupt eine KI ist und wie diese dann für die speziellen Anforderungen zur SPS umgesetzt werden kann. Ich habe dazu etliche Videos, Berichte und Dokumentationen studiert und versucht das neue Thema KI als SPS-Programmierer zu verstehen und möchte meine Erkenntnisse so zusammenzufassen, dass SPS-Programmierer, egal welche Altersgruppe und erworbene Berufserfahrung, so ein wenig Verständnis zum Thema finden und die KI für die eigenen Anwendungen in der SPS interessant macht.

Da werden Synapsen mit Daten versorgt und dann als Eingangslayer bezeichnet, welche über spezielle Funktionen im sogenannten Deep-Learning spezialisiert werden, damit entsprechende Ausgangslayer entstehen können. Diese können dann wieder als ein verständliches Ergebnis an den Menschen weitergegeben werden. Alle Fachleute der KI mögen mir verzeihen, wenn ich das so einfach darstelle, denn schließlich handelt es sich ja um eine wissenschaftliche, hoch einzustufende Technologie 😊.

Die bekanntesten Beispiele in der KI sind die Datenerfassung per Foto, welche dann über das Expertenwissen (Deep-Learning) wieder dazu führt, dass am Ausgangslayer ein Teil der Fotos wiedererkannt werden. Das hört sich sehr lustig an, so wie ich das formuliere, aber das ist tatsächlich so, zumindest erfreut diese Darstellung meine Zuhörer in Seminaren oder dergleichen.

Der Webseiten-Programmierer stuft die KI sicherlich anders ein, als ein SPS-Programmierer und es gibt eine ganze Menge weitere Anwendungsgebiete die fachspezifisch die KI als Erfolgserlebnis einstufen und sich viele Menschen derzeit regelrecht darauf stürzen. Und wenn es nur die Daten für eine Erfassung in Eingangslayer sind, ist hier ein wesentlicher Faktor für die weitere Verarbeitung (Deep-Learning) notwendig, damit der Eindruck entsteht, es handelt sich hier um künstliche Intelligenz. Ein Berater zur KI und deren Prozesse für das Marketing hatte mir zum Thema KI-SPS die Frage gestellt: Wo bekommst du eigentlich die Daten her?

Nun konnte ich das nicht beantworten, da ich in dieser Phase noch nicht genügend Kenntnisse für die KI hatte und der Fachberater wusste nicht was eine SPS ist.

Jetzt bin ich genau an dem Punkt, der mir heute nach ca. einem Jahr eine Antwort liefert. Die KI in der SPS ist nicht mit der Automatisierung durch KI im Gewerbe Marketing oder ähnliche Gebiete wie Webseiten vergleichbar. Mittlerweile gibt es sehr interessante Berichte über den Anschluss zur KI in SPS Anwendungen.

Dazu noch eine wichtige, weitere Darstellung bezüglich Geräte. Eine SPS könnte ja auch ein Raspberry PI sein oder sowas aus der Arduino-Welt und sogar IOT-2000. Hier sind Datenmengen nicht so das Problem. Also auf geht’s mit einer PLC die IEC-6311-31 nicht versteht, sondern nur moderne Hochsprachen und wie bei IOT sich sogar imaginär in einer Wolke befinden könnte 😊

Abgesehen von modern sind neu zeitige Hochsprachen eigentlich nur der Zeit angepasste Sprachkonzepte, welche weit entfernt einer notwendigen Basis an Grundelementen, nur der einfacheren Anwendung dienen soll.

Auch wenn das nicht ganz einfach ist, was ein Glück, dass es diese Sprachkonzepte heute gibt, denn wer will schon wissen wie es tatsächlich funktioniert 😊

Eine SPS als KI-SPS ist also denkbar, wenn die Daten so geliefert werden können, dass diese im Speicher sinnvoll untergebracht werden können. Die SPS ist für Datenmengen nicht ausgelegt, sondern eher für die sicher Verarbeitung der Daten, welche direkt unmittelbar zum Prozess gehören. Zudem benötigt man ein Deep-Learning, denn schließlich gehört das zur KI und letztendlich Ausgangslayer. So - die SPS wäre also als KI-SPS einsetzbar ohne den Verlust der gewohnten Sicherheit.

Jedoch bringt auch ein KI-Konzept Sicherheit, denn schließlich haben wir es hier mit KI zu tun und so ein KI-Prozess ist mit einem Standard-Algorithmus aus bewährten Bausteinen ausgelegt. Diesen können wir auch in einem Raspberry Pi einsetzen. So hätten wir auf beiden Seiten einen Gewinn!

Wenn man bedenkt, dass SPS-Hersteller einen riesigen Aufwand veranstalten, um sichere SPSen zu bauen und dazu nur eine sehr begrenzte, firmeninterne Programmierung erlauben, dann ist hier nach meiner Meinung erst recht ein Platz für KI zu schaffen. Aus dem bekannten Seilbahnunglück 2021 ist eine solche Ableitung trotz Sicherheits-SPS sehr wohl zu bedenken – denke ich.

Zusammenfassend kann die Idee der KI-SPS sehr erfolgreich sein, wenn eine komplette, neue Überarbeitung der vergangenen Konzepte erfolgt und alte Ideen und Erfindungen modernisiert werden. Geschied das nicht, wird die traditionelle SPS den KI-Anschluss verlieren.


Weitere Info im Video:



Fortsetzung folgt im nächsten Post .... 💇

Buchverleger, Geräte-Hersteller, welche mich unterstützen möchten oder eine Zusammenarbeit wünschen, können sich gerne melden ..


Samstag, 9. Oktober 2021

 Autor und (c): Johannes Hofer                                                                                                                                                Letzter Update: 18.11.2021

KI für die industrielle Automatisierung

Der KI-Automat in der PLC


Der Prototyp III hat nun ein anderes Katzengesicht! Für ein vernünftiges Ergebnis müssen wir mehrmals lernen - denn schließlich wollen wir ja ein KI-System nutzen. Also, müssen wir immer mehr Katzen (Signaturen) aufnehmen, damit wir unser Ziel erreichen.

Durch die wachsende Datenmenge wird unser KI-Automat immer klüger, bis dieser unsere Hilfe für den gelernten Prozess nicht mehr benötigt, da er selbst ausreichend entscheiden kann.

Na toll - Hoffentlich funktioniert das auch 😏. Ich hatte das Glück den Prototyp III in einem Laborbetrieb in Belgien zu testen. Die Firma hatte mich eingeladen und zugeschaut, wie ich mit dem supervised learning meine Signaturen fotografiere, die Gewichtung mit der Pipline unterstütze und wie das so mit einer Simatic funktioniert. Vielen Dank für die freundliche Einladung und herzliche Grüße nach Brüssel!

Was machen wir nun? Im Prototyp II hatten wir nur graue Katzen, das waren ausschließlich digitale Signale. So konnten wir schon nach einem einmaligen Lernprozess ein recht ordentliches Ergebnis erzielen. Ein Programmierer kann das mit seinem Programm in SPS-Sprachen (IEC 611-31) so nicht erreichen. Warum nicht?

Jede Software hat einen bestimmten Fehler-Anteil. Bei nur 4% Fehlerquote handelt es sich bereits um einen Spritzenprogrammierer mit einem sehr guten Testresultat. Zudem gibt es bei jeder Aufgabenstellung unbekannte Situationen, welche das so erstellte Programm meistens nicht berücksichtigt oder im Falle der SPS-Programmiermöglichkeiten nicht berücksichtigen kann. 

Der KI-Automat kennt jede mögliche Situation! Es handelt sich hierbei zwar auch um eine Software, welches allerdings als KI-Automat programmiert ist und nachweisbar die Fehlergrenze von 4% nicht überschreitet.  

Der einzige Nachteil wäre, dass falsche Katzen fotografiert werden. Das ist aber ein anderes Thema, für das der KI-Automat nicht zuständig ist 😁

Das müsste natürlich genauer erklärt werden. Dazu müssen aber die Grundlagen zum KI-Automat vollständig verstanden werden. Und soweit sind wir noch nicht. Der Prototyp III bringt uns allerdings ein wenig weiter, dieses besser zu verstehen.

Fassen wir noch einmal kurz zusammen:
  • Wir lernen unterstützt die Signaturen (Input-Layer und supervised learning). Das sind unsere Synapsen
  • Danach erfolgt die Gewichtung mit einer Pipeline
  • Das Deep-Learning wird intern durch Expertenwissen je nach Bedarf hinzugefügt
  • Die so entstehenden Ausgangs-Layer dienen dem KI-Automat
  • Der KI-Automat in der Plc wird mit den Binär-Daten der Ausgangslayer gefüttert
Nun - erweitern wir unseren Horizont mit einer Aufgabe aus der Verfahrenstechnik, welche tatsächlich bereits von mir in Betrieb genommen wurde. Der Auftraggeber hat über die kurze, erfolgreiche  Inbetriebnahmezeit sein Erstaunen geäußert.

Nachteil ist: Den KI-Automat in SCL geschrieben kann der SPS-Programmierer nachvollziehen, allerdings seine Daten dazu nicht.

Letztendlich ist das aber egal, denn sind wir mal ehrlich: Wer versteht schon den Vorgang einer KI im Detail als SPS-Anwender? 😵

Aufgabenstellung

Das Programm soll auf Hinsicht zum Prototyp IV jetzt schon bereits seiten- und maßstabsorientiert sein.

In Prototyp IV werden wir eine Kranbrücke für Schüttgüter pendelarm positionieren und dazu benötigen wir Angaben zur Lagersituation in mm bzw. cm.

Wir wählen für dieses Projekt die Maße für DIN-A3 aus und einen genauen Zeichenmaßstab von ± 1mm je Pixel. Zudem kann das Papier industriegerecht gedruckt und verwendet werden. Für den jetzigen Prototyp III benötigen wir zusätzlich PCE-Symbole, also Tank, Ventil, Pumpe usw. 

Es soll ein Medium von z. B. 24° C auf 32°C innerhalb 10 Stunden temperiert werden. Danach soll die Temperatur von 32° für 2 Stunden gehalten werden. Der Prozess ist dann beendet und das Medium kann abgefüllt werden.

Der gesamte Temperaturverlauf ab 24° bis 32° darf ±1°C nicht überschreiten.

So - lieber SPS-Programmierer, dann leg mal los. Ich garantiere dir, dass du damit ein richtiges Problem bekommst, denn speziell zu dieser Aufgabe folgendes:
  • Das Medium ist auch innerhalb eines Produktes unterschiedlich (Toleranzbereich) und erzeugt damit unterschiedliche Eigenwärme
  • Das heiße Wasser weist größere Toleranzen auf, wenn der Heizkessel örtlich weit entfernt ist oder andere Teilnehmer (Kessel) vom Wasser gebrauch nehmen.
  • Die Geräte werden je nach Betriebszeiten erneuert und das erzeugt unterschiedliche Toleranzen welche der Programmierer nicht berücksichtigen kann, da diese nicht parametrisiert werden können.
  • Der Temperaturverlauf und seine Zeiten ändern sich je nach Charge (Batch)
  • Die Filtereigenschaften haben deutliche Verschleiß-Eigenschaften über den geforderten Prozessverlauf.
  • Und und und ...
Ein selbst lernendes System kann durch die Anzahl der fotografierten Katzen (bei jedem Batch) dazulernen. Das heißt, nur bei jedem erfolgreichen Prozess wird dieser in die Datenbank übernommen. Dadurch wird die ehemalige Hilfestellung bei der ersten Aufnahme ( supervised learning ) immer mehr in den Hintergrund treten und damit ironischerweise automatisch der SPS-Programmierer auch 😎.

Umsetzung

Wir werden zunächst unser C#-Programm aus Prototyp II so ändern, dass WPF wegfällt und eine seitenorientierte Oberfläche entsteht (Bild 1). Dann erweitern wir den KI-Automat mit analogen Signalen. Die grauen Katzen kennen wir ja bereits aus Prototyp I und II. Jetzt erhalten wir zusätzlich bunte Katzen 😉



Bild 1

In der ersten Phase erstellen wir die Daten für unseren Simulator zur Aufgabenstellung. In der zweiten Phase untersuchen wir das mit der SPS (Simatic). 

Es wird also in YouTube mindestens zwei Filmabschnitte geben.

Nach langer Diskussion und letztendlich in Brüssel habe ich (wir) entschieden, keinen PID-Regler anzuwenden. Das ist zwar ein Gerät, welches nur parametrisiert wird (so auch unser Timer TON), aber die Praxis zeigt, dass die Aufgabenstellung mit nur einem PID-Regler nicht gelöst werden konnte. So müssen mehrere PID-Regler verwendet werden, da die kritischen Überleitungen von der Start-Temperatur und er End-Temperatur überschwingen und so bei der Toleranz von nur ± 1°C die Angelegenheit sehr kompliziert wird. 

Außerdem ist auch hier die Verantwortung vom Programmierer zum Anlagenhersteller ständig in Frage gestellt - wenn es nun doch nicht funktioniert hat 😓. Diese Diskussionen finden wir leider bei jeder traditionellen Inbetriebnahme. Der Entwickler möchte mit komplexen Bausteinen wie den PID möglichst keinen Kontakt.

Mit unserem KI-Automat wird diese Situation deutlich verbessert, da verständliche Werkzeuge für die Aufnahme der Signaturen verwendet werden und damit die Anwendung der Programmzyklen oder ähnliches nicht mehr notwendig werden.

In der YouTube-Version werde ich natürlich nur kurze Prozesszeiten zeigen. 💁

Zum Thema KI

Kurz zusammengefasst nun der jetzige Stand zur SW für die KI-Automation im Prototyp III. Im nachfolgenden Bild sehen wir noch einmal die Vorgehensweise für die Erstellung eines Ausgangslayers (OL), welcher schließlich in die SPS transferiert und dort durch den KI Automat in einen zyklischen Prozess umgesetzt wird. 



Am PC wird zunächst mittels Machine-Learning (ML) alle 100 ms (Prototyp III) ein Foto der Signatur erzeugt und als Eingangslayer (IL)  abgelegt. Durch den Prozess des Deep-Learning (DL) entstehen so Outputlayer (OL), welche der Fabrik gegebenenfalls wieder zur Verfügung gestellt werden. Hier erfolgt bereits ein Lernprozess innerhalb der Entwicklungsphase. Die Ausgangslayer in der SPS werden im Prototyp III kontinuierlich verarbeitet ohne dass diese sich erneuern bzw. erweitern.

Dieser Prozess muss also nach einem erneuten Lernen am PC wieder in die SPS übertragen werden. Der KI-Automat in der SPS verarbeitet nun die im DB zur Verfügung gestellten Daten nach dem Prinzip der Automaten-Programmierung (SCL). 

Erst im Prototyp IV wird jeder Prozess-Lauf von der SPS an ein Daten-System zum  PC übertragen, welcher so wieder neue Outputlayer generiert. Diese gelangen dann wieder in die SPS als zusätzliche Daten im DB. Das werden wir dann im Prototyp IV sehr schön erkennen können.

So erhöht sich nach jedem Prozess die Datenbasis im DB und kann je nach Bedarf abgeschaltet werden. Die SPS hat damit eine automatisierte Inbetriebnahme abgeschlossen und arbeiten autark mit den bestehenden Daten.

Das noch einmal zur Erklärung, da doch immer wieder die gleichen Fragen gestellt werden. Ich hoffe das reicht vorerst, denn im folgenden Abschnitt zeige ich den ersten Kontakt über ein Diagram mit einem analogen Eingang. Hier lernen wir über die Tankfüllung das Ein/Ausschalten des Mixers. Der Test zeigt uns so, wie analoge Signale im Eingangslayer schließlich im Ausgangslayer landen.

Der Analog-Eingang

Der Analogeingang für die Tankfüllung_T1 soll den Mixer ab z ,B. 6% einschalten. Dazu verwenden wir einen Slider, welcher händisch auf 6% gestellt wird um dann den digitalen Ausgang TankMixer_T1 einzuschalten.




Danach können wir je nach Bedarf den automatischen Lauf des Sliders einschalten. Nun erhalten wir einen kontinuierlichen analogen Prozess, bis der Tank mit 100% gefüllt ist. Im Bild sehen wir die Tankfüllung bei 62% und den bereits gelernten SLF (supervised learning factor) mit 57%. 

Die so erzeugten Bilder alle 100 ms gelangen nun in die Eingangslayer, welche danach im Deep-Learning zu einem Ausgangs-Layer verarbeitet werden. 
Dazu das erste Video



Wir sehen bereits den Zusammenhang der Signale aus dem Signatur-Diagramm und den einzelnen Bauelementen, welche sich in beliebigen, hier DIN A3 Seiten, befinden. Somit sind auch bereits die Eigenschaften der Schnittstellen zur SPS festgelegt. Betrachten wir nun den folgenden Abschnitt zum lernen der Ventile und Pumpen.


Ventile und Pumpen für Füllen und Entleeren

Der Tank wird mit je einem Ventil und einer Pumpe gefüllt bzw. entleert.

Die Pumpe darf nicht gegen ein geschlossenes Ventil pumpen. 

Im Klartext muss also das Einschalten der Pumpe nur möglich sein, wenn das dazu gehörige Ventil auch geöffnet ist.

Wir haben bei der Pumpe und dem Ventil je einen Eingang als Setpoint, welche bestimmt ob das Ventil oder die Pumpe eingeschaltet werden soll oder nicht. Der sogenannte ActualValue ist dann der tatsächliche Ausgang zum Ventil / Pumpe um tatsächlich je eine Ausgang für das Einschalten zu liefern. Im Diagram deswegen als Output konfiguriert.

So erklärt sich auch das folgende Diagramm, welches das Lernen der jeweiligen Ventil/Pumpe-Kombination zeigt.



Alles ja schon aus dem Prototyp II bekannt mit den digitalen Signalen und am Besten den nächsten Film  betrachten 😉




Die externe KI_SPS kontrolliert die KD-SPS


Nun ist es soweit! Ich habe meine SPS mit einer Kunden-SPS verbunden, indem ich das Analog-Signal für die Tank-Temperatur parallel abgegriffen habe und der Stellwert für das Control-Valve schlichtweg kundenseitig abgeklemmt und auf meine KI-SPS wieder angeklemmt wurde.




So hat die KD-SPS nix gemerkt und kann ganz einfach mit dem Batch beginnen. Nur der Stellwert für das CV-Ventil wird nun über meine KI-SPS erfolgen. 

Und dass durch den Konstrukteur der Anlage, denn der muss es ja wissen 😇

Dazu benutzt er meinen Slider, sonst nichts. Wir holen uns also die Daten dieses mal von der Anlage aus der SPS über die Schnittstelle PLC_API, wie von mir in Udemy erklärt, allerdings mittlerweile hier bei mir erweitert mit Daten innerhalb des Streams. Das natürlich weiterhin im JSON-Format.

So muss nun der arme Konstrukteur den Schieber 10 Std. beobachten und regeln. 

Er wollte das ja so und keinen PID-Regler 🙉

Die Temperatur wird ab 24°C geregelt, genauer gesagt ab 24,3 °C, denn innerhalb von ±0.3 °C wird nichts geregelt. Der letzte Stellwert bleibt also erhalten. So der Herr Konstrukteur.






Da innerhalb der 10 Std. die Temperatur um 8°C erhöht wird, muss also je Stunde der Sollwert um 0.8°C erhöht werden. Wir sprechen die SPS mit der SW KI2SPS in einem Sekunden-Takt an, das sind also Werte die wir mit 3 Stellen hinter dem Komma (8°C / 10std / 60min / 60sek)  = 0.0002°C je Sekunde speichern könnten. Die KD-SPS gibt allerdings nur alle 5 Minuten einen Setpoint zum Temperaturverlauf. Das sind also in der KD-SPS 0.067°C je 5 min.  Naja - dann viel Spaß.

Der Sollwert (blaue Linie) wird wie bei der KD-SPS über TON-Timer in der KI-SPS nachvollzogen und am Monitor zur Unterstützung des Konstrukteurs die aktuelle Temperatur und der Setpoint, sowie die Differenz angezeigt. So kann er den Stellwert so ca. alle 5 Minuten entsprechend korrigieren oder dies auch jede Sekunde anpassen. Das ist ein Vorteil gegenüber der KD-SPS, welche ja nur alle 5 Minuten regelt.

Nun dann - kann ja nix mehr schief gehen👦

Wenn alles geklappt hat, wir haben ja nur Wasser 😏 als Medium, dann versuchen wir das noch einmal über die KI-SPS ohne den Konstrukteur.

So nebenbei bemerkt, steht meine KI-SPS immer noch in Belgien, denn der nette  Konstrukteur hat Spaß daran gefunden und wird wohl eine Modernisierung beim Lieferanten in Deutschland anfordern 👌

Der Verlauf mit der KI-SPS hatte keinen Fehler geliefert, wenn genügend gelernt wurde. Die Probleme in der KD-SPS wurden somit erkannt und können nun durch den Programmierer korrigiert werden.

Am besten wir schauen uns das alles, soweit möglich und sinnvoll, im nächsten Video an.



Fazit: 950 Aufnahmen für den Input-Layer und damit einen supervised learning factor SLF von 62% zeigen ein gutes Ergebnis. Damit sind sehr viele Fälle abgesichert, welche in der Batch-Programmierung in der KD-SPS nicht umgesetzt wurden.


Lernen muss gelernt sein


Bei diesem praktischen Test hat sich wieder gezeigt, dass sich der positive Erfolg nur durch richtiges Lernen einstellt.

Der Schieber könnte ja auch automatisch bewegt werden! Immer dann wenn  AV mit > 0.3 vom SP abweicht, könnte der Schieber entsprechend verschoben werden, bis die Toleranz wieder stimmt, Das würde dazu führen, das Problem der Programmierung nur zu verschieben. In diesem Fall kann zwar ein Ergebnis im KI-Automat nachvollzogen werden, aber nur wenn keine extremen Störungen auftreten.

Damit diese auch erfasst werden, hat der Bediener mit Absicht extreme Situationen erzeugt, die Grenzen bis 0.9°C aufweisen und dann entsprechend dagegen gesteuert. Das - und nur das - hat dann zum Ergebnis des SLF von 62% geführt. Bei Analogwerten mit einer Kommastelle ist das sehr viel. Eben diese 950 Aufnahmen, wobei die Möglichkeiten wesentlich höher liegen. Insgesamt sind bei 100% ohne eine Kommastelle, das ist der Stellwert von 0-100%, schon 400 Möglichkeiten mischbar.

Das Ergebnis in der KI-SPS mit dem KI-Automat ist allerdings sehr sicher, da die SW einen konstanten Algorithmus nachweist, denn ungeplante SW ist ein Zufallsprodukt 😉

Firmen, welche Simulationen schreiben, sind für die Anwendung dieser Technologie besonders angesprochen und gut geeignet diese Idee zu implementieren. Eine Simulation liefert die Signaturen und diese gehen dann getestet in den KI-Automat. Ist doch toll - oder - 

Also meldet euch bei Interesse einer Zusammenarbeit oder exklusive Übernahme des jetzigen Prototyp-Standes der SW Ki2SPS 😌

Bis zum Prototyp IV, wenn überhaupt ....🙋



   





















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!!









Mittwoch, 16. Juni 2021

KI für die industrielle Automatisierung

 Geht KI auch mit dem TIA-Portal? 

Warum denn nicht? Geht ja auch mit dem Raspberry und PLC-Arduino und Beckhoff und Rockwell AB und B&R und  ...  so ... weiter ....

KI in der Steuerungstechnik ist die Zukunft für Manager aus den Fachbereichen wie z. B. Automatisierung, Sondermaschinenbau und SPS-Hersteller und gleichzeitig der Untergang für Personalanbieter der Bereiche Programmierer nach IEC-61131-3. 

Das Thema KI ist der Knackpunkt für die industrielle Automatisierung. Denn dort wird keine Programmiersprache mehr verwendet. Also kein:
  • FUP
  • KOP
  • AWL
  • AS
aber, falls vorhanden, ST oder eine andere höhere Programmiersprache, damit die aus der KI gelernten Daten nach dem gelernten Muster (Ausgangslayer) verarbeitet werden können. Die SPS hat dabei nur die Funktionalität der Sicherheit zu tragen. Das bedeutet:

  • Keinen projektbezogenen SPS-Programmierer mehr
  • Die Inbetriebnahme erfolgt durch den Konstrukteur der Anlage
  • Machine- und Deep learning liefern gleichzeitig auch den Funktionsnachweis
  • Die SPS verarbeitet die Daten der Ausgangslayer nach dem Prinzip KI-B
  • Automatische Fehlererkennung
  • Automatische Qualitätsoptimierung
  • Automatische Hinweise für nicht gelernte Zustände der Anlage
  • Durch die backpropagation (KI-B) wird eine höchste Sicherheit gewährleistet
Dazu sind natürlich einige Dinge zu klären. Was ist KI-B und was bedeutet ML für diesen KI-Bereich? Außerdem gibt es viele, viele weitere Fragen zum Thema "Keine SPS-Programmierer mehr nötig".

OK - Das Thema steht und ich erarbeite derzeit jeweils einen Prototypen aus 4 verschiedenen Branchen. Diese werden nach Fertigstellung auf meinem YouTube-Kanal veröffentlicht und somit zur Diskussion gestellt. Zumindest ist das so geplant :).


Der erste Prototyp

Der erste Prototyp soll ein einfaches Beispiel aus der Pneumatik sein. Bei dieser Gelegenheit kann ich gleich die Teil-Oberfläche des KI-B-Robots erklären.



Hier wird ein Zylinder ein- bzw. ausgefahren. Die Funktionsbeschreibung soll nun über das ML erfolgen. Das wäre in Worten ungefähr so: Der Zylinder soll ausfahren, solange das Signal 'S1_V1' am Ventil den Zustand 'true' besitzt. Zwangsmäßig fährt der Zylinder dann aus oder ein. 

Wir haben es also mit einer einfachen Steuerung zu tun, welche recht simpel in ML erfasst werden kann. Hier sind die Reaktoren = Eingangssignale = LS1_C1, LS2_C1, die Betriebsart Manuell und Automatik. Die Aktoren = Ausgangssignale sind S1_V1. Also vorerst nur ein aktiver Ausgang.

Die oberen drei Kreise ermöglichen das ML mit Handbetrieb (Manuell) und das ML in Automatik. Im folgenden Bild ist der Zylinder ausgefahren, da das Signal am Ventil aktiv ist.


Der Lernmodus für die Automatik und den Handbetrieb sind gleich, damit das Ganze zur Erklärung nicht zu kompliziert wird. Das ML müsste also nur die Parameter Manuel und Automatik berücksichtigen. Zudem aber wird nur in der Automatik auch auf mögliche Fehler und Warnings hingewiesen. Diese Parameter sind somit auch Ausgangsparameter und werden automatisch vorerst unsichtbar (Hiddenlayer) hinzugefügt. 

Mit Beginn des ML wird grundsätzlich die bestehende Situation als Grundstellung = Ausgangsparameter gelernt.

Damit haben wir also doch einige Ausgangsparameter, welche automatisch generiert werden hinzubekommen.  Mit dem ML wird ebenfalls ein Weg-Zeit-Diagramm zur Kontrolle automatisch generiert und spiegelt so den Lernmechanismus wieder. 




Damit die Frage gleich vorweg beantwortet wird:

Natürlich werden auch analoge Signale als AI und AQ berücksichtigt. Zudem kommen Elemente wie Timer , PID und andere Dinge hinzu.

Dazu dann mehr bei den Prototypen Chemie und Zellentechnik. Nun werde ich das Video für den ersten Prototyp fertig stellen, damit zunächst die prinzipielle Vorgehensweise gezeigt werden kann. Auf das Ergebnis bin ich selbst gespannt 😉 

Nun ist der erste Prototyp fertig (Stand 19.07.2021). 








Anhang:

Zum Thema KI:

Seminarveranstalter zum Thema KI für die Automatisierung können sich gerne anbieten.
Sollte es das DIF noch geben, bitte melden sie sich.

Links zu meinen Themen ohne KI:
https://www.youtube.com/watch?v=Hsn4yTFUZ_s

Udemy zur Vorbereitung mit einer PLC-API:
https://www.udemy.com/course/scl-api-mit-dem-tia-portal/learn/lecture/26664222#overview







Dienstag, 30. März 2021

SCL-WebBasic


Mit dem TIA Portal Basic und SCL in die Web-Technologie einsteigen

Ein neues und interessantes Seminar für  SCL-Programmierer oder die es einmal werden möchten.


Eine Webseite - oder auch mehrere - können mit der Programmiersprache SCL und ein wenig Fachwissen über SVG-Objekte, sowie eine Grundausstattung an JSON, innerhalb einer S7-1200 umgesetzt werden.



Das hört sich doch gut an oder? Betrachten wir im Bild zuerst den rechten Teil. Dort sehen wir eine Komponente TIA Portal Basic als Mindestausstattung. Mehr wird nicht benötigt, da wir die Webseite als HMI selbst erzeugen, brauchen wir kein WinCC. Der Einstieg erfolgt über den SCL-Basis/Advanced, welcher noch mit dem Simulator im TIA Portal durchgeführt werden kann. Dieser Teil ist nicht als Basis-Einstieg zur Sprache SCL gedacht, sondern soll all das vermitteln, was wir für das Praktikum benötigen. Also ein Hauruck-Kurs mit Schmagges.

Danach können wir nur noch mit einer reellen SPS S7-1200 weiter machen. Sie brauchen also eine SPS S7-1200 ab Version 3. Es könnte auch mit einer Version ab 2.xx funktionieren - denke ich.

Nun werden wir Schritt für Schritt die dort zu sehende SCL-API mit SCL umsetzen. Dazu gibt es zusätzlich eine kurze Einführung in das JSON-Format, damit wir die SVG-Daten an den Client senden können.

Wir benutzen die Bausteine TRCV_C und SEND_C aus der Systembibliothek der SPS, welche nicht im Simulator (PLC-Sim) angewendet werden können. Deswegen benötigen wir eine reelle SPS. Noch zur Info und Beruhigung, wir verwenden nicht den in der S7-1200 angebotenen Web-Server 😁.

Nun zur linken Seite im Bild. Zur Abbildung unsrer SVG-Objekte benötigen wir noch einen PC mit dem Betriebssystem Window-10 und einen Monitor, welche Google-Chrome als Client abbildet. So übertragen wir von der SPS die vom SCL-Programm gewünschten Bilder als SVG-Daten im JSON-Format an den Server, welcher als kleine C++-API auf dem PC läuft. Dieser fördert sie dann zur direkten Umsetzung zum Client (Google-Chrome).

Wir haben also zunächst eine leere Webseite, welche durch das Lebensflag die SPS auffordert etwas zu senden, damit SVG-Objekte abgebildet werden. Dieser Request vom Client zur S7-1200 erfolgt ebenfalls im JSON-Format und wird in der SCL-API aufgelöst und dann erneut gesteuert.

Somit bestimmt diesmal der SPS-Programmierer was die Webseite anzeigen soll und wie oft das geschehen soll. Die SPS ist also ein Quasi-Server, welcher vom Client zunächst nur einmal angesprochen werden muss. 

Also eine komplette Kontrolle einer HMI auf Web-Basis, bestimmt durch die SPS und der SCL-API. Die  SVG-Daten können so automatisch durch die Webseite als SVG's abgebildet werden.


SCL-API

Nun ist eine SCL-API tatsächlich etwas neues für einen SPS-Programmierer. Alleine das Wort API ist schon fremd, denn schließlich befinden wir uns in der Prozesstechnik und nicht im siebten Himmel einer Wolke. 😌

Nun gut - allerdings hätten wir jetzt aber die Möglichkeit dazu "in den Himmel" zu kommen. Betrachten wir das folgende Bild, dann sehen wir tatsächlich, wie die Systembausteine TRCV_C und TSEND_C zu Einsatz kommen. 
Bildausschnitt: Praxis-Seminar SCL-API


Der Parser in FB1000 sorgt dafür, dass unsere JSON-Formate vom Client umgesetzt werden und diese dann SPS-gerecht in einen DB (SendReceiveData) als JSON-Formate gespeichert werden. So kommen diese dann zum Client über den FB2000 wieder zurück. Der kann nun seine SVG-Element entsprechend abbilden und liest auch, wie er sich mit seinem nächsten Request zu verhalten hat. 

Somit hat die SCL-API seine berechtigte Schreibweise als Application-Programming-Interface. Ganz einfach -oder?

Das Seminar wird wohl wieder in Udemy veröffentlicht. Natürlich sind alle Sourcen wieder veröffentlicht, diesmal SCL, JS und C++ ohne node.js 😉


Wohl in Udemy deswegen, weil ich noch abschätzen muss, ob ich das dort auch weiterhin verfolgen möchte (Stichwort Inhouse-Seminar).

Wir werden sehen. Die Programme sind alle fertig und wie immer ordentlich getestet. Die Videos muss ich allerdings noch erstellen. Eine Vorschau zum Thema wird es in wenigen Tagen in YouTube geben.
.
.
.
Jetzt sind beide Teile in YouTube zu sehen :)







SCL-API kennt auch JS-Code

Nun wünsche ich mir als SCL-Programmierer wesentliche Anteile zum Internetgeschehen :) 
Zumindest jüngere Techniker finden das sicher seht interessant im Internet über SCL mitzuwirken ohne meinen Sicherheitsstandard zu verlassen. Nur HMI ist nicht mehr ausreichend!

IEC 61131 ist ja auch stinklangweilig und so ist es auch schwierig neue SCL-Programmierer zu bewerben. (Zumindest in Deutschland wurde mir das oft bewusst).

Im folgenden Video zeige ich die Erweiterung der SCL-API mit den Eigenschaften Programmcode direkt an die Webseite abzugeben. Unsere Nachrichten sind also nicht nur Daten, sondern auch intelligente, vom SCL-Programmierer gewünschte Anweisungen an die Webseite.

So kann dieser verschieden Webseiten zu anderen SPSen im Netz anzeigen. Und das ohne zusätzliche Kosten oder Software. Alles mit TIA-Portal Basic.



Das Praktikum ist ab jetzt in Udemy zugelassen. Also schauen Sie mal rein. 

Vielleicht können auch Sie Altes mit Neuem verbinden.