"We are back" « oc.at

Embedded Bereich - Linux und Python

fresserettich 17.03.2025 - 10:22 537 17
Posts

fresserettich

Here to stay
Registered: Jul 2002
Location: hier
Posts: 5472
Hallo zusammen!

Aktuell bin ich in einer Konzept-Phase für eine Maschine ein neues Steuerungs-Konzept auszuarbeiten. Dabei handelt es sich um ein industrielles Umfeld (Maschinenbau). Es geht um ca. 1000 Stück im Jahr.

Die Software für die Maschinensteuerung gibt es grundsätzlich ist aber aktuell auf eine SPS am laufen bzw. auf einem Mikrocontroller in Java. Muss als fix neu geschrieben werden, aber vom Prinzip und von den Abläufen vorhanden.

Intern sind 2 Programmierer vorhanden:
1 x sehr erfahrener SPS-Programmierer der die Maschine super kennt
1 x ein frischer HTLer (Informatik)

Dabei geht es um eine Ansteuerung der Hydraulik was im Prinzip alles über DI, DO und AI (Ansteuerung + Sensorik) basiert. Weiters ist das senden von Daten in die Azure Cloud ein Thema, über ein Mobilfunk-Modem.

In einer erweiterten Variante soll auch eine HMI angesteuert werden können bzw. programmiert werden. Wobei hier die Komplexität der HMI gering ist. Weiters soll hier ein WLAN-Modul angesteuert werden können.

Dazu habe ich mir unter anderem auf der Embedded World ein paar Eindrücke geholt.

Was mir von der HW her eigentlich recht gut gefallen würde, wären entsprechende "IoT"-Gateways welche alle auf einem Linux laufen und auch gut von der HW mit Erweiterungsmodulen skalierbar ist. Weiters gibt es hier eine entsprechende Auswahl an Lieferanten.

Die Lösung mit Linux finde ich eigentlich recht spannend, aber es ergeben sich für mich ein paar Fragen:

1. Firma X kann das den Rechner/IoT-Gateway nicht liefern --> wie schnell und mit wieviel Aufwand ist hier die Portierung auf eine andere HW ebenfalls mit Linux möglich?
Ich gehe davon aus, dass hier fast alle in diesem Umfeld mit ähnlichen Libs etc. arbeiten?

2. wie sieht das ganze mit dem Thema Security und Patch-Management aus? Die neuen Gesetzgebungen bringen hier sicher höhere Anforderungen mit sich (obwohl sicher noch nicht alles klar ist). Da eben keine große SW-Entwicklungsabteilung vorhanden ist Frage ich mich nach dem Aufwand und wie einfach das stemmbar ist?

3. ist die Programmiersprache ein großes Thema. Klar ist C oder C++ möglich, aber da jemand zu finden der das kann ist gar nicht so einfach und auch extern sind hier Leute schwierig zu bekommen.
Python hört man immer wieder und scheint auch im Embedded-Bereich stark im kommen zu sein. Aber wie sieht es hier mit dem Thema Debugging etc. aus?
Richtung Python findet man sicher leichter Programmierer.

BG
:fresserettich:

charmin

Elder
0_o
Avatar
Registered: Dec 2002
Location: aut_sbg
Posts: 15617
Die Frage ist eher: wie bringst du deine Daten ins Azure mit C oder C++?
Mit den Azure CLI tools?
Da würd ich noch rechechieren.

Python debugging geht ohne Probleme. Welche Fragen hast du genau?

Mach dir auch gedanken in Richtung CI/CD, besonders auch Deployment.
Ich baue unsere embedded gschichten in ein Docker Image, welches ich in Azure bauen lasse und welches dann deployed wird am Endgerät.

Betreffend Libs: Ich gehe eher davon aus, dass jeder seine eigene Suppe kocht ehrlichgesagt. Du kannst aber schonmal checken ob es Python libs gibt, bzw in welcher Sprache. Dann erübrigt sich die Frage nach der Programmiersprache eh.

fresserettich

Here to stay
Registered: Jul 2002
Location: hier
Posts: 5472
ad Debugging

wenn man das Debugging von einer SPS kennt. Sprich einen Watcher wo ich sehr komfortabel durchsteppen kann und die Variablen alle sehe soll ich auf Python Seite angeblich nicht geben. Oder sind hier meine Informationen falsch?

Longbow

Here to stay
Avatar
Registered: Feb 2003
Location: Homeoffice
Posts: 5475
Zitat aus einem Post von fresserettich
wenn man das Debugging von einer SPS kennt. Sprich einen Watcher wo ich sehr komfortabel durchsteppen kann und die Variablen alle sehe soll ich auf Python Seite angeblich nicht geben. Oder sind hier meine Informationen falsch?
Profile Posts
Report
Wer sagt, dass es das nicht gibt?
https://openbook.rheinwerk-verlag.de/python/35_001.html

Was mir nicht klar ist: Willst du jetzt plötzlich deinen realtime control stack in python umsetzen? Oder auf dem OT Gateway irgendwelche handgeschnitzten Skripte laufen lassen?

fresserettich

Here to stay
Registered: Jul 2002
Location: hier
Posts: 5472
okay, sorry falls das nicht klar rüber gekommen ist.

Aktuell wird die Maschine (von der Mechanik her ähnlich) entweder von einem Mirkocontroller oder eine SPS angesteuert.

In Zukunft möchte man eine HW haben und für die erweiterte Variante variabel IOs + Display erweitern können. Eventuell gibt es für letztere Variante eine Leistungsstärke HW aber von SW-Plattform möchten wir Programmierung her wollen wir hier gleich sein. Im Idealfall nur ein anderer IPC oder eine Bestückung.

Sprich die ganze Maschinensteuerung + Datentransfer in die Cloud über MQTT soll in Python geschrieben werden. Das ganze ist also dann auch das "Herz" der Maschine und muss stabil sein. Auch der Datentransfer der Maschinendaten in die Cloud wird dann in eine Web-Lösung in dem Kunden angeboten wir umgesetzt.

also da laufen nicht einfach ein paar Skripte.

Die Maschinen-HW bleibt gleich und somit ist Prozess und Anforderung bekannt. Die Steuerungs-HW "läuft aus" und daher die neue Entwicklung

edit:
@debugging, daher auch das Wort "angeblich" in meinem Post. Schaut schon nicht so schlecht aus
Bearbeitet von fresserettich am 18.03.2025, 10:00

charmin

Elder
0_o
Avatar
Registered: Dec 2002
Location: aut_sbg
Posts: 15617
man könnte auch ros2 andenken.
dort können C++ und Python programme easy untereinander kommunizieren und man kann alles modular aufbauen. Bspw eine eigene Node (evtl sogar in einem docker) für die MQTT Kommunikation, welche die Daten von C++ oder Python Nodes bekommt.

fresserettich

Here to stay
Registered: Jul 2002
Location: hier
Posts: 5472
Zitat aus einem Post von charmin
man könnte auch ros2 andenken.
dort können C++ und Python programme easy untereinander kommunizieren und man kann alles modular aufbauen. Bspw eine eigene Node (evtl sogar in einem docker) für die MQTT Kommunikation, welche die Daten von C++ oder Python Nodes bekommt.

auch ein interessanter Ansatz. Das kenn ich noch gar nicht.

Frage was hier die HW-Anforderungen sind und ob das dann nicht wieder ein Tool mehr ist btw. wir wieder mehr ins Linux-Know-How etc. rein kommen. Bezüglich HW wir möchten hier eigentlich auf einer kleinen kostengünstigen HW bleiben.



mein Ziel ist es eher primär die Applikation bei uns zu lassen und uns nicht mit den tiefen von Linux etc. zu beschäftigen. Aber Ansatz ist interessant :)

@Debugging
was ich gemeint habe ist, dass man sich z.B. bei einer SPS recht komfortabel auf eine Maschine verbinden kann und dort mit einem "Watcher" mit schauen kann. Sprich Maschine hat ein Problem und ich kann da online mit schauen. Da tue ich mir mit Python schwer oder?
Bearbeitet von fresserettich am 18.03.2025, 11:02

Vinci

hatin' on summer
Registered: Jan 2003
Location: Wien
Posts: 5843
Ich lehne mich mal soweit aus dem Fenster zu behaupten dass wenn die aktuelle Steuerung in Java performant genug war, dies in Python auch kein Problem sein wird. Offensichtlich ist das ganze zeitunkritisch und so würde ich mir C/C++ oder irgendwelche Mischlösungen gar nicht erst antun.

Die üblichen Python Probleme ala Skalierbarkeit entfallen bei heißen 2 Entwicklern ebenfalls.

Longbow

Here to stay
Avatar
Registered: Feb 2003
Location: Homeoffice
Posts: 5475
Das liest sich jetzt viel salziger als ich es meine, ich formuliere es aber absichtlich provokativ:

Also der Plan ist statt einer offiziell zertifzierten und per vendor support unterstützen SPS einfach selbst ein busybox(or whatever) linux + preemptive_patch zu stricken und diese magic box macht dann eh auch gleich nicht nur die !realtime! control logic (in einem _garbage collected_ python event loop :)), sondern fährt nebenbei auch noch die HMI sachen (je nach maschine 2000+ values) und gönnt sich internet access "zwengs da cloud warads".

Die Automatisierungspyramide ist jetzt eine Pizza geworden. :D

Diesen Stack of Doom aber auf 1000 reale Maschinen in echten Shopfloors auszurollen, wo dann wirklich Leute um 3 in der früh anrufen -> "Mut kann man nicht kaufen". Durch deinen custom-stack sind natürlich auch dann sämtliche Instandhalter bei den Firmen chancenlos, weil die anstatt gängiger SPS Tools (IEC 61131) plötzlich custom python code debuggen müssen? Da kann man dann den VWAG weg gehen und rund um die custom software noch eine custom debugging toolchain bauen ;) Wer macht eigentlich die ganzen Security updates und Software Wartungen? Wer macht das security audit vorab? Wer haftet für Schäden im Produktionsunternehmen wenn mygithublibrary.py leider doch noch eine offene Scheunentüre hatte?
--
Für mich ist diese Lösung auf dem Level einer Bachelor-/Masterarbeit und da hätte ich auch selber mega Bock drauf gehabt sowas umzusetzen. Aber die Silver Bullet Wonderbox im Realeinsatz, da geb ich als Integrator lieber dem Siemens, Beckhoff, Schneider, B&R .... ein paar Euros und meine MA bzw. meine Haftpflichtversicherung können in der Nacht ruhig schlafen.

fresserettich

Here to stay
Registered: Jul 2002
Location: hier
Posts: 5472
Mahlzeit!

Danke für einen Input Longbow.

Ganz so ist es nicht. Wie die meisten schon rausgelesen haben geht es doch um ein konkretes Business und daher möchte ich nicht alle Details in einem öffentlichen Bereich schreiben.

die aktuelle Situation ist so, dass man mehrere sagen wir mal grob 3 verschiedene Maschinentypen hat, wobei zwei sehr ähnlich von der Mechanik sind und der Großteil (ca. 90 %) auf einer custom HW und Java läuft.

die komplexeren Maschinen haben aktuell eine SPS und leider gibt es hier schon 3 verschiedene Hersteller. Sagen wir mal so, dass ist historisch so gewachsen.

Jetzt gibt es aber die Spezialanforderung, dass die Maschinen häufig transportiert werden und dabei nicht am Strom sind. hier möchte man aber dann in einem Art Akku-Betrieb einmal am Tag die GPS-Position versenden können. Und somit fällt eigentlich eine SPS aus dem Rennen. Weiters hast du beim SPS-Hersteller im das Problem, du bist komplett in seiner Welt gefangen. Sprich kann der nicht liefern hast du Pech.

Wir wollen uns kein Linux selber basteln, sondern vom Lieferanten eines IPC oder Custom HW das Linux zur Verfügung stellen lassen. Dieser ist dann auch für die Bereitstellung der Patches verantwortlich. Manche bitten sogar noch Unterstützung bei der Toolchain für die Ausrollung.

Ich habe trotzdem großen Respekt davor auch wenn wir hier Unterstützung bekommen.

Grundsätzlich läuft das alles ja jetzt schon nur möchte ich eben mit der neuen Steuerung eine einheitliche Plattform haben. Sprich es ist mit mehreren Lösungen so in Serie.

Also möchte ich nicht den Teufel an die Wand malen.

spunz

Elder
Elder
Avatar
Registered: Aug 2000
Location: achse des bösen
Posts: 11307
zum senden der Position würde ich einen Lora GPS Tracker vorschlagen.

Longbow

Here to stay
Avatar
Registered: Feb 2003
Location: Homeoffice
Posts: 5475
Jetzt bin ich noch viel verwirrter ^^

Also eigentlich wollen wir eh nur einen esp32 mit akkupack der "once a day" gps schickt? :D

Viper780

Elder
Er ist tot, Jim!
Avatar
Registered: Mar 2001
Location: Wien
Posts: 50611
Das GPS Thema kannst aber komplett losgelöst von der Steuerung machen.
Ein billiges Smartphone auf die Maschine kleben und alle 3h den Standort schicken lassen wäre mein Prototyp.

Es gibt fürs Flottenmanagement zB für LKW aber auch im Hobbybereich für Wohnmobile GPS Tracker mit LTE.
Mit traccar.org und Freematics auch zum selbst bauen und Opensource.
Aber auch Produkte mit App und Abo zB von Onntrack, Paj, Salind, Cobblestone,...

Die kosten 30-100€ fürs Gerät und je nach Abo Modell 10-60€ im Jahr

fresserettich

Here to stay
Registered: Jul 2002
Location: hier
Posts: 5472
Zitat aus einem Post von Viper780
Das GPS Thema kannst aber komplett losgelöst von der Steuerung machen.
Ein billiges Smartphone auf die Maschine kleben und alle 3h den Standort schicken lassen wäre mein Prototyp.

Es gibt fürs Flottenmanagement zB für LKW aber auch im Hobbybereich für Wohnmobile GPS Tracker mit LTE.
Mit traccar.org und Freematics auch zum selbst bauen und Opensource.
Aber auch Produkte mit App und Abo zB von Onntrack, Paj, Salind, Cobblestone,...

Die kosten 30-100€ fürs Gerät und je nach Abo Modell 10-60€ im Jahr

Sorry, hetze heute ein bisschen zwischen den Terminen hin und her ...

korrekt, grundsätzlich kann man das GPS-Thema losgelöst betrachten. Wenn man das schafft, kann man die Steuerung wieder eigenes denken.

Aktuell ist das uns leider keine vernünftige getrennte Lösung untergekommen.

Was halt auch noch wichtig ist, ist das Thema Robustheit und Zuverlässigkeit:
wir brauchen -25 bis 60 Grad, sprich Outdoor
das Ding muss auch robust und zuverlässig funktionieren Die Daten brauchen wir in unserer Cloud und auch auf der Maschine
das Feature Positions-Erkennung ist wichtig und muss dann auch funktionieren

Eventuell auch einen externen Antennenanschluss.

Aber danke gleich mal für die Tipps, das ist mal ein neuer Ansatz.

spunz

Elder
Elder
Avatar
Registered: Aug 2000
Location: achse des bösen
Posts: 11307
Siemens ANT895-6ML => passend zur Logo und S7, vergleichbares bieten aber auch abb, beckhoff und co an.

Alternativ eben Lora, auch dafür hat eigentlich "jeder" gängige Hersteller einen Connector oder gleich eigene Gateways.
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz