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.

Video folgt ....


 

Mittwoch, 12. Februar 2020

KI-Automat - Ml und Safety

Der KI-Automat ist der erste Schritt zur Aufbereitung der Daten für die Anwendung der schwachen KI.


Das folgende Video zur Erklärung:




Dieses Beispiel zeigt den KI-Automat für die Anwendung eines Grafcet. Die Umsetzung in IEC-61131 dagegen kann nicht in Daten zur untersten Vorstufe der schwachen KI verwendet werden. Zumindest nicht so einfach, da hier sehr viele Parameter notwendig werden.

ML ist bei einem Grafcet denkbar und bietet den Ansatz dazu. Die Datenstruktur zum KI-Automat ist unter Umständen lernfähig, wenn diese dazu führen soll, eine Lösung in einer anderen Programmiersprache zu realisieren.

Ich habe hier für den KI-Automat JS gewählt. Der KI-Automat ist eine feste Struktur welche auf die Daten zugreift. Diese sind teilweise selbst Java-Scripte, welche aus dem Grafcet entstanden sind. das bedeutet:

Der Grafcet wird teilweise in JS gewandelt und ändert sich je nach Anwendung im Frontend. Das geht dann in Richtung schwache KI, denn diese Java-Scripte richten sich nach der grafischen Anwendung aus und zeigen Funktionalität und auch Fehlerquellen.

Eine weitere Möglichkeit zum Einsatz der Simulation über den KI-Automat:





https://www.udemy.com/course/grafcet-y/learn/lecture/20815628#overview

Eine neue Programmier-Serie in JS zur Erklärung des           KI-Automaten

Der KI-Automat unterscheidet sich zu traditionell erstellter Software darin, dass dieser aus 3 Prozessen besteht:

  1. Lernsoftware
  2. Umsetzung in JS-Code
  3. Speichern zur Anwendung im KI-Automat
Das sind wesentliche Unterschiede zu den bisher gezeigten KI-Systemen, da es sich hier ja auch um Automatisierung handelt. Nun ist die Bilderkennung auch Teil der Automatisierung, soll aber bez. der Software mit neuronalen Netzen und die Verarbeitung von Massendaten ausgeschlossen werden. 

Es handelt sich hier schlichtweg um eine andere Form der KI

Die Aufgabe:

Am Beispiel eines Monitors soll nun erklärt werden, wie dieser lernfähig wird und wie man das z. B. in der HMI nutzen könnte. Danach soll ein Gerät (Roboter) über seine elektronischen Augen einen Plan lesen, welche auch Menschen verstehen (also keinen Barcode). Dieser Plan wird dann als Programm vom Gerät ausgeführt.

Das Problem ist, eine Veröffentlichung in YouTube ist nur dann sinnvoll, wenn sich entsprechendes Publikum dafür interessiert, da eine Menge an guten JS-Sourcen, sozusagen verschenkt werden.

Bei Interesse an diesem Thema schreiben Sie mir bitte zur Gründung einer entsprechenden Community. Derzeit sind 48 Personen daran interessiert.

Warten wir es also ab! Bis bald.




Freitag, 10. Januar 2020

Grafcet mit JS++ und einem KI-Automat

JS++ und Anwendung am Beispiel Grafcet

Das Framework C++.js hat bereits einige, praktische Beispiel gezeigt, jedoch kam ein komplexes Beispiel noch nicht zur Ansprache. Betrachten wir uns noch einmal das Diagramm in Bild 1, so sehen wir eine bisher noch nicht gezeigte Aggregation:


Der Browser besitzt ein Grafcet++-Modul.


Bild 1 Component-Diagramm JS++.js

Der Browser hat ein Grafcet-Modul! Damit die Auswertung des Grafcet-Plan's erfolgen kann, wird das KI-Modul verwendet. Es handelt sich hierbei um einen KI-Automaten. Dieser wertet den Grafcet-Plan aus und liefert dessen Ergebnisse. Die Daten dazu werden über ein Netzwerk erzeugt.

Das Modul Grafcet++ soll im folgenden Video bezüglich der Bildung von Aktionen kurz vorgestellt werden.



Nun warum Grafcet++?

Das zeigt das folgende Video am Beispiel für den Einstieg in Grafcet++  mit zusätzlichen Elementen wie Motor, Ventil usw. zur eigenen Simulation und Überprüfung des geschriebenen Grafcet-Moduls.




Dazu werden noch einige weitere Beispiele folgen, da Grafcet++ auch mit den IEC-Modulen ausgeführt werden kann. Das macht die Anwendung besonders für Studenten interessant, denn diese müssen ja für die Prüfung den Grafcet-Plan in einen Funktionsplan umsetzen.

Das Framework JS++ soll in Zukunft in GitHub veröffentlicht werden und kann so kostenfrei ohne Begrenzung genutzt werden. Es fehlen dazu nur noch wenige Überprüfungen, damit die JS-Programmierer auch richtig Spaß damit haben, ohne ständig über Fehler zu stolpern. :)

Und hier ein Beispiel für das Grafcet++




Kursinfo:







Donnerstag, 19. Dezember 2019

JS++ und IEC-Objekte

IEC-Elemente und deren Parameter-Anwendungen


Die Videos der Anwendung für IEC-Elemente sind nun in You-Tube veröffentlicht. Natürlich können so alle Möglichkeiten nicht sofort erkannt werden, jedoch im noch folgenden Beitrag über PID-Regelung mit IEC-Bausteinen sind weitere Anwendungsmöglichkeiten ersichtlich.

Hier die beiden Links zu Teil-1 und Teil-2







Kursinfo: 



Samstag, 23. November 2019

nodePLC.js und RunTime,js

nodePLC mit dem Praxisbeispiel Chemie Teil-2

Aus dem Projekt Praxisbeispiel Chemie-Teil 2 wurde die RunTime erzeugt und soll nun über die nodePLC gestartet werden. Diese ist für dieses Beispiel mit dem Modbus ausgestattet.

Dazu der Link zu meinem YouTube-Kanal





Nun kann die webHMI abgeschaltet werden und die nodePLC bearbeitet das Programm weiter. Ein tolle Angelegenheit, wenn man bedenkt, dass es z.B. für den Modbus mehr als 100 Geräte gibt.

Kursinfo:



Mittwoch, 20. November 2019

JS++ und Chemie

JS++ für die Chemie als Simulation und PLC


Chemische Prozesse werden in sogenannte "batches" betrieben, welche übergeordnet mittels Rezepte organisiert werden. Diese rufen dann sogenannte "operation" auf, welche wiederum zur Ausführung 'Phase'-Bausteine aufrufen. Die folgenden zwei Beispiele (Teil-1,2) zeigen die Anwendung mit dem speziellen IEC-Baustein 'Phase'.



https://www.youtube.com/watch?v=9qS3RQ4mR7E



https://www.youtube.com/watch?v=MlP0iUsWuh8


Im nächsten Post wird nun aus dem Chemie-Beispiel Teil 2 eine nodePLC generiert und schließlich als RunTime zur Verfügung gestellt. Nachfolgend das UML-Bild zur sogenannten nodePLC auch als Runtime bezeichnet.



Kursinfo:



Donnerstag, 31. Oktober 2019

JS++ und Pneumatik

Pneumatik mal ganz anders erklärt

Mit dem Browser als Client und node.js als Server kann man wunderbare Dinge erzeugen. Wunderbar im Sinne der Technik, wie z. B. die Pneumatik und deren Simulation.


Dieses Video zeigt eine kleine Vorschau für die folgende Verlinkung zu YouTube, welcher den Ausschnitt eines Seminares zeigt.



https://www.youtube.com/watch?v=KD3aqmXBinw&t=36s




Das UML-Js++ Diagramm zeigt den neuesten Zustand der Software für das Framework JS++. Neu ist nun die Verbindung der RUN-Time über den Server zur nodePLC. Diese liefert das Ergebnis aus dem "RunTest" für eine Kundenanwendung. Das ist ein Gerät welches JS versteht oder ein Programm, welches den erzeugten C++-Source einbinden kann  😉

Kursinfo:



Dazu weiter in Kürze mit dem neuen Abschnitt für das Praxis-Beispiel Chemie Teil-1/Teil-2!