Zum Inhalt

Open Source

Für die Umsetzungen an der TransferFactory werden ausschließlich Open Source - Lösungen eingesetzt. Dies hat den Vorteil, dass in der Lehre auf allen Rechnersystemen Pilotentwicklungen realisieren werden können.

Node.js

Da JavaScript eine weitverbreitete Skriptsprache für HTML-Seiten ist, macht ihre Verwendung für eine serverseitige Skriptprogrammierung sehr interessant. So lassen sich Web-Server, Web-Dienste u.v.m. realisieren. Ein großer Vorteil von Node.js, dass heute eine sehr große Verbreitung hat, ist die Ressourcensparsamkeit.

// Minmal-Webserver
 var http = require('http');

console.log("Server startet -> 127.0.0.1:8080!");
http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Der erste Versuch mit node.js');`\
}).listen(8080);

Node-RED

Node-RED ist eine Möglichkeit, per Drag and Drop in Anlehnung an Signalflusspläne, den sogenannten „Flows", Signalverarbeitung und Visualisierung zu modellieren. Das Open Source Projekt wurde von IBM entwickelt und setzt auf Node.js auf.

Flow-Beispiel]

Dashboard-Beispiel

Python]

Python ist eine weit verbreitete Programmiersprache, die für die meisten Betriebssysteme, wie Windows, Linux und macOS frei verfügbar ist. Python wurde in den 1990er Jahren entwickelt und ist wie Java auch eine Interpreter-Sprache. Stärke der Sprache ist ihre Flexibilität. Zudem ist sie wie JavaScript auch konsequent objektorientiert aufgebaut. Sie wird bereits mit einer sehr umfangreichen Standard-Bibliothek ausgeliefert.

Es existieren aber auch unzählige sehr leistungsfähige Bibliothekserweiterungen. Die folgenden Bibliotheken sind für die Datenanalyse wichtig und werden hier auch eingesetzt:

Lib Funktionen
NumPy Vektoren und Matrizen, mathematische Funktionen, lineare Algebra
SciPy Num. Integration und Optimierung, Interpolation, FFT, symbolische Mathematik
Matplotlib Grafische Darstellung
Pandas Verwaltung von Daten (dataframe), Analysen und Plot-Ausgabe
Scikit-learn Maschinelles Lernen (Klassifikation, Regression, Clustering)
Tensorflow / Keras Maschinelles Lernen
Plotly Grafikausgabe im Webbrowser als interaktive App
PyMongo Datenbankschnittstelle zur MongoDB
mysql-connector Datenbankschnittstelle zur MySQL-Datenbank
Flask Webframework (mit eigenen Webserver)
multitasking Multitasking-Framework
Paho MQTT-Schnittstelle (Publisher, Subscriber)
opc-ua OPC-UA-Schnittstelle (Client + Server)

NoSQL: MongoDB]

NoSQL-Datenbanken (Not only SQL) realisieren einen nichtrelationalen Datenbankenansatz. Damit haben sie keine Tabellenstruktur mit eilen und Spalten, sondern können als strukturierte Datenspeicher beschrieben werden. Die Daten werden als Listen, Objekte, Dokumente etc. organisiert. Sie werden insbesondere bei datenintensiven Anwendungen eingesetzt, was bei relationalen Datenbanken zu erformance-Problemen führt.

Struktur

Document-Beipiel

{
  "_id" : "5d5564aca4078f51503e4bd1",
  "Maschine" : "Fräszentrum",
  "Ort" : "[54.12545, 36.21541],
  "Anschluss" : {
  "el" : 5000,
  "pneu" : 120
  },
  "error" : false
}

SQL: MySql

{

SQL-Datenbanken sind relationale Datenbanken. Dabei beschreibt SQL (Structured Query Language) eine standardisierte Abfragesprache der Datenbank, mit der Daten eingefügt, verändert oder gelöscht werden können.

Die Daten werden in Tabellen organisiert. Dabei werden Objekte mit gleichen Eigenschaften zusammengefasst und Objekte, die nterschiedliche Eigenschaften aufweisen, getrennt. Eigenschaften oder Attribute bestehen aus einem Attribut-Bezeichner und einem Wert.

MQTT-Broker

Der Broker verwaltet und administriert den gesamten Datenverkehr. Jede Verbindung erfolgt im Rahmen einer Session, was bei Verbin-dungsausfällen ein reibungsloses Wiederaufsetzen der Kommunikation unterstützt. Im Broker entsteht durch die Datenverwaltung ein umfassendes Bild des Zustandes einer Maschine, Anlage, Prozess, ...

Der Broker ist der zentrale Server, der auf einem Rechner installiert sein muss. Eine kostenlose, schlanke und sehr leistungsfähige Open-Source-Lösung stellt der Mosquitto dar. Er ist für alle gängigen Betriebssysteme verfügbar.

Mehr Infos