Zurück zur Startseite

Steuerung des Raspberry Pi Pico über OpenPLC und Modbus RTU

Der Artikel beschreibt die Integration des Raspberry Pi Pico W in ein verteiltes Steuerungssystem mit OpenPLC und Modbus RTU. Hardwarekonfiguration, Registeradressierung, Logikprogrammierung und Einschränkungen des DIY-Ansatzes in industrieller Umgebung werden betrachtet.

Raspberry Pi Pico als I/O-Knoten in OpenPLC: Praktischer Leitfaden
Advertisement 728x90

Integration des Raspberry Pi Pico W in ein industrielles Steuerungssystem über OpenPLC und Modbus RTU

In einem Projekt basierend auf STM32-IHM03 für die PMSM-Motorsteuerung wurde ein Remote-I/O-Knoten mit Raspberry Pi Pico W hinzugefügt, dessen Logik in OpenPLC implementiert ist. Die Kommunikation zwischen den Knoten läuft über Modbus RTU auf RS485, während die Systemkoordination von einem Orange Pi 4 Pro mit Node-RED übernommen wird. Diese Architektur zeigt den Einsatz von Open-Source-Tools zum Aufbau eines verteilten Automatisierungssystems, das dem IEC 61131-3-Standard entspricht.

Hardwarekonfiguration und Anschlüsse

Der Systemkern besteht aus drei Schlüsselteilen: STM32-IHM03 für die Motorsteuerung, Raspberry Pi Pico W als Remote-I/O-Modul und Orange Pi 4 Pro als zentrale Steuerung. Ein CAN-Bus (mit dem SN65HVD230-Transceiver) verbindet den STM32 mit dem Orange Pi, während ein Zweidraht-Modbus-RTU-Bus auf Basis des MAX485-Chips den Orange Pi mit dem Pico verknüpft.

Zur Anbindung von Modbus und CAN an den Orange Pi wird ein RS485 CAN HAT Shield eingesetzt, das ursprünglich für Raspberry Pi entwickelt wurde. Die Anpassung an den Orange Pi erforderte:

Google AdInline article slot
  • Änderung der MCP2515-Taktfrequenz von 8 MHz auf 12 MHz im Device Tree Overlay;
  • Aktivierung von UART7 über orangepi-config für die Kommunikation mit dem SP3485-Transceiver;
  • Physische Montage des Shields auf Abständen aufgrund der Position des Prozessors unterhalb der Platine.

Die Stromversorgung aller Komponenten erfolgt über eine externe Quelle, was die Betriebslogik nicht beeinflusst, aber für die Stabilität des Prototyps entscheidend ist.

Pin- und Registeradressierung in OpenPLC

Beim Programmieren des Raspberry Pi Pico W im OpenPLC Editor müssen die physischen Pins des RP2040 den Modbus-Adressen zugeordnet werden. Die folgende Tabelle zeigt die wichtigsten Zuordnungen:

| SPS-Datentyp | Notation | Modbus-Adressbereich | Größe | Zugriff |

Google AdInline article slot

|--------------------|----------------|----------------------|----------|--------------|

| Diskrete Ausgänge | %QX0.0 – %QX6.7 | 0–55 | 1 Bit | L/S |

| Diskrete Eingänge | %IX0.0 – %IX6.7 | 0–55 | 1 Bit | L |

Google AdInline article slot

| Analoge Eingänge | %IW0 – %IW31 | 0–31 | 16 Bit | L |

| Holding-Register | %QW0 – %QW31 | 0–31 | 16 Bit | L/S |

| Speicher (16/32/64 Bit) | %MW / %MD / %ML | 32–171 | bis 64 Bit | L/S |

Diese Adressen werden beim Erstellen von Logik in Leiterdiagramm (LD)- oder Funktionsblockdiagramm (FBD)-Sprachen verwendet. Beispielsweise entspricht die Steuerung eines an GPIO2 angeschlossenen Relais %QX0.2 und Modbus-Adresse 2.

Implementierung von Logik in OpenPLC v4

OpenPLC v4 ermöglicht die Entwicklung von Programmen, die dem IEC 61131-3-Standard entsprechen. Für den Raspberry Pi Pico W stehen folgende Programmiersprachen zur Verfügung:

  • LD (Leiterdiagramm) — Relaisleiterlogik, intuitiv für Elektroingenieure.
  • FBD (Funktionsblockdiagramm) — grafische Darstellung von Funktionen und deren Verbindungen.
  • ST (Strukturierter Text) — höchststufige textbasierte Sprache.

Das Programm wird auf die OpenPLC-Runtime hochgeladen, die direkt auf dem Mikrocontroller läuft. In diesem Projekt fungiert der Pico als Modbus-RTU-Slave mit fester Adresse, z. B. 10. Alle Lese-/Schreibvorgänge werden vom Master-Gerät – dem Orange Pi über Node-RED – initiiert.

Beispiel für einfache Logik: Bei Erhalt eines „Start“-Signals über Modbus wird Spule %QX0.0 aktiviert und schließt das SRD-05VDC-SL-C-Relais. Gleichzeitig kann der Zustand des diskreten Eingangs %IX1.0 als Not-Aus-Signal dienen.

Einschränkungen des Selbstbau-Ansatzes in der industriellen Automatisierung

Trotz Flexibilität und niedriger Kosten weist die Lösung mit Raspberry Pi Pico und OpenPLC erhebliche Einschränkungen für den industriellen Einsatz auf:

  • Fehlende galvanische Trennung an Ein-/Ausgängen macht das System anfällig für Störungen durch Stromgeräte.
  • Nicht standardisierte Anschlüsse (z. B. Micro-USB und 2,54-mm-Buchsen) halten industriellen Vibrationen nicht stand.
  • Kein Hardware-Watchdog, was das Risiko von Hängen ohne Neustart erhöht.
  • Eingeschränkte Modbus-Unterstützung in OpenPLC v4: Schreiben in Holding-Register und Spulen kann eine Änderung des Runtime-Quellcodes erfordern.

Solche Systeme eignen sich für Schulungen, Prototypen oder kleine lokale Aufgaben, nicht jedoch für sicherheitskritische Produktionsstraßen.

Wichtige Erkenntnisse

  • Der Raspberry Pi Pico W kann als Remote-I/O-Knoten in einem Automatisierungssystem mit OpenPLC dienen.
  • Modbus-RTU-Kommunikation erfordert korrekte Pin- und Registeradressierung gemäß OpenPLC-Dokumentation.
  • Die Anpassung des RS485 CAN HAT Shields an den Orange Pi ist möglich, erfordert aber Bearbeitung des Device Trees und Aktivierung des benötigten UART.
  • OpenPLC v4 unterstützt den IEC 61131-3-Standard, ist aber funktional hinter industriellen Umgebungen wie CODESYS zurück.
  • Selbstbau-Lösungen sind ohne zusätzlichen Schutz und Standardisierung der Schnittstellen nicht für den industriellen Einsatz geeignet.

— Editorial Team

Advertisement 728x90

Weiterlesen