Wir stellen euch hier 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 beziehen 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-Adressen 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 um die Änderungen zu übernehmen:
pi@RevPi0000:~ $ sudo service revpipyload restart
RevPiCommander 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 revpicommander.py mit Python3 ausgeführt werden.
Über den Menüpunkt Datei->Verbindungen… richten wir unseren RevPi mit einem beliebigen 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 Klick 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: