Für diese Anwendung wurde eine Datenbank auf einem Server der Firma Strato in Berlin angelegt. In dieser Datenbank werden sämtliche Produktionsdaten persistent (langwierig) gespeichert. Über diese Datenbank wird auch die Smartphone-Applikation angebunden. So ist der Anlagenführer über sein Smartphone und der Smartwatch auch mit der Anlage vernetzt. Da die Anlage eine Stückzahl-1-Produktion verwirklicht, kann damit jeder Datensatz an Produktionsdaten einer Dose über eine ID zugeordnet werden. Dies passiert über den QR-Code, der auf den Deckel der Dose gedruckt wird.

Folgende Werte werden für jede Produktion erfasst:

  • Produktionsdatum und -uhrzeit
  • Ablaufdatum der M&Ms
  • Temperatur
  • Luftfeuchtigkeit
  • Pneumatikdruck
  • Spannung der drei Phasen
  • Ströme der drei Phasen
  • verbrauchte Energie, um die Dose zu produzieren
  • Anzahl der in der Dose enthaltenen M&Ms
  • zufallsgenerierte ID der Produktion


Die Anbindung funktioniert über PHP-Skripte. Den Ablauf kann man sich wie folgt vorstellen:

Struktuelle Darstellung des Ablaufes der Datenbankabfrage

Jeder, der auf die Datenbank zugreifen möchte, ruft eine URL auf und übergibt hiermit ein Namen für ein PHP-Skript (in unserem Fall übergibt der Raspberry Pi den Namen getProductionData.php) und Parameter (hier die ID des jeweiligen Datensatzes) zur Übergabe an das Skript. Der Server lädt nun dieses PHP-Skript und lässt es vom PHP-Interpreter auswerten. Dieser erzeugt ein Ergebniscode je nach Ergebnis der Datenbankabfrage. Diese Produktionsdaten werden bei uns als String zurückgesendet. Die eigentliche Datenbankabfrage ist eine Select-From-Where-Abfrage.

Die gespeicherten Produktionsdaten kann später auch der Endverbraucher einsehen, indem er den QR-Code seiner Dose mit einem Smartphone einscannt. Auch hier gibt es einen Aufruf eines PHP-Skriptes, dass die anzuzeigenden Werte aus der Datenbank liest und dem Aufrufer in einem HTML-Code zur Anzeige im Browserfenster zurückliefert.

Aber nicht nur hier werden die Daten aus der Datenbank gebraucht sondern auch noch im letzten Produktionsschritt. Hier werden über den QR-Code-Scanner die Daten der URL, die sich hinter dem QR-Code verbirgt als Ergebnisdaten an die S7-1200 Station gegeben. Diese versendet die Daten weiter an der Raspberry Pi, der die Schnittstelle der Anlage zum Internet ist. Hier wird die ID aus der URL gefiltert und mittels eines PHP-Skriptes werden die Produktionsdaten aus der Datenbank abgefragt und wieder an die S7-Station zurück gesendet. Diese überträgt diese Daten an das Visualisierungsgerät. Gleichzeitig startet der Raspberry Pi bei erfolgreichem QR-Lesevorgang einen Druckauftrag für die seitliche Bedruckung der Dose. Dabei wird der vollständig vom Kunden eingegebene Name benutzt. Nach erfolgreicher Produktion der Dose wird der Name jedoch aus datenschutzrechtlichen Gründen aus der Datenbank entfernt.

Der Zugriff auf die Datenbank kann durch die Verwendung eines öffentlichen Servers nicht nur vom Standort der Anlage, sondern von jedem Internetanschluss getätigt werden. Dieses Prinzip nennt sich dezentrale Überwachung und Steuerung einer industriellen Anlage - ein großer Punkt in der vierten industriellen Revolution.


Datenbankabfrage

Die Datenbank wurde mittels MySQL erstellt. Die Abfrage selbst wird über ein abgespeichertes PHP-Skript realisiert. Dieses befindet sich in der Dokumentation des Auftrages.
In Datenbanken gibt es Entitäten, die man sich so ähnlich wie Tabellen vorstellen kann. Eine Datenbankabfrage (SFW-Abfrage) besteht bei MySQL immer aus drei Teilen:

    1. S-Teil: SELECT
    2. F-Teil: FROM
    3. W-Teil: WHERE
SELECT

In dem SELECT-Teil wird festgelegt, welche Attribute (Spalten) aus einer Entität gewünscht sind. Gibt man hier ein Sternchen (*) an, werden als Ergebnis alle Attributswerte des Datensatzes zurück gegeben.

FROM

Im FROM-Teil wird die Entität genannt, aus der die Ergebnisdaten herausgesucht werden sollen. Mehrfachnennungen werden mit einem Komma getrennt. Bei der Angabe von mehreren Entitäten wird aus beiden ein JOIN gebildet, d.h. jeder Datensatz der einen Entität wird mit jedem Datensatz der anderen einmal gemischt. Dieses kann mit einer Bedingung im FROM-Teil begrenzt werden.

WHERE

Im WHERE-Teil werden Bedingungen zu den gesuchten Datensätzen eingegeben.

Beispiel:

SELECT * FROM ProductionData WHERE ID=123456
Hier wird in der Entität (Tabelle) ProductionData der Datensatz mit der ID 123456 gesucht. Es werden als Ergebnis alle Spalten der Entität erwartet.

Zuletzt geändert: Mittwoch, 6. September 2017, 09:34