PACcubes und IBM Watson IoT Platform

1 Die Aufgabenstellung

Der Controller PACcubes PCA-STA31-HN1 ist am digitalen Eingang 1 mit einem Schließer verbunden. Dieser Schließer soll als Alarm-Kontakt betrachtet werden. Sobald der Kontakt geschlossen wird, soll an die IBM Watson IoT-Platform ein Alarm-Event gesendet werden. Dieses Event soll im IBM Watson IoT-Dashboard über eine einfache digitale Anzeige (TRUE/FALSE) visualisiert werden.

Die Kommunikation zum Internet erfolgt über ein integriertes UMTS Funkmodul.

Der aktuelle Verbindungstatus zur IBM Watson IoT Platform wird über eine „LED“ im Display auf einem angeschlossenen Monitor angezeigt.

Grün =  OK, Gelb = Verbindung unterbrochen.

Der Alarmstatus soll im Display ebenfalls angezeigt werden. Die Display-Anzeige ist zudem über VNC erreichbar.

Hinweis: Sie benötigen hierfür eine gültige SIM-Karte eines Mobilfunkanbieters. Wenn Sie keine SIM-Karte haben, können Sie das Beispiel auch über eine normale Internetleitung ausprobieren. Der Controller verfügt über einen Standard RJ45-Anschluss.

2 Wie beginnt man?

zum Seitenanfang

1. Konfiguration der IBM Watson IoT-Platform

  • IBM Account anmelden
  • Organisation und Bereich anlegen
  • Gerätetyp anlegen
  • Gerät anlegen

2. Gerät konfigurieren und programmieren

  • Wenn eine SIM-Karte vorhanden ist, wird das UMTS-Modul konfiguriert und getestet
  • IoT-Basisdaten des Gerätes im Controller konfigurieren
  • Anwendungsprogramm erstellen

3. Dashboard in der IBM Watson IoT-Platform anlegen

  • Neues Board anlegen
  • Neue Karte anlegen

3 IBM Watson-IoT Platform

zum Seitenanfang

Wenn Sie noch keinen IBM Bluemix Account besitzen (entspricht der IBMid), müssen Sie sich einen Account einrichten. Sie können für 30 Tage einen Test-Account anlegen, ohne dass Sie Daten Ihrer Kreditkarte angeben müssen.

Für den Einstig in die IBM-Welt existieren unzählige Möglichkeiten.

Wenn Sie den folgenden Link verwenden, können Sie sich auf Basis der Dokumentation durch die notwendigen Prozeduren bewegen.

http://www.ibm.com/internet-of-things/

Nach dem Aufruf sehen Sie folgende oder eine ähnliche Bildschirmdarstellung.

Wählen Sie nun: Try IBM Watson Platform  (siehe rote Kennung)

Scrollen Sie auf der folgenden Seite bis Sie zum Bereich Try the IBM Watson IoT-Platform kommen.

3.1 IBM Bluemix Account (IBMid) anmelden

Melden Sie sich nun für einen IBM Bluemix Account (IBMid) an und wählen Sie den Button SIGN UP

Folgen Sie den Anweisungen der Registrierung 

Bestätigen Sie in der E-Mail Ihren Account.

Melden Sie sich nun bei IBM Bluemix mit Ihrer IBMid an.

3.2 Organisation und Bereich erstellen

Sie werden nun automatisch zum Erstellen einer Organisation aufgefordert. 

In einer Organisation werden Geräte zusammengefasst, die in ihrer Gesamtheit durch Applikationen angesprochen werden können.

Unter Ihrer IBMid können Sie mehrerer Organisationen anlegen.

Anschließend werden Sie automatisch zum Erstellen eines Bereiches aufgefordert. 

3.3 Bluemix DASHBORAD

Sie gelangen nun zum DASHBOARD Ihrer gerade angelegten Organisation. Da Sie noch keine Services oder Plattformen in dem gerade angelegten Bereich erstellt haben, ist das Dashboard leer.

Wechseln Sie über das Menü zum Katalog.

Im Katalog finden Sie eine Auswahl an Services und Plattformen.

Scrollen Sie bis zum Bereich Internet of Things

3.4 IoT Plattform erstellen

Erstellen Sie nun eine IoT Plattform.

Sie brauchen keine weiteren Eintragungen vornehmen. Betätigen Sie einfach den Button ERSTELLEN.

Starten Sie nun das Dashboard für die Plattform. 

Im Dashboard–Startfenster wechseln Sie in den Gerätebereich. 

3.5 Gerät in die Watson IoT Platform hinzufügen

Fügen Sie ein neues Gerät hinzu. 

Als erstes müssen Sie einen neuen Gerätetyp erstellen.

Folgen Sie den Anweisungen. Sie können die meisten Felder leer lassen.

Nachdem ein Gerätetyp erstellt wurde, müssen Sie noch ein neues Gerät hinzufügen.

Folgen Sie den Anweisungen des Dashboards.

3.6 Zugangsdaten des Gerätes sichern

WICHTIG: In diesem Fenster werden die Zugangsdaten des Gerätes angezeigt. Notieren Sie diese Informationen unbedingt, da diese später nicht mehr angezeigt werden. Wichtig ist hier der Authentifizierungstoken. Diesen Token können Sie wie das Passwort des Gerätes für den Zugang in die Watson IoT Plattform verstehen.

Nun ist in der IBM Watson IoT Platform ein Gerät angelegt. Ein reales Gerät, welches Daten in die Plattform sendet existiert aber noch nicht. In den nächsten Schritten werden wir nun das Gerät vorbereiten und eine Applikation für das Gerät programmieren.

4 PACcubes konfigurieren

zum Seitenanfang

Nachdem Sie einen IBM Blumix Account (IBMid), eine Organisation und eine neues Gerät in der IBM Watson IoT Plattform angelegt haben, können wir nun das Gerät so konfigurieren und programmieren, dass der Controller Daten in die IoT Plattform sendet oder Befehle und Parameter vom IoT empfangen kann.

Der Auslieferungszustand der PACcubes ist so ausgelegt, dass keine IoT–Dienste verfügbar sind. Um diese zu ermöglichen müssen einige Gerätekonfigurationen vorgenommen werden.

Ein Hinweis für Anwender, die nur selten in einer Linux-Umgebung arbeiten!
Das Gerät wird mit einigen hilfreichen Tools ausgeliefert. Dazu gehört der „Midnight Commander“. Dieses Tool erleichtert die Navigation in der Linux-Umgebung, insbesondere das Editieren und Kopieren von Dateien. Der Aufruf erfolgt durch Eingabe von „mc“ in der Konsole. Die nachfolgende Anleitung nutzt dieses Tool teilweise zur Veranschaulichung.

Aktuell können Gerätekonfigurationen nur unmittelbar auf dem Gerät vorgenommen werden. Folgende Schritte sind notwendig:

  1. Verbindung zum Controller (z.B. mit „Putty“) herstellen
    Siehe hierzu: Wie ändere ich den Namen eines Controllers mit "Putty"?
    Wenn der Controller im Office-Netz eingebunden ist und der Controller Zugang zu einem DHCP-Server hat, wird dem Controller eine IP-Adresse durch den DHCP-Server zugewiesen. Verwenden Sie den Scan-Mechanismus von PACstudio (Gerät anmelden) um die IP-Adresse zu ermitteln.
  2. Mit Benutzername und Passwort einloggen. (Das Demosystem wird mit dem Benutzernamen „Root“ und dem Passwort „Root“ ausgeliefert.)
    Ändern Sie aus Sicherheitsgründen bitte das Root-Passwort.
  3. Stoppen des laufenden Systems
    Das Gerät startet beim Einschalten alle notwendigen Prozesse. Um Änderungen an prozessrelevanten Einstellungen vornehmen zu können, müssen diese Prozesse gestoppt werden.

Hinweis: Der Name des PAC-Laufzeitkerns auf dem Controller ist VICK (Virtual iCon-L Controller Kernel). Der Prozess heißt aus diesem Grund „vicksys“.

  • Konsolenkommando: "systemctl stop vicksys"

4.1 UMTS Modul konfigurieren

Wenn das „PACcubes-Station“ Gerät mit einem UMTS-Modul ausgerüstet ist, müssen zur Nutzung dieser Mobilfunkstrecke die folgenden Dienste konfiguriert werden (bei einer permanenten LAN-Verbindung (kein Mobilfunk) kann der AbsatzKonfiguration der Mobilfunkverbindungübersprungen werden).

4.2 Konfigurieren der Mobilfunkverbindung

Woher bekomme ich die notwendigen Informationen für meinen Mobilfunkanbieter?

Bestimmen Sie zunächst die providerabhängigen Parameter zur Einwahl in das Mobilfunknetz. Eine hilfreiche Tabelle ist hier verfügbar: https://wiki.ubuntuusers.de/Mobiler_Datentransfer/

Mit dem Gerät PCA-STA31-HN1 können nur Mobilfunkanbieter verwendet werden, die den Service UMTS anbieten.

Folgende Informationen werden für die Konfiguration benötigt:

  • Benutzername
  • Passwort
  • der markierte Bereich des Initialisierungsstrings
  • Einwahlnummer

Eintragen der providerabhängigen Parameter zur Einwahl in das Mobilfunknetz

1. In der Linux-Konsole den folgenden Befehl  „cd/home/user1/MobileCfg/“ eingeben und Enter drücken.  Mit diesem Befehl wechseln Sie auf dem Controller in das Unterverzeichnis MobileCfg.

2. „mc“ in der Linux-Konsole eingeben. Mit diesem Befehl starten Sie den Midnight Commander

3. Mit den Pfeiltasten die Datei „wvdial.conf“ wählen.

4. Taste „F4“ drücken (damit wird ein Editor für die Datei aufgerufen)

5. Wenn die SIM-Karte durch einen PIN geschützt wird, geben Sie in der markierten Zeile zwischen die Hochkommas an Stelle von „9999“ den gültigen PIN ein (der Schritt kann übersprungen werden, wenn kein PIN benötigt wird)

6. In der Sektion [Dialer custom] folgende Zeilen ändern (die zuvor bestimmten Einwahlparameter des Providers):

7. Nach den Änderungen die Taste „F2“ drücken und „Speichern“ wählen

8. Mit der Taste „F10“ das Editieren verlassen

9. Kopieren der Konfigurationsdatei mit folgendem Befehl:
„cp wvdial.conf /etc/“

4.3 UMTS-Dienst testen

PIN-Konfiguration testen

Dieser Schritt ist nur notwendig, wenn eine PIN konfiguriert wurde.

1. Befehlseingabe in der Konsole: „systemctl start modem-pin“

Eventuell erhalten Sie die Mitteilung, dass der Aufruf des Services fehlgeschlagen ist. Diese Meldung können Sie zunächst ignorieren. Fragen Sie erst das Ergebnis ab (b), um genauere Informationen zu erhalten.

2. Ergebnis abfragen (Befehlseingabe in der Konsole) „journalctl -xn“

Wenn in der Ausgabe das „OK“ zu sehen ist, ist die PIN-Eingabe erfolgreich gewesen (die ausgewiesenen anderen Fehler können an dieser Stelle ignoriert werden).

Wenn der Befehl „journalctl –xn“ nicht in die Konsole zurückkehrt, kann dieser durch „STRG-C“ beendet werden.
Sind im journal mehr Zeilen verfügbar als angezeigt werden, können diese durch die „Bild-runter“ Taste angezeigt werden.

Aufbau der Verbindung

1. Befehlseingabe in der Konsole „systemctl start modem-connect“

2. Ergebnis abfragen (Befehlseingabe in der Konsole) „journalctl -xn“

Damit ist die Verbindung hergestellt. Die Verbindung wird durch den „wvdial daemon“ gehalten und verwaltet. Bei Unterbrechungen versucht dieser, die Verbindung wieder aufzubauen.

Abbau der Verbindung

1. Befehlseingabe in der Konsole „systemctl stop modem-connect“

2. Ergebnis abfragen (Befehlseingabe in der Konsole) „journalctl -xn“

4.4 Konfiguration zum Starten der notwendigen Dienste beim Systemstart

1. Stellen Sie sicher, dass Sie sich noch immer im Konfigurationsverzeichnis befinden.

Eingabe des Befehls in der Konsole: „pwd“

2. Wenn Sie sich nicht im Verzeichnis „/home/user1/MobileCfg“ befinden, wechseln Sie mit folgendem Konsolenbefehl dahin:  „cd /home/user1/MobileCfg/“

3. Wenn eine PIN-Konfiguration konfiguriert wurde, muss der folgende Befehl ausgeführt werden:
„ln -s /etc/systemd/system/modem-pin.service /etc/systemd/system/multi-user.target.wants/modem-pin.service“

Mit dem Befehl ln wird eine Verknüpfung hergestellt

4. Danach mit dem folgenden Befehl den Dienst für die Modem-Initialisierung registrieren:
„ln -s /etc/systemd/system/modem-connect.service /etc/systemd/system/multi-user.target.wants/modem-connect.service“

5. Kontrolle, ob die beiden symbolischen Links korrekt erzeugt wurden, Befehl:

„cd /etc/systemd/system/multi-user.target.wants”

eingeben und Enter drücken und danach

„mc”

eingeben und Enter drücken.

Hier sollten Sie entweder einen oder beide (in Abhängigkeit der PIN-Abfrage) symbolische/n Link/s sehen (symbolische Links sind durch ein „@“ gekennzeichnet)

4.5 Weitere Informationen zur „wvdial“ und „systemd“

Weiterführende Hinweise zu den hier genannten Mechanismen bzw. Tools („wvdial“ und „systemd“) finden Sie im Internet. 
http://wiki.siduction.de/index.php?title=UMTS/GPRS_Internet_Zugang_erstellen_mit_Hilfe_von_wvdial 
https://de.wikipedia.org/wiki/Systemd

IBM Watson IoT Platform Basisdaten konfigurieren

Organisation, Geräte-ID und Authentifizierungstoken sind Basisdaten, die nicht über Funktionsbausteine konfiguriert werden. Derzeit müssen Sie hierfür noch spezielle Konfigurationsdateien im Linux-Datei-Verzeichnis ändern.

Hinweis: Dies wird sich in zukünftigen Versionen sehr wahrscheinlich ändern. Dann wird diese Konfiguration über das Programmiersystem vorgenommen.

1. Wechseln Sie zur Konfigurationsdatei (Eingabe des Befehls in der Konsole): "cd /home/user1/vicksystem“

2. Midnight Commander aufrufen -> „mc“ in der Linux-Konsole eingeben

3. Mit den Pfeiltasten die Datei „xpac6-arm-usd40.cfg“ wählen

4. Mit der Taste „F4“ die Datei zum Editieren öffnen

5. Ändern Sie in der Sektion „[IoT]“ folgende Einträge:

  • Connect2Cloud=1
  • OrgID=????? (diese haben Sie beim Anlegen der Organisation vergeben)
  • TypeID=????? (diese haben Sie beim Anlegen des Gerätetyps vergeben)
  • DeviceID=????? (diese haben Sie beim Anlegen des Gerätes vergeben)
  • AuthToken=????? (das Authentifizierungstoken haben Sie beim Anlegen des Gerätes erhalten)

6. Mit „F2“ speichern

7. Mit „F10“ Editor verlassen

Die Konfiguration Ihrer PACcubes-Station ist nun abgeschlossen. Wir können nun mit dem Programmieren beginnen.

Starten Sie den Controller neu

5 Eine Applikation programmieren

zum Seitenanfang

5.1 Projekt anlegen

1. Nach dem Starten des Programmiersystems PACstudio rufen Sie im Menü Project den Befehl New auf

2. Wählen Sie die Vorlage PCA-STA31-HN1.

Nachdem Sie das Projekt angelegt haben, sehen Sie die oberste Projektebene, die sogenannte Konfiguration.

Auf dieser Ebene werden die Programmbausteine eingefügt. In unserer Vorlage ist bereits ein Programmbaustein eingefügt. Für die meisten Anwendungen reicht ein Programmbaustein. Je mehr Programmbausteine Sie verwenden, desto schwerer wird es, die parallel laufenden Prozesse zu beherrschen.

Die Vorlage ist zudem so gestaltet, dass Sie auf der Konfigurationsebene als Einstiegshilfe auch den Schaltplan und den Klemmenplan des Controllers sehen können.

Hinweis: Der Schaltplan hat lediglich dokumentarischen Charakter und ist nicht Bestandteil des Programms, welches in den Controller geladen wird. Der Schaltplan ist als Hintergrundbild (EMF-Vektorgrafik) für den Programmbaustein konfiguriert. (siehe auch:  Hintergrundbild Strukturbausteine)

5.2 Programmbaustein PB1-CFC

Navigieren Sie nun zum Arbeitsblatt des Programmbausteins PB1-CFC.

Hinweis: PB1-CFC steht für Program Block 1 – Coninuous Function Chart 

1. Sie gelangen zum Arbeitsblatt des Programmbausteins über einen Doppelklick im Projektbaum

2. oder über das Kontextmenü des Bausteins im Edit-Bereich des Programmiersystems

In der gewählten Quickstart-Vorlage sind im Programmbaustein bereits vorprogrammierte Makrobausteine enthalten. Die Makrobausteine ermöglichen Ihnen den einfachen Zugriff auf Ein- und Ausgänge des Controllers. Über die individuellen Symbole der Makrobausteine wird Ihnen zudem eine Anwendungshilfe bereitgestellt.

5.3 Neues Makro erstellen

Zunächst wird ein neues Makro mit den Namen M1_MQTT erstellt. Für die bessere Übersicht wird das Makro im bereits vorbereiteten Ordner Own macros angelegt.

Nachdem Sie das Makro erzeugt haben, öffnet sich nun im Arbeitsbereich ein leeres Arbeitsblatt für das Zeichnen der Makrofunktion. Sie können nun die Funktionsbausteine einfügen.

Korrekte Verbindung zur IBM Watson IoT Platform prüfen

Als erstes fügen wir einen Diagnosebaustein ein, der die korrekte Verbindung zur IBM Watson IoT Platform signalisiert. Um diese Bausteine besser zu finden, wechseln Sie die Bausteinpalette von Libraries auf Favorites und suchen hier die Bibliothek 22.Internet of Things. Nun wählen Sie weiter Watson IoT/MQTT und hier den Baustein Status IoT Client. Ziehen Sie den Baustein per Drag&Drop auf das Arbeitsblatt. Anschließend fügen Sie den Baustein LED aus der Bibliotheksbereich 30.Online debugging,… ein.

Nun verbinden Sie den Ausgang client connected  mit dem Eingang des LED-Bausteins

Wechseln Sie wieder auf das Arbeitsblatt für den Programmbaustein PB1-CFC und fügen Sie auf diesem Arbeitsblatt den neuen Makrobaustein ein.

5.4 Testprogramm in den Controller laden

Wählen Sie nun den Button Download aus der Toolleiste

Das Programmiersystem wechselt nun automatisch in den sogenannten Inbetriebnahme-Modus und ruft einen Dialog zum Anmelden des Controllers auf.

Hinweis: Dieser Dialog wird nur aufgerufen wenn noch kein Controller angemeldet ist, was in unserem Fall so sein wird.

Wählen Sie hier bitte die Kommunikation-Server-Vorlage PCA-STA31 over TCP aus. Klicken Sie auf Settings und anschließend auf Seach target.

Wichtiger Hinweis: Der Controller ist auf DHCP eingestellt und sucht zunächst einen DHCP-Server im Netz. Wenn der Controller einen DHCP-Server gefunden hat, wird die Steuerung die zugewiesene Adresse verwenden. Wenn die Steuerung keinen DHCP-Server findet, wird automatisch die statische Adresse 192.168.200.11 verwendet.

Befindet sich Ihr Computer im gleichen IP-Adressbereich, wird der Suchdialog Ihre Steuerung anzeigen. Wählen Sie die Steuerung aus und klicken Sie dann auf OK.

Wenn Ihre Steuerung nicht sofort angezeigt wird oder eine Steuerung mit der Adresse 127.0.0.1 angezeigt wird, betätigen Sie nochmals den Seach-Button. 

Die Kommunikation-Server-Vorlage PCA-STA31 over TCP wird nun korrekt konfiguriert (IP-Adresse und Port) Mit einem Doppelklick auf der Server wird die Anmeldekommunikation zur Steuerung gestartet. Das Programmiersystem liest nun eine Gerätebeschreibungsdatei aus der Steuerung aus und zeigt einige ausgewählte Informationen im Dialog an.

Das Programmiersystem wird anschließend den Download-Prozess starten und bei erfolgreichem Download in den Online-Modus wechseln.

Ist die LED grün, wurde die Verbindung zur IBM Watson IoT Platform erfolgreich aufgebaut. 

5.5 Alarmsignal an die IBM Watson IoT Platform senden

Erweitern Sie das Makro um einem digitalen Eingang und fügen Sie einen Baustein NOT sowie einen Baustein Publish event hinzu.

Der NOT-Baustein ist notwendig, da die digitalen Eingänge der Steuerung bei einem offenen Kontakt HIGH ausgeben und erst durch das Schließen des Kontaktes auf LOW gezogen werden. Die Logik muss für unsere Aufgabe negiert werden.

Den Baustein zum Publish event sollten Sie wie im Bild dargestellt konfigurieren.

  • Event type = Alarm
  • Event Element 1 = Atam 1 mit dem Datentyp BIT

Nun muss das Programm noch derart erweitert werden, dass der Baustein Publish event ein Signal bekommt, wann gesendet werden soll. In unserem Fall soll immer dann gesendet werden, wenn sich der Wert am Alarmeingang ändert. Dies realisieren wir durch zwei Bausteine zur Flankenerkennung, die sowohl eine fallende als auch eine steigende Flanke erkennen sollen. Diese Signale werden dann über ein ODER-Baustein verknüpft.

Nun passen wir noch das Design des Makrobausteins an und verbinden den Makro-Eingang mit dem DI1 der Steuerung.

Über den Button in der Toolleiste klappen Sie die Bezeichnung der Eingänge nach innen und positionieren Sie den Eingang auf einen Position, bei der man die Bezeichnung lesen kann.

Laden Sie nun das Programm in die Steuerung (Download).

6 Dashboard in der IBM Watson IoT Platform konfigurieren

zum Seitenanfang

Zunächst sollten Sie prüfen, ob die Steuerung Online ist.

Mit einem Doppelklick auf die Zeile mit der Steuerung können Sie Detail-Informationen zur Steuerung abrufen.

Nun können Sie prüfen ob die Ereignisse empfangen werden.

Ändern Sie einfach den Status am DI1. Das Ereignis sollte unmittelbar angezeigt werden. (<0.5 s).

Wechseln Sie nun in den Board-Bereich.

Folgen Sie den Anweisungen des Assistenten zur Konfiguration der Karte.

Wenn Sie auf den leeren Bereich Ereignis klicken, wird Ihnen eine Auswahl der verfügbaren Ereignisse in einer Liste angezeigt. Wählen Sie das Ereignis aus. In unserem Fall wird nur das Ereignis Alarm erscheinen.

Über Eigenschaft können Sie den konkreten Wert auswählen. In unserem Fall können Sie zwischen dem Wert Alarm 1 und dem Zeitstempel des Ereignisses wählen. Wählen Sie nun den Wert Alarm 1 aus.

7 Display programmieren

zum Seitenanfang

Für die Inbetriebnahme kann es hilfreich sein, den aktuellen Status auf einem Display anzuzeigen.

Die Ausgabe der PCA-STA31-HN1 ist auf 1024*768 Pixel ausgelegt.

Beim Einfügen der HMI-Bausteine wird automatisch der HMI-Designer aufgerufen.

Wenn Sie keinen Monitor an der Steuerung angeschlossen haben, können Sie über VNC auf den Bildschirminhalt zugreifen. Den VNC-Client können Sie kostenlos im Internet herunterladen.

8 VNC

zum Seitenanfang

Rufen Sie Ihren VNC-Client auf.

In unserem Beispiel wird der Viewer von RealVNC verwendet.

Das Default-Passwort ist „master“.