SIMATIC IOT2000 Inbetriebnahme, Konfiguration und Programmierung

Für die Erstinbetriebnahme des Industrie-Gateways SIMATIC IOT2000 (IOT2020 und IOT2040) wird das offizielle Siemens-Beispiel-Image auf eine MicroSD-Karte geflasht. Die grundlegende Systemkonfiguration erfolgt anschließend über eine SSH- oder serielle Terminalverbindung per PuTTY. Für industrielle IoT-Anwendungen dient Node-RED als zentrale Laufzeitumgebung zur Datenkopplung zwischen SPS-Steuerungen (über OPC UA oder S7-Kommunikation), SQL-Datenbanken und Cloud-Plattformen. Hardwarenahe Anwendungen lassen sich direkt über die Arduino IDE oder native C/C++-Programme in Eclipse entwickeln.

Table of Contents

Voraussetzungen

Vor Beginn der Inbetriebnahme des SIMATIC IOT2000 müssen folgende Hardware- und Softwarekomponenten sowie Netzwerkbedingungen vorliegen:

  • Hardware-Komponenten:

    • Gateway SIMATIC IOT2020 oder IOT2040.
    • MicroSD-Karte (Empfehlung: Class 10 für das Linux-Betriebssystem).
    • MicroSD-Kartenleser für den Entwicklungs-PC.
    • Standard-Ethernet-Kabel (RJ45).
    • Micro-USB-auf-USB-Kabel (erforderlich für direkte Übertragungen aus der Arduino IDE).
    • 24V-DC-Spannungsversorgung für das Gateway.
    • Optional: FTDI-Diagnosekabel (serieller Debug-Zugriff), SIMATIC IOT2000 I/O-Erweiterungsmodul oder kompatibler USB-WLAN-/3G-Stick.
    • Software-Werkzeuge:

    • Offizielles Siemens IOT2000 SD-Card Example Image (WIC-Datei).

    • Win32DiskImager (oder vergleichbares Werkzeug zum Schreiben von Datenträger-Images).
    • PuTTY (für SSH- und serielle Terminal-Verbindungen).
    • WinSCP (grafischer Datei-Transfer per SFTP).
    • FTDI-Treiber (sofern das serielle Debug-Kabel genutzt wird).
    • Netzwerkumgebung:

    • Administratorrechte auf dem lokalen Entwicklungs-PC.

    • Das Ethernet-Interface des PCs muss auf das Subnetz der IOT2000-Werkseinstellung angepasst werden.

Methode 1: Erstinbetriebnahme und Erstellen des Betriebssystem-Images

Am besten geeignet, wenn: Ein neues IOT2000-Gerät erstkonfiguriert wird oder ein beschädigtes Betriebssystem auf der MicroSD-Karte wiederhergestellt werden muss.

Diese Methode installiert das Linux-Beispiel-Image auf der MicroSD-Karte, bootet die Hardware und stellt den SSH-Terminalzugriff her.

Ablauf

  1. MicroSD-Karte flashen:

    • Stecken Sie die MicroSD-Karte über einen Adapter in den Entwicklungs-PC.
    • Entpacken Sie die heruntergeladene Image-Datei des IOT2000 (z. B. .wic-Datei).
    • Starten Sie Win32DiskImager, wählen Sie die entpackte Image-Datei aus, wählen Sie den Laufwerksbuchstaben der MicroSD-Karte und klicken Sie auf Write.
    • Entfernen Sie die Karte nach Abschluss des Schreibvorgangs sicher aus dem PC.
      2. Hardware montieren und einschalten:

    • Stecken Sie die bespielte MicroSD-Karte in den MicroSD-Kartenslot des IOT2000.

    • Verbinden Sie die Ethernet-Schnittstelle (X1P1) des IOT2000 über ein Netzwerkkabel mit dem Entwicklungs-PC.
    • Schließen Sie die 24V-DC-Spannungsversorgung an die Anschlussklemme an und schalten Sie die Stromversorgung ein. Warten Sie, bis die SD-LED aufhört zu blinken (Größenanpassung der Partition ist abgeschlossen).
      3. Terminalzugriff per SSH einrichten:

    • Stellen Sie die IP-Adresse der Netzwerkkarte Ihres Entwicklungs-PCs auf das Subnetz 192.168.200.x ein (z. B. 192.168.200.100, da die Standard-IP des IOT2000 192.168.200.1 lautet).

    • Öffnen Sie PuTTY, wählen Sie als Verbindungstyp SSH, tragen Sie die IP-Adresse 192.168.200.1 sowie Port 22 ein und klicken Sie auf Open.
    • Melden Sie sich mit dem Benutzernamen root an (Standardmäßig ist im Beispiel-Image kein Passwort gesetzt).
    • Alternative über Seriell: Schließen Sie ein FTDI-Kabel an den internen Seriell-Header an und wählen Sie in PuTTY Serial mit einer Baudrate von 115200.
      4. Netzwerk und Sicherheit konfigurieren:

    • Vergeben Sie ein Passwort für den Root-Zugang mit dem Befehl:

    Bash
    passwd
    - Passen Sie die IP-Konfiguration in den Linux-Netzwerkeinstellungen an die Zielnetzwerkstruktur an.

Erwartetes Ergebnis: Das IOT2000 bootet das Yocto-Linux vollständig und stellt eine funktionierende SSH-Kommandozeile im Terminal bereit.

Überprüfung: Führen Sie in der PuTTY-Kommandozeile den Befehl ifconfig aus, um die aktive IP-Adresse zu prüfen, und senden Sie vom Entwicklungs-PC einen ping 192.168.200.1 ab.

Einschränkung: Das Beispiel-Image bietet keine grafische Benutzeroberfläche (Desktop). Alle Administrationen müssen über die Linux-Konsole ausgeführt werden.

Achtung: Ein unvorhergesehenes Trennen der 24V-Spannungsversorgung ohne vorheriges Herunterfahren (poweroff oder shutdown -h now) kann zu Beschädigungen des Dateisystems auf der MicroSD-Karte führen.

Methode 2: Konfiguration von Node-RED für SPS- und Cloud-Kommunikation

Am besten geeignet, wenn: Daten von Speicherprogrammierbaren Steuerungen (z. B. Siemens S7-1200/1500, Allen-Bradley MicroLogix) erfasst, lokal in Datenbanken (MariaDB) gespeichert oder an Cloud-Dienste (IBM Bluemix, Google Spreadsheets, MQTT) weitergeleitet werden sollen.

Node-RED ist auf dem offiziellen Beispiel-Image vorinstalliert und dient als visuelle Flow-basierte Programmierumgebung.

Ablauf

  1. Laufzeitumgebung steuern:

    • Um Node-RED manuell über die Konsole zu starten, geben Sie folgenden Befehl ein:

    Bash
    node-red
    - Um den automatischen Start von Node-RED beim Systemstart zu aktivieren, führen Sie aus:

    Bash
    systemctl enable nodered systemctl start nodered
    2. Grafischen Editor aufrufen:

    • Öffnen Sie einen Webbrowser auf dem Entwicklungs-PC.
    • Rufen Sie die Adresse [http://192.168.200.1:1880](http://192.168.200.1:1880) (oder die angepasste IP-Adresse des IOT2000) auf.
      3. Kommunikations-Knoten (Nodes) installieren:

    • Öffnen Sie das Menü oben rechts in Node-RED und wählen Sie Palette verwalten (Manage palette).

    • Wechseln Sie auf den Reiter Installieren und suchen Sie nach den benötigten Protokoll-Knoten:

      • node-red-contrib-s7 für die direkte S7-Kommunikation mit Siemens-Steuerungen.
      • node-red-contrib-opcua für OPC UA Client-Verbindungen.
      • Knoten für MariaDB/SQL-Server, CloudMQTT, NTP-Client oder Google Sheets.
        4. SPS-Kommunikations-Flow erstellen:
    • Ziehen Sie einen S7- oder OPC UA-Eingangsknoten auf die Arbeitsfläche.

    • Konfigurieren Sie die Verbindungsparameter der SPS (IP-Adresse der Steuerung, Rack- und Slot-Nummer, z. B. Rack 0, Slot 1 bei S7-1200/1500).
    • Definieren Sie die zu lesenden Adressen (z. B. Merker, Eingänge, Ausgänge oder Bausteinvariablen DB).
    • Verbinden Sie den Baustein mit einem debug-Knoten oder einem Datenbank-Knoten, um die Erfassung zu prüfen.
      5. Fehlerhafte Flows zurücksetzen:

    • Wenn ein fehlerhafter Flow die Laufzeitumgebung blockiert, stoppen Sie den Dienst per SSH:

    Bash
    systemctl stop nodered
    - Löschen Sie die Flow-Datei direkt aus dem Dateisystem unter ~/.node-red/flows.json.

Erwartetes Ergebnis: Node-RED liest zyklisch Datenpunkte aus der angeschlossenen SPS aus und verarbeitet diese gemäß der Logik im Flow-Editor.

Überprüfung: Öffnen Sie das Debug-Fenster auf der rechten Seite des Node-RED-Editors und prüfen Sie, ob die eingehenden Nachrichtenwerte der SPS korrekt angezeigt werden.

Einschränkung: Bei sehr hohen Abtastraten oder komplexen Datenanalysen kann die Auslastung der Intel Quark CPU ansteigen.

Methode 3: Native Programmierung über Arduino IDE und C/C++ in Eclipse

Am besten geeignet, wenn: Hardwarenahe Programme, Erweiterungsmodule (z. B. IOT2000 I/O-Modul, Display-Ansteuerungen) oder performante C/C++-Anwendungen ausgeführt werden müssen.

Das SIMATIC IOT2000 verfügt über Arduino-kompatible Pin-Header und unterstützt die Erstellung kompilierter C/C++-Binärdateien mittels Eclipse IDE.

Ablauf

Option A: Programmierung über die Arduino IDE

  1. Verbinden Sie den Entwicklungs-PC über ein Micro-USB-Kabel mit der Client-USB-Schnittstelle des IOT2000.
  2. Öffnen Sie die Arduino IDE auf Ihrem PC.
  3. Rufen Sie Werkzeuge > Board > Boardverwalter auf, suchen Sie nach dem Board-Paket für Intel Galileo / SIMATIC IOT2000 und installieren Sie dieses.
  4. Wählen Sie unter Werkzeuge > Board das IOT2000 aus und stellen Sie die zugehörige Schnittstelle ein.
  5. Erstellen Sie Ihren Sketch (z. B. unter Verwendung von Bibliotheken für die Ansteuerung der USER LED, HD44780-Displays oder MAX7219) und übertragen Sie das Skript auf das Gateway.

Option B: C/C++-Entwicklung mit der Eclipse IDE

  1. Installieren Sie Eclipse IDE for C/C++ Developers auf dem Entwicklungs-PC.
  2. Laden Sie das offizielle Siemens IOT2000 Toolchain SDK herunter und entpacken Sie es.
  3. Richten Sie in Eclipse die Cross-Compiler-Toolchain für die x86-Quark-Architektur ein.
  4. Erstellen Sie ein neues C/C++-Projekt, kompilieren Sie die Anwendung und übertragen Sie die ausführbare Datei per SFTP/WinSCP auf das IOT2000.
  5. Vergeben Sie auf dem Gateway Ausführungsrechte für das Programm:

Bash
chmod +x /pfad/zur/anwendung
6. Richten Sie bei Bedarf einen systemd-Dienst ein, um das C/C++-Programm automatisch beim Systemstart auszuführen.

Erwartetes Ergebnis: Das kompilierte C/C++-Programm oder der Arduino-Sketch läuft nativ auf der Hardware-Ebene des Gateways.

Überprüfung: Überprüfen Sie den Status des Ausführungsprozesses auf dem Gateway über SSH mit dem Linux-Befehl ps oder top bzw. beobachten Sie die Reaktion der angeschlossenen Hardware (z. B. Ansteuerung der USER LED).

Einschränkung: Arduino-Skripte werden unter Linux im User-Space ausgeführt; harte Echtzeitanforderungen im Mikrosekundenbereich lassen sich im Vergleich zu reinen Mikrocontrollern nicht ohne Anpassung des RT-Kernel-Treiberbausteins garantieren.

Überprüfung

Das Verfahren ist erfolgreich abgeschlossen, wenn folgende Bedingungen erfüllt sind:

  1. Das SIMATIC IOT2000 antwortet auf IP-Ebene stabil auf Ping-Anfragen und erlaubt den Terminal-Zugriff per SSH (PuTTY).
  2. Der Node-RED-Dienst startet fehlerfrei und stellt Verbindungen zu konfigurierten Steuerungen (S7-1200/1500, MicroLogix) her.
  3. Eingehende Prozessdaten werden korrespondierend im Debug-Fenster von Node-RED oder in angeschlossenen SQL-Datenbanken (z. B. MariaDB) aktualisiert.
  4. Selbsterstellte C/C++-Binärdateien oder Arduino-Skripte verbleiben nach einem Neustart des Gateways im aktiven Prozessspeicher.

Einschränkungen und betriebliche Vorsichtsmaßnahmen

  • Veraltete Node.js-Laufzeitumgebung (EOL): Ältere Image-Releases (wie Image v2.6 mit Node.js v8.16.0) nutzen eine Node.js-Version, die das End-of-Life (EOL) erreicht hat. Die vorinstallierte Node-RED-Version bleibt voll funktionsfähig, beim Installieren oder Aktualisieren neuer Drittanbieter-Nodes über den Palette-Manager können jedoch Kompatibilitätsfehler auftreten.
  • Verschleiß der MicroSD-Karte: Hohe Schreibfrequenzen durch kontinuierliches SQL-Logging direkt auf der MicroSD-Karte führen zu starker Abnutzung des Flash-Speichers. Für datenintensive Anwendungen sollten externe Speichermedien oder RAM-Puffer verwendet werden.
  • Spannungsausfall bei Schreibvorgängen: Das abrupte Abschalten der 24V-Spannungsversorgung während aktiver Schreibzugriffe kann das Linux-Dateisystem beschädigen. Beenden Sie das System stets geordnet über die Konsole.
  • Netzwerksicherheit: Das Standard-Beispiel-Image besitzt werkseitig ein offenes Root-Passwort. Vor dem Einsatz in einer Produktionsumgebung müssen zwingend Passwörter geändert und Sicherheitsmaßnahmen (z. B. Absicherung ungenutzter Ports) umgesetzt werden.

Engineer FAQ

Warum schlägt der SSH-Zugriff über PuTTY direkt nach dem Einschalten fehl?

Der Entwicklungs-PC muss sich im selben Subnetz wie die Werkseinstellung des IOT2000 (192.168.200.1) befinden. Stellen Sie sicher, dass die IP-Adresse der Netzwerkkarte Ihres PCs manuell auf einen Wert wie 192.168.200.100 mit der Subnetzmaske 255.255.255.0 eingestellt ist.

Welche Auswirkungen hat der End-of-Life (EOL) Status von Node.js v8.x auf dem IOT2000?

Der EOL-Status bedeutet, dass für diese spezifische Node.js-Version keine offiziellen Sicherheitsupdates oder Fehlerkorrekturen mehr erscheinen. Das vorinstallierte Node-RED funktioniert weiterhin uneingeschränkt. Ein Update einzelner Pakete über den Palette-Manager kann jedoch fehlschlagen, wenn diese neuere Node.js-Versionen voraussetzen.

Wie kann eine C/C++-Anwendung oder ein Skript automatisch beim Systemstart gestartet werden?

Erstellen Sie unter Linux eine systemd-Service-Datei unter /etc/systemd/system/mein_dienst.service. Tragen Sie dort den Pfad zur ausführbaren Binärdatei ein und aktivieren Sie den Dienst anschließend mit den Befehlen systemctl daemon-reload und systemctl enable mein_dienst.service.

Kann der IOT2000 auch mit Steuerungen anderer Hersteller wie Allen-Bradley kommunizieren?

Ja. In Node-RED können über den Palette-Manager Protokoll-Erweiterungen für Drittanbieter-Steuerungen nachinstalliert werden (z. B. Ethernet/IP, Modbus TCP oder OPC UA), um Daten mit Controllern wie Allen-Bradley MicroLogix auszutauschen.

Welche Datenbank wird für die lokale Speicherung auf dem SIMATIC IOT2000 empfohlen?

Aufgrund des Ressourcenbedarfs und der nativen Linux-Unterstützung wird die Verwendung von MariaDB empfohlen. Sie lässt sich direkt über passende Nodes in Node-RED einbinden und bietet eine stabile relationale Datenhaltung.

Verwandte Artikel

Verwandte Tags

Code: C303

8 respuestas