Python Code mit revpimodio auf einem Raspberry ausführen

Moderator: RevPiModIO

Post Reply
iotec
Posts: 3
Joined: 26 Sep 2022, 13:52

Python Code mit revpimodio auf einem Raspberry ausführen

Post by iotec »

Wir entwickeln ein System, indem mehrere RevPi Core 3+ mit verschiedenen IO Modulen zum Einsatz kommen.
Auf den RevPis wird jeweils selbst geschriebene Python Software ausgeführt. Die Software verwendet die revpimodio2 Bibliothek um die IO Module anzusteuern.
Wir nutzen die darin enthaltene Simulation der IOs (Ausgänge lesen, Eingänge schreiben), um die Software mit jedem commit automatisiert in unserer GitLab CI zu testen (wir schauen, ob vom Programmablauf die richtigen Ausgänge gesetzt werden, wenn wir parallel bestimmte Eingänge setzen). Dazu haben wir einen GitLab-Runner auf einem RevPi installiert, der die pipeline ausführt. Das funktioniert auch wunderbar.

Nun möchten wir nicht die Python-Programme jeweils einzeln testen, sondern auch das Zusammenspiel der Programme untereinander testen. Wenn nun mehrere Programme gleichzeitig auf der selben RevPi ausgeführt werden, greifen diese gleichzeitig auf ddas selbe Prozessabbild zu, auch im Simulations-Betrieb. Aus diesem Grund soll nun die Software jeweils auf einer eigenen Hardware laufen. Um dafür nicht extra fürs Testen mehrere RevPi Core 3+ anzuschaffen., möchten wir statt dessen RaspberryPis verwenden.

Leider war es uns weder möglich, auf einem Raspberry mit dem standard Raspbian Image unsere Python Software mit der revpimodio Bibliothek zu starten, noch war es uns möglich das offizielle RevPi-Image für den RevPi Core auf einem Raspberry zu installieren. Auf der HannoverMesse 2022 haben wir allerdings die Aussage bekommen, dass dies sehr wohl möglich sei. Nun konnte ich im Netz keine Details zur Umsetzung finden, weshalb ich mich an dieser Stelle hier ans Forum wende, in der Hoffnung hier Hilfe zu bekommen.
Last edited by iotec on 28 Sep 2022, 09:15, edited 1 time in total.
User avatar
nicolaiB
KUNBUS
Posts: 897
Joined: 21 Jun 2018, 10:33
Location: Berlin
Contact:

Re: Python Code mit revpimodio auf einem Raspberry ausführen

Post by nicolaiB »

Hi,

was sind denn die Probleme, die auftreten, wenn ihr revpimodio2 auf dem Raspberry bzw. das RevPi Image auf dem Raspberry nutzen wollt? Letzteres sollte nicht nötig sein.

Gruß Nicolai
iotec
Posts: 3
Joined: 26 Sep 2022, 13:52

Re: Python Code mit revpimodio auf einem Raspberry ausführen

Post by iotec »

Hey,

grundsätzlich funktioniert die Bibliothek wunderbar. Unser Hauptproblem ist das Prozessabbild. Da wir in unserer Simulations-Umgebung auf mehreren Systemen ohne
Anbindung an ein reales RevPi-System arbeiten, besitzen wir keinen Zugriff auf ein Prozessabbild oder einer RevPi-Hardware. Wir haben mehrere Anleitungen gefunden
in denen das Prozessabbild geteilt wurde, nicht jedoch wie dieses von Grund auf simuliert werden kann. Vielleicht ist das auch nicht möglich?

Ein Beittrag von 2017 behandelt grundsätzlich unser Problem nur leider ohne Lösung oder weiteres Vorgehen: viewtopic.php?t=444

Im Grunde lässt sich das Problem mit dieser Frage zusammenfassen:
Wie kann ein, zu RevpiModio2, virtuelles kompatibles Prozessabbild auf dem RPi3/4 inkl. virtueller IO-Module, erzeugt werden?
Last edited by iotec on 28 Sep 2022, 09:20, edited 3 times in total.
User avatar
RevPiModIO
KUNBUS
Posts: 322
Joined: 20 Jan 2017, 08:44
Contact:

Re: Python Code mit revpimodio auf einem Raspberry ausführen

Post by RevPiModIO »

Moni iotec!

Freut mich zu hören, dass ihr die erweiterten Funktionen nutzt!

Ihr könnt bei der Instanziierung die Parameter "procimg" und "configrsc" verwenden um der Bibliothek einen Pfad des Prozessabbilds und der piCtory Konfiguration zu übergeben. Diese Parameter sind noch nicht in der Doku...

Die piCtory Dateien müsstet ihr auf einem RevPi generieren und sie dann auf andere Hardware übernehmen. Das Prozessabbild ist bei dem Parameter "procimg" lediglich eine min. 4kByte große Datei. Sie könnte mit NULL über

Code: Select all

dd if=/dev/zero bs=4096 count=1 of=./proc01.img

oder ähnlich erzeugt werden. Dann wird diese Datei einfach, neben der "configrsc", über den Parameter "procimg" bei RevPiModIO übergeben. Ein Simulator-Programm kann "von der anderen Seite" genau so mit der Datei verbunden werden. Einziger unterschied zum echten Prozessabbild ist, dass es keinen rw Lock gibt (also bei Verwendung von mehreren Instanzen auf die selbe Prozessabbild-Datei).

Bei weiteren Fragen gerne melden!

Gruß
Sven
python3-RevPiModIO - https://revpimodio.org/ || Der RevPi ist das Beste, was passieren konnte!
iotec
Posts: 3
Joined: 26 Sep 2022, 13:52

Re: Python Code mit revpimodio auf einem Raspberry ausführen

Post by iotec »

Vielen Dank für die Hilfe!
Wir werden das so bald wie möglich testen und Rückmeldung geben.
Post Reply