Wie finden Sie diesen Artikel? Helfen Sie uns, bessere Inhalte für Sie bereitzustellen.
Vielen Dank! Ihr Feedback ist eingegangen.
There was a problem submitting your feedback, please try again later.
Was denken Sie über diesen Artikel?
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
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.
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
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.
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.
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
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.
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
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.
Weitere Informationen zu Produkten finden Sie auf Ihrer lokalen RS Components-Website.
Kommentare