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