Sie sind auf Seite 1von 65

e!

COCKPIT Anwendungshinweis

Gebäude

Automation

WAGO-I/O-
PRO V2.3

WAGO-I/O-SYSTEM 750
WagoAppCloud
Version 1.5.1

Public
2 e!COCKPIT Anwendungshinweis – WagoAppCloud
WAGO-I/O-SYSTEM 750

© 2021 by WAGO GmbH & Co. KG


Alle Rechte vorbehalten.

WAGO GmbH & Co. KG

Hansastraße 27
D-32423 Minden

Tel.: +49 (0) 571/8 87 – 0


Fax: +49 (0) 571/8 87 – 1 69

E-Mail: info@wago.com

Web: http://www.wago.com

Technischer Support

Tel.: +49 (0) 571/8 87 – 4 45 55


Fax: +49 (0) 571/8 87 – 84 45 55

E-Mail: support@wago.com

Es wurden alle erdenklichen Maßnahmen getroffen, um die Richtigkeit und


Vollständigkeit der vorliegenden Dokumentation zu gewährleisten. Da sich
Fehler, trotz aller Sorgfalt, nie vollständig vermeiden lassen, sind wir für
Hinweise und Anregungen jederzeit dankbar.

Wir weisen darauf hin, dass die in diesem Dokument verwendeten Soft- und
Hardwarebezeichnungen und Markennamen der jeweiligen Firmen im
Allgemeinen einem Warenzeichenschutz, Markenzeichenschutz oder
patentrechtlichem Schutz unterliegen.

Public
Anwendungshinweis WagoAppCloud Beschreibung 3
WAGO-I/O-SYSTEM 750

Hinweise zu dieser Dokumentation

Urheberschutz
Diese Dokumentation, einschließlich aller darin befindlichen Abbildungen, ist
urheberrechtlich geschützt. Jede Weiterverwendung dieser Dokumentation, die
von den urheberrechtlichen Bestimmungen abweicht, ist nicht gestattet. Die
Reproduktion, Übersetzung in andere Sprachen sowie die elektronische und
fototechnische Archivierung und Veränderung bedarf der schriftlichen
Genehmigung der WAGO GmbH & Co. KG, Minden. Zuwiderhandlungen ziehen
einen Schadenersatzanspruch nach sich.
WAGO ist eine eingetragene Marke der WAGO Verwaltungsgesellschaft mbH.

Darstellung der Zahlensysteme


Tabelle 1: Darstellungen der Zahlensysteme
Zahlensystem Beispiel Bemerkung
Dezimal 100 Normale Schreibweise
Hexadezimal 0x64 C-Notation
Binär '100' In Hochkomma,
'0110.0100' Nibble durch Punkt getrennt

Schriftkonventionen
Tabelle 2: Schriftkonventionen
Schriftart Bedeutung
kursiv Namen von Pfaden und Dateien werden kursiv dargestellt z. B.:
C:\Programme\WAGO-I/O-CHECK
Menü Menüpunkte werden fett dargestellt z. B.:
Speichern
> Ein „Größer als“- Zeichen zwischen zwei Namen bedeutet die
Auswahl eines Menüpunktes aus einem Menü z. B.:
Datei > Neu
Eingabe Bezeichnungen von Eingabe- oder Auswahlfeldern werden fett
dargestellt z. B.:
Messbereichsanfang
„Wert“ Eingabe- oder Auswahlwerte werden in Anführungszeichen
dargestellt z. B.:
Geben Sie unter Messbereichsanfang den Wert „4 mA“ ein.
[Button] Schaltflächenbeschriftungen in Dialogen werden fett dargestellt und
in eckige Klammern eingefasst z. B.:
[Eingabe]
[Taste] Tastenbeschriftungen auf der Tastatur werden fett dargestellt und in
eckige Klammern eingefasst z. B.:
[F5]

Public
4 Beschreibung Anwendungshinweis WagoAppCloud
WAGO-I/O-SYSTEM 750

Symbole

GEFAHR Warnung vor Personenschäden!


Kennzeichnet eine unmittelbare Gefährdung mit hohem Risiko, die Tod
oder schwere Körperverletzung zur Folge haben wird, wenn sie nicht
vermieden wird.

GEFAHR Warnung vor Personenschäden durch elektrischen Strom!


Kennzeichnet eine unmittelbare Gefährdung mit hohem Risiko, die Tod
oder schwere Körperverletzung zur Folge haben wird, wenn sie nicht
vermieden wird.

WARNUNG Warnung vor Personenschäden!


Kennzeichnet eine mögliche Gefährdung mit mittlerem Risiko, die Tod oder
(schwere) Körperverletzung zur Folge haben kann, wenn sie nicht
vermieden wird.

VORSICHT Warnung vor Personenschäden!


Kennzeichnet eine mögliche Gefährdung mit geringem Risiko, die leichte
oder mittlere Körperverletzung zur Folge haben könnte, wenn sie nicht
vermieden wird.

ACHTUNG Warnung vor Sachschäden!


Kennzeichnet eine mögliche Gefährdung, die Sachschaden zur Folge haben
könnte, wenn sie nicht vermieden wird.

ESD Warnung vor Sachschäden durch elektrostatische Aufladung!


Kennzeichnet eine mögliche Gefährdung, die Sachschaden zur Folge haben
könnte, wenn sie nicht vermieden wird.

Hinweis Wichtiger Hinweis!


Kennzeichnet eine mögliche Fehlfunktion, die aber keinen Sachschaden zur
Folge hat, wenn sie nicht vermieden wird.

Information Weitere Information


Weist auf weitere Informationen hin, die kein wesentlicher Bestandteil
dieser Dokumentation sind (z. B. Internet).

Public
Anwendungshinweis WagoAppCloud Beschreibung 5
WAGO-I/O-SYSTEM 750

Rechtliche Grundlagen

Änderungsvorbehalt
Die WAGO GmbH & Co. KG behält sich Änderungen, die dem technischen
Fortschritt dienen, vor. Alle Rechte für den Fall der Patenterteilung oder des
Gebrauchmusterschutzes sind der WAGO GmbH & Co. KG vorbehalten.
Fremdprodukte werden stets ohne Vermerk auf Patentrechte genannt. Die
Existenz solcher Rechte ist daher nicht auszuschließen.

Personalqualifikation
Der in diesem Dokument beschriebene Produktgebrauch richtet sich
ausschließlich an Fachkräfte mit einer Ausbildung in der SPS-Programmierung,
Elektrofachkräfte oder von Elektrofachkräften unterwiesene Personen, die
außerdem mit den geltenden Normen vertraut sind.

Ferner müssen genannte Personen mit allen in diesem Dokument genannten


Produkten und deren Gebrauchsanleitungen vertraut sein. Sie müssen in der Lage
sein, auch solche Gefährdungen richtig abschätzen zu können, die sich erst durch
die Kombination der Produkte ergeben.

Für Fehlhandlungen und Schäden, die an WAGO-Produkten und Fremdprodukten


durch Missachtung der Informationen dieses Dokumentes entstehen, übernimmt
die WAGO GmbH & Co. KG keine Haftung.

Haftungsbeschränkung
Diese Dokumentation beschreibt den Einsatz diverser Hardware- und
Softwarekomponenten in spezifischen Beispielanwendungen. Die Komponenten
können Produkte oder Teile von Produkten unterschiedlicher Hersteller darstellen.
Hinsichtlich bestimmungsgemäßer und sicherer Verwendung der Produkte gelten
ausschließlich die jeweiligen Gebrauchsanleitungen der Hersteller. Für deren
Inhalte sind ausschließlich die jeweiligen Hersteller der Produkte verantwortlich.

Die in dieser Dokumentation beschriebenen Beispielanwendungen stellen


Konzepte, also technisch mögliche Anwendungen dar. Ob diese Konzepte im
konkreten Einzelfall realisiert werden können, hängt von diversen
Randbedingungen ab. Beispielsweise können andere Versionen der Hardware-
oder Softwarekomponenten eine andere als die beschriebene Handhabung
erfordern. Aus den hier enthaltenen Beschreibungen leitet sich daher kein
Anspruch auf eine bestimmte Beschaffenheit der Produkte ab.

Die Verantwortung für die sichere Verwendung einer konkreten Software- oder
Hardwarekonfiguration liegt bei demjenigen, der sie erstellt bzw. betreibt. Dies
gilt auch dann, wenn bei der Realisierung eines der in diesem Dokument
beschriebenen Konzepte umgesetzt wurde.

Die WAGO GmbH & Co. KG übernimmt für Realisierungen dieser Konzepte
keine Haftung.

Public
6 Beschreibung Anwendungshinweis WagoAppCloud
WAGO-I/O-SYSTEM 750

Inhaltsverzeichnis
Inhaltsverzeichnis .................................................................................................. 6
1 Beschreibung ................................................................................................ 7
1.1 Einführung................................................................................................. 7
1.2 Überblick ................................................................................................... 8
1.2.1 Datenprotokolle .................................................................................... 9
1.2.2 IEC-Bibliothek ................................................................................... 10
1.2.3 Linux Applikation .............................................................................. 12
2 Verwendetes Material ................................................................................ 13
2.1 Erforderliche Bibliotheken ...................................................................... 13
2.2 Geräte ...................................................................................................... 13
2.3 Versionen der Firmware und SPS-Bibliotheken ..................................... 13
3 SPS-Applikation erstellen ......................................................................... 14
3.1 Daten an die Cloud senden ...................................................................... 14
3.1.1 Einschränkungen ................................................................................ 18
3.2 Befehle von der Cloud empfangen .......................................................... 20
4 Inbetriebnahme .......................................................................................... 22
4.1 Allgemeine Hinweise .............................................................................. 22
4.1.1 Herstellen einer Internetverbindung mit dem PFC ............................. 22
4.1.2 Genutzte Ports der Cloud Connectivity .............................................. 23
4.1.3 Internetverbindung über einen Web-Proxy-Server ............................ 23
4.1.4 Zeit-Synchronisation aktivieren ......................................................... 23
4.2 Cloud Connectivity ................................................................................. 25
4.2.1 WAGO Cloud ..................................................................................... 25
4.2.2 Microsoft Azure.................................................................................. 27
4.2.3 Amazon Web Services (AWS) ........................................................... 33
4.2.4 IBM Cloud .......................................................................................... 38
4.2.5 SAP IoT Services ............................................................................... 43
4.2.6 MQTT Any Cloud Beispiel: Cumulocity ........................................... 48
4.2.7 Speicherung ........................................................................................ 53
5 Anhang ....................................................................................................... 55
5.1 Aktualisierung der Cloud Connectivity .................................................. 55
5.1.1 Installieren der Linux Applikation ..................................................... 55
5.1.2 IEC-Bibliothek ................................................................................... 56
5.2 SCADA System Ignition (Sparkplug) ..................................................... 57
5.2.1 Übersicht der Architektur ................................................................... 57
5.2.2 Konfiguration der Cloud Connectivity für Ignition............................ 59
5.2.3 Konfiguration in Ignition .................................................................... 59
5.2.4 Inbetriebnahme der SPS-Applikation mit Ignition ............................. 59
5.3 Beispiele der Richtlinien (Policy) für AWS ............................................ 62
5.3.1 Richtlinie ohne Einschränkung........................................................... 62
5.3.2 Mögliche Richtlinie für das WAGO Protocol v1.0 ............................ 63
5.3.3 Mögliche Richtlinie für das WAGO Protocol v1.2 ............................ 64

Public
Anwendungshinweis WagoAppCloud Beschreibung 7
WAGO-I/O-SYSTEM 750

1 Beschreibung
In der heutigen Zeit wird es immer wichtiger, Daten von einer Industriesteuerung in einer Cloud zur
Verfügung zu stellen. In diesem Anwendungshinweis werden die Schritte erklärt, wie der
PFC100/PFC200 – im Folgenden nur noch als PFC1 bezeichnet – in die Lage versetzt werden kann,
Daten aus dem SPS-Programm an einen Cloud-Dienst zu senden und in Abhängigkeit vom
verwendeten Cloud-Dienst Befehle aus der Cloud zu empfangen.

1.1 Einführung
Das Ziel des industriellen Internet der Dinge2 (IoT) ist es, intelligentere Produkte und Anwendungen
durch das Sammeln und Verstehen der Daten zu erreichen. Die Daten werden von „Dingen“ über das
Internet und den Cloud-Technologien bereitgestellt.
Typischerweise sind diese „Dinge“ die Sensoren, Aktoren und weitere Geräte für die
Automatisierungstechnik. Diese Geräte verfügen im Normalfall jedoch nicht über eine
Internetschnittstelle. Deswegen sind Gateways notwendig, um diese Geräte über das Internet mit der
Cloud verbinden zu können.
Als Gateway für die IoT-Anwendungen bietet sich der Controller PFC von WAGO an. Es kann die
Daten der einzelnen Geräte sammeln und über die eingebaute Ethernet-Schnittstelle oder dem
Mobilfunkmodul auf das Internet zugreifen.
Verschiedene Cloud-Dienste wie z.B. Microsoft Azure und Amazon Web Services bieten die
Möglichkeit eigene Cloud-Applikationen zu erstellen. Es bietet Dienstleistungen zur Bereitstellung von
Tausenden Telemetrie-Daten pro Sekunde, Datenarchivierung und –Analyse sowie zur Erstellung von
Benutzeroberflächen zur Visualisierung der Daten.
Die in diesem Anwendungshinweis beschriebene Lösung zeigt wie ein SPS-Programm, welches auf
dem PFC ausgeführt wird, mit einem Cloud-Dienst kommunizieren kann.

1 Programmable Field Controller


2 Internet of things (IoT)

Public
8 Beschreibung Anwendungshinweis WagoAppCloud
WAGO-I/O-SYSTEM 750

1.2 Überblick
Die folgende Abbildung gibt einen Überblick über die einzelnen Bestandteile, der in dieser
vorgestellten Software zur Anbindung an die Cloud.

Abbildung 1-1: Gesamtübersicht Cloud Connectivity

Als Artefakte beinhaltet Cloud Connectivity IEC Bibliotheken für e!Cockpit sowie eine Linux
Applikation, welche auf dem PFC als Dienst (Daemon) ausgeführt wird. Auf diese wird in der weiteren
Beschreibung näher drauf eingegangen.
Die Cloud-Applikation ist nicht Bestandteil dieser Beschreibung und wird in der Regel vom Kunden
implementiert, entsprechend seinen Anforderungen und anhand der in der Spezifikation
dokumentierter Nachrichtenformate. Allerdings steht den Kunden von WAGO mit WAGO Cloud bereits
heute eine fertig implementierte Cloud-Applikation zur Verfügung. Diese basiert auf dem Cloud-Dienst
Microsoft Azure.
Eine erste Inbetriebnahme zur WAGO Cloud, sowie anderen Cloud-Diensten wird im Kapitel 4.2.1
näher beschrieben.

Public
Anwendungshinweis WagoAppCloud Beschreibung 9
WAGO-I/O-SYSTEM 750

1.2.1 Datenprotokolle
Cloud Connectivity unterstützt verschiedene Datenprotokolle zur Datenübertragung zwischen PFC
(SPS-Programm) und Cloud. Folgendes Diagramm zeigt übersichtsweise die Nutzung der
beschriebenen Datenprotokolle.

Abbildung 1-2: Übersicht Datenprotokolle

Hinweis Wichtiger Hinweis!


Es ist nicht möglich die Datenprotokolle zur Laufzeit bei einer Verbindung
gleichzeitig zu verwenden: d.h. der SPS-Programmierer muss sich für ein
Datenprotokoll entscheiden und die entsprechende Implementierung
erstellen.

• WAGO Protocol
Bei der Verwendung von WAGO Protocol kann ein SPS-Programm seine Prozessdaten
komfortabel erfassen und an die Cloud-Applikation senden. Weiterhin kann SPS-Programm
eigene Kommandos definieren und veröffentlichen. Die Ausführung dieser Kommandos
könnte dann von der Cloud-Applikation angestoßen werden. WAGO Protocol kann zur
Anbindung des Controllers an beliebigen Cloud-Diensten verwendet werden.

Das WAGO Protocol kann mit folgenden Cloud Plattformen verwendet werden:
- WAGO Cloud
- Azure
- Amazon Web Services (AWS)
- IBM Cloud
- MQTT AnyCloud

• Native MQTT
Das SPS-Programm übernimmt hier unter anderem die Rolle und Verantwortung eines „Thing“
(IoT) bzw. MQTT-Clients. Das SPS-Programm hat hier die Verantwortung die Nachrichten
selbst zu erzeugen und das Versenden anzustoßen. Damit hat er volle Kontrolle über
ausgehende Nachrichten sowie deren Formatierung.

Native MQTT kann mit folgenden Cloud Plattformen verwendet werden:


- Amazon Web Services (AWS)
- SAP IoT Services
- IBM Cloud
- MQTT AnyCloud

Public
10 Beschreibung Anwendungshinweis WagoAppCloud
WAGO-I/O-SYSTEM 750

• Sparkplug
Sparkplug (Sparkplug payload B) ist eine Spezifikation von Cirrus Link in welchem die
gesendeten MQTT Nachrichten näher definiert werden. Die genaue Bezeichnung der
MQTT Topics, MQTT Nachrichteninhalt (Payload) und die Reihenfolge der festgelegten
Nachrichtenpakete sind in der Spezifikation festgelegt. Durch die Unterstützung der Sparkplug
Spezifikation können Daten vom PFC zu SCADA Systemen, wie beispielsweise Ignition,
versendet werden. Im SPS-Programm können die Prozessdaten, ähnlich wie auch beim
Datenprotokoll WAGO Protocol, erfasst und konfiguriert werden. Weiterhin können auch
Kommandos im SPS-Programm definiert und von dem SCADA System zum PFC versendet
werden.
Die Linux Applikation sorgt dafür, dass die MQTT Nachrichten die Sparkplug Spezifikation
unterstützen.

Das Datenprotokoll Sparkplug kann mit folgenden Cloud Plattformen verwendet werden:
- Amazon Web Services (AWS)
- MQTT AnyCloud

1.2.2 IEC-Bibliothek
WagoAppCloud für e!Cockpit ist eine IEC 61131-Bibliothek welche bei der Programmierung von
SPS-Applikationen für verschiedene IoT Szenarien genutzt werden kann. Für das festgelegte
Datenprotokoll muss die SPS-Applikation die dafür vorgesehen Funktionsbausteine verwenden.

Datenprotokoll WAGO Protocol


Folgende Beispiele beschreiben die Nutzung der IEC-Bibliothek:
• WagoAppCloud_FbCollectionLogger_Example1.ecp
Variablen des SPS-Programms werden in verschiedene Collections gruppiert. Die Werte der
Variablen werden zyklisch erfasst und an die Cloud gesendet.

• WagoAppCloud_FbCommandListener_Example1.ecp
Variablen des SPS-Programms werden in verschiedene Collections gruppiert. Die Werte der
Variablen werden zyklisch erfasst und an die Cloud gesendet. SPS-Programm veröffentlicht
ein Kommando und zeigt wie dieses behandelt werden kann.

• WagoAppCloud_FbCollectionLogger_Example2.ecp
Variablen des SPS-Programms werden in verschiedene Collections gruppiert. Bestimmte
Variablenwerte werden ereignisbedingt erfasst und an die Cloud gesendet.

Beim Datenprotokoll WAGO Protocol können die folgenden Funktionsbausteine der Bibliothek
verwendet werden:
• FbCollectionLogger_2
• FbCommandConfigurator_2
• FbCommandListener_2
• FbCommandResponder_2
• FbStatus_WagoProtocol_2

Public
Anwendungshinweis WagoAppCloud Beschreibung 11
WAGO-I/O-SYSTEM 750

Datenprotokoll Native MQTT


Folgende Beispiele beschreiben die Nutzung der IEC-Bibliotheken:
• WagoAppCloud_FbPublishMQTT_Example1.ecp
SPS-Programm erzeugt primitives JSON-Dokument und versendet dieses über MQTT
(publish)
• WagoAppCloud_FbSubscribeMQTT_Example1.ecp
SPS-Programm zeigt wie Daten über MQTT empfangen werden (subscribe)

Beim Datenprotokoll Native MQTT können die folgenden Funktionsbausteine der Bibliothek verwendet
werden:
• FbPublishMQTT_2
• FbSubscribeMQTT_2
• FbStatus_NativeMQTT_2

Datenprotokoll Sparkplug
Die Konfiguration der Datenpunkte in der IEC-Applikation beim Datenprotokoll Sparkplug ist sehr
ähnlich wie beim Datenprotokoll WAGO Protocol.
Rückmeldungen eines Kommandos (CommandResponse) werden beim Datenprotokoll Sparkplug von
der Sparkplug Spezifikation nicht unterstützt.

Folgende Beispiele beschreiben die Nutzung der IEC-Bibliotheken:


• WagoAppCloud_FbCommandListener_Sparkplug.ecp
Variablen des SPS-Programms werden in verschiedene Collections gruppiert. Bestimmte
Variablenwerte werden ereignisbedingt erfasst und an die Cloud gesendet. SPS-Programm
veröffentlicht ein Kommando und zeigt wie dieses für das Datenprotokoll Sparkplug behandelt
werden kann.

Beim Datenprotokoll Sparkplug können die folgenden Funktionsbausteine der Bibliothek verwendet
werden:
• FbCollectionLogger_2
• FbCommandConfigurator_2
• FbCommandListener_2
• FbStatus_WagoProtocol_2

Public
12 Beschreibung Anwendungshinweis WagoAppCloud
WAGO-I/O-SYSTEM 750

1.2.3 Linux Applikation


Die Linux Applikation verhält sich transparent aus der Sicht des SPS-Programms oder der
Cloud-Applikation, weil diese als Dienst läuft und für den Datenfluss zwischen dem SPS-Programm
und der Cloud-Applikation zuständig ist. Zur Kommunikation mit der IEC-Bibliothek nutzt die Linux
Applikation Methoden der Interprozesskommunikation (IPC). Um die Daten an die Cloud zu senden
und zu empfangen wird das MQTT-Protokoll genutzt. Zur sicheren Datenübertragung im Internet kann
das Verschlüsselungsprotokoll über TLS3 aktiviert werden.

Bei Abbruch der Internetverbindung des PFC’s puffert die Applikation die zu sendenden Daten im
Zwischenspeicher. Die Linux Applikation ist zuständig für automatisches Reconnect.

Auch alle anderen Konfigurationsoptionen für die Linux Applikation werden im WBM vorgenommen.
Das Datenprotokoll von Cloud Connectivity ist eines dieser Optionen.

Datenprotokoll WAGO Protocol


Linux Applikation kann Geräteinformationen sowie den Status des PFCs an die Cloud senden.
Geräteinformationen werden beim Start einmalig an die Cloud gesendet. Der Status sendet bei einem
neuen Status eine Nachricht an die Cloud.

Ob die Pufferung im RAM oder auf eine SD-Karte stattfinden soll, ist im Web Based Management
(WBM) für das Datenprotokoll WAGO Protocol auswählbar.

Datenprotokoll Native MQTT


SPS-Programm nutzt die Linux Applikation als Gateway zum MQTT-Broker.

Datenprotokoll Sparkplug
Die Linux Applikation leitet die Daten aus dem SPS-Programm in einem komprimierten Datenformat
‘Google Protocol Buffer‘ an den Broker weiter. Die Linux Applikation sorgt für die Einhaltung der
Sparkplug Spezifikation.

Hinweis Wichtiger Hinweis!


Bei der Nutzung von Sparkplug ist es notwendig die Sparkplug Lizenz auf
den Controller zu laden. Die ersten 30 Tage kann Sparkplug über eine auf
dem Gerät vorhandene Testlizenz kostenlos getestet werden.

Sparkplug wird beim PFC200 ab der zweiten Generation unterstützt.


(0750-821x)

3 Transport Layer Security

Public
Anwendungshinweis WagoAppCloud Verwendetes Material 13
WAGO-I/O-SYSTEM 750

2 Verwendetes Material
2.1 Erforderliche Bibliotheken
Bibliothek Beschreibung

e!COCKPIT: Die Bibliothek stellt die Cloud Connectivity auf der


WagoAppCloud_x.x.x.x SPS-Seite für e!COCKPIT bereit.

2.2 Geräte
Lieferant Anzahl Bezeichnung Bestellnummer

WAGO GmbH & 1 PFC100 / PFC200 0750-8xxx / xxxx-xxxx


Co. KG Touch Panel 600 0762-4x0x / xxxx-xxxx
PFC Advanced 0762-5x0x / xxxx-xxxx
0762-6x0x / xxxx-xxxx

2.3 Versionen der Firmware und SPS-Bibliotheken


Hinweis Wichtiger Hinweis!
Kontrollieren Sie bitte ob auf Ihrem PFC die passende SPS-Bibliothek zur
verwendeten Firmware installiert ist. Wenn die SPS-Bibliothek nicht
passend zur Version der Cloud Connectivity ist wird die Cloud Connectivity
automatisch beendet.

Firmware Cloud Connectivity e!Cockpit Bibliotheken

FW11 v020825 1.0.0 WagoAppCloud v1.2.0.7


FW11 Patch1 v020831 1.0.0 WagoAppCloud v1.2.0.7
FW11 Patch2 v020835 1.1.0 WagoAppCloud v1.2.0.7
FW12 v030035 1.2.0 WagoAppCloud v1.3.0.7
FW12 Patch1 v030039 1.2.2 WagoAppCloud v1.3.0.7
FW13 Patch1 v030107 1.2.2 WagoAppCloud v1.3.0.8
FW14 v030202 1.3.0 WagoAppCloud v1.3.1.6
FW15 v030310 1.3.2 WagoAppCloud v1.3.1.6
FW16 v030410 1.4 WagoAppCloud v1.3.1.7
FW17 v030504 1.7 WagoAppCloud v1.3.2.9

Public
14 SPS-Applikation erstellen Anwendungshinweis WagoAppCloud
WAGO-I/O-SYSTEM 750

3 SPS-Applikation erstellen
In diesem Kapitel wird die Implementierung einer SPS-Applikation für das Datenprotokoll
WAGO Protocol und bei Verwendung von e!Cockpit näher beschrieben. Als Orientierung zur
Implementierung der eigenen SPS-Applikation sind die referenzierten Beispielprogramme hilfreich. Im
Folgenden wird die Erstellung einer SPS-Applikation mit dem WAGO Protocol der Version 1.2
dargestellt (weitere Informationen zum WAGO Protocol und den Versionen sind in der
WAGO Protocol Spezifikation beschrieben).

3.1 Daten an die Cloud senden


Um die Daten an die Cloud zu senden wird der Funktionsblock FbCollectionLogger genutzt. Dieser
Funktionsblock beinhaltet zwei verschiedene Möglichkeiten, um die Daten an die Cloud zu senden.
Zum einen können die Daten zyklisch durch ein konstantes Zeitintervall oder durch Auftreten eines
Events erfasst und an die Cloud gesendet werden. Abhängig davon müssen die entsprechenden
Parameter der IEC-Bibliothek unterschiedlich konfiguriert werden.
Die Konfiguration dieser Parameter wird ebenfalls an die Cloud übertragen damit die ankommenden
Daten, welche zum größten Teil Zeitreihen sind, entsprechend behandelt werden können.
Als Übergabeparameter wird eine Liste (Array) von der Datenstruktur typCollection und die Anzahl der
Collections an den Funktionsblock übergeben.

Abbildung 3-1: Bündelung der Variablen zu Collections

Public
Anwendungshinweis WagoAppCloud SPS-Applikation erstellen 15
WAGO-I/O-SYSTEM 750

Eine Collection ist ein Container für einen Satz von Variablen welche die einzelnen zueinander
gehörigen Variablenbeschreibungen miteinander bündelt. Jede Collection benötigt eindeutige ID und
Namen (zur Anzeige in der Cloud).

Hinweis Wichtiger Hinweis!


Bei Nutzung der WAGO Cloud sind noch einige Einschränkungen in der
Namensgebung für die Tags und der Collections zu beachten. Die Kontrolle
der passenden Bezeichnung ist vom SPS-Programmierer zu beachten und
kann andernfalls zu Problemen führen. Für nähere Informationen beachten
Sie bitte die Hinweise in Kapitel 4.2.1.1.

Collection geben dem SPS-Programmierer die Möglichkeit seine Variablen sinnvoll und übersichtlich
strukturieren zu können. Insbesondere bei der zyklischen Datenübertragung bietet die Aufteilung der
Variablen in einzelne Collections Vorteile, weil der SPS-Programmierer für jede Collection individuell
den Abtast- und Übertragungsintervall festlegen kann. Dadurch kann die Datenmenge reduziert
werden indem analysiert wird, welche Variablen in welchem Intervall benötigt werden und die
Intervalle dementsprechend angepasst werden. Das Abtastintervall bestimmt dabei den Zeitabstand
zwischen den aufgenommenen Variablenwerten. Das Übertragungsintervall ist die Zeit in der die
aufgenommenen Datenpakete an die Cloud gesendet werden.

Hinweis Wichtiger Hinweis!


Die Übertragungs- und Abtastintervalle können von der Cloud aus zur
Laufzeit geändert werden. Deshalb müssen sie im SPS-Programm als
„RETAIN“ definiert werden. Andernfalls würden die geänderten Werte
nach dem Neustart des PFC verloren gehen.

Public
16 SPS-Applikation erstellen Anwendungshinweis WagoAppCloud
WAGO-I/O-SYSTEM 750

Cyclical Transmission for one collection

t
Variable1

not considered for cyclical


t
VariableTrigger1

t
Variable2

not considered for eventbased


t
VariableTrigger2

not considered for eventbased


t
CollectionTrigger

t
Sample Intervall

t
Publish Intervall

transmit 3 samples transmit 3 samples transmit 3 samples transmit 3 samples


of all variables to of all variables to of all variables to of all variables to
the cloud the cloud the cloud the cloud

Abbildung 3-2: Beispiel von zyklischer Datenübertragung einer Collection


Für Anwendungen in dem die Daten nur dann von der SPS an die Cloud gesendet werden sollen
wenn der Wert der Variable sich verändert hat bietet sich die eventbasierte Datenübertragung an. Der
zur Collection dazugehörige Parameter xSamplingDataMode entsprechend initialisiert werden. Die
einzelnen Collections können unabhänigig voneinander parametriert werden, sodass z.B. eine
Collection zyklisch und eine andere eventbasiert übertragen werden.
Der SPS-Programmierer hat bei eventbasierter Übertragung mittels eines Triggers pro Collection und
pro Variable die Möglichkeit das Auftreten eines Events sowie den entsprechenden Zeitstempel zu
setzen. Mit dem xCollectionTrigger werden die Werte aller zur Collection zugehöriger Variablen an die
Cloud gesendet. Mit dem xVariablenTrigger wird nur die gesetzte Variable an die Cloud gesendet. So
ist eine gezieltere Datenübertragung mit einer geringeren Datenmenge möglich. Der
SPS-Programmierer ist durch das Setzen des Triggers verantwortlich für die Anzahl der gesendeten
Daten.

Public
Anwendungshinweis WagoAppCloud SPS-Applikation erstellen 17
WAGO-I/O-SYSTEM 750

Eventbased Transmission for one collection

Upper
Level

Lower
Level

t
Variable1

(3) (5)
t
VariableTrigger1
Upper
Level
Lower
Level

t
Variable2

(2) (6)
t
VariableTrigger2

(1) (4) (6)


t
CollectionTrigger

not considered for eventbased t


Sample Intervall

t
Publish Intervall
(1) transmit all (3) transmit (4) transmit all (6) transmit all
variables to variable 1 to variables to variables to the
the cloud the cloud the cloud cloud

(2) transmit variable (5) transmit variable 1


2 to the cloud to the cloud

Abbildung 3-3: Beispiel von eventbasierter Datenübertragung einer Collection4

Eine einfache Implementierung um Daten an die Cloud zu senden kann anhand der Beispiele
WagoAppCloud_FbCollectionLogger_Example1.ecp (für das zyklische Senden) und
WagoAppCloud_FbCollectionLogger_Example2.ecp (für das eventbasierte Senden) nachvollzogen
werden.

4 Bei dem Beispiel zur eventbasierten Datenübertragung sind in der SPS-Applikation Schwellenwerte
für die Variablen festgelegt worden. Durch Überschreitung der oberen Schwelle oder durch
Unterschreitung der unteren Schwelle wird ein Event gesetzt. Der Collection-Trigger ist vom
SPS-Programmierer unabhängig vom Variablenverlauf gesetzt worden. Dies ist ein Beispiel und soll
veranschaulichen wie die eventbasierte Übertragung genutzt werden kann. Der SPS-Programmierer
kann durch Setzen der Trigger selbst entscheiden wann er es für sinnvoll hält ein Event auszulösen
um die Daten an die Cloud zu senden.

Public
18 SPS-Applikation erstellen Anwendungshinweis WagoAppCloud
WAGO-I/O-SYSTEM 750

3.1.1 Einschränkungen
Zyklische Datenübertragung
Für die Datenübertragung von Collections, die alle in einem zyklischen Intervall senden, sind die
folgenden Einschränkungen ermittelt worden:

Hinweis Wichtiger Hinweis!


- Kürzester Abtastintervall ist 100 Millisekunden bei Cache mode = RAM

- Kürzester Abtastintervall ist 1 Sekunde bei Cache mode = SD-Card

- Kürzester Übertragungsintervall ist 1 Sekunde

Abhängig von der Kombination von Abtast- und Übertragungsintervall ist die Anzahl der Datenpunkte,
welche man kontinuierlich an die Cloud übertragen kann, begrenzt. Die nachfolgende Tabelle zeigt 2
unterschiedliche Szenarien auf mit denen der maximale Datenfluss erzielt werden kann.

Abtastintervall Übertragungsintervall Anzahl der Datenpunkte


Szenario A 1 Sekunde 1 Minute 10 Collections je 120 Variablen
Szenario B 100 Millisekunden 1 Sekunde 10 Collections je 20 Variablen

Die Werte wurden mit folgender Umgebung ermittelt:


- Gerät: PFC 750-8202
- Netzwerkverbindung: Ethernet 100 Mbit/s
- SPS Laufzeitumgebung: e!RUNTIME
- SPS Programm: minimalistisch, Zykluszeit 20 Millisekunden, Tag-Namen 80 Zeichen
- Beide Szenarien erzeugen Datenfluß von ca. 270 KB/s

Eventbasierte Datenübertragung
Um dem SPS-Programmierer die Möglichkeiten für unterschiedliche Szenarien zum Auslösen eines
Events in der SPS-Applikation offen zu halten, gibt es auf Seiten der Bibliothek weniger
Einschränkungen. Die Verantwortung zur Einhaltung von Einschränkungen liegt beim
SPS-Programmierer. Im Mittel sollte der Datenfluss von 270 KB/s auch in diesem Fall nicht
überschritten werden.

Hinweis Wichtiger Hinweis!


Der PublishInterval kann nicht kleiner als 100 Millisekunden gesetzt
werden.

Bei der SPS-Applikation gilt Vorsicht beim Erzeugen der Events, da hierbei
durch häufiges Auslösen eines Events ein sehr hohes Datenvolumen erzeugt
werden kann. Zusätzlich ist die Kombination mit dem Cache mode = SD-
Card aufgrund der Schreibgeschwindigkeit nicht zu empfehlen.

Analyse
Der Parameter “Cache fill level”, welcher im WBM angezeigt wird, kann zur Entwicklungszeit genutzt
werden um spezifische Produktivszenarien zu beobachten bzw. dabei die Einhaltung von Grenzen zu
verifizieren. Falls der entsprechende Wert nach angemessener Zeitdauer nicht ständig ansteigt dann
wäre dies ein Indikator, dass das Szenario ok ist. Bei der endgültigen Entscheidung über die Anzahl

Public
Anwendungshinweis WagoAppCloud SPS-Applikation erstellen 19
WAGO-I/O-SYSTEM 750

Datenpunkte sollten auch mögliche besondere Bedingungen (wie z.B. unterbrochene/unstabile


Netzwerkverbindung) berücksichtigt werden.

Public
20 SPS-Applikation erstellen Anwendungshinweis WagoAppCloud
WAGO-I/O-SYSTEM 750

3.2 Befehle von der Cloud empfangen


Um die Kommandos von der Cloud zu empfangen sind die folgenden Funktionsbausteine notwendig:
- FbCommandConfigurator
- FbCommandListener
- FbCommandResponder

Cloud

FbCommandConfigurator
- unique at the
beginning -

FbCommandListener
FbCommandResponder

Abbildung 3-4: Ablauf Befehlsausführung

Public
Anwendungshinweis WagoAppCloud SPS-Applikation erstellen 21
WAGO-I/O-SYSTEM 750

Die Befehlsbearbeitung wird in der SPS-Applikation mit den folgenden drei Schritten ausgeführt:

1. Zum Registrieren des Befehls nutze FbCommandConfigurator


1. FbCommandConfigurator sendet die eingegebenen Befehle an die Cloud, mit den
Informationen die in der Datenstruktur typCommandDescription übergeben wurden.
2. Der Cloud Applikation werden die Befehle somit bekannt gemacht.
3. Ein Befehl kann bis zu 16 Request- und 16 Response-Parameter haben. Diese
Parameter werden in der Datenstruktur typCommandParameterDescription
eingegeben.
2. Zum Empfangen von Befehlen nutze FbCommandListener
1. Wenn ein Befehl von der Cloud ankommt wird das Flag xCommandReceived für einen
Zyklus auf True gesetzt.
2. FbCommandListener erfordert einen Pointer von der Struktur typCommandRequest
welches die Informationen der Anfrage des Befehls enthält.
3. Der Befehl wird in der Applikation auf der Grundlage, der von typCommandRequest
bereitgestellten Informationen, behandelt.
3. Zur Bestätigung der Befehlsausführung nutze FbCommandResponder
1. Die Ausführung jedes Befehls muss der Cloud Applikation bestätigt werden. Dazu wird
FbCommandResponder genutzt.
2. Die Cloud Applikation soll den nächsten Befehl erst dann senden, wenn die vorherige
ausgeführt und bestätigt worden ist.
3. Mit Hilfe der Struktur typCommandResponse werden die Antworten an die Cloud
beschrieben.

Eine einfache Implementierung um Befehle von der Cloud zu empfangen kann anhand des Beispiels
WagoAppCloud_FbCommandListener_Example1.ecp nachvollzogen werden.

Public
22 Inbetriebnahme Anwendungshinweis WagoAppCloud
WAGO-I/O-SYSTEM 750

4 Inbetriebnahme
4.1 Allgemeine Hinweise
In diesem Kapitel werden einige allgemeine Hinweise und Einstellungen für den PFC beschrieben, die
für die Nutzung des beschriebenen Softwarepakets Cloud Connectivity notwendig sind.
An dieser Stelle sei darauf hingewiesen, dass bei Nutzung der Cloud Connectivity-Funktionalität sich
die Performance des PFCs verringern könnte.
Konfigurieren Sie zunächst die SPS-Laufzeitumgebung welche von Cloud Connectivity unterstützt
wird. Dazu muss nach Aufruf des WBMs im Webbrowser die Registerreiter Configuration ausgewählt
werden. Klicke auf den Menüpunkt PLC Runtime. Im Feld PLC Runtime version wählen Sie die
Option „e!RUNTIME“.

Hinweis Passwort ändern


Die im Auslieferungszustand eingestellten Standardpasswörter für die
einzelnen Benutzergruppen (WBM: admin, user - Linux: root, admin, user)
bieten keinen Schutz, sodass zur Sicherheit des Netzwerks die Passwörter
geändert werden müssen. Weitere Informationen befinden sich im
Handbuch des PFC’s.

4.1.1 Herstellen einer Internetverbindung mit dem PFC


Der PFC ist mit dem Internet zu verbinden, damit:
• ein Cloud-Dienst im Internet erreicht werden kann und
• der NTP-Client eine Synchronisation mit einem Zeitserver durchführen kann.
Der PFC200 (750-8207) besitzt ein Mobilfunkmodem, mit dem die Verbindung zum Internet hergestellt
werden kann.
Alle anderen PFC Modelle benötigen ein externes Mobilfunkmodem, welches über eine der beiden
ETHERNET-Schnittstellen angeschlossen wird oder eine Internetverbindung via Netzwerkkabel an
einer der beiden ETHERNET-Schnittstellen.
Annahme: Sowohl die ETHERNET-Schnittstellen X1 als auch die ETHERNET-Schnittstellen X2
bekommen ihre IP-Adresse usw. per DHCP.
Das im folgenden beschriebene Konfigurationsbespiel für ein extern angeschlossenes
Mobilfunkmodem geht davon aus, dass die ETHERNET-Schnittstelle des PFC:
• auf den Networking IP Source DHCP konfiguriert ist,
• eine IP-Adresse für den PFC vom DHCP-Server vom Mobilfunkmodems bezieht,
• eine IP-Adresse für ein Gateway vom DHCP-Server vom Mobilfunkmodems bezieht und
• eine IP-Adresse für den DNS-Server vom DHCP-Server vom Mobilfunkmodems bezieht

Konfigurationsbeispiel:
1. Aufrufen des WBM in einem Webbrowser.
2. Wählen Sie den Registerreiter Configuration.
3. Mit der Maus über den Menüpunkt Networking fahren und den Menüpunkt Ethernet
Configuration auswählen.
4. Im Abschnitt Switch-Configuration „Separated“ auswählen und den Parameter mit einem
Klick auf [Submit] schreiben.
5. Mit der Maus über den Menüpunkt Networking fahren und den Menüpunkt
TCP/IP Configuration auswählen.
6. Kontrollieren, ob bei beiden ETHERNET-Schnittstellen der Configuration-Type DHCP
ausgewählt ist. Falls dies nicht der Fall ist, die Einstellung vornehmen und mit einem Klick auf
[Submit] abspeichern.

Public
Anwendungshinweis WagoAppCloud Inbetriebnahme 23
WAGO-I/O-SYSTEM 750

Information Weitere Information


Es ist auch möglich, für eine oder auch für beide ETHERNET-Schnittstellen
eine statische IP-Adresse zu vergeben. Sollte die ETHERNET-Schnittstelle,
über die die Internetverbindung erfolgt, per statischer IP-Adresse
konfiguriert werden, ist darauf zu achten, dass im Menüpunkt
TCP/IP Configuration ein Gateway angegeben und auch aktiviert wird, da
sonst die Verbindung zum Internet nicht funktionieren wird.

7. Log-in auf den PFC per „Remote Shell“.


8. Nach erfolgreichem Log-in per „Remote Shell“ auf dem PFC kann der Befehl ping 8.8.8.8
abgesetzt werden.
9. Eingabe von nslookup www.google.de . Wenn die IP-Adresse von www.google.de
zurückgegeben wird, funktioniert die Namesauflösung auch.
10. Sollten beide oder einer der beiden Tests fehlschlagen, sollten die Schritte 1. bis 9. kontrolliert
werden.

4.1.2 Genutzte Ports der Cloud Connectivity


Die Cloud Connectivity-Funktionalität nutzt je nach Konfiguration die Ports 1883 (unverschlüsselte
Verbindung) und 8883, 443 (verschlüsselte Verbindung). Damit die Kommunikation zwischen der
Cloud Connectivity auf dem PFC und dem Cloud-Dienst funktionieren kann, ist sicherzustellen, dass
die genannten Ports auch aus dem Internet erreichbar sind und nicht durch eine Firewall für den
eingehenden Datenverkehr geblockt sind. In anderen Worten: Sollte der eingehende Datenverkehr auf
den oben genannten Ports blockiert sein, kann keine Verbindung zwischen der Cloud Connectivity auf
dem PFC und dem Cloud-Dienst aufgebaut werden.

Über „Remote Shell“ kann man überprüfen ob bestimmter Cloud-Dienst vom PFC aus erreichbar ist,
z.B.: telnet wagocloud.azure-devices.net 8883. Wenn die Verbindung des Ports verfügbar ist, so
kommt nach einigen Minuten Wartezeit die folgende Rückmeldung: Connection closed by foreign host.
Wenn der Port durch eine Firewall geblockt ist, kommt diese Meldung: telnet: can't connect to remote
host (13.69.192.43): Connection timed out.

4.1.3 Internetverbindung über einen Web-Proxy-Server


Um die Cloud Connectivity-Funktionalität nutzen können ist eine Internetverbindung zu einem im
WBM konfigurierten Cloud-Dienst nötig. Die Internetverbindung kann nur direkt erfolgen, d.h. eine
Internetverbindung über einen zwischengeschalteten Web-Proxy-Server ist nicht möglich.

4.1.4 Zeit-Synchronisation aktivieren


Es ist zwingend sicherzustellen, dass die Uhrzeit und das Datum des PFCs korrekt sind. Sind die
Uhrzeit und das Datum nicht korrekt, führt dies zu Problemen bei der Prüfung der Zertifikate so dass
Cloud Connectivity keine Netzwerkverbindung zum Cloud-Dienst aufbauen kann. Es wird daher
empfohlen, den NTP-Client des PFCs zu aktiveren.

Der NTP-Client wird über das WBM des Controllers eingestellt. Die Aktivierung des NTP-Clients wird
im Folgenden beschrieben:
1. Aufrufen des WBMs in einem Webbrowser.
2. Wählen Sie den Registerreiter Configuration.
3. Links im Menü auf Ports and Services klicken.

Public
24 Inbetriebnahme Anwendungshinweis WagoAppCloud
WAGO-I/O-SYSTEM 750

4. Username und Password eingeben, um sich am Controller zu authentifizieren. [Submit]


klicken. Gegebenenfalls erscheint eine Messsage-Box mit dem Hinweis, dass aus
Sicherheitsgründen das Passwort geändert werden sollte.
5. Im Menü auf NTP Client klicken.
6. Den Button Service enabled auswählen und die Zeitserver eingeben. Als NTP Server können
zum Beispiel der Google NTP Server: 216.239.35.8 oder der Zeitserver der Physikalisch-
Technischen Bundesanstalt in Braunschweig: 192.53.103.108 verwendet werden.
7. Zum Übernehmen der Einstellungen auf [Submit] klicken.
8. Kontrollieren ob die Zeitsynchronisation übernommen wurde.

Hinweis Wichtiger Hinweis!


Wenn die Zeit beim PFC falsch eingestellt ist, ist es für Cloud Connectivity
nicht möglich eine verschlüsselte Netzwerkverbindung mit der Cloud
aufzubauen.

Weitere Informationen zur Konfiguration des NTP-Clients befinden sich im Handbuch des PFC’s.

Public
Anwendungshinweis WagoAppCloud Inbetriebnahme 25
WAGO-I/O-SYSTEM 750

4.2 Cloud Connectivity


In diesem Kapitel wird gezeigt wie Einrichtung der Cloud-Dienste möglich ist. Es wird im Folgenden
eine Schnellstartanleitung für die unterstützten Cloud-Dienste vorgestellt.

Die Konfiguration der Cloud-Dienste erfolgt über die Cloud Connectivity-Seite im WBM. Es sind
Eingabemasken für die folgenden Cloud-Dienste vorhanden:
• WAGO Cloud
• Azure
• IBM Cloud
• Amazon Web Services (AWS)
• SAP IoT Services

Eine Sonderform nimmt der Eintrag „MQTT AnyCloud“ ein. Hier kann die Verbindung zu jeder Cloud
aufgebaut werden, die das MQTT-Protokoll, Version v3.1/v3.1.1, unterstützt, wie z. B. der
MQTT-Broker beim Mosquitto-Stack.

4.2.1 WAGO Cloud


Im Folgenden sind die Schritte beschrieben, welche nötig sind, um den PFC mit der WAGO Cloud
verbinden zu können. Eine nähere Beschreibung zur Benutzeroberfläche der WAGO Cloud ist in der
Schnellstartanleitung der WAGO Cloud enthalten.

4.2.1.1 Konfiguration der Cloud Connectivity für die WAGO Cloud


1. Innerhalb eines Webbrowsers das WBM des PFC aufrufen.
2. Wählen Sie den Registerreiter Configuration.
3. Klicken Sie beim Menüpunkt Cloud Connectivity auf den Unterpunkt Connection 1.
4. Dei Verbindung 1 durch die Check-Box Enabled aktivieren.
5. Username und Password eingeben, um sich am PFC zu authentifizieren. [Submit] klicken.
Gegebenenfalls erscheint eine Messsage-Box mit dem Hinweis, dass aus Sicherheitsgründen
das Passwort geändert werden sollte. Es öffnet sich die Konfigurationsseite der
Cloud Connectivity.
6. Im Abschnitt „Settings“ aus der Kombo-Box Cloud Platform den Eintrag „WAGO Cloud“
auswählen.
7. Default Hostname ist „wagocloud.azure-devices.net“, kann bei Bedarf geändert werden.
8. Im Feld Device Id ist die Device-ID einzugeben. Diese ist hier die Steuerungs-ID aus der
WAGO Cloud.
9. Im Activation Key ist der Aktivierungsschlüssel aus der WAGO Cloud einzugeben.
10. Durch einen Klick auf den Button [Submit] wird die Konfiguration gespeichert.
11. Der PFC muss nun neu gestartet werden, damit die Einstellungen übernommen werden.

Public
26 Inbetriebnahme Anwendungshinweis WagoAppCloud
WAGO-I/O-SYSTEM 750

4.2.1.2 SPS-Applikation für die WAGO Cloud


Bei Nutzung der WAGO Cloud gilt es bei der Implementierung der SPS-Applikation auf die folgenden
Regeln bei der Namensgebung zu achten.

Um Daten an die Cloud zu senden dürfen einige Zeichen zur Konfiguration des Funktionsblocks
FbCollectionLogger in der SPS-Applikation nicht verwendet werden.

1. Regeln zur Bezeichnung des Tags einer Variable


o Es muss einmalig in der Collection sein
o Es müssen die Regeln für C# Bezeichner erfüllt sein
o Folgende Zeichen sind nicht erlaubt:
• Leerzeichen
• Schrägstrich (/)
• Blackslash (\)
• Raute Zeichen (#)
• Fragezeichen (?)
• Bindestrich (-)
• Steuerzeichen wie z.B. horizontaler Tab (\t), Zeilenvorschub (\n),
Wagenrücklauf (\r)

2. Regel zur Bezeichnung der Collections


o Folgende Zeichen sind nicht erlaubt:
• Schrägstrich (/)
• Blackslash (\)
• Raute Zeichen (#)
• Fragezeichen (?)
• Bindestrich (-)
• Steuerzeichen wie z.B. horizontaler Tab (\t), Zeilenvorschub (\n),
Wagenrücklauf (\r)

Public
Anwendungshinweis WagoAppCloud Inbetriebnahme 27
WAGO-I/O-SYSTEM 750

4.2.2 Microsoft Azure


Falls Sie Azure Dienste zum ersten Mal verwenden, gibt es die Möglichkeit mit einem kostenlosen
Azure-Konto zu starten https://azure.microsoft.com/en-us/free/. Dieses Konto ist durch ein
Gutschriftguthaben und gewisse Zeitdauer begrenzt nutzbar. Das Konto wird erst kostenpflichtig
nachdem Sie ein Abonnement abschließen.

In den folgenden Unterkapiteln wird beschrieben wie Sie die benötigten Azure-Dienste einrichten.

4.2.2.1 Azure IoT Hub anlegen


Azure IoT Hub ist ein Dienst, der eine zuverlässige und sichere bidirektionale Kommunikation
zwischen Millionen von IoT-Geräten und einem Lösungs-Back-End ermöglicht. Aus Sicht Ihres Wago
Controllers ist dieser ein Kommunikationsendpunkt zu Azure.

Um ein IoT Hub anzulegen führen Sie bitte folgende Schritte aus:
1. Auf Azure Portal https://portal.azure.com anmelden
2. Zu Neu> Internet der Dinge > IoT Hub navigieren

Abbildung 4-1: IoT Hub hinzufügen

3. Namen eingeben, Preis- und Staffelungstarif auswählen, Resourcen-Gruppe neu


erstellen sowie den Standort für IoT Hub auswählen. (weitere Details online
https://docs.microsoft.com/de-de/azure/iot-hub/quickstart-send-telemetry-dotnet )
4. Die Erstellung des IoT Hubs kann einige Minuten dauern. Im Startmenü oder im
Benachrichtigungsbereich können Sie den Fortschritt überwachen und den Status
überprüfen.

Abbildung 4-2: Status vom Erzeugen des IoT Hubs

Public
28 Inbetriebnahme Anwendungshinweis WagoAppCloud
WAGO-I/O-SYSTEM 750

4.2.2.2 Neues Gerät registrieren


Führen Sie bitte folgende Schritte aus, um ein Gerät beim IoT Hub zu registrieren:
1. Im Azure Portal zum Device Explorer Ihres IoT Hub navigieren und [Hinzufügen]
klicken

Abbildung 4-3: Gerät hinzufügen

2. ID für Ihr Gerät eingeben, symmetrischen Schlüssel und Auto-Generierung auswählen,


anschließend auf [Speichern] klicken
3. Das hinzugefügte Gerät wird nun gelistet. Beim Klick darauf werden die Details
angezeigt wie z.B. die Schlüssel und Verbindungszeichenfolgen.

Abbildung 4-4: Geräteinformationen

Public
Anwendungshinweis WagoAppCloud Inbetriebnahme 29
WAGO-I/O-SYSTEM 750

4.2.2.3 Cloud Connectivity konfigurieren


1. Im Azure Portal das Gerät auswählen und den Primärschlüssel kopieren

Abbildung 4-5: Primärschlüssel vom Gerät

2. WBM Ihres Wago Controllers starten und im Registerreiter Configuration zu


Cloud Connectivity navigieren
3. Den Unterpunkt Connection 1 auswählen
4. Die Verbindung 1 durch die Checkbox Enabled aktivieren
5. Azure als Cloud Platform auswählen
6. Hostnamen Ihres IoT Hub und Geräte Id entsprechend denen in Azure Portal
eingeben
7. Nun den kopierten Primärschlüssel in das Feld Activation key einfügen
8. [Submit] klicken um die Konfiguration zu spechern, danach PFC neustarten.
9. Nach Neustart wird der Verbindungsstatus zu Ihrem Azure IoT Hub angezeigt

Information Weitere Information


Alternativ unterstützt der Azure IoT Hub auch die Kommunikation mithilfe
von MQTT v3.1.1. Hierfür wählen Sie als Cloud Platform MQTT Any
Cloud und folgen den unter folgendem Link beschriebenen Schritten:
https://docs.microsoft.com/de-de/azure/iot-hub/iot-hub-mqtt-support#using-
the-mqtt-protocol-directly-as-a-device.

Public
30 Inbetriebnahme Anwendungshinweis WagoAppCloud
WAGO-I/O-SYSTEM 750

4.2.2.4 Gerät-an-Cloud-Nachrichten überwachen


Im Azure Portal wird beim IoT Hub nur die Anzahl empfangener Nachrichten angezeigt. Damit ist
diese Anzeige nicht besonders hilfreich während der Entwicklungsphase.
In diesem Kapitel wird beschrieben wie man mit Device Explorer Tool die Nachrichten anzeigen und
überwachen kann, welche Ihr Wago Controller zu Ihrem Azure IoT Hub sendet.

Führen Sie bitte folgende Schritte aus:


1. Sicherstellen, dass Ihr Wago Controller eine Netzwerkverbindung zu Ihrem Azure IoT
Hub hat. Das SPS-Programm überträgt kontinuierlich seine Daten an Azure
2. Device Explorer Tool von https://github.com/Azure/azure-iot-sdk-csharp/releases
runterladen, installieren und starten
3. Port 5671 ist offen (Device Explorer Tool nutzt diesen Port um mit dem IoT Hub zu
kommunizieren)
4. Auf dem Registerreiter Configuration die Verbindungszeichenfolge Ihres IoT Hub
eingeben und auf [Update] klicken

Abbildung 4-6: Device Explorer Tool

5. Auf Registerreiter Data Ihr Gerät wählen und auf [Monitor] klicken

Public
Anwendungshinweis WagoAppCloud Inbetriebnahme 31
WAGO-I/O-SYSTEM 750

Abbildung 4-7: Anzeige der Nachrichten vom Gerät zur Cloud

6. Sobald Ihr IoT Hub Nachrichten von Ihrem Wago Controller bekommen hat, werden
diese vom Device Explorer Tool zeitnah angezeigt

4.2.2.5 Cloud-an-Gerät-Nachrichten senden


Es ist möglich spezielle Nachrichten (Kommandos) mit Device Explorer Tool an Ihren Wago Controller
zu senden. Azure Portal bietet ebenfalls diese Funktion an, welche im Folgenden beschrieben wird.

1. Sicherstellen, dass Ihr Wago Controller eine Netzwerkverbindung zu Ihrem Azure IoT
Hub hat
2. Sicherstellen, dass Ihr Wago Controller das Kommando, welches gesendet werden
soll, ausführen kann
3. Im Azure Portal navigieren zu: Ihr IoT Hub > Device Explorer > Ihr Gerät > Message
To Device
4. Nachricht (Kommando) eingeben und das Property namens CommandRequestId mit
beliebiger Zahl als Wert hinzufügen. Danach [Send Message] klicken

Public
32 Inbetriebnahme Anwendungshinweis WagoAppCloud
WAGO-I/O-SYSTEM 750

Abbildung 4-8: Anzeige der Nachrichten von der Cloud zum Gerät

5. Ihr Wago Controller sollte zeitnah das gesendete Kommando bekommen und
ausgeführt haben

Public
Anwendungshinweis WagoAppCloud Inbetriebnahme 33
WAGO-I/O-SYSTEM 750

4.2.3 Amazon Web Services (AWS)


Im Folgenden sind die Schritte beschrieben, welche nötig sind, um den IoT-Dienst von AWS nutzen zu
können.
Um Services bei AWS nutzen zu können muss zunächst ein Konto unter https://aws.amazon.com
erstellt werden. Das Erstellen des Kontos ist kostenlos. Es ist möglich, eine Testphase zu starten, in
der innerhalb des ersten Jahres monatlich 250000 Nachrichten kostenfrei versendet werden können.
4.2.3.1 Anmeldung beim AWS IoT-Dienst
Nach erfolgreicher Anmeldung in der AWS-Managementkonsole öffnen Sie die AWS IoT-Konsole
(Service: IoT Core).
Nähere Information zur Anmeldung finden Sie in der AWS-Dokumentation:
https://docs.aws.amazon.com/de_de/iot/latest/developerguide/iot-console-signin.html
Man kann auswählen, wo die Daten des Dienstes gehostet werden sollen bzw. auf welchen Servern
der Dienst laufen soll. Dies geschieht mit der Kombo-Box oben rechts neben der Kombo-Box
„Service“.

Information Weitere Information


Die später angelegten Geräte und an die Cloud gesendeten Nachrichten sind
nur dann sichtbar, wenn man den Serverort passend ausgewählt hat. Passend
heißt an dieser Stelle: ein Gerät ist mit der Einstellung N. Virginia angelegt;
dann ist das angelegte Gerät und die an die Cloud gesendeten Nachrichten
auch nur dann sichtbar, wenn N. Virginia ausgewählt ist.

4.2.3.2 Anlegen eines neuen Geräts im AWS IoT-Dienst


Um ein Gerät erfolgreich bei der AWS IoT-Konsole anzulegen, müssen die folgenden Schritte
ausgeführt werden:
1. Registrieren eines Geräts in der Registry
Wählen Sie im linken Navigationsbereich Verwalten aus und erstellen Sie ein neues Gerät
(siehe https://docs.aws.amazon.com/de_de/iot/latest/developerguide/register-device.html ).
2. Erstellen und Aktivieren eines Gerätezertifikats
Wählen Sie im linken Navigationsbereich Sicher – Zertifikate aus und erstellen Sie ein neues
Zertifikat (siehe https://docs.aws.amazon.com/de_de/iot/latest/developerguide/create-device-
certificate.html ).
Die Zertifikate werden für die verschlüsselte Verbindung über TLS vom PFC zum
AWS IoT-Dienst benötigt.

Hinweis Wichtiger Hinweis!


Laden Sie die erstellten Zertifikate herunter, da die Zertifikate anschließend
auf den PFC kopiert werden müssen. Benötigt wird das Zertifikat für dieses
Gerät (.cert) und der private Schlüssel (private.key).

3. Erstellen einer AWS IoT-Richtlinie


Wählen Sie im linken Navigationsbereich Sicher - Richtlinien aus und erstellen Sie ein neue
Richtlinie (siehe https://docs.aws.amazon.com/de_de/iot/latest/developerguide/create-iot-
policy.html ).
Über Richtlinien können Verbindungen auf das notwendigste eingeschränkt werden. Beachten
Sie, dass die Richtlinie den PFC berechtigt mit dem AWS IoT-Dienst zu kommunizieren!

Public
34 Inbetriebnahme Anwendungshinweis WagoAppCloud
WAGO-I/O-SYSTEM 750

Hinweis Wichtiger Hinweis!


Defaultmäßig wird die Verbindung der PFCs zum AWS IoT-Dienst
gesperrt. Die Kommunikation ist daher per Richtlinie explizit
freizugegeben. Beachten Sie hierzu die Beispielrichtlinien Beispiele der
Richtlinien (Policy) für AWS im Anhang.

Weitere Infos zu den AWS IoT Richtlinien:


https://docs.aws.amazon.com/de_de/iot/latest/developerguide/iot-
policies.html

4. Anfügen einer AWS IoT-Richtlinie an ein Gerätezertifikat


Wählen Sie im linken Navigationsbereich Sicher – Zertifikate aus und fügen Sie die Richtlinie
an das Zertifikat (siehe https://docs.aws.amazon.com/de_de/iot/latest/developerguide/attach-
policy-to-certificate.html ).
5. Anfügen eines Gerätezertifikats an ein Gerät
Wählen Sie im linken Navigationsbereich Sicher – Zertifikate aus und fügen Sie das Zertifikat
an das Gerät (siehe https://docs.aws.amazon.com/de_de/iot/latest/developerguide/attach-
policy-to-certificate.html ).

4.2.3.3 Konfiguration der Cloud Connectivity für die Amazon Web Services
(AWS)
In diesem Abschnitt werden die Schritte zur Konfiguration der Cloud Connectivity-Funktionalität des
PFC für die Amazon Web Services (AWS) beschrieben. Es wird davon ausgegangen, dass zuvor bei
Amazon der AWS IoT-Dienst und ein Gerät eingerichtet wurden.
Die folgende Auflistung beschreibt die nötigen Schritte, um die Cloud Connectivity mit AWS zu
verbinden.
1. Innerhalb eines Webbrowsers das WBM des PFC aufrufen.
2. Wählen Sie den Registerreiter Configuration.
3. Klicken Sie beim Menüpunkt Cloud Connectivity auf den Unterpunkt Connection 1.
4. Die Verbindung 1 mit der Check-Box Enabled aktivieren.
5. Username und Password eingeben, um sich am PFC zu authentifizieren. [Submit] klicken.
Gegebenenfalls erscheint eine Messsage-Box mit dem Hinweis, dass aus Sicherheitsgründen
das Passwort geändert werden sollte. Es öffnet sich die Konfigurationsseite der
Cloud Connectivity.
6. Im Abschnitt „Settings“ aus der Kombo-Box Cloud platform den Eintrag „Amazon Web
Services (AWS)“ auswählen.
7. Im Feld Hostname den Amazon-Hostnamen zum AWS IoT-Dienst eingeben. Der Host-Name
ist ein benutzerdefinierter Endpunkt.
Um den benutzerdefinierten Endpunkt für das Gerät herauszufinden, sind die folgenden
Schritte notwendig:
o Im AWS IoT-Dienst den linken Navigationsbereich Verwalten – Objekte auswählen
o Angelegtes Gerät auswählen.
o Im linken Navigationsbereich Interagieren auswählen.
o Unter dem Bereich HTTPS befindet sich der Host-Name (Rest API Endpoint)
Der Host-Name sieht in etwa wie folgt aus:
ABCDEFG1234567-ats.iot.us-east-1.amazonaws.com
Hierbei ist ABCDEFG1234567 die Subdomain (eigenes AWS Konto) und us-east-1 die
Region.
8. Im Feld Client ID ist die Client-ID einzugeben. Der Wert der Client-ID ist frei wählbar, sollte
aber keine Sonderzeichen enthalten.

Public
Anwendungshinweis WagoAppCloud Inbetriebnahme 35
WAGO-I/O-SYSTEM 750

9. Im Feld CA File muss der Pfad zum CA-File angegeben werden. Es ist hier
/etc/ssl/certs/ca-certificates.crt einzutragen.
10. Es ist nun das Zertifikat mit dem Namen „Name_des_Gerätes.cert.pem“ aus der von AWS
heruntergeladenen Datei auf den PFC in den Ordner /etc/ssl/certs/ hochzuladen.5

Information Weitere Information


Name_des_Gerätes ist der Name, welcher bei der Registrierung des Gerätes
im AWS IoT-Dienst eingegeben wurde.

11. Im Feld Certificate File ist der Pfad mit Dateinamen zu dem in 8. hochgeladenen Zertifikat
einzutragen.
12. Es ist nun der private Schlüssel mit dem Namen „Name_des_Gerätes.private.key“ aus der
von AWS heruntergeladenen Datei auf den PFC in den Ordner /etc/ssl/certs/ hochzuladen.
13. Im Feld Key File ist der Pfad mit Dateinamen zu dem in 11. hochgeladenen privaten
Schlüssel einzutragen.
14. Durch einen Klick auf den Button [Submit] wird die Konfiguration gespeichert.
15. Der Controller muss nun neu gestartet werden, damit die Einstellungen übernommen werden.

5Unter Microsoft Windows kann hierfür das Tool WinScp genutzt werden. Unter Linux® kann das
Kommandozeilen-Tool scp genutzt werden.

Public
36 Inbetriebnahme Anwendungshinweis WagoAppCloud
WAGO-I/O-SYSTEM 750

4.2.3.4 Testen des angelegten Gerätes


Das Testen des zuvor angelegten Gerätes erfolgt über den linken Navigationsbereich Test. Bevor der
Test erfolgreich sein kann, muss der PFC für den AWS IoT-Service konfiguriert worden sein. Es wird
hierzu auf das vorherige Kapitel 4.2.3.3 verwiesen.

Information Weitere Information


Das zu testende Gerät muss sich in dem aktuell ausgewählten Namensraum
befinden, da das Gerät und die Nachrichten sonst nicht sichtbar sind. D. h.
ein Gerät, welches im Namenraum N. Virginia angelegt wurde, ist auch nur
dort sichtbar. Für die Daten gilt dies ebenfalls.

1. Im linken Navigationsbereich Test auswählen. Es erscheint der MQTT-Client. (siehe


https://docs.aws.amazon.com/de_de/iot/latest/developerguide/view-mqtt-messages.html )

Abbildung 4-9: Amazon-MQTT-Client

2. Im Feld Subscription topic den Wert „Device_Id_aus_dem_WBM/#“ eingeben.


Device_Id_aus_dem_WBM ist der Wert des Feldes aus der WBM-Cloud-Connectivity-Seite.
3. [Subscribe to topic] anklicken. Die Subscription wird auf der linken Seite angezeigt.
4. Anklicken der soeben angelegten Subscription; es öffnet sich rechts neben der Subscription
ein leeres Fenster.

Public
Anwendungshinweis WagoAppCloud Inbetriebnahme 37
WAGO-I/O-SYSTEM 750

Abbildung 4-10: MQTT-Client, Ansicht einer Subscription

5. Zum Publishen wird das Topic automatisch von der Subscription übernommen. Ist dies nicht
der Fall, ist in dem Feld rechts neben „Publish“ des Topics einzugeben.
6. Durch einen Klick auf [Publish to topic] wird die Nachricht in dem kleinen Konsolenfenster
unterhalb des Topic-Feldes an den „AWS IoT MQTT Broker“ gesendet.
7. Kontrollieren, ob die gesendete Nachricht oben im MQTT-Client bei der Subscription auftaucht.
Ist dies der Fall, funktioniert die Konfiguration.

Public
38 e!COCKPIT Anwendungshinweis – WagoAppCloud
Inbetriebnahme WAGO-I/O-SYSTEM 750

4.2.4 IBM Cloud


Im Folgenden sind die Schritte beschrieben, welche nötig sind, um im IBM Cloud den Dienst „Watson
IoT Platform“ nutzen zu können.

4.2.4.1 Anlegen eines Benutzerkontos und eines Dienstes bei IBM

1. Test-Account anlegen (nur 30 Tage gültig, keine Kreditkarte notwendig)


2. Anmeldung (https://console.bluemix.net )
3. In der IBM Cloud unter Dashboards auf den Button Ressource erstellen klicken.
4. Im linken Menü Internet of Things Platform auswählen.
5. Eine passende Preisstruktur auswählen (zum Testen bietet sich der kostenlose Plan „Lite“ an)
und die IBM Watson IoT Platform erstellen.
6. Nun gelangt man zu den Service-Details „Internet of Things Plattform“.
Durch einen Klick auf [Starten] gelangt man zum „IBM Watson IoT Platform Dienst“.
7. Über die Menüleiste auf der linken Seite gelangt man durch Klicken auf den Eintrag Devices
zur Geräteverwaltung.
8. Durch einen Klick auf [Gerät hinzufügen] gelangt man zum Dialog zum Hinzufügen eines
Gerätes.
9. Es ist nun ein Gerätetyp zu erstellen, indem man auf [Gerätetyp hinzufügen] klickt. Es
erscheint eine Auswahl, ob man einen „Gerätetyp“ oder „Gateway-Typ“ erstellen möchte. Hier
ist „Gerätetyp“ auszuwählen. Im nächsten Dialog sind der Name und eine Beschreibung für
den „Gerätetyp“ einzugeben. Im nächsten Dialog kann man eine Schablone definieren, welche
optional ist. Durch einen Klick auf [Weiter] gelangt man zum nächsten Dialog. Hat man Felder
für die Schablone ausgewählt, sind nun die Felder, die in der Schablone definiert wurden,
auszufüllen. Durch einen Klick auf [Weiter] gelangt man zur optionalen Eingabe von
„Metadaten“. Durch einen Klick auf [Erstellen] wird der Gerätetyp erstellt.
10. Nun ist der zuvor erstellte Gerätetyp ausgewählt. Durch einen Klick auf [Weiter] wird man im
nächsten Dialog dazu aufgefordert, eine Geräte-ID anzugeben, welche zwingend erforderlich
ist. Weiterhin tauchen hier die ausgewählten Felder aus der Schablone des zuvor erstellen
Gerätetyps auf. Die Felder sind automatisch mit den Standardwerten aus der Schablone
gefüllt und entsprechend anzupassen. Im nächsten Schritt werden noch die optionalen
Metadaten abgefragt, welche im JSON-Format eingefügt werden müssen. Durch einen Klick
auf [Weiter] gelangt man zur Abfrage der zu verwendeten Sicherheit. Es stehen zur Auswahl:
„Automatisch generiertes Authentifizierungstoken“ oder „Selbst bereitgestelltes
Authentifizierungstoken“. Durch einen Klick auf [Weiter] wird die automatische Generierung
des Tokens ausgewählt. Im nächsten Dialog wird nun eine Zusammenfassung aller
geräterelevanten Daten angezeigt. Durch einen Klick auf [Hinzufügen] wird ein Gerät
angelegt und die Identifikationsdaten für das Gerät angezeigt. Dieser Dialog sollte gespeichert
werden, damit man die Gerätedaten zur Hand hat, um das Gerät anmelden zu können.

4.2.4.2 Konfiguration der Cloud Connectivity für IBM Cloud


In diesem Abschnitt werden die Schritte zur Konfiguration der Cloud Connectivity-Funktionalität des
PFC für IBM Cloud beschrieben. Es wird davon ausgegangen, dass zuvor bei IBM der IBM-Cloud-
Dienst und ein Gerät eingerichtet wurden. Es wird weiterhin davon ausgegangen, dass die
Identifikationsdaten für ein Gerät vorliegen.
Die folgende Auflistung beschreibt die nötigen Schritte, um die Cloud Connectivity mit IBM Cloud zu
verbinden.

1. Innerhalb eines Webbrowsers das WBM des PFC aufrufen.


2. Wählen Sie den Registerreiter Configuration.
3. Wählen Sie beim Menüpunkt Cloud Connectivity den Unterpunkt Connection 1.
4. Die Verbindung 1 mit der Checkbox Enabled aktiveren.
5. Username und Password eingeben, um sich am PFC zu authentifizieren. [Submit] klicken.
Gegebenenfalls erscheint eine Messsage-Box mit dem Hinweis, dass aus Sicherheitsgründen

Public
e!COCKPIT Anwendungshinweis – WagoAppCloud 39
WAGO-I/O-SYSTEM 750 Inbetriebnahme

das Passwort geändert werden sollte. Es öffnet sich die Konfigurationsseite der
Cloud Connectivity.
6. Im Abschnitt „Settings“ aus der Kombo-Box Cloud Platform den Eintrag „IBM Cloud“
auswählen.
7. Im Feld Hostname den IBM-Hostnamen zur „IBM Watson IoT Platform“ eingeben. Der
Host-Name ist wie folgt aufgebaut:
org_id.messaging.internetofthings.ibmcloud.com
org_id muss durch die eigene Organisations-ID ersetzte werden.

Information Weitere Information


Die Organisations-ID wurde nachdem Anlegen eines Gerätes unter „Ihre
Identifikationsdaten für das Gerät“ genannt.

8. Im Feld Client ID ist die Client-ID einzugeben. Der Aufbau der Client-ID ist im Folgenden
dargestellt:
d:org_id:device_type:geräte_id

Tabelle 1: Erklärung der Teilzeichenketten der Client-ID

d Das „d“ signalisiert dem „IBM Watson IoT Platform Dienst“, dass es
sich bei der Zeichenkette um ein Gerät handelt.
org_id Ist durch die eigene Organisations-ID zu ersetzen
device_type device_typ ist durch den Gerätetyp, welcher dem Gerät im
„IBM Watson IoT Platform Dienst“ zugeordnet wurde, festgelegt.
geräte_id Dem Gerät zugeordnete Geräte-ID

9. Durch die Check-Box TLS kann ausgewählt werden, ob die Verbindung verschlüsselt
aufgebaut werden soll und der Transfer der Daten verschlüsselt erfolgt.
10. Im Feld CA File muss der Pfad zum CA-File angegeben werden. Es ist hier
/etc/ssl/certs/ca-certificates.crt einzutragen.
11. Im Feld Port ist bei einer unverschlüsselten Verbindung der Wert „1883“ auszuwählen. Für
eine verschlüsselte Verbindung muss der Port „8883“ ausgewählt werden.
12. Im Feld User ist der Wert „use-token-auth“ einzutragen.
13. Im Feld Passwort ist das Passwort (Authentifizierungstoken) aus der Geräteerstellung in der
IBM Cloud einzutragen.
15. Durch einen Klick auf den Button [Submit] wird die Konfiguration gespeichert.
16. Der PFC muss nun neu gestartet werden, damit die Einstellungen übernommen werden.

Public
40 e!COCKPIT Anwendungshinweis – WagoAppCloud
Inbetriebnahme WAGO-I/O-SYSTEM 750
4.2.4.3 Anlegen einer Datenvisualisierung

Die an IBM Cloud gesendeten Daten können innerhalb der „IBM Watson IoT Platform“ in graphischer
oder textueller Form angezeigt werden. Es sind diverse Anzeigearten möglich. Als Beispiel werden
einige Daten der Struktur „DeviceInfo“ in einer sogenannten Karte dargestellt.

Als Startpunkt dient das Dashboard mit den verfügbaren Boards. Im Webbrowser gehen wir zu
folgender Seite https://org_id.internetofthings.ibmcloud.com/dashboard/boards/
org_id ist durch die eigene Organisations-ID zu ersetzen.
Nach dem Log-in erscheint eine Übersicht aller Boards (vgl. Abbildung 4-11).

Abbildung 4-11: Übersicht aller Boards

Public
e!COCKPIT Anwendungshinweis – WagoAppCloud 41
WAGO-I/O-SYSTEM 750 Inbetriebnahme

Wir erstellen nun ein neues Board mit einer neuen Karte:

1. Auf [+ Neues Board erstellen] klicken. Es erscheint ein Dialog mit den Board-Einstellungen.
Hier werden der „Name“ und eine „Beschreibung“ für das Board eingegeben.
Durch Klicken auf [Weiter] gelangt man zu weiteren Board-Einstellungen. Dort übernehmen
wir durch Klicken auf [Übergeben] die gesetzten Einstellungen. Das neue Board wird nach
wenigen Sekunden in der Board-Übersicht angezeigt.
2. Nun wird das zuvor erstellte Board durch Klicken auf das „Board“ in den Fokus geholt. Es
können nun Einstellungen zum Board geändert werden oder eine neue Karte hinzugefügt
werden.
3. Durch Klicken auf [+ Neue Karte hinzufügen] öffnet sich ein Dialog, um einen Kartentyp
auszuwählen.
4. Wir wählen beispielhaft das Gerät „Value“ durch Anklicken aus.
5. Es werden nun alle verfügbaren Geräte angezeigt. Es ist das Gerät auszuwählen, welches als
Quelle dienen soll. Durch Klicken auf [Weiter] gelangt man zu den Dataset-Einstellungen.
6. Durch einen Klick auf [Verbindung für neues Dataset herstellen] klappen weitere Felder
auf. Durch Klicken auf das Feld unterhalb von „Event“ erscheint eine Liste der bisher an IBM
Cloud gelieferten Ereignisse, wie z. B. „DeviceInfo“. 6 Wir wählen diese aus.
7. Durch Klicken auf das Feld unterhalb von „Property“ erscheint eine Liste der bisher gelieferten
Eigenschaften wie z. B. Firmware-Version. Diese wählen wir aus.
8. Das Feld „Name“ wird automatisch mit dem Namen der Eigenschaft gefüllt, kann aber auch
umbenannt werden.
9. Das Feld „Type“ gibt den Typen der Eigenschaft an; es kann hier „Text“ oder „Number“
ausgewählt werden. In diesem Beispiel ist „Text“ auszuwählen.
Information Weitere Information
Es können auf einer Karte mehr als ein Dataset angelegt werden
(s. Abbildung 4-12).

Abbildung 4-12: Auswahl der Daten für die Karte

10. Durch einen Klick auf [Weiter] gelangt man auf eine Kartenvorschau (s. Abbildung 4-13).

6Damit man hier Ereignisse auswählen kann, müssen zuvor Daten an die Cloud gesendet worden
sein. Sollten keine Daten an die Cloud gesendet worden sein, ist die Auswahlliste leer.

Public
42 e!COCKPIT Anwendungshinweis – WagoAppCloud
Inbetriebnahme WAGO-I/O-SYSTEM 750

Abbildung 4-13: Vorschau der Karte mit den ausgewählten Daten

11. Durch einen Klick auf [Weiter] bekommt man eine Zusammenfassung und kann noch ein
Farbschema auswählen.
12. Durch einen Klick auf [Übergeben] ist das Einrichten der Karte abgeschlossen.

4.2.4.4 Referenzen

• Allgemeine Informationen zu den IBM-Cloud-Diensten


o https://www.ibm.com/cloud-computing/bluemix/de/watson
• Getting Started
o https://console.bluemix.net/docs/services/IoT/index.html#gettingstartedtemplate

Public
e!COCKPIT Anwendungshinweis – WagoAppCloud 43
WAGO-I/O-SYSTEM 750 Inbetriebnahme

4.2.5 SAP IoT Services


Im Folgenden sind die Schritte beschrieben, um die SAP IoT Services nutzen zu können. Das
Anlegen eines Kontos in SAP erfolgt durch Ihren SAP-Berater.

4.2.5.1 SAP IoT Service Cockpit: Anmelden


Die Anmeldung beim Demo IoT Service der SAP erfolgt über die URL:
https://com-iotaedemo.eu10.cp.iot.sap. Den finalen Link sowie die Zugangsdaten erhalten Sie von
Ihrem SAP-Berater.
Nach der Anmeldung gelangen Sie in das „Internet of Things Service Cockpit“. Legen Sie unter User
Managements > User die gewünschten User in Ihrem Tenant an (s. Create User and Tenant). Beim
Anlegen des Tenant unterstützt Sie Ihr SAP-Berater.

4.2.5.2 SAP IoT Service Cockpit: Anlegen eines Gerätes


Durch die Auswahl des Tenants wird im Menü das Device Management sichtbar.

1. Wählen Sie im Menü Device Management > Devices aus und klicken Sie auf [+].
2. Füllen Sie das Pflichtfeld Name aus.
3. Wählen Sie unter Gateway [MQTT Network (ID: 2)] aus.
4. Schließen Sie das Erzeugen des neuen Device mittels [Create] und [Confirm] ab.

Das Device ist nun angelegt. In den nächsten Schritten werden die vom Device unterstützten
Datenstrukturen definiert.

4.2.5.3 SAP IoT Service Cockpit: Erzeugen einer Capability


Eine Capability ist ein Template einer Datenstruktur, welche vom WAGO-Gerät zum SAP IoT Service
übertragen wird.

1. Wählen Sie im Menü Device Management > Capabilities aus und klicken Sie auf [+].
2. Füllen Sie das Pflichtfeld Name aus.
3. Erstellen Sie eine Liste der zu übertragenen Variablen unter Properties. Vergeben Sie dazu
jeder Variable einen Namen (Name) und wählen Sie den Datentyp (Data Type) aus. Optional
können Sie zusätzlich für jede Variable eine Einheit eintragen (Unit of Measure). Um weitere
Variablen hinzuzufügen, klicken Sie auf [+].
4. Schließen Sie das Erzeugen der neuen Capability mittels [Create] und [Confirm] ab.

4.2.5.4 SAP IoT Service Cockpit: Erzeugen eines Sensor Types


Bei einem Sensor Type handelt es sich um ein Template, welches mindestens eine Capability
beinhaltet.

1. Wählen Sie im Menü Device Management > Sensor Types aus und klicken Sie auf [+].
2. Füllen Sie das Pflichtfeld Name aus.
3. Wählen Sie aus der Liste der Capabilities die zu unterstützenden Capabilities und weisen Sie
jeder einen Typ (Type) zu. Der Typ kann die Werte measure und command annehmen. Der
Typ measure steht für Daten, die vom Gerät gepublished werden. Der Typ command steht
für Daten, die vom Gerät subscribed werden. Um weitere Variablen hinzuzufügen klicken Sie
auf [+].
4. Schließen Sie das Erzeugen des neuen Sensor Types mittels [Create] und [Confirm] ab.

Public
44 e!COCKPIT Anwendungshinweis – WagoAppCloud
Inbetriebnahme WAGO-I/O-SYSTEM 750
4.2.5.5 SAP IoT Service Cockpit: Erzeugen eines Sensors
1. Wählen Sie im Menü Device Management > Devices Ihr [Device] aus.
2. Wählen Sie [Sensors] und klicken Sie auf [+], um einen neuen Sensor anzulegen.
3. Füllen Sie das Pflichtfeld Name aus.
4. Wählen Sie aus der Liste unter Sensor Type Ihren Sensortypen aus.
5. Schließen Sie das Erzeugen des neuen Sensors mittels [Create] und [Confirm] ab.
6. Sollte in der Liste der Sensoren (Sensors) noch ein Default-Sensor (Sensor: 0:0:0:0)
angelegt sein, löschen Sie diesen mit einem Klick auf das Mülleimer-Symbol und bestätigen
Sie das Löschen mit [Confirm].

4.2.5.6 SAP IoT Service Cockpit: Erzeugen eines Zertifikats


1. Wählen Sie im Menü Device Management > Devices Ihr [Device] aus.
2. Wählen Sie [Certificate] und betätigen Sie [Generate Certificate].
3. Wählen sie den Zertifikatstyp [pem] im erscheinenden Auswahldialog und bestätigen den
Dialog mit [Generate].

Hinweis Wichtiger Hinweis!


Notieren Sie das angezeigte Secret, es wird im folgenden Schritt benötigt.

Das Zertifikat mit dem Namen: Name_Ihres_Device-device_certificate.pem wurde erstellt und


befindet sich nun im Download-Verzeichnis Ihres PCs.

4.2.5.7 Separieren des Keys eines Zertifikats


Das von SAP generierte Zertifikat kann vom WAGO-Gerät nicht direkt verarbeitet werden. Aus diesem
Grund muss der Key separiert werden.

Hinweis Wichtiger Hinweis!


Für das Separieren des Keys wird eine funktionierende Installation des Open
Source Tools openSSL-Win32 vorausgesetzt (Installationsanleitung s.
Install OpenSSL)

1. Kopieren Sie das Zertifikat aus dem Download-Verzeichnis in das Verzeichnis openssl-
win32\bin.
2. Öffnen Sie unter Windows eine Kommandozeile mit Administrator-Rechten und wechseln Sie
in das Verzeichnis openssl-win32\bin.
3. Geben Sie folgenden Befehl ein, wobei <myCertificate.pem> durch den Namen Ihres
Zertifikates und <myKey.key> durch den Namen der Zieldatei zu ersetzen ist. Bestätigen Sie
mit Enter:
openssl rsa –in “<myCertificate.pem>” –out “<myKey.key>”
4. Geben Sie das zugehörige Secret ein und bestätigen Sie mit Enter.
5. Laden Sie die beiden Dateien (das Zertifikat und den Key) auf das WAGO Gerät in das
Verzeichnis: /etc/ssl/certs/

Public
e!COCKPIT Anwendungshinweis – WagoAppCloud 45
WAGO-I/O-SYSTEM 750 Inbetriebnahme

Hinweis Wichtiger Hinweis!


Für das Kopieren der Zertifikate auf das WAGO-Gerät kann beispielsweise
ein FTP-Client, wie das Open-Source-Programm FileZilla (s.
https://filezilla-project.org/), verwendet werden.

4.2.5.8 Konfiguration der Cloud Connectivity


1. Rufen Sie mit einem Webbrowser das WBM Ihres WAGO-Gerätes auf.
2. Wählen Sie den Registerreiter Configuration.
3. Wählen Sie beim Menüpunkt Cloud Connectivity den Unterpunkt Connection 1.
4. Die Verbindung 1 durch die Check-Box Enabled aktivieren.
5. Geben Sie den Namen (Username) sowie das Passwort (Password) ein, um sich am PFC zu
authentifizieren. Klicken Sie auf [Submit]. Gegebenenfalls erscheint eine Messsage-Box mit
dem Hinweis, dass aus Sicherheitsgründen das Passwort geändert werden sollte. Es öffnet
sich die Konfigurationsseite der Cloud Connectivity.
6. Wählen Sie im Abschnitt Settings aus der Dropdown-Liste Cloud platform den Eintrag
[SAP IoT Services].
7. Aktivieren Sie das Auswahlfeld [Enabled].
8. Geben Sie im Feld Hostname Ihren SAP-Hostname ein. Den Hostname erhalten Sie über
Ihren SAP-Berater. Beispiel für den Demo-Host: com-iotaedemo.eu10.cp.iot.sap
9. Geben Sie im Feld Client ID die Alternate ID Ihres Device aus dem SAP IoT Service (s.
Device Management > Devices) ein.
10. Aktivieren Sie das Auswahlfeld [TLS].
11. Geben Sie im Feld Port „8883“ ein.
12. Geben Sie im Feld CA File den Pfad zum CA-File ein:
„/etc/ssl/certs/ca-certificates.crt“
13. Geben Sie im Feld Certification file den Pfad (inkl. Dateinamen) Ihres Zertifikates (z.B.
„/etc/ssl/certs/myCertificate.pem“) ein.
14. Geben Sie im Feld Key file den Pfad (inkl. Dateinamen) Ihres Keys (z.B.
„/etc/ssl/certs/myKey.key“) ein.
15. Wählen Sie [Submit] und führen Sie ein Reboot des WAGO-Geräts durch.
16. Prüfen Sie nun den Verbindungsstatus im WBM unter Cloud Connectivity > Status. Dieser
muss nach wenigen Minuten connected sein.

Information Weitere Information


Die Auswahlfelder [Clean Session] und [Last Will] können je nach
gewünschtem Verhalten optional gesetzt werden.

Hinweis Wichtiger Hinweis!


Sollte das Wago Gerät sich nicht mit dem SAP IoT Service verbinden,
überprüfen sie die bisherigen Schritte. Stellen Sie sicher, dass Sie die
Alternate ID als Client ID im WBM eingetragen haben und der verwendete
Port nicht mittels Firewall, etc. geblockt ist.

Public
46 e!COCKPIT Anwendungshinweis – WagoAppCloud
Inbetriebnahme WAGO-I/O-SYSTEM 750

4.2.5.9 e!COCKPIT-Programm
Für eine möglichst komfortable Erstellung eines e!COCKPIT Programms zur Kommunikation mit dem
SAP IoT Service empfiehlt es sich, folgende Bibliotheken zu verwenden:
WagoAppJSON: Serialisieren und Parsen des JSON-Payloads
WagoAppCloud: Publish und Subscribe der Daten mittels nativeMQTT

Senden von Daten


WagoAppJSON: Verwenden Sie den Funktionsblock Fb_JSON_Writer_01, um das Payload in das
JSON-Format zu serialisieren. Der JSON-BaseFrame setzt sich wie folgt zusammen:

Hinweis Wichtiger Hinweis!


Zur besseren Lesbarkeit wurden im folgenden Beispiel Zeilenumbrüche
verwendet. Diese dürfen nicht Bestandteil Ihres JSON sein. Die durch <>
gekennzeichneten Platzhalter sind wie nachfolgend beschrieben zu ersetzen.
Die Platzhalter #Parameter werden bei der Serialisierung durch die
übergebenen Werte innerhalb des Funktionsblocks ersetzt.

{
"capabilityAlternateId": "<capabilityAlternateId>",
"sensorAlternateId": "<sensorAlternateId>",
"measures": [{
"<PropertyName1>": "#Parameter",
"<PropertyName2>": "#Parameter"}]
}

1. Ersetzen Sie <capabilityAlternateId>, durch die Alternate ID der Capability aus dem SAP IoT
Service Cockpit.
2. Ersetzen Sie <sensorAlternateId> durch die Alternate ID des Sensors aus dem SAP IoT
Service Cockpit.
3. Ersetzen Sie <PropertyNameX> durch die Namen der durch die Capability unterstützen
Properties aus dem SAP IoT Service Cockpit.
4. Übergeben Sie die zu übermittelnden Werte der Properties als Array an den Funktionsblock
Fb_JSON_Writer_01 und starten Sie die Serialisierung mit Hilfe des Triggers. Beachten Sie
hierbei, dass die Reihenfolge der Werte innerhalb des Arrays, der der zugehörigen Properties
im JSON-BaseFrame entspricht!

WagoAppCloud: Verwenden Sie den Funktionsblock FbPublishMQTT_2, um Nachrichten mittels


nativeMQTT zu publishen. Das Topic setzt sich wie folgt zusammen: 'measures/<deviceAlternateId>'

1. Ersetzen Sie <deviceAlternateId> durch die Alternate ID des Device aus dem SAP IoT Service
Cockpit.
2. Kopieren Sie das von der WagoAppJSON generierte Payload mit Hilfe von MemCopySecure()
in ein Byte Array und übergeben Sie dieses an den Funktionsblock FbPublishMQTT_2.
3. Starten Sie den Publish-Vorgang mit Hilfe des Triggers.

Empfangen von Daten


WagoAppCloud: Verwenden Sie den Funktionsblock FbSubscribeMQTT_2, um Nachrichten mittels
nativeMQTT zu subscriben. Das Topic setzt sich wie folgt zusammen:
'commands/<deviceAlternateId>'

Public
e!COCKPIT Anwendungshinweis – WagoAppCloud 47
WAGO-I/O-SYSTEM 750 Inbetriebnahme

1. Ersetzen Sie <deviceAlternateId> durch die Alternate ID des Device aus dem SAP IoT Service
Cockpit.
2. Starten Sie den Subscribe-Vorgang mit Hilfe des Triggers.

WagoAppJSON: Verwenden Sie den Funktionsblock fbJSON_Parse, um das im JSON-Format


empfangene Payload zu parsen.

1. Kopieren Sie das empfangene Payload mit Hilfe von MemCopySecure() in ein Byte Array und
übergeben Sie dieses an den Funktionsblock fbJSON_Parse.
2. Starten Sie den Parse-Vorgang mit Hilfe des Triggers.
3. Extrahieren Sie die einzelnen Parameterwerte mit Hilfe der Methode GetValueByPath() des
Funktionsblocks fbJSON_Parse. Der Pfad ergibt sich wie folgt: 'commands/<PropertyName>'.
Aktivieren Sie den Vorgang durch Setzen des Triggers.
4. Konvertieren Sie den String in den gewünschten Datentyp (z.B. mit STRING_TO_REAL()).

4.2.5.10 Cloud-an-Gerät-Nachrichten senden


Das Senden von Cloud-zu-Gerät-Nachrichten kann mit Hilfe der Internet of Things Service API
erfolgen. Wählen Sie im Menü Useful Links > Device Management API aus. Navigieren Sie zum
Abschnitt Devices und klicken Sie auf [POST /devices/{deviceId}/commands Sends a command].
Klicken Sie auf [Try it out] um den Eingabemodus zu aktivieren.

Hinweis Wichtiger Hinweis!


Beim Senden von Daten über die IoT Service API werden im Gegensatz
zum e!COCKPIT-Programm die Device ID, die Capability ID und die
Sensor ID benötigt und nicht die entsprechenden Alternate IDs verwendet.

1. Geben Sie im Feld deviceId die ID Ihres Device aus dem SAP IoT Service Cockpit ein.
2. Ersetzen Sie den Wert für capabilityId im body durch die ID der Capability aus dem SAP IoT
Service Cockpit.
3. Ersetzen Sie die Key-Value-Liste des JSON-Objekt command im body mit den Property-
Namen sowie den zugehörigen Werten.
4. Ersetzen Sie den Wert für sensorId im body durch die ID des Sensors aus dem SAP IoT
Service Cockpit.
5. Sende Sie die Cloud-zu-Gerät-Nachrichten durch Klicken auf [Execute].
6. Als Server response wird bei erfolgreichem Sendevorgang der Code 200 zurückgegeben.
Beachten Sie im Falle eines Fehlers den Code sowie den Response body für eine mögliche
Fehleranalyse.

4.2.5.11 SAP IoT Service Cockpit: Datenvisualisierung


SAP bietet eine Visualisierungsmöglichkeit der Daten im IoT Service Cockpit unter Device
Management > Devices.
Wählen Sie Ihr Device aus und scrollen Sie zum Bereich Data Visualization. Hier haben Sie die
Möglichkeit die Sensoren sowie deren Capabilities und Properties für die Visualisierung zu
selektieren.

Public
48 e!COCKPIT Anwendungshinweis – WagoAppCloud
Inbetriebnahme WAGO-I/O-SYSTEM 750

4.2.6 MQTT Any Cloud Beispiel: Cumulocity


Im Folgenden sind die Schritte beschrieben, um Daten mit der IoT Cloud Plattform Cumulocity der
Software AG auszutauschen.

Hinweis Wichtiger Hinweis!


Es wird ausschließlich das Datenprotokoll „Native MQTT“ unterstützt.

4.2.6.1 Anlegen eines Device-Users in Cumulocity


1. Test-Account anlegen (https://www.softwareag.cloud/site/product/cumulocity-iot.html#/).

Hinweis Wichtiger Hinweis!


Bei der Registrierung können Sie die Cloud Region wählen (Europe/United
States). Die Auswahl beeinflusst den zu verwendenden Hostnamen (siehe
Konfiguration der Cloud Connectivity).

Nach dem Login klicken Sie auf den [Application Switcher] und wählen dort
[Administration] aus.

Abbildung 4-14: Application Switcher

2. Wählen Sie [Users] und anschließend [Add-User]


1. Geben Sie einen Benutzernamen (Username) ein. Der Benutzername sollte mit
“device_” beginnen. Beispiel: device_Manager
2. Deaktivieren Sie (Send password reset link as email)
3. Geben Sie ein starkes (Password) ein.
4. Bestätigen Sie das Passwort (Confirm password).
5. In der Liste “Global roles” selektieren Sie ausschließlich [Devices].
6. Speichern Sie mit [Save].
7. Da der Benutzer zu einer speziellen Gruppe „Device“ gehört, wird er nicht in diesem
Menü angezeigt. Um den Benutzer anzuzeigen klicken Sie im [Application Switcher]
auf [Device management], dann auf [Management] und [Device credentials].

Public
e!COCKPIT Anwendungshinweis – WagoAppCloud 49
WAGO-I/O-SYSTEM 750 Inbetriebnahme

3. Für die Konfiguration des Gerätes (z.B. PFC / Touch Panel) benötigen Sie die Tenant ID Ihres
Cumulocity Accounts. Klicken Sie auf Ihren Benutzer und kopieren Sie die Tenant ID.

Abbildung 4-15: Tenant ID

4.2.6.2 Konfiguration der Cloud Connectivity


1. Rufen Sie mit einem Webbrowser das WBM Ihres WAGO-Gerätes auf.
2. Geben Sie den Namen (Username) sowie das Passwort (Password) ein, um sich am PFC zu
authentifizieren. Klicken Sie auf [Submit]. Gegebenenfalls erscheint eine Messsage-Box mit
dem Hinweis, dass aus Sicherheitsgründen das Passwort geändert werden sollte.
3. Wählen Sie unter [Configuration] den Menüpunkt [Cloud Connectivity].
4. Aktivieren Sie das Auswahlfeld [Service enabled].
5. Wählen Sie im Abschnitt Configuration aus der Dropdown-Liste Cloud platform den Eintrag
[MQTT AnyCloud].
6. Geben Sie im Feld Hostname Ihre Cumulocity Tenant ID (siehe vorheriges Kapitel) gefolgt
von “.eu-latest.cumulocity.com“ oder „.us.cumulocity.com“ (abhängig von ihrer Auswahl der
Cloud Region während der Registrierung bei Cumulocity) ein.
Beispiel: IhreTenantID.eu-latest.cumulocity.com
Beispiel: IhreTenantID.us.cumulocity.com
7. Geben Sie im Feld Port „8883“ ein.
8. Geben Sie im Feld Client ID einen eindeutigen Namen ein.
9. Aktivieren Sie das Auswahlfeld [Clean session].
10. Aktivieren Sie das Auswahlfeld [TLS].
11. Geben Sie im Feld User Ihre Cumulocity Tenant ID gefolgt von „/Device-User“ (Ihr
Benutzernamen / Device-User aus dem vorherigen Kapitel).
Beispiel: IhreTenantID/device_Manager
12. Geben Sie im Feld Password das Passwort Ihres Device-Users aus Ihrem Cumulocity Tenant
ein. (Ihr Passwort des Device-User aus dem vorherigen Kapitel).
13. Geben Sie im Feld CA File den Pfad zum CA-File ein:
„/etc/ssl/certs/ca-certificates.crt“
6. Wählen Sie aus der Dropdown-Liste Data protocol den Eintrag [Native MQTT].
7. Wählen Sie [Submit] und führen Sie ein Reboot des WAGO-Geräts durch.

Public
50 e!COCKPIT Anwendungshinweis – WagoAppCloud
Inbetriebnahme WAGO-I/O-SYSTEM 750
8. Prüfen Sie nun den Verbindungsstatus im WBM unter Cloud Connectivity. Dieser muss nach
wenigen Minuten connected sein.

Abbildung 4-16: Beispiel WBM Konfiguration

Public
e!COCKPIT Anwendungshinweis – WagoAppCloud 51
WAGO-I/O-SYSTEM 750 Inbetriebnahme

4.2.6.3 e!COCKPIT Projekt


Verwenden Sie folgende Bausteine aus der WagoAppCloud Bibliothek:
• FbPublishMQTT_2 zum Publishen von Daten
• FbStatus_NativeMQTT_2 zur Überprüfung des Verbindungsstatus
• FbSubscribeMQTT_2 um Daten von Cumulocity zu empfangen

Cumulocity empfiehlt als Payload einen reduzierten Aufbau und kein JSON Format zu verwenden.
Alle Nachrichten werden an das Topic „s/us“ gesendet.
1. Gerät registrieren
1. Um das Gerät bei Cumulocity zu registrieren, publishen Sie folgenden String als
Payload: 100,“myPFC_01“,“PFC200“
Der erste Wert (in diesem Fall 100), weist Cumulocity an, dass es sich um eine
Geräteregistrierung handelt.
Der zweite Wert (in diesem Fall „myPFC_01“) ist der Name des Gerätes in Cumulocity.
Der dritte Wert (in diesem Fall „PFC200“) ist der Name des Gerätetyps.

Hinweis Wichtiger Hinweis!


Damit das Gerät nicht bei jedem Neustart neu registriert wird, verwenden
Sie den Statusbaustein, um die Verbindung zu überprüfen. Ist der
Verbindungsstatus „connected“, führen Sie obige Registrierung einmalig
aus und Speichern dies in einer persistenten Variable, die im Programmcode
abgefragt wird.

2. Device to Cloud: Messwert z.B. Temperatur publishen


Cumulocity bietet für manche Daten wie Temperatur bereits vorgefertigte Templates, die die
Weiterverarbeitung in Cumulocity vereinfachen. Um den Temperaturwert „27“ an Cumulocity
zu übertragen, publishen Sie folgenden String als Payload: 200,c8y_Temperature,T,27
3. Cloud to Device
1. Funktion registrieren
Um Nachrichten von Cumulocity an das Gerät zu senden, muss das Gerät zuerst
Cumulocity mitteilen, dass es diese Funktion unterstützt. Publishen Sie folgenden
String, um in Cumulocity das Menü „_ Shell“ für das Gerät sichtbar zu schalten:
114,c8y_Command
2. Subscribe
Beim Subscribe wird das topic „s/ds“ verwendet.
Um eine Nachricht von Cumulocity an das Gerät zu senden, klicken Sie im
[Application Switcher] auf [Device management], [Devices], [All devices]. In der
Geräteliste wählen Sie Ihr Gerät aus und klicken im Menü auf [>_ Shell].

Hinweis Wichtiger Hinweis!


Der Punkt >_ Shell erscheint erst, wenn Sie vom Gerät aus die Nachricht
114,c8y_Command gepublished haben.

Im Eingabefenster geben Sie das Kommando ein und bestätigen dieses mit
[Execute]. Das Kommando wird nun von Ihrem Gerät empfangen. Cumulocity wartet
nun auf eine Bestätigung vom Gerät. Diese publishen Sie mit folgendem Payload:
501,c8y_Command
Wurde das Kommando erfolgreich vom Gerät ausgeführt, publishen Sie folgenden
String: 503,c8y_Command oder im Fehlerfall 502,c8y_Command

Public
52 e!COCKPIT Anwendungshinweis – WagoAppCloud
Inbetriebnahme WAGO-I/O-SYSTEM 750

Hinweis Wichtiger Hinweis!


Cumulocity bietet viele weitere Nachrichtentypen wie Alarme und Events,
sowie weitere Topics. Weitere Informationen und Erläuterungen zum
konkreten Aufbau der Payloads finden Sie in der Cumulocity Onlinehilfe.

Public
e!COCKPIT Anwendungshinweis – WagoAppCloud 53
WAGO-I/O-SYSTEM 750 Inbetriebnahme

4.2.7 Speicherung
Die Linux Applikation schreibt die Daten welche diese vom SPS-Programm erhält in den Speicher.
Diese Daten werden kontinuierlich an die Cloud weitergesendet und bei Erfolg automatisch aus dem
Speicher gelöscht. In dem Falle eines Abbruchs der Netzwerkverbindung werden die Daten im
Speicher behalten sodass keine Daten verloren gehen. Nach Wiederherstellung der
Internetverbindung werden die zwischengespeicherten Daten wieder versendet.
Sollte die Netzwerkverbindung längere Zeit ausfallen und der Speicher bereits mit Daten komplett
gefüllt ist, werden die ältesten Daten im Speicher überschrieben.

4.2.7.1 RAM
Die Speicherung der Daten ins RAM ist die Standardoption. Die maximale Größe des Speichers
beträgt 3 MB. Im Falle eines Stromausfalls gehen alle Daten verloren.
Es ist auf jeden Fall zu empfehlen diesen Modus während der Entwicklung des SPS-Programms zu
nutzen.

4.2.7.2 SD-Karte
Im Falle eines Stromausfalls gehen die bereits gespeicherten Daten nicht verloren, sondern werden
nach einem Neustart des Controllers an die Cloud gesendet.

Information Weitere Information


Das Speichern der Daten auf die SD-Karte ist beim Datenprotokoll
WAGO Protocol möglich.

Um die SD-Karte nutzen zu können sind folgende Schritte erforderlich:


Wird der PFC von der SD-Karte gebootet, muss zuerst der Inhalt der SD-Karte in den internen Flash
kopiert werden, damit der Controller vom internen Flash booten kann. Ist dies bereits der Fall, kann
Punkt 1 übersprungen werden.

1. PFC für das Booten vom internen Flash einrichten:


1.1. PFC von SD-Karte booten
1.2. Über das Web Based Management / Configuration / Administration / Create Image // Create
bootable image von active Partition (SD) // Start Copy ausführen
1.3. PFC ohne gesteckte SD-Karte neustarten

Punkt 2 ist erforderlich, falls auf der SD-Karte zuvor ein Firmware-Image gespeichert wurde. Wurde
die SD-Karte bereits als Massenspeicher verwendet kann Punkt 2 übersprungen werden. Durch das
Formatieren der SD-Karte über das WBM wird sichergestellt, dass auf der SD-Karte nur eine Partition
vorhanden ist (mmcblk0p1), welche anschließend mit dem Format ext4 formatiert wird.

2. SD-Karte für die Nutzung als Massenspeicher vorbereiten:


2.1. SD-Karte stecken
2.2. Den Registerreiter Configuration auswählen
2.3. Wählen Sie den Menüpunkt Mass Storage aus
2.4. Wähle beim Filesystem type Ext4 aus
2.5. Geben Sie unter Volume Name MemoryCard ein
2.6. Klicke den Button Start Formatting
3. Starte den Controller neu

Public
54 e!COCKPIT Anwendungshinweis – WagoAppCloud
Inbetriebnahme WAGO-I/O-SYSTEM 750
4. Die SD-Karte ist nun vorbereitet. Im WBM kann nun auf der Seite „Cloud Connectivity“ der
Cache-Mode „SD-Karte“ konfiguriert werden

Die Option zur Speicherung der Daten auf SD-Karte ist im WBM nur verfügbar falls der PFC vom
internen NAND Flash gebootet hat. Dabei werden folgende vordefinierte Einstellungen genutzt:
• Maximal werden 512 MB an Daten zwischengespeichert
• Speicherort auf der SD-Karte ist /media/MemoryCard

Hinweis Wichtiger Hinweis!


Die Lebensdauer einer SD-Karte ist begrenzt. Abhängig von der
Datenmenge und der Sampleintervalle wird die Lebensdauer beeinflusst. Es
wird empfohlen die SD-Karten bzw. microSD-Karten von Wago zu nutzen.
Die Vorteile dieser Industrie-SD-Karten sind die SLC-Speicherzellen
(Single Level Cell) und ein spezieller Algorithmus (Wear-Leveling) zur
gleichmäßigen Nutzung des Flash-Speichers.

Bitte beachten Sie hierzu die Angaben in den Datenblättern der jeweiligen
Hersteller.

Hinweis Wichtiger Hinweis!


Die genutzte SD-Karte muss mindestens von der Geschwindigkeitsklasse
10 oder besser sein. Andernfalls kann das Starten des PFC’s mit zwischen-
gespeicherten Daten lange Zeit in Anspruch nehmen.

Hinweis Wichtiger Hinweis!


Da die Lese- und Schreiboperationen bei der SD-Karte im Vergleich zum
RAM langsamer sind, muss das Abtastintervall mindestens 1s betragen.
Ansonsten gehen einige Daten verloren.

Hinweis Wichtiger Hinweis!


Der Speichermodus SD-Karte sollte nicht während der Entwicklung der
SPS-Applikation verwendet werden. Wenn sich das SPS-Programm ändert
(Beschreibung der Variablenlisten) kann dies zu Datenverlusten oder zur
Überschreitung der konfigurierten Grenzen des Speicherplatzes führen.

Information Weitere Information


Bei Nutzung des Modus SD-Karte startet die SPS-Runtime nach einem
Neustart verzögert (bis zu 140 Sekunden), weil die permanenten Daten
zuerst analysiert werden müssen.

Public
e!COCKPIT Anwendungshinweis – WagoAppCloud 55
WAGO-I/O-SYSTEM 750 Anhang

5 Anhang
5.1 Aktualisierung der Cloud Connectivity
5.1.1 Installieren der Linux Applikation
In diesem Abschnitt wird die Installation der Linux Applikation beschrieben.
1. Aufrufen des WBMs in einem Webbrowser.
2. Den Registerreiter Configuration auswählen.
3. Links im Menü auf Software-Uploads klicken.
4. Durch Klicken auf [Choose ipk file…] öffnet sich ein File-Upload-Fenster, wo man dann zur
Datei Cloud-Connectivity_xxx.ipk navigiert. Dann selektiert man die Datei durch Anklicken und
klickt dann auf [Öffnen].
5. Nun auf [Install] klicken. Die Datei wird auf dem PFC hochgeladen.
6. Wenn die Installation beendet wurde: Das Fenster im Webbrowser neu laden.

Public
56 e!COCKPIT Anwendungshinweis – WagoAppCloud
Anhang WAGO-I/O-SYSTEM 750

5.1.2 IEC-Bibliothek
5.1.2.1 e!Cockpit
Für e!Cockpit muss die Bibliothek WagoAppCloud_x.x.x.x.compiled-library installiert und referenziert
werden.
Um die Bibliothek in der Applikation zu installieren, ist es notwendig den Bibliotheksverwalter [Library
Manager] zu öffnen. Nach dem Auswählen des Menüpunkts [Add Library] wird die erweiterte
Bibliotheksverwaltung mit [Advanced…] geöffnet. In dem neuen Fenster Library Repository kann nun
durch Klicken auf den Button [Install…] die Bibliothek installiert werden.

Abbildung 5-1: Bibliothek in e!Cockpit installieren

Hinweis Wichtiger Hinweis!


Beachten Sie wenn ein Online Change ausgeführt wird: Zeigervariablen
behalten ihren Wert aus dem letzten Zyklus. Wenn ein Pointer auf eine
Variable zeigt, die durch den Online-Change ihre Größe verändert hat, wird
der Wert nicht mehr korrekt geliefert. Stellen Sie sicher, dass Zeiger-
variablen in jedem Zyklus erneut zugewiesen werden.

Public
e!COCKPIT Anwendungshinweis – WagoAppCloud 57
WAGO-I/O-SYSTEM 750 Anhang

5.2 SCADA System Ignition (Sparkplug)


5.2.1 Übersicht der Architektur
Zur Kommunikation mit dem SCADA System Ignition wird die Sparkplug Spezifikation verwendet. Die
Sparkplug Spezifikation ist eine detaillierte Festlegung basierend auf das MQTT Protokoll.
In der Sparkplug Spezifikation ist das folgende Architekturbild dargestellt.

WAGO PFC als


Edge Node

Abbildung 5-2: Architektur in der Sparkplug Spezifikation

Der PFC ist in der Architektur der Sparkplug Spezifikation ein MQTT Edge of Network Node
(MQTT Edge Node). Der PFC nimmt die Messwerte aus dem Feld auf und nach konfigurieren der
Datenpunkte in der SPS-Applikation werden die Messwerte in dem von Sparkplug geforderten Format
weitergeleitet.
Die Anforderung von Sparkplug an den MQTT Broker (in Architekturbild von Sparkplug als
MQTT Server bezeichnet) ist, dass dieser kompatibel mit der MQTT Spezifikation Version 3.1.1 ist.
Möglich ist bei Ignition die Nutzung des in Ignition integrierten Brokers MQTT Distributor. Der Broker
MQTT Distributor ist ein Zusatzmodul in Ignition welches nachinstalliert werden kann. Weiterhin
können aber auch Broker genutzt werden die unabhängig von Ignition sind. (siehe nächste Abbildung)
SCADA/IIoT Host ist die SCADA Applikation. Die SCADA Applikation kommuniziert auch über das
Sparkplug Protokoll. Bei Ignition muss dazu das Zusatzmodul MQTT Engine nachinstalliert und die
passende Konfiguration vom MQTT Broker eingegeben werden.

Public
58 e!COCKPIT Anwendungshinweis – WagoAppCloud
Anhang WAGO-I/O-SYSTEM 750

Abbildung 5-3: MQTT Broker mit Ignition

Public
e!COCKPIT Anwendungshinweis – WagoAppCloud 59
WAGO-I/O-SYSTEM 750 Anhang

5.2.2 Konfiguration der Cloud Connectivity für Ignition


1. Innerhalb eines Webbrowsers das WBM des PFC aufrufen.
2. Den Menüpunkt Cloud Connectivity anklicken.
3. Bei Service enabled Cloud Connectivity aktivieren.
4. Im Abschnitt „Settings“ aus der Kombo-Box Cloud Platform den Eintrag „MQTT AnyCloud“
auswählen.
5. In der Kombo-Box Data Protocol den Eintrag „Sparkplug payload B“ auswählen.
6. Es erscheint ein Pop-Up Fenster welches auf folgende Punkte hinweist
• Zur Nutzung des Datenprotokolls Sparkplug ist eine Sparkplug Lizenz auf dem PFC
notwendig. Einmalig ist eine Testlizenz von 30 Tagen auf dem PFC vorhanden.
• Das Datenprotokoll Sparkplug ist auf PFC‘s der zweiten Generation möglich
(0750-821x)
Die Beachtung dieser Hinweise ist für das Datenprotokoll Sparkplug notwendig.
7. Über das Feld Group ID können einzelne MQTT Edge node’s (PFC) miteinander gruppiert
werden. Eine Group ID muss eingegeben werden.
8. Im Feld Edge node ID ist eine Bezeichnung für den PFC einzugeben. Die Bezeichnung der
Edge node ID ist frei wählbar, sollte aber keine Sonderzeichen enthalten und beim MQTT
Broker einmalig sein.
9. Die weitere Konfiguration ist abhängig von dem verwendeten MQTT Broker und dessen
Konfiguration.
10. Durch einen Klick auf den Button [Submit] wird die Konfiguration gespeichert.
11. Der PFC muss nun neu gestartet werden, damit die Einstellungen übernommen werden.

5.2.3 Konfiguration in Ignition


In dieser Dokumentation wird davon ausgegangen, dass eine Installation von Ignition bereits vorliegt.
Nach erfolgreicher Installation sind die folgenden Schritte auszuführen:
• Zusatzmodule in Ignition nachinstallieren
o MQTT Engine
o MQTT Distributor (optional: Installation nur notwendig wenn der interne MQTT Broker
von Ignition, der MQTT Distributor, genutzt werden soll.)
• Konfiguration des Moduls MQTT Engine passend zur Einstellung des verwendeten MQTT
Brokers durchführen.
• In dem Modul MQTT Engine das Schreiben von der SCADA Applikation zum PFC aus
aktivieren.

5.2.4 Inbetriebnahme der SPS-Applikation mit Ignition


Zur Erstellung der SPS-Applikation ist es hilfreich sich an dem folgenden Beispielprojekt zu
orientieren:
• WagoAppCloud_FbCommandListener_Sparkplug.ecp

Der Aufbau der Konfiguration im SPS-Programm beim Datenprotokoll Sparkplug ist sehr ähnlich wie
beim WAGO Protocol. (siehe Kapitel 0)
Die Konfiguration der Struktur und der Parameter im SPS-Programm wird in die Struktur von Ignition
gemappt.

Public
60 e!COCKPIT Anwendungshinweis – WagoAppCloud
Anhang WAGO-I/O-SYSTEM 750
Senden von Daten zu Ignition
Im Verzeichnis MyGroupID/MyEdgeNodeID/input sind alle konfigurierten Collections mit den
dazugehörigen Variablen aus der SPS-Applikation enthalten.
Die Bezeichnung der Collection in Ignition setzt sich aus den Parametern typCollection.sName und
typCollection.dwCollectionId aus der SPS-Applikation zusammen.
Beispiel:
• In SPS-Applikation:
o typCollection.sName = ‘MyFirstCollection‘
o typCollection.dwCollectionId = 1
• In Ignition: MyGroupID/MyEdgeNodeID/input/MyFirstCollection_1

Abbildung 5-4: Collection in Ignition Designer

Die folgende Tabelle zeigt das Mapping der Parameter von typVariableDescription in der
SPS-Applikation zu den Properties in Ignition.
Konfiguration im SPS Programm Property in Ignition Beschreibung
typVariableDescription.sTag Name Bezeichnung der Variable
typVariableDescription.sUnit EngUnit Einheit der Variable
typVariableDescription.eValueType Datatype Datentyp der Variable
‘Access Rights‘ = Read Leserechte in Ignition
Only
Die gesendeten Daten werden nur mit Leserechten gesendet.

Public
e!COCKPIT Anwendungshinweis – WagoAppCloud 61
WAGO-I/O-SYSTEM 750 Anhang

Empfangen von Kommandos von Ignition


Im Verzeichnis MyGroupID/MyEdgeNodeID/output sind alle Kommandos aus der SPS-Applikation
enthalten.
Die Bezeichnung der Kommandos in Ignition setzt sich aus den Parametern
typCommandDescription.sName und typCommandDescription.bCommandId aus der SPS-Applikation
zusammen.
Beispiel:
• In SPS-Applikation:
o typCommandDescription.sName = ‘MyFirstCommand‘
o typCommandDescription.bCommandId = 1
• In Ignition: MyGroupID/MyEdgeNodeID/output/MyFirstCommand_1

Abbildung 5-5: Commands in Ignition Designer

Die folgende Tabelle zeigt das Mapping der Parameter von typCommandParameterDescription in der
SPS-Applikation zu den Properties in Ignition.
Konfiguration im SPS-Programm Property in Ignition Beschreibung
typCommandParameterDescription. Name Bezeichnung der Variable
sParameterName
typCommandParameterDescription. Datatype Datentyp der Variable
eParamterType
‘Access Rights‘ = Read/Write Schreibrechte in Ignition
Die Kommandos werden im SPS-Programm in dem Funktionsblock FbCommandListener empfangen
und können da weiter ausgewertet werden.
Beachten Sie, dass bei der Sparkplug Spezifikation kein CommandResponse unterstützt wird.
Dadurch muss in der SPS-Applikation auf die folgenden Punkte geachtet werden:
• Keine Verwendung von FbCommandResponder
• typCommandDescription.bNumberOfResponseParameters = 0

Public
62 e!COCKPIT Anwendungshinweis – WagoAppCloud
Anhang WAGO-I/O-SYSTEM 750

5.3 Beispiele der Richtlinien (Policy) für AWS


5.3.1 Richtlinie ohne Einschränkung
{
"Version": "2019-02-25",
"Statement": [
{
"Action": [
"iot:Publish",
"iot:Subscribe",
"iot:Connect",
"iot:Receive"
],
"Effect": "Allow",
"Resource": [
"*"
]
}
]
}

Public
e!COCKPIT Anwendungshinweis – WagoAppCloud 63
WAGO-I/O-SYSTEM 750 Anhang

5.3.2 Mögliche Richtlinie für das WAGO Protocol v1.0


Das Beispiel wurde mit den folgenden Einstellungen durchgeführt:
• Account (Konto) 1234-5678-9123 in New Virginia (us-east-1)
• WAGO Protocol Version 1.0
• Client ID im WBM: ‘PFC200’

{
"Version": "2019-02-26",
"Statement": [
{
"Effect": "Allow",
"Action": [
"iot:Publish",
"iot:Receive"
],
"Resource": [
"arn:aws:iot:us-east-1:123456789123:topic/PFC200/CloudHello",
"arn:aws:iot:us-east-1:123456789123:topic/PFC200/Commands",
"arn:aws:iot:us-east-1:123456789123:topic/PFC200/DeviceHello",
"arn:aws:iot:us-east-1:123456789123:topic/PFC200/DeviceInfo",
"arn:aws:iot:us-east-1:123456789123:topic/PFC200/DeviceState",
"arn:aws:iot:us-east-1:123456789123:topic/PFC200/TagConfiguration",
"arn:aws:iot:us-east-1:123456789123:topic/PFC200/TagValues",
"arn:aws:iot:us-east-1:123456789123:topic/PFC200/EventTagValues",
"arn:aws:iot:us-east-1:123456789123:topic/PFC200/CommandRegistration",
"arn:aws:iot:us-east-1:123456789123:topic/PFC200/CommandResponse"
]
},
{
"Effect": "Allow",
"Action": [
"iot:Subscribe"
],
"Resource": [
"arn:aws:iot:us-east-1:123456789123:topicfilter/PFC200/CloudHello",
"arn:aws:iot:us-east-1:123456789123:topicfilter/PFC200/Commands"
]
},
{
"Effect": "Allow",
"Action": [
"iot:Connect"
],
"Resource": [
"arn:aws:iot:us-east-1:123456789123:client/PFC200"
]
}
]
}

Public
64 e!COCKPIT Anwendungshinweis – WagoAppCloud
Anhang WAGO-I/O-SYSTEM 750

5.3.3 Mögliche Richtlinie für das WAGO Protocol v1.2


Das Beispiel wurde mit den folgenden Einstellungen durchgeführt:
• Account (Konto) 1234-5678-9123 in New Virginia (us-east-1)
• WAGO Protocol Version 1.2
• Client ID im WBM: ‘PFC200’

{
"Version": "2019-02-26",
"Statement": [
{
"Effect": "Allow",
"Action": [
"iot:Publish",
"iot:Receive"
],
"Resource": [
"arn:aws:iot:us-east-1:123456789123:topic/PFC200/CloudHello",
"arn:aws:iot:us-east-1:123456789123:topic/PFC200/DeviceHello",
"arn:aws:iot:us-east-1:123456789123:topic/1.2/PFC200/Commands",
"arn:aws:iot:us-east-1:123456789123:topic/1.2/PFC200/DeviceInfo",
"arn:aws:iot:us-east-1:123456789123:topic/1.2/PFC200/DeviceState",
"arn:aws:iot:us-east-1:123456789123:topic/1.2/PFC200/TagConfiguration",
"arn:aws:iot:us-east-1:123456789123:topic/1.2/PFC200/TagValues",
"arn:aws:iot:us-east-1:123456789123:topic/1.2/PFC200/CommandRegistration",
"arn:aws:iot:us-east-1:123456789123:topic/1.2/PFC200/CommandResponse"
]
},
{
"Effect": "Allow",
"Action": [
"iot:Subscribe"
],
"Resource": [
"arn:aws:iot:us-east-1:123456789123:topicfilter/PFC200/CloudHello",
"arn:aws:iot:us-east-1:123456789123:topicfilter/1.2/PFC200/Commands"
]
},
{
"Effect": "Allow",
"Action": [
"iot:Connect"
],
"Resource": [
"arn:aws:iot:us-east-1:123456789123:client/PFC200"
]
}
]
}

Public
WAGO GmbH & Co. KG
Postfach 2880 • D-32385 Minden
Hansastraße 27 • D-32423 Minden
Telefon: +49 (0) 571/8 87 – 0
Telefax: +49 (0) 571/8 87 – 1 69
E-Mail: info@wago.com
Internet: http://www.wago.com

Public

Das könnte Ihnen auch gefallen