Das einfache Kommandozeilenprogramm eignet sich sowohl zum Betrieb als Modbus-Server als auch als Client. Der Aufruf modpoll -h verschafft Ihnen einen Eindruck vom enormen Funktionsumfang der Software. Interessant hierbei sind die vielen Möglichkeiten für den Registerzugriff. Im nächsten Abschnitt sehen wir uns an, wie Sie Modpoll verwenden, um eine simulierte Anlage zu steuern.
Erstes Projekt
Um schnell zu Ergebnissen zu kommen, starten Sie nicht ein komplett neues Projekt, sondern verwenden eine vordefinierte Scene. Klicken Sie dazu auf Scenes und wählen Sie das erste Beispiel From**A to**B aus. Es verwendet einen Sensor und ein Förderband, auf dem sich eine Kiste befindet (Abbildung 2).
Alle Sensoren und Aktoren tragen Beschriftungen (Tags). Sobald Sie ein Tag anklicken, erscheint der Status des Geräts, und Sie können zum Beispiel den Motor des Förderbands manuell starten (Abbildung 3). Sobald die Kiste das Ende erreicht, löst der Sensor aus. Läuft der Motor dann immer noch weiter, fällt die Kiste herunter. Da sich die Simulation aber immer wieder neu starten lässt, stellt das kein Problem dar. Sie steuern die Simulation über die Icons oben rechts. Berühren Sie die Bedienflächen mit dem Mauszeiger, erhalten Sie interaktive Hilfetexte.
Um die Anlage genauer zu betrachten, lässt sich die Kamera in allen Freiheitsgraden bewegen. Allerdings lassen sich die Tags der Geräte genau von der Seite betrachtet kaum erkennen. Haben Sie den Eindruck, dass ein Tag fehlt, dann verändern Sie einfach die Perspektive etwas, und achten Sie darauf, dass die entsprechenden Icons oben in der Leiste aktiv sind.
Das Ziel besteht darin, die Simulation vom Raspberry Pi aus zu steuern. Dazu müssen Sie die auf die Aktoren und Sensoren via Modbus zugreifen können. Das gelingt mit Factory I/O einfacher als man vermuten möchte. Klicken Sie im Menü auf File | Drivers und wählen Sie den Modbus TCP/IP Server aus. Unter Windows klappt das sofort. Sie greifen dann von außen via Modbus direkt auf die Scene zu und können die Simulation fernsteuern (Listing 1).
Listing 1
Scene-Steuerung
### Förderband starten $ ./modpoll -t0 -a1 Modbus-Server 1 ### Förderband stoppen $ ./modpoll -t0 -a1 Modbus-Server 0 ### Sensor abfragen $ ./modpoll -t1 -a1 Modbus-Server
Falls Sie Factory I/O via Wine unter Linux verwenden, müssen Sie für den Modbus-Server einen Port über 1024 verwenden, sonst erhalten Sie eine Fehlermeldung. Den Port passen Sie in der Konfiguration an, etwa auf 1502. Der Parameter zur Angabe eines alternativen Ports lautet modpoll -p <§§i>Port<§§i>. Achten Sie auch darauf, in der Konfiguration das reale Netzwerk-Interface zu verwenden und nicht etwa Localhost.
Nachdem die Simulation sich nun von außen steuern lässt, ist es an der Zeit, sich ein wenig intensiver mit OpenPLC auseinanderzusetzen.
OpenPLC
Zum Steuern der Anlage kommt die freie Steuerungssoftware OpenPLC zum Einsatz, die Sie auf einen Raspberry Pi 4 einrichten. Als Grundlage dient die 32-Bit-Version von Pi OS, die bereits alle nötigen Softwarepakete enthält. Am bequemsten befördern Sie das Betriebssystemabbild mithilfe von Raspberry Pi Imager [7] auf eine SD-Karte (Abbildung 4).

Abbildung 4: Raspberry Pi Imager bietet die komfortabelste Lösung zum Übertragen von Images auf eine Speicherkarte.
OpenPLC besteht aus zwei Softwarekomponenten. Mit dem Editor erstellen Sie Programme, die die OpenPLC-Runtime dann auf der Zielhardware ausführt. Die Laufzeitumgebung installieren Sie direkt von Github. Dieses Vorgehen ist durchaus sinnvoll, weil die Hardware, auf der die Runtime läuft, sich üblicherweise nur über SSH erreichen lässt.
Bei der Installation der Laufzeitumgebung gilt es zu beachten, dass die Software auf der WiringPi-Bibliothek basiert, die seit 2019 keinen offiziellen Support mehr erhält. Glücklicherweise gibt es eine inoffizielle Version von WiringPi [8], die aktuell mehrere Entwickler pflegen. Um sie zu installieren, führen Sie die Kommandos aus Listing 2 im Terminal aus.
Listing 2
Installation der inoffiziellen WiringPi
$ git clone https://github.com/WiringPi/WiringPi.git $ cd WiringPi $ ./build $ cd ..
Üblicherweise klappt alles auf Anhieb. Falls Sie auf unerwartete Probleme stoßen, werfen Sie einen Blick in die Installationsanleitung [9]. Da die Software nicht als Paket über die Distribution kommt, ist Sie nicht perfekt in das System integriert. Je nachdem, was Sie zusätzlich zur Bibliothek benötigen, fallen mehr oder weniger manuelle Nacharbeiten an.
Danach installieren Sie die OpenPLC-Runtime mit den Kommandos aus Listing 3. Die eigentliche Einrichtung (install.sh) benötigt ein wenig Zeit. Im Anschluss daran starten Sie die OpenPLC-Runtime mit den Kommando start_openplc.sh aus dem Ordner OpenPLC_v3/ heraus. Beim Booten erfolgt dieser Schritt automatisch.







