Samstag, 4. Februar 2017

Multikommunikation mit der IOT2020

☺☺☺☺Bei der Erstellung des Buches musste ich feststellen, dass meine Arduino-Kenntnisse nicht ausreichend waren um mit der IOT2020 eine etwas größere Aufgabenstellung zu lösen. Dazu musste ich die C++-Sourcen des EthernetClient der Intel-Version studieren. So manche Dinge sind doch nicht so blauäugig anzugehen, wie ich dachte 😭.

Kann man mit der IOT2000 nicht auf die SD-Karte schreiben?

Das hat mich sehr gewundert, dass ich mittels der Arduino-Welt nicht auf die SD-Karte schreiben konnte und musste gezwungenermaßen in die Eclipse-Welt umsteigen. Vielleicht ist es ja nur meine Unwissenheit oder gibt es da andere Erfahrungen?

Das Thema aus Kapitel 12 zeigt die schon industriereife Aufgabenstellung, welche nun endlich gelöst wurde:

12 Multikommunikation mit der SIMATIC IOT2000

Die serielle Verbindung über die Schnittstelle zur Arduino-IDE (COM) haben wir schon in Kapitel 8.2, speziell in Kapitel 8.2.1 für den SerialEvent kennen gelernt. Ich denke, die Anwendungen über die serielle Schnittstelle sind relativ einfach zu verstehen und findet sicherlich noch in manchen Anwendungen ihre Berechtigung. Für IoT sind proprietäre Protokolle und das Pollen von Daten allerdings nicht mehr aktuell. Abgesehen davon ist die lokale Entfernung der Teilnehmer über USB sehr begrenzt und zudem alle Teilnehmer über das Internet kommunizieren möchten. Hier wird die COM-Schnittstelle nur für die Simulation der Analogeingänge mit Ardu_IOsim der IOT2000 und zu Testzwecken angewendet.

Das Ziel muss nun sein, eine Kommunikation über Ethernet mit anerkannten Protokollen zu schaffen. Nur so können gewisse IoT-Dienste erreicht werden.
Damit IoT aus Sicht eines Projektes angewendet wird, betrachten wir eine etwas gehobene  Anwendung aus folgenden Komponenten:
  • WinCC mit Rezeptur und PLC (S7-1200®) über Profinet
  • Externe SPS (S7-1500) welche nicht im Tia Portal zum WinCC-Projekt konfiguriert ist
  • IOT2020
  • Webanwendung mit einem Browser

12.1 Aufgabenstellung

In Bild  12.1 ist das Deployment zu sehen. Wir erstellen ein TIA-Projekt mit einer Visualisierung (WinCC) und Rezeptverarbeitung auf einer S7-1200®. Die Daten der Rezeptur sollen auf einem Web-Browser dargestellt werden. Im System existiert zusätzlich eine S7-1500®, deren Analogwert (Sinus) im gleichen Web-Browser dargestellt werden soll. Die IOT2000 besitzt zudem eigene Analogeingänge, welche ebenfalls auf dem Web-Browser abgebildet werden. Diese Analogdaten sollen über Ardu_IOsim simuliert werden, da kein Shield zur Verfügung steht.
Die Anpassung der IP-Adressen wird in Kapitel 12.1.1 erklärt, da Sie sicherlich nicht die gleiche Konstellation über Ihren Router haben, wie das hier bei meinem PC der Fall war. Im Detail müssen nun folgende Punkte erfüllt werden:
  •  Ardu_IOsim wird mit Netbeans gestartet und soll die 6 analogen Eingänge der IOT2000 simulieren.
  •  Mit dem TIA Portal wird eine Visualisierung auf einem Panel-PC entwickelt, welche mit einer SPS (S7-1200®) eine Rezeptur anwendet. Daraus soll ein Rezeptwert über die IOT2000 auf dem Web-Browser des PCs übertragen werden.
  •  Die IOT2000 empfängt vom Panel-PC den Analogwert und sendet diesen auf den Webbrowser. Zudem bildet die IOT2000 ihre eigenen Analogeingänge auf dem Webbrowser ab. Zu guter Letzt verbindet sich die IOT2000 mit der externen S7‑1500® um dessen Analogwert ebenfalls auf dem Webbrowser abzubilden.

Bild 12.1  Deployment zur Aufgabenstellung


WinCC und die S7‑1200® werden auf einem PC mit PLCSIM simuliert, sonst müssten Sie ja einen Panel-PC und einen PC für den Webserver zur Verfügung stellen J. Aus diesem Grunde wird das Projekt in drei Teilen vorgestellt:
  1. Teil: Für den Webserver brauchen Sie einen PC und eine IOT2000.
  2. Teil: Sie brauchen für dieses Beispiel einen PC, eine IOT2000 und eine S7‑1500®.
  3. Teil: Sie brauchen einen PC mit PLCSIM TIA Portal V13 SP1 und eine IOT2000 

    12.2 Die Programmstruktur


     Bild  12.4 Die Programmstruktur zur Aufgabenstellung
In Bild  12.4 ist die Programmstruktur (Arduino) zu sehen. Dazu eine kurze Zusammenfassung:
  •  Die S7-1500® kommuniziert über Ethernet mit der IOT2020 und besitzt einen DB1, welcher über einen FB den Wert einer Sinuskurve darstellt. Diese soll als Real-Zahl im Webserver angezeigt werden. Dazu wird der Baustein plc.GetFloatFromDB angewendet.
  •  WinCC schreibt die Rezeptdaten auf die Festplatte. Gleichzeitig kommuniziert WinCC über eine C++-Schnittstelle, damit der Rezeptwert an die IOT2000 gelangt. Dazu wird der Baustein plc.GetFloatFromWinCC verwendet.
  • Die IOT2000 holt sich den Analogwert (C++) aus der S7‑1500® und gibt diesen an den Webserver weiter. Dazu wird der Baustein plc.PutMessage2Client verwendet.
  • Die IOT2000 liest ihre eigenen 6 Analogwerte und übergibt diese dem Webserver.
  •  Die IOT2000 empfängt die Rezeptdaten von WinCC (C++-Interface) um diese an den Webserver zu senden.
  • Der Webbrowser befindet sich auf dem Test-PC, welcher auch PLCSIM startet.
Damit dieses Beispiel realisiert werden kann wurde die PLC_IOT in der IOT2000 mit den Funktionen plc.PutMessage2Client und plc.GetFloatFromDB erweitert. So ist eine einfache Anwendung durch den Programmierer gewährleistet, ohne sich in die Server-Client-Technik einzuarbeiten.




Im Test  wurden zwei Browser und die Simulation gestartet, sowie die S7-1500 mit der Sinuskurve verwendet. Die Webseite wird jede Sekunde aufgerufen und die Zykluszeit der IOT2020 beträgt für dieses Beispiel im Schnitt ca. 15 Millisekunden.