Freitag, 19. Juli 2019

Voraussetzung für die praktische Anwendung der KI mit JS++.js

JS++.js ist eine Bibliothek mit der die Voraussetzung der praktischen Anwendung der KI umgesetzt werden kann.


Es handelt sich hier nicht um eine neue Programmiersprache, sondern die besondere Anwendung von JavaScript (JS) mit dem aktuellen Stand ECMAScript (ES7).

Beispiel Automatisierung

In der Bibliothek werden nur Klassen, so wie diese in C++ Anwendungen zu findet sind, verwendet. Das Basiswissen dazu kann aus dem Buch "Automatisieren mit Web-Technologien" oder den angebotenen Kursen über den VDE-Verlag angeeignet werden. 

Was nicht so ohne weiteres gegoogelt werden kann, ist die bereits angesprochene Anwendung für eine Automatisierung. Dazu gehört auch die praktische Anwendung der KI, welche bereits in einem Kranprojekt umgesetzt wurde.

Der Kran lernt seine Fahrten mit und ohne Last und kann nach seiner Lernphase den Lasthaken pendelarm fahren. Die dazu notwendigen "Lerndaten" werden in der SPS oder im Server gespeichert.

Was kann JS++.js nun und welche JS-Komponenten sind bereits umgesetzt worden?

JS++.js vereinbart einige JS-Dateien und ermöglicht so die Anwendung der Automatisierung im Netztwerk oder als Single-System auf einer JS-fähigen Hardware. Die Visualisierung erfolgt im Browser Google Chrome und wird von node.js als Server bedient (Bild 1).


Bild 1:  Browser und Server bilden eine Automatisierungs-Einheit


Einige Anwendungen sind hier im nachfolgenden Video-Link zu sehen.



Interessenten zum Thema Automatisieren mit Web-Technologien können sich bei mir melden unter johanneshofer@tia-expert.com

Zudem ist ein Video-Kurs für JS-Fortgeschrittene zur Anwendung der Datei JS++.js geplant. Bei entsprechender Anmeldezahl wird der Kurs Mitte September gestartet. Der Kurs ist kostenfrei!

Die im o.g. Buch gezeigten Grundkenntnisse müssen verstanden sein, sonst wird der JS++-Kurs für den Teilnehmer nicht erfolgreich sein.


Hier noch einige Links zu diesem Thema:
VDE Buchverlag/Seminare:

















Dienstag, 18. Juni 2019

Automatisieren mit Web-Technologien Teil-3

Java-Scripte machen die Web-Anwendung so intelligent!


Wie bereits in den vorangegangenen Teilen erwähnt, gibt es in der Programmierung mit JS einige Futures (Promis). Das sind RUN-Scripte, Inline-Scripte, Plug-In's und Verbindungen. Das Plug-In ist eine besondere Form der SW-Erweiterung und beinhaltet ebenfalls Scripte, welche als RUN-Scripte oder Inline-Scripte Anwendung finden und ist am Beispiel der Lagerverwaltung zur Automatisierung eines Hallenkranes bereits im Teil-2 kurz erwähnt worden.


Ereignisse können so zur Laufzeit bearbeitet werden, falls dies entsprechend den Anforderungen notwendig und sinnvoll wird. 

Aus diesem Grund werden Scripte als Parameter (Argumente) an Prozeduren weitergegeben. Diese werten deren mögliche Verwendung aus und können entscheiden, die Scripte auszuführen oder nicht.

Wie RUN-ScripteInline-Scripte und Verbindungen praktisch angewendet werden, zeigen die drei folgenden Videos.


Video Verbindungen


Video RUN-Scripte


Video Inline-Scripte


Vorschau zum Video-Kurs für fortgeschrittene JS-Programmierer

Die Kransteuerung zur Ausführung der Fahrbefehle etc. wird auf einer Simatic S7-300 ausgeführt. Die Kranverwaltung dazu befindet sich auf der PC-Plattform. Das ist in diesem Kranprojekt eine

nodePLC


und läuft direkt in Verbindung mit dem Browser völlig autark. Beispielhaft wird u. a. folgende Aufgabe aktiviert:

Bei der Kran-Steuerung werden die Fahrparameter der Kran- und Katzfahrt gespeichert und dessen Verhalten ausgewertet. Durch diese Daten kann nun jeder Belade- und Enladevorgang optimiert werden. Es entsteht dadurch ein künstlicher Effekt, welcher neuzeitlich auch als KI bezeichnet wird. Die Anlage lernt so pendelarm zu fahren und optimiert damit den Tonnenumsatz. Das ist nur ein Beispiel aus den vielen, möglichen Anwendungen mit dieser Technologie.

Im folgenden Teil-4 werde ich eine Übersicht zeigen, welche Themen die folgenden Videos zur Programmierung in JS beinhalten und darf bereits jetzt schon darauf hinweisen, dass die JS-Programmierer für den Video-Kurs, sich das Grundwissen JS ab ECMAScript 6 (class) zum Verständnis der Video-Reihe angeeignet haben müssen (Beispielhaft VDE-Buch Automatisieren mit Web-Technologien und Kursangebote). 

Hier noch einmal die Links zu diesem Thema:
VDE Buchverlag/Seminare:










Mittwoch, 5. Juni 2019

Automatisieren mit Web-Technologien Teil-2

Praxis-Beispiel einer Anwendung mit webPCE.js

Komplexe Webseiten können mit einem web-plugin beginnen und danach mit Basis-Objekten erweitert werden. Das web-plugin spezialisiert die Webseite und verbindet alle notwendigen Resourcen über den Server (node.js).

Im folgenden Bild ist die leere Webseite ersichtlich. Im Objekt-Menü links können nun die angebotenen Basisobjekte (einstellbar) hinzugefügt werden. Für dieses Beispiel wurde das web-plugin 'crane'  hinzugefügt (Punkt 1) und ausgeführt (Punkt 2).



Die gesamte Kran-Automatisierung ist mit dem Button 'Paint' gemäß der ersichtlichen Spezifikation eingefügt worden. Danach können weitere Objekte aus dem Objekt-Menü hinzugefügt werden. Mit den gebotenen Möglichkeiten der Inline-Scripte, Run-Scripte und den Verbindungen der Objekte ist in Kürze eine funktionsfähige Webseite einschließlich der Netzverbindung (Modbus) zur SPS entstanden. 



Fazit:

Das Einfügen einer web-Applikationen für eine Webseite ist neu. So kann jede denkbare Anwendung spezialisiert und letztendlich als Runtime-Version für den Anwender ohne Risiko bedient werden. Diese Applikation wurde auf einem Raspberry Pi3 getestet und lief sofort ohne Probleme. Dazu werde ich noch weitere Information zusammenstellen ☺.

Nun ist die Frage aus Teil-1 noch nicht geklärt: Wie macht man so etwas? Ich werde in Kürze eine Video-Serie für JS-Programmierer erstellen, welche die Anwendung der Datei webPCE.js erklärt. Das Basis-Wissen JavaScript wird hier jedoch vorausgesetzt, da dieses zur Genüge gegoogelt oder speziell zu diesem Thema in meinem Buch nachgelesen werden kann. 

Nachfolgend ein zusammenfassendes Video, wie die oben gezeigten Bilder entstanden sind. Die Kommunikation mit der SPS (SIMATIC S7-1200) wird durch die blinkende Lampe dargestellt und erfolgt über Modbus. Die Applikation wurde auch auf einem Tablett erfolgreich getestet. Voraussetzung für externe Geräte ist natürlich ein vorhandenes Netz (Wlan) damit der Server auf dem eigenen PC angesprochen werden kann.

Die Applikation mit einem PC


Die Applikation mit Raspberry Pi 3

In den folgenden Teilen werden weitere, praktische Beispiele aus verschiedenen Branchen vorgestellt.

Hier noch einige Links zu diesem Thema:
VDE Buchverlag/Seminare:

Beispiele zur Anwendung der Datei webPCE.js:

Montag, 3. 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:
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