Zum Hauptinhalt springen

RevPi Compact

Produktbeschreibung

Der RevPi Compact ist eine Open-Source-Kompaktsteuerung für IIoT- und Automatisierungsprojekte auf Basis des Raspberry Pi Compute Module 3+. Der RevPi ist ein nicht-modulares Basismodul aus der Revolution Pi Familie. Aufgrund seiner flachen Bauform ist der RevPi Compact für den Einbau in Unterverteilerschränken nach DIN EN 18012 geeignet.

Aufbau

revpi-compact-aufbau

PositionKomponenteVerwendung
12 × Analoger Ausgang
(4-poliger Stecker)
Analoge Ein- und Ausgänge
28 × Analoger Eingang
(16-poliger Stecker)
Analoge Ein- und Ausgänge
3Power Supply
(4-poliger Stecker)
Spannungsversorgung anschließen
43 × Status-LEDLEDs
5Reset-TasterReset-Taster
62 × RJ45 EthernetEthernet-Schnittstellen, Netzwerkverbindung herstellen
74 × USB AUSB-Schnittstellen
88 × Digitaler Eingang
(10-poliger Stecker)
Digitale Ein- und Ausgänge
92 × RS485
(4-poliger Stecker)
Serielle Geräte (RS485)
108 × Digitaler Ausgang
(10-poliger Stecker)
Digitale Ein- und Ausgänge
11HDMI
Micro-HDMI
Desktop-Betrieb einrichten
12Micro-USBImage sichern und neu installieren
13LüftungsschlitzeGerät auf einer Hutschiene montieren
Kompatible RevPi Images
  • RevPi Bookworm Image
  • RevPi Bullseye Image
  • RevPi Buster Image
  • RevPi Stretch Image

Siehe RevPi Images.

Virtual Devices

Die Virtual Devices sind bei der Auslieferung mit dem RevPi Image als Komponenten in PiCtory enthalten:

Lieferumfang

Im Lieferumfang enthalten sind

  • RevPi Compact (nicht-modulares Basismodul)
  • 4-poliger Stecker Power Supply
  • 4-poliger Stecker Analog Outputs
  • 4-poliger Stecker RS485
  • 10-poliger Stecker Digital Intputs
  • 10-poliger Stecker Digital Outputs
  • 16-poliger Stecker Analog Inputs
  • Beiblatt

Montage und Anschluss

Der RevPi wurde für den Einsatz in einem Schaltschrank entwickelt. Beachte die Vorgaben für den bestimmungsgemäßen Gebrauch und alle Sicherheitshinweise. Bestimmungsgemäßer GebrauchSicherheitshinweise

warnung

Lebensgefahr durch elektrischen Schlag

Bei Arbeiten an Geräten im Schaltschrank unter Beteiligung von 230-V-Netzspannung besteht tödliche Stromschlaggefahr.

▷ Arbeiten im Schaltschrank nur von Elektrofachkräften durchführen lassen.

▷ Vor allen Arbeiten im Schaltschrank die Spannungsversorgung ordnungsgemäß abschalten.

Führe die Montage und den Anschluss in folgender Reihenfolge aus:

  1. Montiere den RevPi auf einer Hutschiene.

  2. Schließe alle sonstigen Geräte wie Sensoren und Aktoren an. Die Schnittstellen, die Dir dafür zur Verfügung stehen, findest Du im Abschnitt Aufbau.

  3. Schließe einen Bildschirm und eine Tastatur an, wenn Du den RevPi im Desktop-Betrieb betreiben möchtest. Das ist nicht notwendig, wenn Du über eine Netzwerkverbindung auf den RevPi zugreifen kannst.

  4. Schließe zuletzt die Spannungsversorgung an.

Die digitalen Ausgänge müssen über die Anschlüsse 0V EX und 24V EX separat mit Spannung versorgt werden.

Zugriff auf das Gerät

Der Zugriff auf den RevPi erfolgt in zwei Schritten:

  1. Netzwerkverbindung herstellen.

  2. Login am Gerät.

Installiere alle verfügbaren Updates, sobald der RevPi mit dem Internet verbunden ist, damit das System bei sicherheitsrelevanten Features immer auf dem aktuellen Stand ist.

Alternativ ist der Zugriff ohne Netzwerk möglich, siehe Desktop-Betrieb einrichten.

Siehe auch:

Reset-Taster

Der Reset-Taster startet den RevPi neu.

▷ Drücke den Reset-Taster mit einem dünnen Gegenstand (z. B. mit einer Nadel).

❯❯ Der RevPi fährt herunter und startet neu.

Konfiguration

Basiskonfiguration

Ab dem RevPi Bookworm Image (10/2024) erfolgt die Basiskonfiguration der RevPi Geräte über die Web-Applikation Cockpit.

Bis zum RevPi Bullseye Image (04/2024) erfolgt die Basiskonfiguration der RevPi Geräte über die Web-Applikation RevPi Status.

Basismodul in PiCtory konfigurieren

▷ Starte PiCtory.

▷ RevPi Basismodul aus dem Device Catalog wählen und per Drag-and-Drop auf den leeren Slot mit der Positionsnummer 0 ziehen.

     ❯ Im Value Editor erscheinen die konfigurierbaren Werte.

▷ Mit File > Safe as Start-Config. die Konfiguration als Startkonfiguration speichern.

❯❯ Die Startkonfiguration wird direkt nach jedem Boot-Vorgang aufgerufen.

PiCtory Device Data konfigurieren

▷ Wähle unter Device Data ein Bit-weises oder Byte-weises Datenschema für die Ein- und Ausgänge:

  • 15 oder 22 Inputs
  • 4 oder 11 Outputs

Die Anzahl der Ein- und Ausgänge im Value Editor und deren Units (BOOL oder BYTE) ändern sich entsprechend.

Input Values

ValueBedeutung
INP Core_TemperatureCPU-Temperatur
INP Core_FrequencyCPU-Frequenz
INP Din (BYTE)
INP DInBit_1 … 8 (BOOL)
Eingangswerte der digitalen Eingänge
INP AIn_1 … 8Eingangswerte der analogen Eingänge
INP DIn_StatusStatus der digitalen Eingänge
INP DOut_StatusStatus der digitalen Ausgänge
INP AIn_StatusStatus der analogen Eingänge
INP AOut_StatusStatus der analogen Ausgänge

Output Values

ValueBedeutung
OUT RevPiLEDStatusbyte für LEDs
OUT DOut (BYTE)
OUT DOutBit_1 … 8 (BOOL)
Ausgangswerte für digitale Ausgänge, abhängig vom gewählten Datenschema
OUT AOut_1 … 2 (INT)Ausgangswerte für analoge Ausgänge

Memory Values

ValueBedeutung
MEM InputDebounceEntprellfilter für alle Eingänge:
MEM AInMode_1 … 8Modus für den jeweiligen analogen Eingang:

Serielle Geräte (RS485)

Der RevPi verfügt über eine RS485-Schnittstelle, um serielle Geräte wie Sensoren anzuschließen.

Die Datenleitungen der RS485-Buchse sind mit P (positive) und N (negative) bezeichnet. Bei anderen Geräten werden diese Leitungen auch häufig D+ und D- oder A und B bezeichnet.

revpi-compact-rs485-pinout

Beschaltung der RS485-Klemme:

revpi-compact-rs485-wiring

Für die eigentliche Datenübertragung werden nur die Leitungen N und P benötigt. Wir empfehlen Dir, bei größeren Leitungslängen oder höheren Bitraten ein verdrilltes Pärchen zu verwenden.

Falls ein Bezugspotenzial notwendig sein sollte, kannst Du die elektrische Schaltungsmasse an Klemme “┴” dazu verwenden. Diese Verbindung solltest Du jedoch nur herstellen, wenn sie wirklich erforderlich ist. Den Leitungsschirm schließt Du am besten an der FE-Klemme an.

Leitungen mit einer Länge >30m oder Leitungen, die das Gebäude verlassen, müssen immer geschirmt sein. Um die EMV-Eigenschaften des Schirmes noch zu verbessern, verbindest Du den Schirm großflächig mittels einer leitfähigen Kabelschelle mit der geerdeten Montageplatte. Alternativ kannst Du für die Durchführung der Leitung durch die Schaltschrankwand eine leitfähige EMV-Kabelverschraubung verwenden.

Von Linux aus wird die Schnittstelle über das Character Device „/dev/ttyRS485“ angesprochen. Du kannst Bitraten bis 3.000.000 konfigurieren. Allerdings kann es bei mehr als 230.400 Bit/s zu gelegentlichen Empfangsfehlern kommen. Das liegt daran, dass der UART des Raspberry Pi, an den die Schnittstelle angeschlossen ist, nur eine 16 Byte kleine FIFO hat und kein DMA unterstützt. Je höher die Bitrate, desto häufiger passiert es, dass die FIFO nicht schnell genug ausgelesen wird und empfangene Daten verloren gehen. Beispielsweise kommt es bei 460.800 Bit/s zu 1-2 Fehlern pro empfangenen 50 MByte, bei 921.600 Bit/s zu rund 10 Fehlern. Wenn Dein RevPi Compact vorwiegend Daten sendet und nur selten empfängt, kannst Du bedenkenlos auch höhere Bitraten verwenden, ansonsten empfehlen wir Dir aber, nicht mehr als 230.400 Bit/s einzustellen.

Die Schnittstelle verfügt über einen integrierten Abschlusswiderstand mit 120 Ohm. Diese Terminierung ist nach dem Booten ausgeschaltet. Das ist am sichersten, denn wenn mehrere Geräte am RS485-Bus ihre Terminierung einschalten, ist gar keine Kommunikation möglich. Über kurze Kabel ist die Kommunikation auch ohne Terminierung möglich. Für längere Distanzen solltest Du sie einschalten, falls sich Dein RevPi Compact am Ende des Busses befindet.

Das Ein- und Ausschalten der Terminierung geschieht folgendermaßen:
▷ Öffne das Character Device “/dev/ttyRS485” mit open().
▷ Lies die aktuelle RS485-Konfiguration mit einem TIOCGRS485 ioctl() aus.
▷ Setze oder lösche das SER_RS485_TERMINATE_BUS Flag in der „struct serial_rs485“.
▷ Aktiviere die geänderte RS485-Konfiguration mit einem TIOCSRS485 ioctl().
▷ Schließe das Character Device mit close(). Diese Schritte musst Du nach jedem Booten wiederholen, falls die Terminierung eingeschaltet sein soll. Wir haben ein C-Listing mit diesen Schritten vorbereitet, dass Du nur noch zu kompilieren brauchst:

revpi-compact-rs485-script

Ethernet-Schnittstellen

Der RevPi verfügt über zwei Ethernet-Schnittstellen. Jede der beiden Buchsen ist für unterschiedliche Anforderungen konzipiert.

revpi-compact-ethernet

Ethernet-Schnittstelle A

Du kannst an dieser Schnittstelle einen Durchsatz von maximal 11,2 MByte/s erreichen.

Diese Ethernet-Schnittstelle ist an den internen USB-Bus angeschlossen. Er hat eine maximale Bandbreite von 480 MBit/s. Da sich alle Geräte am Bus diese Bandbreite teilen, ist es möglich, dass sich der Durchsatz auf dieser Ethernet-Schnittstelle verringert, wenn Du viele weitere USB-Geräte anschließt. In der Software kannst Du diese Schnittstelle als eth0 ansprechen.

Die MAC-Adresse für diese Ethernet-Schnittstelle ist auf dem Gehäuse aufgedruckt und in der Datei „/boot/config.txt“ gespeichert. Du kannst die MAC-Adresse für eth0 bei Bedarf hier auch ändern. Wenn in der Datei „/boot/config.txt“ keine MAC-Adresse eingetragen ist, z.B. weil Du ein neues Image aufgespielt hast, wird aus der Seriennummer des Compute Module eine eindeutige MAC-Adresse berechnet.

Ethernet-Schnittstelle B

Diese Ethernet-Schnittstelle ist an den SPI-Bus (spi0) angeschlossen. Deshalb teilt sich diese Schnittstelle die Bandbreite mit anderen Geräten, die Du an den SPI-Bus anschließt.

Du kannst bei dieser Schnittstelle einen Durchsatz von bis zu 2,1 MByte/s erreichen. Das ist zwar langsamer als die Ethernet-Schnittstelle A. Doch dafür ist die Ethernet-Schnittstelle B besonders robust gegenüber elektromagnetischen Störungen.

Bitte prüfe, ob diese Schnittstelle für Dein Projekt schnell genug ist. Wenn Du für Dein Projekt eine schnellere Ethernet-Verbindung benötigst, empfehlen wir Dir, die Schnittstelle A zu verwenden oder beide Schnittstellen zusammenzufassen. Du erfährst im folgenden Abschnitt, wie das geht.

In der Software kannst Du diese Schnittstelle als eth1 ansprechen.

Die MAC-Adresse für diese Ethernet-Schnittstelle ist auf dem Gehäuse aufgedruckt und in der Datei „/boot/config.txt“ gespeichert. Du kannst die MAC-Adresse für Ethernet-Schnittstelle B (eth1) bei Bedarf hier auch ändern. Zusätzlich ist die MAC-Adresse in einem eigenen Speicherbaustein der Ethernet-Schnittstelle B (eth1) gespeichert. Diese werkseitige MAC-Adresse wird benutzt, wenn in der Datei „/boot/config.txt“ keine MAC-Adresse eingetragen ist, z.B. weil Du ein neues Image aufgespielt hast.

Schnittstellen zusammenfassen

Um die Vorteile beider Ethernet-Schnittstellen zu nutzen, kannst Du diese zu einer virtuellen Einheit zusammenfassen. Das nennt man „Bonding“. Du kannst dadurch die hohe Bandbreite von Ethernet-Schnittstelle A (eth0) nutzen. Bei Störungen auf dem USB-Bus wird automatisch auf die robuste SPI-Schnittstelle umgestellt.

Wie Du die beiden Ethernet-Schnittstellen zusammenfassen kannst, erfährst Du hier.

Bitte beachte, dass es nicht ohne weiteres möglich ist, beide Ethernet-Schnittstellen ohne Bonding ins gleiche Subnetz zu hängen. Wenn Du auf diese Weise vorgehen möchtest, musst Du die ARP-Konfiguration anpassen und es erfordert Policy Routing. Da das jedoch sehr komplex ist, raten wir Dir von dieser Methode ab.

Analoge Ein- und Ausgänge

Der RevPi Compact verfügt über acht analoge Eingänge und zwei analoge Ausgänge.

Analoge Eingänge

Mit jedem der analogen Eingänge kannst Du eine Spannung zwischen 0 und 10 V messen oder eine RTD-Messung mit einem Widerstands-Temperaturfühler (Pt100/1000) vornehmen. Der Analog-Eingang dient dabei gleichzeitig als Konstantstromquelle. Der Pt100/1000-Sensor wird direkt an den Analog-Eingang angeschlossen. Es ist nur eine Zweileiter-Messung möglich.

Der dafür verwendete Analog/Digital-Converter MCP3550-50 hat eine hohe Auflösung von 21 Bit, benötigt jedoch mit 85 Millisekunden pro Messung vergleichsweise lang. Hinzu kommen 40 Millisekunden für das Ein- und Ausschalten der Konstantstromquelle und für das Umschalten des Multiplexers, über den die acht Eingänge mit dem ADC verbunden sind.

Du kannst auf die analogen Eingänge wahlweise mit piControl oder ohne piControl zugreifen:

Mit piControl wird jeder Eingang mit einer Zykluszeit von einer Sekunde ausgelesen und als 16-Bit-Wert in mV (bei Spannungsmessung) oder in 1/10 °C (bei Temperaturmessung) im Prozessabbild gespeichert. Ob ein Eingang zur Spannungs- oder Temperaturmessung verwendet wird, wählst Du in PiCtory aus.

Ohne piControl reduziert sich die Zykluszeit auf 125 Millisekunden für das Auslesen eines einzelnen Eingangs, und Dir steht der Rohwert in voller 21-Bit-Auflösung zur Verfügung. Aus diesen Rohdaten kannst Du Dir selbst die gewünschten Werte berechnen.

revpi-compact-analog-inputs

Analoge Ausgänge

Dein RevPi Compact besitzt zwei analoge Ausgänge. Diese Ausgänge können eine Spannung zwischen 0 und 10 V ausgeben. Du kannst hier Aktoren, wie z. B. Frequenzumrichter anschließen.

Der dafür verwendete Digital/Analog-Converter DAC082S085 hat eine Auflösung von 8 Bit.

Genauso wie bei den analogen Eingängen kannst Du auf die Ausgänge wahlweise mit piControl oder ohne piControl zugreifen: Mit piControl werden die Ausgänge mit einer Zykluszeit von 250 µs aus dem Prozessabbild aktualisiert. Dort musst Du nur die gewünschte Spannung in mV hinterlegen. Ohne piControl kannst Du die Ausgänge jederzeit aktualisieren. Dazu musst Du allerdings aus der gewünschten Spannung den Rohwert in 8‑Bit‑Auflösung selbst berechnen.

Ein Powerdown der analogen Ausgänge ist in drei Varianten möglich: Terminiert mit 2.5 kΩ, mit 100 kΩ oder hochohmig. Der Powerdown ist nur für beide Ausgänge gemeinsam und nur ohne piControl verwendbar. revpi-compact-analog-outputs

Digitale Ein- und Ausgänge

Der RevPi verfügt über 8 digitale Eingänge und 8 digitale Ausgänge.

Du kannst auf sie wahlweise mit piControl oder ohne piControl zugreifen. Mit piControl werden sie zyklisch alle 250 µs mit dem Prozessabbild synchronisiert.

Digitale Eingänge

Mit den digitalen 24 V-Eingängen können Signale, die z. B. von einem Sensor ermittelt werden, an die Steuerung weitergeleitet werden.

Die Eingänge sind für Spannungen bis 36 V ausgelegt.

  • Die Schaltschwelle, bis zu der garantiert low gemessen wird, liegt bei 7 V.
  • Ab 10,2 V wird garantiert high gemessen.

Die Eingänge sind nicht galvanisch getrennt. Zum Anschließen der Masse steht eine eigene Klemme zur Verfügung.

Über jedem digitalen Eingang ist eine LED, die leuchtet, wenn der Eingang high ist.

Eine Entprellung ist in vier Stufen möglich: 25 µs, 750 µs, 3000 µs oder keine Entprellung. Die Entprellung ist nur für alle acht Eingänge gemeinsam einstellbar.

Die Eingänge erkennen eine Übertemperatur (135 °C): es erfolgt dann eine Warnung im Kernel-Log und es wird ein Status-Bit im Prozessabbild von piControl gesetzt.

revpi-compact-digital-inputs

Digitale Ausgänge

Anders als die Eingänge sind die acht digitalen 24‑V‑Ausgänge galvanisch getrennt.

Die digitalen Ausgänge müssen über die Anschlüsse 0V EX und 24V EX separat mit Spannung von 12 … 36 V versorgt werden. Verwende unbedingt dasselbe Masse-Potenzial, welches die angeschlossenen Sensoren oder Aktoren versorgt.

Die digitalen Ausgänge sind mit einer automatischen Abschaltung bei Übertemperatur geschützt. Diese Abschaltung gilt separat für jeden einzelnen Ausgang.

Über jedem digitalen Ausgang befindet sich eine LED, die leuchtet, wenn der Ausgabewert high ist.

Die Ausgänge werden von einem Watchdog überwacht und auf low gesetzt, wenn sie nicht alle 9 ms neu geschrieben werden. Damit soll sichergestellt werden, dass die Ausgänge bei einem Systemabsturz in einen sicheren Zustand gebracht werden. Dann leuchten auch ihre LEDs nicht mehr. Diese Überwachung funktioniert aber nur, wenn die Ausgänge nicht mit piTest bzw. piControl gesetzt, sondern die GPIOs direkt beschrieben werden. Der Ausgang wird in piControl durch eine Schleife auf 1 gehalten wird, bis der Ausgang aktiv auf 0 gesetzt wird.

revpi-compact-digital-outputs

USB-Schnittstellen

Der RevPi verfügt über 4 USB-A-Schnittstellen. Damit können USB-2.0-Client-Geräte wie USB-Festplatten, Surfsticks, Tastatur oder Maus angeschlossen werden.

  • Die innen liegenden Buchsen (4a) dürfen mit jeweils maximal 1 A belastet werden.
  • Die außen liegenden Buchsen (4b) dürfen mit jeweils maximal 500 mA belastet werden.
  • Die Gesamtlast für alle 4 USB-Schnittstellen darf 2 A nicht übersteigen.

Falls mehr als vier USB-A-Anschlüsse benötigt werden, kann ein USB-Hub angeschlossen werden.

LEDs

LED PWR

Die LED PWR (Power) zeigt den Gerätestatus an.

SignalBedeutung
GrünSpannungsversorgung ist angeschlossen.
RotEs liegt eine Störung der Kommunikation zwischen angeschlossenen Modulen vor.

LED A1 und A2

Die LEDs A1 und A2 sind frei verwendbar.

Die LEDs können für anwenderspezifische Anforderungen verwendet werden wie z. B. eine Netzwerkverbindung anzeigen, Überschreiten eines Speicherlimits anzeigen, einen Prozess überwachen und Störungen anzeigen.

Die LEDs können in der Kommadozeilen-Applikation piTest mit der Variablen RevPiLED geschaltet werden.

Der Ausgang RevPiLED hat eine definierte Bytelänge und verfügt somit über eine bestimmte Anzahl von Bits, die von rechts nach links gelesen werden. Bestimmte Bitpositionen sind jeweils einer LED zugeordnet. Die LED wird geschaltet, indem die jeweiligen Bits auf 0 oder 1 gesetzt werden.

LEDZugeordnete Bitposition
A10 und 1
A22 und 3

Ein LED-Signal wird in der Kommandozeile mit dem Kommando piTest -w RevPiLED,x geschaltet, wobei x dem aus dem jeweiligen Bitmuster errechneten Dezimalwert entspricht.

LEDSignalBitmusterDezimalwert
A1 – A2aus00000
A1grün00011
rot00102
orange00113
A2grün01004
rot10008
orange110012

Um mehrere LEDs gleichzeitig zu schalten, werden die jeweiligen Dezimalwerte addiert.

Beispiel: Wenn gleichzeitig die LED A1 rot und die LED A2 grün leuchten soll, lautet das Kommando piTest -w RevPiLED,6 (Bitmuster: 0110 = Dezimalwerte 2+4).

HINWEIS

Wenn einer bestehenden LED-Schaltung ein Signal hinzugefügt werden soll, muss der Wert für alle gewünschten Signale neu berechnet und geschrieben werden.