Dienstag, 4. Juni 2019

Automatisieren mit Web-Technologien Teil-1

Kann man mit Web-Technologien automatisieren? 


Ja - das geht, wenn die verwendeten Komponenten bestimmte Eigenschaften erfüllen. Die Komponenten entstehen aus den Anforderungen der einzelnen Disziplinen wie z. B. SVG, HMI, OOP oder KI.


Sind SVG oder HMI Disziplinen?  Bezogen auf ein Fachgebiet ist eine Disziplin eine Spezifikation, welche in unserem Fall für den Bereich Informatik zutrifft. HMI-Software gibt es wie Sand am Meer - möchte ich mal so ausdrücken - allerdings nicht mit der direkten Anwendung auf einem Browser und der Programmiersprache Java Script.

SVG ist skalierbar und für die Darstellung der grafischen Elemente innerhalb der HMI ideal auf einer Webseite anzuwenden.

OOP kann mit der Programmiersprache  JS optimal umgesetzt werden. Und last but not least kommt dann KI ins Spiel, wenn die SVG-Elemente ihren eigenen Programm-Code besitzen, welcher entsprechend der Klassifizierung nicht nur austauschbar, sondern während der Laufzeit anpassbar und kontrollierbar ist. Zudem kann zur Laufzeit einer Web-Anwendung JS-Inline-Code adaptiv erzeugt werden, welcher im Browser sowohl im Client ausführbar wird.

PCE = Process Control Engineering


Nach heutigen Maßstäben in der Informatik eine fast schon vergessene Abkürzung, welche für die Mess- und Regeltechnik einstmalig geschaffen wurde und sich im Wesentlichen mit Fließschemen beschäftigt. Die darin enthaltenen Kategorien und Verarbeitungsfunktionen sind unter anderem wichtige Hinweise für die Umsetzung, sprich Automatisierung, eines Fließschemas. Da passen doch die Disziplinen SVG und HMI sehr gut. Die Umsetzung in ein Programm ist da gerade ideal geeignet, denn ein Fließschema mit Pumpen, Ventilen usw. in SVG dargestellt, kann auch als bedienbare Visualisierung dienen. Das nur als Beispiel, denn auch andere Techniken wie Funktionsbausteine, Diagramme (Trend), Buttons, Eingabefenster usw. gehören auch dazu. Die Frage stellt sich nur wie macht man das?

Betrachten wir beispielhaft die grafische Programmierung mit Funktionsblöcken, so wie diese u. a. bei SPSen angewendet werden, dann sind auch hier ideale Voraussetzungen zu erkennen, denn ein Funktionsbaustein besitzt eine Software, welche durch seine Parameter entsprechend reagiert. Damit kommt wieder die KI ins Spiel, denn die Software in einem SVG-Element kann mittels Web-Technologie ausgetauscht werden oder sich in Real-Time an bestimmte Situationen anpassen. Auch hier die Frage, wie kann man so etwas mit einer Webseite umsetzen?

KI-webObjekt


Künstliche Intelligenz ist ein häufig verwendeter Begriff, welcher in die Neuzeit der Software-Entwicklung einen wichtigen Platz eingenommen hat. Um jeder Diskussion aus dem Weg zu gehen, verwende ich hier den Begriff KI-webObjekt.

Das kann nicht so einfach gegoogelt werden ☺, ist aber Bestandteil der Web-Technologie, wenn es darum geht etwas im Sinne der Technik zu automatisieren.

Meine Formel dazu:  SVG + Code + Daten = KI-webObjekt 

Das erklärt noch nicht viel, ist aber sicherlich neu und damit höchst interessant 😉. Die Basis zur Automatisierung mit Web-Technologien sind KI-Objekte und dazu gehört, wie aus der Formel erkennbar, schon einmal das SVG-Element und der Code in JS sowie klassenorientierte Daten. Der Code ist fester Bestandteil  zum SVG-Element und/oder ein Inline-Skript, ein austauschbarer Script oder ein webplug-in.

webplug-in


Ein Programmcode für eine bestimmte Applikation wird dem SVG-Element (eigentlich ist das auch ein Objekt) zugewiesen. Diese Software wird nun zusätzlich zu den bestehenden Skripten und Inline-Skripten als Applikation über die Webseite im sogenannten runScript ablauffähig.

runScript

Ein runScript wird im Browser ausgeführt und ist mit der Runtime einer WinCC-Application vergleichbar. Hier kann der Anwender am Browser seine Anlage Kontrollieren und Bedienen, so wie diese mit webPCE.js entwickelt wurde. Die Kommunikation mit den Geräten (SPS) erfolgt über den Server, welcher mit node.js erstellt wird und auf die runScripte reagiert.

webPCE.js


Zusammengefasst kann bereits festgestellten werden, dass eine Automatisierung mit Web-Technologien über bekannte Programmiertechniken realisiert werden kann. Die Datei webPCE.js beinhaltet die JS-Komponenten, welche zur Entwicklung für eine web-Applikation notwendig sind. Im nachfolgenden Diagramm sind die wesentlichen Komponenten ersichtlich. Diese werden von mir ständig weiter entwickelt. Dazu gehören auch bereits veröffentlichte JS-Programme anderer Autoren, wie z. B. modbus.js oder nodeS7.js.



Im nächsten Teil werde ich ein Beispiel mit einem webplug-in aus der Praxis zeigen, welche von mir bereits erfolgreich für die Automatisierung eines Hallenkranes umgesetzt wurde. 

Hier noch einige Links zu diesem Thema:
Kursinfo:

VDE Buchverlag/Seminare:
Grundseminar zum Thema Automatisieren mit Web-Technologien
Praxisanwendungen mit webPCE.js

Beispiele zur Anwendung der Datei webPCE.js:
Beispiel für die Anwendung von Funktionsbausteinen


Zum Buch




[HMI] Human Machine Interface
[SVG] Scalable Vector Graphics
[JS] Java Script
[OOP] Object-oriented programming
[AI] Artificial intelligence 
[FDB] Function Data Block