Schnellstart mit dem RevolutionPi und Python

Wir stellen euch hier mal einen schnellen ersten Start mit dem RevolutionPi vor, um IOs zu testen, ohne eine einzige Zeile programmieren zu müssen! Danach können wir ein Python Steuerungsprogramm schreiben oder die Werte per MQTT übertragen / mit NodeRED verwenden!

Den Aufbau und die Verkabelung des Revolution Pi könnt ihr wunderbar aus der Kunbus Dokumentation entnehmen. Den benötigten SSH Zugang bekommt ihr dort auch erklärt.

Unser Aufbau

AIO | DIO | RevPi Connect

  • AIO: RTD1 <- PT 100
  • AIO: RTD2 <- PT 100
  • DIO: O_1 -> LED 1
  • DIO: O_2 -> LED 2
  • DIO: I_1 <- Taster „door_corridor“
  • DIO: I_2 <- Taster „door_workshop“
  • DIO: I_3 <- Taster „flip_flop“

Hardwarekonfiguration

Über piCtory konfigurieren wir die Hardware auf dem RevPi.

Für das DIO Modul verwenden wir die „Inputs: 34 / Outputs: 32“ Modi. Diese stellen uns für die einzelnen Bits je einen Ein- / Ausgang zur Verfügung.

Wichtig sind auch sinnvolle symbolische Namen für die Ein- und Ausgänge, da wir mit diesen im Steuerungsprogramm oder bei MQTT arbeiten werden:

AIO Modul RTDValue1 und RTDValue2 umbenennen:

Optional den Export Haken setzen, um diesen Wert später per MQTT zu übertragen

DIO Modul I_1, I_2, I_3, O_1 und O_2 umbenennen:

File->Save und Tools->Reset Driver um die neue Konfiguration zu speichern und anzuwenden.

RevPiPyLoad Installation auf den RevPi

Nun melden wir uns per SSH (oder direkt am Monitor) auf den RevPi an und installieren die benötigte Software (jessie und stretch Images bezieht diese direkt aus den Quellen von Kunbus).

# Paketquellen aktualisieren
pi@RevPi0000:~ $ sudo apt-get update

# RevPiPyLoad installieren
pi@RevPi0000:~ $ sudo apt-get install revpipyload

Achtung: Solltet ihr noch ein wheezy Image ohne Kunbus Quellen haben, folgt bitte unserer Anleitung in Downloads und Quellen

Für den RevPiPyLoad Dienst müssen wir noch den XML-RPC-Server aktivieren, der bei der Installation standardmäßig deaktiviert ist. Dieser ermöglicht uns über das Netzwerk auf den RevPi zuzugreifen.

pi@RevPi0000:~ $ sudo nano /etc/revpipyload/revpipyload.conf

In dem Editor setzen wir in der [XMLRPC] Sektion den Wert xmlrpc = 1 (vorher 0). Dies aktiviert die generellen XML-RPC Funktionen.

Mit Strg+X die Änderung speichern und das Speichern mit y bestätigen.

Nun müssen für den Zugriff noch Berechtigungen festgelegt werden! Dafür bearbeiten wir auf die selbe Weise die Datei aclxmlrpc.conf

pi@RevPi0000:~ $ sudo nano /etc/revpipyload/aclxmlrpc.conf

Pro Zeile wird eine IP-Adresse und die dazugehörige Berechtigungsstufe von 0 – 4 angegeben. IP-Gruppen können mit einen * definiert werden. Zum Testen lassen wir ALLE IP-Adresse zu, da diese Einstellungen auch viel komfortabler über die grafische Oberfläche erledigt werden können.

Genauere Infos unter „Parameter in XMLRPC Sektion“: https://revpimodio.org/revpipyplc/revpipyload/

Nun muss der RevPiPyLoad Dienst neu gestartet werden (wheezy und jessie).

pi@RevPi0000:~ $ sudo service revpipyload restart

RevPiPyControl Installation auf eigenem Rechner

Das Programm kann in Downloads und Quellen heruntergeladen werden. Wir haben dort für Windows Benutzer ein Setup Programm und für Linux Benutzer ein Debian Paket. Generell können auch die Quellen verwendet werden, wenn Python3 auf dem Rechner installiert ist. Dann muss nur die revpipycontrol.py mit Python ausgeführt werden.

Über den Menüpunkt Datei->Verbindungen… richten wir unseren RevPi mit einem freien Namen und der IP-Adresse ein. Der Port ist im Standard 55123:

Nach dem Speichern und Schließen können wir über den Menüpunkt Verbinden->RevPiName eine Verbindung herstellen.
Die Schaltfläche „PLC watch Modus“ wird aktiv, welche wir klicken!

Hier sehen wir nun bei „Devices vom RevPi“ unsere Hardwarekonfiguration. Durch einen Klich auf „30 | aio01“ und „31 | dio01“ (piCtory Position | Name) öffnet sich jeweils ein Fenster, in dem wir den Status der IOs angezeigt bekommen.

Aktivieren wir nun die Haken „Aktualisiere Werte automatisch“, werden die Werte der IOs automatisch im Hintergrund aktualisiert. Wir sehen sofort die Temperaturwerte der PT100 Sensoren temp_heater und temp_outside. Geben wir nun ein Signal auf den Input „t_flip“, sehen wir sofort einen Haken.
Wenn zusätzlich „Schreibe Werte auf RevPi“ aktiviert wird, können wir Outputs durch Klicken direkt auf den RevPi setzen.

Wählen wir „led1“ und „led2“ aus, sehen wir die Ausgabe SOFORT!!!

Viel Spaß bei eurem IO-Check ohne eine Zeile programmiert zu haben 😀

Steuerungsprogramm schreiben und hochladen

Nun können wir auf unserem Rechner ein Python Steuerungsprogramm schreiben und es über das grafische Tool auf den RevPi Übertragen. Dort kümmert sich RevPiPyLoad um dessen Ausführung und überwacht es.

Einfach über PLC -> PLC Programm… das Steuerungsprogramm vom Rechner auswählen und hochladen.


PS: Über PLC -> PLC Optionen… können die Berechtigungen der IP-Adressen verändert werden. Im unteren Bereich klickt man neben „Aktiviere XML-RPC Server auf RevPi“ auf „ACL bearbeiten“. In dem Fenster können die Berechtigungen angepasst werden: