Hey! Sie scheinen aus United States zu kommen, möchten Sie auf die Englisch Webseite wechseln?
Switch to Englisch site
Skip to main content

Erste Schritte mit der vielseitigen modularen Industrie-Plattform Revolution Pi

Main29_1c719370b78f49e5ab402c01b7eb53fb24b08ce0.jpg

Erlernen Sie die Grundlagen mit einem RevPi Core 3, RevPi DIO und einfacher Relaissteuerung.

In diesem Beitrag werfen wir einen ersten Blick auf den äußerst flexiblen Revolution Pi, der eine Vielzahl von Hardwareoptionen für I/O plus industrielle Konnektivität in Kombination mit einer Vielzahl von Optionen (auch für die Programmierung der Plattform) bietet.

RevPi-Grundlagen

Was ist also der Revolution Pi – ist er ein Mini-Industrie-PC, eine Datenerfassungsplattform, eine SPS oder ein IoT-Gateway? Er vereint all diese Dinge, und obwohl er auf dem Raspberry Pi Compute Module basiert, ist er viel mehr als nur ein Raspberry Pi im DIN-Schienengehäuse. Es handelt sich dabei um eine eng integrierte Plattform, die die Norm EN61131-2 für programmierbare Steuereinheiten (Geräteanforderungen und -tests) und mit einer optionalen Laufzeit-Lizenz auch die Norm IEC 61131-3 (Programmiersprachen) erfüllt.

Dadurch ist der RevPi auch in einer industriellen Umgebung voll einsetzbar und profitiert von isolierten I/O, mit der Fähigkeit, die in Instrumenten- und Steuerungsanwendungen verwendeten Signale einfach zu verarbeiten. Das kann analog, z. B. 0–10 V oder 4–20 mA, oder auch über einen Feldbus wie Modbus erfolgen. Und mit der optionalen Laufzeit kann er über eine vertraute SPS-Umgebung programmiert werden.

Es ist jedoch zu beachten, dass kein Zugriff auf Raspberry Pi Roh-GPIO besteht und die I/O-Zykluszeit der RevPi von 5–10 ms für die meisten Anwendungen zwar ausreichend niedrig, möglicherweise aber nicht für bestimmte Anwendungen mit sehr hohen Zeitsteuerungsanforderungen geeignet ist, z. B. für die Bewegungssteuerung.

Hardware einrichten

HardwareSetup_0fec62f02e77625b8d2020e644c3950718b918d5.jpg

Bei diesem einfachen Beispiel für die Relaissteuerung wurden die folgenden Hauptkomponenten verwendet:

  • RevPi Core 3  (181-1142)
  • RevPi DIO  (181-1143)
  • Omron DPDT Relais-Steckeinheit ohne Verriegelung, 24-V-Gleichstromspule  (488-1960)
  • Schaltnetzteil für DIN-Schienen zur Frontplattenmontage, 100 W, 24 V  (042-8445)

Und natürlich auch diverse Komponenten wie DIN-Schienen, Klemmen und Kabel.

Die einzigen Schnittstellen für den direkten Einsatz am RevPi Core 3 sind 2x USB, Micro HDMI und Ethernet. „PiBridge“-Steckverbinder ermöglichen jedoch die Integration über RS-485 und Ethernet mit bis zu 10 I/O- und Gateway-Modulen auf beiden Seiten.

Detail_e68ece931f234c294cbc3fc47737e9bb8a28c7aa.jpg

In unserem Fall hatten wir einen einzigen RevPi DIO, der 14 digitale Ein- und Ausgänge bietet, rechts neben dem Core 3. Dieser kann Lasten mit bis zu 500 mA (Hochspannung) ansteuern, und obwohl die Ausgänge nicht für ein Relais geeignet sind, können sie als PWM mit einer Frequenz von 40–400 Hz konfiguriert werden, was beispielsweise zur Steuerung der Lüftergeschwindigkeit nützlich sein kann.

Für diese minimale Konfiguration mag es nach recht vielen Kabeln zum DIO aussehen. Das liegt aber daran, dass eine eigene Stromversorgung und separate Netzteile für die Feld-I/O nötig sind. Dies ist ein Standardverfahren in Industrieumgebungen, mit dem Sie potenziell sehr laute Maschinenkreise, z. B. Antriebsmotoren, sauber von empfindlicheren Sensoren und Steuerungen isolieren können.

Modulkonfigurierung

GSRP_WebHome_1556ddd8dddfb5e1860f51558450c667fed3f211.jpg

Sobald wir nach dem Start die IP-Adresse des RevPi Core in einen Webbrowser eingeben, werden wir von einer Anmeldeseite begrüßt, auf der wir den Benutzernamen admin und das Passwort eingeben, das auf der Seite des Moduls aufgedruckt ist. Von hier aus können wir PiCtory starten, das zur Konfiguration der Hardware verwendet wird.

GSRP_PictoryStart_814ab6827fd0530aafc57a355ae0045e34366529.jpg

In PiCtory sehen wir unseren RevPi Core und links daneben einen Gerätekatalog, aus dem wir den RevPi DIO auswählen können, indem wir ihn per Drag-and-Drop auf die rechte Seite des Cores ziehen – genau wie er auch physisch installiert ist.

GSRP_PictoryConfigured_a9d92a83b5e7673a4fb7eed1f91d03f3d22079bf.jpg

Anschließend können wir das I/O-Modul auswählen und im unteren rechten Bereich der Webseite die Ein- und Ausgänge sehen. In diesem Fall ist das 24-VDC-Relais mit Ausgang 1 verdrahtet, und wir hätten dies mit dem Standard-Label O_1 belassen können, haben uns aber stattdessen dafür entschieden, es „Relay“ zu nennen.

Erster Test

GSRP_PiTest-d_95b0315faf747dbc7c7fa772475e0e7f552f7ee3.jpg

Die einfachste Möglichkeit zur Interaktion mit I/O besteht darin, sich über SSH beim RevPi Core anzumelden und das PiTest-Dienstprogramm zu verwenden. Oben sehen wir dieses, wenn es mit der Geräteliste-Option ausgeführt wird, sowohl vor als auch nach den oben genannten Konfigurationsschritten.

GSRP_PiTest-w_11b38d0af1dfa66ca51f1e5862d0260b0b082327.jpg

Sie können es auch mit Optionen zum Lesen oder Schreiben einer Variablen ausführen. Oben wird es verwendet, um das Relais zuerst ein- und dann auszuschalten.

Prozessabbild

GSRP_PictoryExport_068131f4b0eea30535cfffa178a9d0ff54c0b5de.jpg

Dies scheint ein guter Zeitpunkt zu sein, um über das Prozessabbild zu sprechen. Dieses spiegelt den Status der verschiedenen konfigurierten Ein- und Ausgaben wider. Wenn eine Eingabe gelesen wird, wird sie aus dem Prozessabbild gelesen. Wenn eine Ausgabe geschrieben wird, wird sie in das Prozessabbild geschrieben. Dies geschieht in einem als Zykluszeit bezeichneten Zeitraum, der abhängig von der genauen Anzahl der konfigurierten Ein- und Ausgaben variieren kann.

Von PiCtory aus können wir Konfigurationsdaten in verschiedenen Formaten exportieren. Zum Beispiel die Norm IEC 61131-3 oder, wie unten dargestellt, eine Offset-Liste.

RevPiStatus		 0	 //BYTE  
RevPiIOCycle		 1	 //BYTE  
RevPiLED		 6	 //BYTE  
I_1		 11.0	 //BOOL  
I_2		 11.1	 //BOOL  
I_3		 11.2	 //BOOL  
I_4		 11.3	 //BOOL  
I_5		 11.4	 //BOOL  
I_6		 11.5	 //BOOL  
I_7		 11.6	 //BOOL  
I_8		 11.7	 //BOOL  
I_9		 11.8	 //BOOL  
I_10		 11.9	 //BOOL  
I_11		 11.10	 //BOOL  
I_12		 11.11	 //BOOL  
I_13		 11.12	 //BOOL  
I_14		 11.13	 //BOOL  
I_15		 11.14	 //BOOL  
I_16		 11.15	 //BOOL  
Relay		 81.0	 //BOOL  
O_2		 81.1	 //BOOL  
O_3		 81.2	 //BOOL  
O_4		 81.3	 //BOOL  
O_5		 81.4	 //BOOL  
O_6		 81.5	 //BOOL  
O_7		 81.6	 //BOOL  
O_8		 81.7	 //BOOL  
O_9		 81.8	 //BOOL  
O_10		 81.9	 //BOOL  
O_11		 81.10	 //BOOL  
O_12		 81.11	 //BOOL  
O_13		 81.12	 //BOOL  
O_14		 81.13	 //BOOL  
O_15		 81.14	 //BOOL  
O_16		 81.15	 //BOOL 

Dadurch erhalten wir die Variablen und deren Datentyp. Hier sehen Sie, dass der Ausgang DIO O O_1 in „Relay“ umbenannt wurde. Der Offset wird auch rot markiert. Welcher sinnvoll ist, hängt von unserer speziellen Anwendung ab. Der Offset wird immer dem gleichen physischen Pin zugeordnet, während ein benutzerdefiniertes Text-Label beliebig festgelegt werden kann.

Der großartigen Linux/UNIX-Tradition folgend ist das Prozessabbild einfach eine Datei: /dev/piControl0. Daher können wir jede beliebige der zahlreichen Programmiersprachen und Frameworks verwenden, um diese Datei zu öffnen, den entsprechenden Offset zu suchen und dann zu lesen und zu schreiben.

Wir können das Prozessabbild auch verwenden, um auf Modulstatussignale, wie z. B. Versorgungsspannungs- oder Temperaturfehler, zuzugreifen. Das macht die Ferndiagnose und Alarmauslösung wesentlich einfacher, wenn etwas nicht richtig scheint.

RevPiModIO

#!/usr/bin/python3

import revpimodio2
import time

revpi = revpimodio2.RevPiModIO(autorefresh=True)

revpi.io.Relay.value = True

time.sleep(2)

revpi.io.Relay.value = False

revpi.exit()

Die Möglichkeit, das Prozessabbild auf eine so offene Art und Weise direkt zu bearbeiten, ist eine nützliche Funktion, aber zugegebenermaßen nicht die benutzerfreundlichste. Zum Glück vereinfacht eine Bibliothek namens RevPiModIO, die jetzt im zweiten Haupt-Release verfügbar ist, dies erheblich, wenn die Programmiersprache Python verwendet wird.

Oben sehen wir ein sehr einfaches Skript, das das Relais einfach einschaltet, 2 Sekunden lang wartet und dann wieder ausschaltet. Auch hier verwenden wir das in PiCtory konfigurierte I/O-Label, das konstruktionsbedingt für alle verbundenen Module eindeutig sein muss. Der Grund für die kleine Verzögerung am Ende – die wohl kleiner sein könnte – ist die Berücksichtigung der Zykluszeit des Prozessabbilds. Ohne diese würde sich das Relais niemals ausschalten, da das Programm beendet und bereinigt würde, bevor das Abbild aktualisiert wird.

Die Bibliothek kann installiert werden mit:

$ sudo apt-get install python3-revpimodio2

Weitere Programmieroptionen

Zu den weiteren verfügbaren Optionen gehören, mit der optionalen Laufzeitlizenz, logi.CAD3 für eine klassische SPS-Programmierumgebung sowie PROCON_WEB IoT, UBIDOTS und MQTT – was natürlich den Weg für die Verwendung mit Node-RED ebnet.

Wenn Sie die Python-Bibliothek verwenden können, sollte die Integration in nahezu jede Umgebung möglich sein. Andernfalls sollten Sie die Zeit investieren, eine neue Bibliothek für die Sprache Ihrer Wahl zu schreiben.

Abschließende Gedanken

Wenn Sie eher aus einem Maker-/Raspberry Pi-Hintergrund kommen, kann es eine Weile dauern, bis Sie die Vorstellung, ein Prozessabbild und nicht direkt GPIO zu verwenden, akzeptieren können. Doch es kostet nur ein wenig Überwindung und die meisten Anwendungen sollten einfach portierbar sein. Sie erhalten dann ein schlüsselfertiges Industrieprodukt mit CE-Kennzeichnung, vollständig geschützten I/Os und der Möglichkeit, Sensoren und Betätigungselemente einfach zu integrieren.

Natürlich ist es auch möglich, eine soweit erforderlich funktional gleichwertige Lösung zu geringeren Kosten zu entwickeln und eine Sammlung von selbstentwickelten Hochspannungs-Treibern und Lochrasterplatinenkreisen usw. zu verwenden. Dies kann für einen Prototyp sicherlich Spaß machen. Jedoch möchten Sie vielleicht nicht unbedingt, dass die Heizung Ihres Hauses davon abhängt, oder dass Sie bei einem Systemabsturz oder bei auftretenden Fehlern das Messgerät herausholen müssen, während ein Pumpenmotor hochdreht!

Darüber hinaus bietet Revolution Pi dank einer intuitiven Web-Oberfläche zur Konfiguration und eines durchdachten Ansatzes eine hochgradig integrierte Benutzererfahrung. Außerdem können Fehlerberichte, Watchdogs und ein benutzerdefinierter Linux-Kernel auf Grundlage der offiziellen Quellen der Raspberry Pi Foundation erstellt werden, mit zusätzlichem Patching für Echtzeitleistung. Es spricht Vieles für deterministische Verhaltensweisen in Steuerungssystemen ...

Dieser Beitrag kratzt lediglich an der Oberfläche der Revolution Pi-Plattform. In zukünftigen Beiträgen möchten wir die Programmierung mit logi.CAD3 sowie die tatsächlichen Anwendungen genauer unter die Lupe nehmen.

Andrew Back

Weitere Informationen zu Produkten finden Sie auf Ihrer lokalen RS Components-Website.

Open source (hardware and software!) advocate, Treasurer and Director of the Free and Open Source Silicon Foundation, organiser of Wuthering Bytes technology festival and founder of the Open Source Hardware User Group.