Listing 1
Beispiele zu Modpoll
### Ausgang DO0 setzen (mit Schnittstellenparametern) $ ./modpoll -mrtu -a2 -t0 -r1 -b19200 -d8 -peven /dev/ttyUSB0 1 ### Ausgang DO0 löschen (mit Schnittstellenparametern) $ ./modpoll -mrtu -a2 -t0 -r1 -b19200 -d8 -peven /dev/ttyUSB0 0 ### Eingang DI0 abfragen (ohne Schnittstellenparameter) $ ./modpoll -mrtu -a2 -t1 -r1 /dev/ttyUSB0 ### Eingang DI1 abfragen (mit Schnittstellenparametern) $ ./modpoll -mrtu -a2 -t1 -r2 -b19200 -d8 -peven /dev/ttyUSB0 ### Analog-Eingang AI0 abfragen (ohne Schnittstellenparameter) $ ./modpoll -mrtu -a3 -t3 -r1 /dev/ttyUSB0 ### Analog-Eingang AI1 abfragen (ohne Schnittstellenparameter) $ ./modpoll -mrtu -a3 -t3 -r2 /dev/ttyUSB0 ### Analog-Ausgang AO0 auf 0 Volt setzen (ohne Schnittstellenparameter) $ ./modpoll -mrtu -a3 -t4 -r1 /dev/ttyUSB0 0 ### Analog-Ausgang AO0 auf 5 Volt setzen (ohne Schnittstellenparameter) $ ./modpoll -mrtu -a3 -t4 -r1 /dev/ttyUSB0 2048 ### Analog-Ausgang AO0 auf 10 Volt setzen (ohne Schnittstellenparameter) $ ./modpoll -mrtu -a3 -t4 -r1 /dev/ttyUSB0 4096
Adapter installieren
Um den Modbus-Adapter in IO-Broker zu installieren, öffnen Sie den Bereich Adapter und suchen im Abschnitt Protokolle nach dem Eintrag ModBus (Abbildung 2). Mit einem Klick auf das Pluszeichen rechts installieren Sie den Adapter und legen eine neue Instanz an. Falls Sie den Adapter bereits im letzten Teil dieser Reihe verwendet haben, wird nur eine zusätzliche Instanz erstellt. Eine Instanz unterstützt immer nur einen Protokolltyp. Für die folgenden Schritte brauchen Sie daher eine neue Instanz. Ein Recycling einer schon bestehenden Instanz ist hier nicht ratsam.
Nach der Installation des Adapters geht es an die Konfiguration. Im ersten Schritt stellen Sie in IO-Broker die allgemeinen Werte der Schnittstelle ein (Abbildung 3). Sie nutzen dazu die Werte, die Sie bereits beim Einrichten der PiXtend-Module verwendet haben. Als Geräte-ID für den IO-Broker (Busmaster) setzen Sie die 1. Beim Port müssen Sie darauf achten, den zu Ihrem Testaufbau passenden zu verwenden. Den Haken bei Mehrere Geräte-IDs müssen Sie zwingend aktivieren, da die PiXtend-Geräte interne Register mit eigenen Adressen haben.
Im Reiter DISKRETE AUSGÄNGE definieren Sie noch, welche Ausgänge Sie in den IO-Broker einbinden möchten (Abbildung 4). Prinzipiell sollte das auch für die Eingänge und die Eingangsregister funktionieren, doch im Test ließen sich die einzelnen diskreten Inputs auf diese Art nicht einbinden. Hier hat sich wohl ein Bug in den Modbus-Adapter von IO-Broker eingeschlichen.
Im nächsten Abschnitt verwenden wir das Tool Modpoll, um auf die Geräte zuzugreifen. Das klappte im Test ohne Probleme. Als Überbrückungslösung kann man einfach das Register für die Inputs einlesen und die einzelnen Bits selbst ausmaskieren. Wenn alles funktioniert, erscheinen die Objekte der Modbus-Geräte im Objektbaum (Abbildung 5).
Fazit
Modbus/RTU lässt sich in IO-Broker genauso leicht einbinden wie Modbus/TCP. Viele Geräte im modernen Haushalt, wie zum Beispiel Solarwechselrichter oder Wallboxen, lassen sich über Modbus/RTU auslesen. So ist es leicht möglich, die Daten dieser Gräte weiterzuverarbeiten.
Falls Sie ein Gerät erst einmal testen möchten, empfiehlt es sich, einen USB-zu-RS485-Adapter zu verwenden und diesen direkt mit dem PC oder Raspberry Pi zu verbinden. Das Tool Modpoll ist für solche Tests bestens geeignet. Neben den hier gezeigten Wegen für den Zugriff auf den Modbus gibt es auch für alle gängigen Programmiersprachen Bibliotheken, mit denen Sie sich auf den Modbus verbinden können. (cla)
Der Autor
Martin Mohr hat die komplette Entwicklung der modernen Computertechnik live miterlebt. Nach dem Studium entwickelte er überwiegend Java-Applikationen. Mit dem Raspberry Pi erwachte seine alte Liebe zur Elektronik wieder.
Infos
- CRC (Wikipedia): https://de.wikipedia.org/wiki/Zyklische_Redundanzpr%C3%BCfung
- Modbus-Homepage: https://modbus.org/
- PiXtend eIO Digital One: https://www.reichelt.de/entwicklerboards-sps-pixtend-eio-digital-one-basic-pixtend-eio-digb-p269111.html
- PiXtend eIO Analog One: https://www.reichelt.de/entwicklerboards-sps-pixtend-eio-analog-one-pro-pixtend-eio-anap-p269114.html
- Software-Manual PiXtend eIO: https://cdn-reichelt.de/documents/datenblatt/A300/PIXTEND_EIO_SOFTWARE_MANUAL_DE.pdf
- Hardware-Manual PiXtend eIO: https://cdn-reichelt.de/documents/datenblatt/A300/PIXTEND_EIO_HARDWARE_MANUAL_DE.pdf
- RevPi Compact: https://revolutionpi.de/tutorials/uebersicht-revpi-compact/
- USB-zu-RS485-Adapter: https://www.amazon.de/Greluma-Konverter-Industrieller-Kompatibel-Windows/dp/B08K37YRQD/
- Modpoll: https://www.modbusdriver.com/modpoll.html









