Eigene Module mit PiCtory einbinden

Wie Ihr wisst, haben wir Revolution Pi als Open Source Projekt aufgesetzt und wollen, dass Ihr mit uns eine Community werdet, die dieses Projekt dynamisch vorantreibt. Deshalb werden wir unsere Stromlaufpläne und wichtige Konstruktionsdaten ebenso wie die Quellcodes veröffentlichen. Aber das ist noch nicht alles. Im Shop bekommt Ihr sogar die mechanischen Bauteile zu kaufen, mit denen Ihr Eure Eigenentwicklungen nahtlos in die RevPi Umgebung einbinden könnt!
Hier die Facts:

  • Eigene Treiber oder Anwendungen haben leichten Zugriff auf das Prozessabbild und können so mit allen anderen Anwendungen bequem Daten austauschen.
  • Eigene “RevPi Adapter Profile“-Dateien (RAP-Dateien) ermöglichen die Einbindung eigener Module oder Treiber (=Adapter) in den Adapter-Baum von PiCtory (unser grafischer Konfigurator).
  • Dynamische Vergabe von Speicheradressen im Prozessabbild durch PiCtory auch für eigene Adapter.
  • Eingabemöglichkeit beliebiger vorkonfigurierter Konfigurationsdaten für eigene Adapter in PiCtory.
  • Möglichkeit des Baus eigener Module mit PiBridge-Anbindung, da alle notwendigen mechanischen Bauteile im Shop verfügbar sind.

Zum Verkaufsstart werden wir im Shop ein Set für „Maker“ verfügbar haben. In dem Set erhältst Du alle notwendigen Teile, um ein eigenes RevPi Modul herzustellen. Und sicher würde sich die Community riesig freuen, wenn Du dann Dein Modul auf unserer Plattform vorstellst (es wird bald ein
Forum geben).

Was enthält das Set nun genau?

  • Gehäuseschalen links und rechts
  • Frontdeckel (geschlossen mit Lichtleitern für maximal 6 LED)
  • Blindabdeckung obere Kontaktnische
  • 6 passende SMD Duo-LEDs (grün/rot)
  • PiBridge Kontaktleiste zum THT-Einbau in Platine mit passendem Stecker
  • Stromversorgungs-Buchse zum THT-Einbau in Platine mit passendem Stecker

Du bekommst auf der Plattform die genauen mechanischen Daten für eine passende Platine und den Sourcecode für die PiBridge-Anbindung. Mit wenigen zusätzlichen Bauteilen, die es bei allen Online-Shops für Bauteile gibt, kannst Du Dir damit Dein eigenes Modul bauen. Es tauscht seine Daten dann zyklisch mit dem RevPi Core aus (dafür sorgt unser zentraler Treiber PiControl). Damit es das tun kann, benötigt der Treiber Informationen, die zuvor mit dem Konfigurator PiCtory erfasst werden müssen.

Eigene Adapter in PiCtory verwalten

Im letzten Blogeintrag haben den grafischen Konfigurator PiCtory beschrieben. Bekannte Module oder Treiber (ganz allgemein nennen wir sie „Adapter“) werden in dieser Browser-Anwendung in einem Baum dargestellt. Du kannst dann beliebige Adapter (auch mehrfach) mit der Maus von diesem Baum in den zentralen Arbeitsbereich ziehen und sie dort so anordnen, wie sie später auf der Hutschiene montiert sind. Für Adapter, die nicht auf der Hutschiene als Modul vorhanden sind, gibt es einen getrennten Bereich auf der Arbeitsfläche. Wenn Du so einen Adapter dann markierst, erscheint in einem getrennten Fensterbereich die Liste seiner Ein- und Ausgänge sowie der Konfigurationswerte. Für diese Elemente kannst Du symbolische Namen vergeben (genauer gesagt die Defaultnamen dafür überschreiben). Für Ausgänge legst Du die Zustände (Werte) fest, die beim Start im Prozessabbild stehen sollen. Für Konfigurationswerte kannst Du die gewünschten Einstellungen in die Wertespalte eintragen.

Die “RevPi Adapter Profile“-Datei (RAP-Datei)

Damit nun der von Dir erstellte Adapter auch in der Übersicht aller bekannter Adapter erscheint, musst Du dafür eine RAP-Datei erstellen und auf dem RevPi Core ablegen. Diese Datei hat ein JSON-Format, das wir im Detail auf unserer Plattform zur Verfügung stellen. Im Prinzip steht dort aber einfach nur all jene Information, die PiCtory benötigt, um den Adapter korrekt darzustellen. Außerdem solltest Du ein Bild und eine HTML-Beschreibungsdatei hinterlegen.

Neben Stammdaten für den Adapter gibt es in der Datei eine Liste mit allen Ein- und Ausgängen sowie der Konfigurationswerte einschließlich der Defaults für Bezeichnungen und Werte. In dieser Liste ist natürlich auch der Typ des jeweiligen Wertes definiert, aus dem die Anzahl der Bytes hervorgeht, die dafür automatisch im Prozessabbild reserviert werden. Natürlich gibt es auch Aufzählungstypen, für die eine Liste der gültigen Werte hinterlegt ist (sogar mit Textbezeichnungen).

Wenn nun so eine RAP-Datei mit gültigem Format von PiCtory beim Start gefunden wird, dann kannst Du den Adapter wie einen der von KUNBUS gelieferten Adapter verwenden. PiCtory wird dann in der für PiControl erstellten RSC-Datei („RevPi System Configuration“, JSON-Datei) den benötigen Platz im Prozessabbild berücksichtigen.

Die Runtime

Bei einem PiBridge Modul brauchst Du keine weitere Treibersoftware erstellen. Unser zentraler Treiber PiControl erkennt beim Start Dein selbstgebautes Modul und wird die Daten so, wie in der RAP-Datei festgelegt und dann in der RSC-Datei umgesetzt, zyklisch mit dem Prozessabbild austauschen. Jeder Anwendung stehen nun diese Daten zur Verfügung. Anwendungen können auch die von Dir mit PiCtory für die Ein- und Ausgänge festgelegten symbolischen Namen verwenden, um auf die Daten zuzugreifen.

Schreibst Du einen eigenen Treiber als Adapter (zum Beispiel für einen Transceiver, der über USB angebunden ist), dann musst Du beim Starten des Treibers die zum Adapter zugehörigen Konfigurationsdaten abrufen, die zuvor mit PiCtory festgelegt wurden. Der Zugriff auf diese Konfigurationsdaten geschieht genauso, wie auf Eingangsdaten (siehe Codebeispiel im letzten Blogeintrag): Du kopierst Dir über einen ioctl()-Funktionsaufruf mit dem Parameter KB_GET_CONFIGDATA und der Adresse des Adapter die Konfigurationsdaten in Deinen Treiber. Das ist deshalb so einfach, weil wir die Konfigurationsdaten in einem gesonderten Bereich des Prozessabbildes ablegen, der nicht für den zyklischen Datenaustausch verwendet wird.

Wir sind schon sehr gespannt auf die Projekte von Dir!

6 Gedanken zu „Eigene Module mit PiCtory einbinden“

  1. Hallo KUNBUS-Team!

    Ich würde gerne wissen, ob ich wohl ab Ende November auf den Shop zugreifen kann?

    Ferner möchte ich Bezug auf einen von Volker’s Thread’s nehmen. Hier schreibst Du, dass das System nicht in Richtung Home Automation gehen soll. Ich habe ein Automationsprojekt, bei welchem die Ankagentechnik (Sanitär und Elektrik) eines Hotels automatisiert werden soll. Ferner möchte der Kunde zusätzlich die Zimmer automatisieren. Falls ich die Möglichkeit habe eigene Hardware zu konfigurieren, warum sollte es schlecht möglich sein hier das Ganze zu erweitern, um neben der Anlagentechnik eine Home Automation an zu gliedern? Oder habe ich da was falsch verstanden?

    Viele Grüße

    1. Hallo Haxhi,
      ja, wir wollen spätestens zur SPS/Drives in Nürnberg (22.11.2016) mit dem Shop online sein, wahrscheinlich aber für Vorbestellungen sogar schon Ende Oktober. Die Auslieferungen werden definitiv noch in 2016 erfolgen.

      Zu Deinem Projekt: Bei dem Thema “Home Automation” werden wir uns in 2017 mit einer weiteren Lösung engagieren, die eine für diese Zwecke optimierte Gehäusebauform hat und bei der auf einen Backplane-Bus verzichtet wird. Die Kommunikation zwischen Modulen wird dann ausschließlich über Modbus TCP erfolgen, so dass eine vorhandene Kabelinfrastruktur oder auch WLAN als Transportmedium eingesetzt werden können. Aber natürlich kann man die Insutrial Version des RevPi auch für Home Automation einsetzen, falls die Unterverteilung ausreichend Platz für die hohen Gehäuse bietet. Wri selber haben ein Inhouse-Projekt mit FHEM als Steuerung und ENOCEAN als Funknetz für die Aktoren und Sensoren mit dem RevPi Core konzipiert. Das geht alles super easy, weil ein treiber für einen ENOACEAN Transceiver (USB), der mit dem Prozessabbild Datenaustausch, ganz schnell programmiert werden kann bzw. von FHEM unterstützt wird.
      Daher: JA, Hotelzimmer mit einem RevPi Core und einem DIO plus ein paar Relais auszustatten, das ist möglich und macht unter Umständen auch Sinn.

  2. Ich komme mir langsam wie die Typen vor, die die ganze Nacht vorm Laden campen, weil morgen der Releasetermin ist.

    1. hehe, ich muss mir nicht so Vorkommen solange das bei Kunbus auf der Webseite steht. “Verkauf nur an Gewerbetreibende. Kein Verkauf an Privatkunden.”

      Das sollte dort erst verschwinden dann kann ich als Privatkunde auch dem Anschliessen und Campe dann mit *fg

      1. Hallo Ingo,
        wow! Es immer gut zu wissen, dass es Leser gibt, die so genau aufpassen;-)
        Ja, unser KUNBUS Webshop, den es seit vielen Jahren gibt, ist auf reines B2B Geschäft ausgelegt (das hängt mit vielen rechtlichen Details zusammen).
        ABER: Der neue Revolution Pi Online Shop wird selbstverständlich auch Privatkunden beliefern. Also, hol schon mal deinen Schlafsack und die Isomatte 🙂

Kommentare sind geschlossen.