Der Kern der Revolution – RevPi Core (Teil II)

Revolution Pi Core im Plexiglasgehäuse

Heute setzen wir die Erklärung des RevPi Core fort. Diesmal geben wir einen Überblick über die Softwarekomponenten. Am Ende des Artikels erklären wir, warum wir bestimmte Anschlüsse des Raspberry Pi in unserem RevPi Core nicht nach außen geführt haben.

Grundkonzept

Zunächst einmal ist der RevPi Core eine offene Plattform, auf der angefangen von dem Betriebssystem bis hin zu Applikationen alles installiert werden kann, was auch auf einem Raspberry Pi läuft. Standardmäßig ist auf einem RevPi Core Linux als Betriebssystem mit passenden Treibern für die RevPi IO- und Gateway-Module vorinstalliert. Darauf aufbauend, kannst Du bei uns im Online Shop die Soft-SPS von logi.cals und die SCADA-Software SpiderControl kaufen. Mit diesen Komponenten bekommst Du eine komplette und betriebsbereite SPS. Aber vielleicht möchtest Du ja auch eigene Software unter Linux mit Python schreiben? Dann kannst du einfach unseren Treiber und die optimierte Betriebssystemversion nutzen, um auf alle Prozessdaten zuzugreifen. Wir halten in einem Speicherbereich dafür ein Prozessabbild mit allen aktuellen Prozesswerten vor, in welches ganz einfach geschrieben oder aus dem gelesen werden kann.

Betriebssystem

Wir haben uns entschlossen, Raspbian (eine Debian-Variante) in der Version Wheezy mit RT-Patch des Kernels 4.1.13 vorzuinstallieren. Dies ist aus unserer Sicht der beste Kompromiss so nah wie möglich an der originalen Entwicklungsumgebung eines Raspberry Pi zu bleiben und trotzdem eine hohe Kontrolle über die Priorities der Tasks zu bekommen, die der Scheduler verwaltet. Der Scheduler, der die Ausführung von Tasks durch das Betriebssystem steuert, kann bei diesem modifizierten Kernel umfangreich konfiguriert werden, so dass die üblicherweise durch Netzwerk- und andere IO-Zugriffe verursachten Verzögerungen vermieden werden. Als Anwender unserer Soft-SPS Lösung musst Du Dich mit diesen Details nicht befassen. Aber Programmierer, die ihre eigene Software laufen lassen wollen, unterstützen wir mit technischen Dokumenten, um den Scheduler für eigene Applikationen optimal zu konfigurieren.

PiControl

Basierend auf dem Betriebssystem kannst Du eigene Applikationen installieren. Wir werden in späteren Blogs Beispiele mit den vorhandenen Apps FHEM und Cayenne zeigen. Aber natürlich kannst Du auch mit Python selber Programme schreiben. Damit Deine Applikationen immer vollen Zugriff auf die IO-Erweiterungen der RevPi Familie haben, sollten sie den Treiber PiControl, kurz PiCon nutzen. Dieser Treiber sammelt über die PiBridge (siehe Artikel Nr. 2) mit einer definierten Zykluszeit alle Daten der RevPi-Familie ein bzw. verteilt die Daten auf diese Geräte. Die Daten werden dabei in einem zentralen Speicherbereich, dem Prozessabbild abgelegt. PiCon läuft als „High Priority Task“ unter Kontrolle des Linux-Schedulers. Dadurch ist die maximale Zykluszeit des Treibers definiert. In unserer aktuellen Version liegt diese Zykluszeit für ein System mit 2 IO-Modulen zwischen 5 und 10 ms.

PiCon macht aber mehr, als nur die Datenverteilung. Beim Starten des Systems erkennt PiCon über ein eigenes Protokoll auf der PiBridge alle angeschlossenen Module eines Systems und auch deren physikalische Position. PiCon kann diese Systemkonstellation mit einer Konfigurationsdatei vergleichen, die Du zuvor mit unserem grafischen Konfigurator PiCtory erstellt hast (mehr zu PiCtory weiter unten). In der Konfigurationsdatei können auch spezifische Konfigurationswerte für jedes Modul stehen, die PiCon beim Starten an die Module verteilt, um deren Betriebsarten und Verhaltensweisen einzustellen.

Prozessabbild

Alle zyklisch ausgetauschte Prozessdaten stammen aus einem zentralen Prozessabbild im RevPi Core oder werden dort abgelegt. Das ist ein Speicherbereich, in dem die Prozessdaten an vorbestimmten Adressen abgelegt werden. Dafür ist PiCon zuständig, der mit dem RevPi Core ausgeliefert wird. Die Prozessdaten können nicht nur über die PiBridge ausgetauscht werden, sondern auch über USB, Ethernet oder die GPIO Anschlüsse des Compute Moduls. Entwickler können über einfache Aufrufe des Betriebssystems in das Prozessabbild schreiben oder von dort lesen. Dadurch kannst Du Deine eigenen Programme nahtlos in das modulare Hardwarekonzept einbinden.

Wir werden außer PiControl nach und nach zusammen mit der Community weitere Treiber veröffentlichen, mit denen zum Beispiel Daten zwischen einem MQTT-Broker und dem Prozessabbild ausgetauscht werden können oder über einen seriellen USB-Kanal Daten zwischen dem Prozessabbild und z.B. einem Arduino oder einem ENOcean Transceiver ausgetauscht werden können.

Eigene Software

Du kannst mit Python, C oder anderen Programmiersprachen und den für Raspberry Pi bekannten Tools eigene Anwendungsprogramme schreiben und dabei Linux-Funktionen nutzen, um auf das Prozessabbild zuzugreifen. Alternativ kannst Du aber auch eine komplett fertige Soft-SPS von uns bekommen. Für den Preis einer Tankfüllung bekommst Du bei uns den EN61131-3 kompatiblen Editor logi.CAD 3 für PCs von logi.cals zusammen mit logi.RTS, dem dazugehörigen Runtime-System, das auf dem RevPi Core läuft und die mit logi.CAD 3 erstellten Steuerungsabläufe umsetzt sowie der Visualisierungssoftware SpiderControl.

logi.CAD 3

Das Runtime-System logi.RTS von der Firma logi.cals kann auf dem RevPi Core installiert werden und greift dann zyklisch auf das Prozessabbild zu. Dabei führt es Steuerungsaufgaben aus, die mit dem Editor logi.CAD 3 zum Beispiel auf einem PC erstellt wurden. logi.CAD 3 läuft auf dem offenen Basisframework Eclipse. Dies gewährt eine langfristige Verfügbarkeit der Komponenten und ist zudem auf Windows, Mac OS© X sowie auf sowie auf allen gängigen Linux-Distributionen einsetzbar. Der Editor arbeitet nach der Norm EN61131-3 und kann deshalb von SPS-Programmierern aber auch Einsteigern leicht bedient werden.

Die Zielsetzung von logi.CAD 3 ist die Unterstützung von teamübergreifendem effizientem und effektivem Programmieren von Steuerungsapplikationen. Features wie nachvollziehbare Änderungen im erzeugten Code, perfekte Integration von Qualitätssicherungs- und Aufgabenverwaltungswerkzeugen sowie ein schnelles Feedback bei Eingabe von fehlerhaftem Code sind der Schlüssel, um diese Zielsetzung zu erreichen.

Um die Arbeit mit dem Editor zu vereinfachen, musst Du aber nicht irgendwelche kryptischen Adressen im Prozessabbild angeben, wenn Du auf bestimmte Prozesswerte zugreifen willst. Du kannst dabei symbolische Namen verwenden. Die Zuordnung zwischen diesen Namen und den Adressen im Prozessabbild geschieht durch die oben erwähnte Konfigurationsdatei, die mit unserem PiCtory erstellt wurde. Genau wie PiCon liest auch logi.CAD 3 diese Datei, um die notwendigen Informationen der Konfiguration des Systems daraus zu entnehmen.

PiCtory

Die Konfigurationsdatei kannst Du mit einem PC oder direkt auf dem Revolution Pi erstellen. Und zwar kinderleicht mit unserem grafischen Konfigurator PiCtory“. PiCtory ist eine Webanwendung und kann daher mit jedem Browser bedient werden. Dabei kann PiCtory auf dem RevPi selber laufen oder auf jedem PC. Wir werden die Funktionalität von PiCtory kontinuierlich erweitern und auch Du kannst zum Beispiel eigene Module oder virtuelle Module (Treiber, die unter Linux laufen und Daten mit dem Prozessabbild austauschen) der vordefinierten Liste im Editor hinzufügen. Wir sehen auch PiCtory als eine offene Plattform, die durch die Community erweitert werden kann. Wir werden PiCtory in einem späteren Blogartikel sehr ausführlich vorstellen.

SpiderControl

SpiderControl von der Firma iniNet verwendet einen Webserver (SCADA-Server) auf dem RevPi Core, um die Prozessdaten mit einem beliebigen Browser auszutauschen und zu visualisieren. Du kannst mit dem zugehörigen Editor einfache Anzeigen oder auch hochkomplexe Prozessvisualisierungen mit Alarmen und Sollwerteingaben realisieren. Webserver und Browser können die Daten über eine gesicherte Verbindung auch über das Internet austauschen. Du kannst mit Hilfe eines Basic-Interpreters sogar eigene kleine Codezeilen in diese Software einbinden, um zum Beispiel eine Rezeptverwaltung einzubauen.

Mehr zu logi.CAD 3 und SpiderControl erfahrt ihr in einem späteren Blogartikel.

Serverdienste

Wir werden kontinuierlich Serverdienste (Cloud Services) aufbauen, die Dir eine sehr sichere Umgebung für die Verwirklichung von IoT-Ideen bereitstellen. Dabei werden wir die Lösungen sowohl für Anwender auslegen, die technisch nicht versiert sind und einfach nur auf Mausklick alles fertig konfiguriert bekommen wollen, als auch für „Power-Anwender“ öffnen, so dass umfangreiche Konfigurationen möglich sein werden. Als Anwender unserer Soft-SPS-Lösung kannst Du Dich also entspannen: Wir kümmern uns um die technischen Herausforderungen, wenn Du Deine RevPi Core Geräte von überall aus der Welt sicher erreichen möchtest. Wir kümmern uns dabei um eine sehr starke Datensicherheit und Transparenz der eingesetzten Lösungen. Hier ein paar Beispiele von Diensten, die wir bereits realisiert haben oder in den nächsten 12 Monate realisieren wollen:

  • Eigener DynDNS Server zur Lösung des Problems wechselnder IP-Adressen der RevPi-Geräte.
  • Datensicherheit durch eingebaute Crypto-Chips, die umfangreiche Zertifikate verwalten und sicherstellen, dass nur Du mit garantiert Deinem RevPi verbunden wirst und die Daten verschlüsselt über das Internet ausgetauscht werden.
  • Bereitstellung eines SMS- und Text-To-Speech-Gateways mit hoher Verfügbarkeit und minimaler Reaktionszeit, um zum Beispiel Systemalarme zu versenden.
  • Hosting von MQTT Brokern und Bereitstellung einer nicht abhörbaren Punkt-zu-Punkt-Verbindung zwischen mehreren RevPi Core.
  • Bereitstellung eines Bi-Data-Gateways z.B. zu AWS und anderen Diensten.
  • Bereitstellung einer Assetverwaltung für Kunden mit vielen RevPi Core Geräten als Webserver-Lösung erreichbar über Browser.

Sicher wird unsere Community noch viel mehr Wünsche äußern, die wir prüfen und wenn es Sinn macht nach und nach realisieren werden.

Nun noch wie versprochen ganz kurz ein paar Worte zu den Raspberry Pi-Schnittstellen, die wir mit unserem RevPi nicht unterstützen:

DSI und CSI

Diese beiden Schnittstellen für exotische Kameramodule und LCD-Panels haben wir nach gründlicher Überlegung nicht nach außen geführt. Im industriellen Bereich würden solche hochsensiblen Signalleitungen außerhalb eines Gehäuses nicht wirklich Sinn machen. Stattdessen lassen sich Kameras oder Displays über die USB und HDMI Schnittstellen anbinden. Tests haben allerdings ergeben, dass die Rechenleistung eines Compute Modules nur sehr bedingt für Bildverarbeitung in Echtzeit ausreicht (unabhängig davon, ob CSI oder USB als Schnittstelle verwendet wird). Daher reicht die Übertragungsbandbreite von USB Kameras voll und ganz. Wir lassen uns aber für kommende Versionen der Hardware gerne vom Gegenteil überzeugen.

Raspberry Pi Pfostensteckverbinder

Auch der beim Raspberry typische Pfostensteckverbinder zum Anschluss von digitalen Ein- und Ausgangssignalen (GPIO, I2C, UART, SPI) macht im industriellen Bereich nicht wirklich Sinn, weil diese Art Eingänge nicht die in den Normen vorgeschriebenen Störfestigkeiten oder Schaltschwellen erfüllen würden. Digitale und Analoge Signale werden dem RevPi Core über spezielle Zusatzmodule bereitgestellt. Allerdings können die GPIO-Ausgangs-Signale des Compute Modules per Software zum Prozessabbild und von dort zu den externen IO Modulen umgeleitet werden. Auf diese Weise können viele Raspberry-Programme, die GPIOs als Ausgang nutzen, unverändert auf dem RevPi Core laufen.

14 Gedanken zu „Der Kern der Revolution – RevPi Core (Teil II)“

  1. Hallo Volker,

    ist der Revolution- Pi- Core im Klarsicht- Gehäuse auch das Modul, wie es auf der Messe ausgestellt werden wird? Als Anregung vielleicht, Ihr könntet doch eine Art Tutorial herausbringen, damit sich die Anwender bzw. Interessenten mit dem Revolution Pi und seinen spezifischen Eigenschaften vertraut machen können…

    1. Selbstverständlich haben wir Tutorials in der Planung (siehe auch Diskussion zum Thema Unterrichtsmaterial), die dann von der Plattform abrufbar sein werden. Und nein, das Glasgehäuse ist ein kostbares Unikat von Swarovski (R), das man nicht kaufen kann 😉

    1. Hallo Karsten,
      wir bitten um ein wenig Geduld. Es wird zu dem Thema Security einen eigenen Newsletter geben, in dem wir die dann endgültigen technischen Daten veröffentlichen werden. Aktuell sei nur so viel gesagt:
      Der ATMEL ATECC508A Chip wird Dir als User nicht für eigene Zwecke offen stehen, sondern ist für Sicherheitstechniken von uns (Aufbau von sicheren Serververbindungen, Authentifizierung der HW für Lizenzfreigaben, etc.) vorbehalten. Seine Inhalte sind naturgemäß nicht “open source”, einige davon können selbst wir nicht beschreiben oder auslesen 😉

  2. Hallo Volker,
    alles klar dann bin ich mal auf den Newsletter gespannt 🙂

    Wichtig für mich wäre das Thema der Ende-zu-Ende-Verschlüsselung bzw. Signierung. D.h. dass ich, z.B. über eine von euch bereitgestellte API, ein Schlüsselpaar erzeugen kann dessen privater Teil den Chip nicht verlässt. Und später dann, z.B. über die gleiche API, Nachrichten mit dem privaten Schlüssel verschlüsseln oder signieren kann.

  3. Beim RevPi Code wird ein 2885 Sockel eingesetzt. Entspricht dies dann einem RP 2? Ist auch an einen Quad Core (RP 3) gedacht?

    1. Hallo Claus,
      der RevPi Core verwendet das original Compute Module (“CM”) von Raspberry Pi, welches in einem DIMM-Sockel auf der hauptplatine steckt. Das CM wird aktuell nur in als CM1 geliefert, welches kompatibel zum Raspberry B+ ist (also nicht RP 2!). Bis zum Jahresende (laut RP org) wird das Pinkompatible CM3 ausgeliefert werden, welches in der Tat zum Rp 3 kompatibel ist und den 4-Kern SoC beinhaltet.
      Wir haben inzwischen ein CM3 für Testzwecke und werden sehr bald mitteilen können ob und unter welchen Umständen unser RevPi Core mit dem CM3 ausgestattet werden kann. Hauptproblem ist dabei, dass das CM3 bis zu 1,5 W mehr Verlustleistung erzeugt, die u.U. zu einem Derating bei der zugelassenen ambient Temperature führen. So etwas können wir aber erst nach Tests in der Klimakammer spezifizieren. Wir bitten daher um ein wenig Geduld.

        1. Hallo Klaus,
          danke für die Info! Das sieht ja wirklich vielversprechend aus…
          Das CM3 wird ja hoffentlich dann im Januar auch in Stückzahlen lieferbar sein. Wir werden sehen, was die Ergebnisse unserr Tests hinsichtlich der Wärmeabgabe ergeben.

          Noch eine Bitte an Dich: Lass uns künftig das Forum nutzen, um solche nachrichten möglichst vielen Usern zugänglich zu machen. Wir werden dann auch irgendwann die Kommentare aus dem Blog ins Forum kopieren (wenn wir endlich mal wieder ein wenig Zeit für solche Aufgaben finden ).

Kommentare sind geschlossen.