Edge Computing leicht gemacht

Software-Entwicklung für räumlich verteilte Edges

7. August 2026, 21:39 Uhr | Andreas Knoll
Figure 1 – Universal Programming Studio mit Explorer für räumlich verteilte intelligente Edges.
Figure 1 – Universal Programming Studio mit Explorer für räumlich verteilte intelligente Edges.
© IAC

Für die Entwicklung von Software für räumlich verteilte intelligente Edges bringt IAC Intelligent Automotive Controllers, ein Schwesterunternehmen von PMS Prahm Microcomputer Systeme, jetzt ein spezielles Software-Entwicklungs-Tool auf den Markt.

Diesen Artikel anhören

1986, vor 40 Jahren, stellte das Unternehmen PMS seinen ersten Debugger vor. Über die UART-Schnittstelle des PCs ließ sich der erste 8051-Mikrocontroller online mit den Eigenschaften des Intel-In-Circuit-Emulators debuggen.

Für die Debug-Funktionen wurde ein einfaches Betriebssystem für den Mikrocontroller entwickelt, das Betriebssystem »StandOS«. Es umfasste anfangs im Wesentlichen die UART- und CAN-Kommunikation mit dem damaligen KWP2000- und dem heutigen UDS-Protokoll (Unified Diagnostic Services) sowie die Reset-Einsprungsadresse mit der Idle-Loop und den Receive- und Transmit-Interrupts von UART und CAN, in denen die Download- und Debug-Funktionen realisiert waren. Von Anfang an lief in der Idle-Loop eine einfache Eigendiagnose mit einem auslesbaren Fehlerspeicher. Der ursprüngliche StandOS-Kern findet sich wieder in allen heutigen Debuggern und damit auch in allen heutigen Embedded-Systemen.

1991 wurde dann das Universal Programming Studio (UPStudio) mit einer Siemens-S5-kompatiblen Software-SPS erweitert, also einer grafischen Programmiersprache. Nach und nach kamen vier weitere Programmiersprachen dazu: Flow Chart, Structogram, State Diagram und Decision Table. Die Software-SPS von IAC ist heute IEC-61131- und damit Simatic-S7-kompatibel.

In den vergangenen 40 Jahren habe ich schwerpunktmäßig ECUs (Electronic Control Units) für die Automotive-Industrie entwickelt. Dies hatte dann zur Folge, dass das Betriebssystem StandOS nach und nach alle Eigenschaften der Automotive-Industrie bekam: alle Funktionen von UDS (Unified Diagnostic Services) und alle Funktionen der Eigendiagnose und des DTC-Fehlerspeichers (Diagnostic Trouble Code).

Mit den bedienerfreundlichen Konfiguratoren und Online-Tools des UPStudio lässt sich die Entwicklung professioneller Embedded-Software jetzt erheblich vereinfachen.

Die Arm-Cortex-Mikrocontroller bilden heutzutage die Grundlage für den Standard-Core des UPStudio und des universellen Betriebssystems StandOS.

Warum intelligente Edges?

Edges sind essenziell, weil Sensoren und Aktoren immer räumlich verteilt sind, egal ob es sich um Autos, Flugzeuge, Schiffe oder industrielle Fertigungssysteme handelt. Die Edges müssen die Sensoren und Aktoren optimal vor Ort ansteuern und dazu noch allen anderen Edges ihre Steuerungsdaten zur Verfügung stellen, damit die Daten in allen anderen Edges in Echtzeit zur Verfügung stehen und die Edges somit selbst optimal steuern und regeln können.

Der Computer, der im Auto die Steuersignale des Fahrers verarbeitet und vom Navi und von 5G-WLANs Daten erhält, kann sich heutzutage nur auf seine eigenen Aufgaben konzentrieren und allen angeschlossenen Edges alle Vor-Ort-Aufgaben überlassen. So bekommt man ein System von lauter intelligenten Edges, ganz ohne Zentralcomputer.

Die Vor- und Nachteile des Zentralcomputers

In China boomt die Autoindustrie mit chinesischen Elektroautos. Die chinesische Autoindustrie boomt, weil die neuen und preisgünstigen E-Cars weltweit sehr nachgefragt werden. Denn die neuen E-Autos aus China sind nicht nur billig, sondern auch mit aktueller Computertechnik ausgestattet - mit leistungsstarken IPCs, großen Touchscreen-Displays und dem Mobiltelefon als Key-Less-Entry-Autoschlüssel. Mit den starken Streaming-Eigenschaften aktueller PCs und Smartphones werden in den chinesischen E-Cars Social Media, Teams-Meetings und Videos gezeigt.

Die Autos sind billig, weil viele kostengünstige chinesische Ingenieure auf dem Arbeitsmarkt zur Verfügung stehen. Weil diese Entwickler oft wenig Berufserfahrung haben, programmieren sie die Zentralcomputer-IPCs meist mit der einfachen Programmiersprache Python. Und mit den starken Streaming-Eigenschaften der IPCs werden dann über das Ethernet massenhaft Sensor- und Aktor-Daten aus den Edges gestreamt.

So werden andauernd jede Millisekunde Daten unter anderem von Elektromotoren, Batterien, Klimaanlagen, Lichtsystemen und rotierenden Rädern übertragen. Dies erfordert eine sehr hohe und teure Bandbreite des Netzes und birgt das Risiko von Netzwerküberlastungen.

Die vielen eingehenden Daten werden zum IPC übertragen und dort dauerhaft gespeichert. Weil nur wenige aktuelle Daten für Regelzyklen relevant sind, ist das eine riesige Ressourcenverschwendung und hat eine große Datenkonfusion im Zentralrechner zur Folge.

Der IPC muss dann aus den Rohdaten unter anderem Spannungen, Ströme, Temperaturen, Wegstrecken, Geschwindigkeiten und Beschleunigungen berechnen. Und mit diesen Daten müssen dann die KI-Software-Apps gefüttert werden. Die Ergebnisse der Apps müssen dann wieder »primitiv« gemacht werden, damit sich die vielen Rohdaten zu den räumlich verteilten »dummen« Edges zurücktransferieren lassen.

Weil der Zentralcomputer über das Internet an diverse Clouds angeschlossen ist, ist die gesamte Funktionalität des PKWs gefährdet. Ein enormer Aufwand ist notwendig, um die Gefahren aus dem Internet abzuwehren.

Die Vorteile von Multiprozessor-Systemen

Räumlich verteilte Multiprozessor-Systeme bieten dagegen eine ganze Reihe entscheidender Vorteile. Vor allem bekommt man mit Edges auf Basis von Arm-Cortex-Mikrocontrollern verlässliche Echtzeitfähigkeit innerhalb von Millisekunden. Mit On-Chip-DSPs erhält man obendrein sichere Reaktionszeiten innerhalb von Mikrosekunden.

Edges, die mit den Arm-Cortex-M ausgestattet sind, verfügen über 32-Bit-CPUs mit 250 MHz Clock, 4 MB Flash und 800 KB RAM, so dass sie eine umfangreiche Echtzeit-Software und eine dauernd im Hintergrund laufende professionelle Eigendiagnose ermöglichen. Alle Kommunikations- und I/O-Schnittstellen sind in Silizium realisiert, so dass beispielsweise die Pulsweite eines digitalen PWM-Ausgangs zur Laufzeit durch ein Pulsweiten-Register im Arm-Cortex-M-Core gesteuert werden kann.

Weil alle Analog- und Digital-Funktionen sowie alle Kommunikations-Schnittstellen im Computerchip integriert sind, erhält man kompakte Bauformen und eine stark verbesserte funktionale Sicherheit. Die kompakten Bauformen sind essenziell für modulare Subsysteme und die Massenfertigung am Fließband. Und weil viel externe Elektronik eingespart wird, sinken die Systemkosten drastisch.

Der CAN-Bus ist optimiert für kurze und sichere Antwortzeiten. Und durch die RS-485-Technik ist die Datenübertragung zudem sehr sicher gegen Störeinstrahlung, sehr kostengünstig und sehr schnell.

Der CAN-Bus ist ein »demokratischer« Bus - jede Edge kann mit jeder anderen Edge kommunizieren. Mit dem UDS-Protokoll werden alle Arten von Prozessdaten sehr sicher, schnell und effizient übertragen.

Die Bremssystem-Edge bietet beispielsweise der Tachometer-Edge, der Navi-Edge und der Temporegler-Edge die Geschwindigkeit und die gefahrenen Kilometer des Autos durch entsprechende Diagnose-Services an. Denn das Bremssystem »besitzt« wegen der ABS-Funktion die Signale aus den Rädern und berechnet deshalb für sich und alle anderen Edges diese Daten und stellt sie als Diagnose-Service am CAN-Bus allen anderen Edges zur Verfügung. Alle Daten in diesem AUTOSAR-System sind Echtzeit-Daten und sind global über die CAN- und LIN-Busse verfügbar. Jede Edge in diesem Multiprozessorsystem verhält sich kooperativ, zum Wohl des Gesamtsystems.

Als kostengünstigen Sub-Bus gibt es den LIN-Bus. Dieser ist mit den reichlich vorhandenen UARTs des Arm Cortex M besonders einfach und preisgünstig zu realisieren. Alle UDS-Nachrichten werden hier direkt vom CAN- zum LIN-Bus durchgereicht. Der LIN-Bus ist allerdings ein Master-Slave-Bus. Eine LIN-Edge kann deshalb seine Daten anderen Edges nur über seinen CAN-Master weitergeben.

Netzwerk-Hierarchien

Figure 2 - Die Netzwerk-Hierarchien in der Automatisierungs-Industrie.

Figure 2 - Die Netzwerk-Hierarchien in der Automatisierungs-Industrie.

© IAC

Bild 2 zeigt eine 1000-V-Batterie mit ihren 50-V-Modul-BMS (Batterie-Management-System) und der String-BMS, die mit der intelligenten Edge »ARCONE« realisiert ist (Advanced Realtime Controller Ethernet).

Alle BMS und alle ARCON-Edges sind mit dem StandOS-Betriebssystem ausgestattet und können damit »demokratisch« über CAN UDS kommunizieren.

Das Bild zeigt auch die drei Netzwerk-Hierarchien:

1. den Field and Process Level der BMS, des Strommessers und des Sicherheitsrelais,

2. den Control Level mit den drei ARCON-Edges,

3. den Directive Level mit der SCADA sowie den MES- und ERP-Clouds.

Auf dem Level 0 und 1 hat man dank CAN UDS und StandOS-Betriebssystem alle Vorteile der intelligenten und kooperativen Edges: schelle, schlanke und effektive Regelalgorithmen sowie schnelle, realzeitfähige und sichere Datenkommunikation. Und: Strikte Trennung vom Internet.

Denn die String-BMS muss jede Message vom Internet in CAN-UDS-Messages umsetzen. Damit bildet die String-BMS eine sehr effektive Firewall gegen das Internet.

Grafische Programmierung

Figure 3 - Programmierung in Flow Chart anstelle in C, C++, C# und Python.

Figure 3 - Programmierung in Flow Chart anstelle in C, C++, C# und Python.

© IAC

Es zeichnet sich ganz klar ein neuer Trend ab: In den kommenden Jahren werden grafische Programmiersprachen zunehmend genutzt. Die Hochsprachen C, C++, C# und Python werden in Zukunft nur als interner Zwischen-Code bleiben, wie heutzutage schon Assembler.

Mit grafischen Programmiersprachen können sehr viel mehr Menschen professionelle künstliche Intelligenz für alle Arten von Geräten und Maschinen erstellen. Weil die grafischen Editoren mit viel künstlicher Intelligenz ausgestattet sind und so die Software-Entwicklung besonders einfach und effizient machen. Und weil schon bei der Programmerstellung Fehler verhindert werden und man gleich von Anfang an sauber strukturierte Software erhält. Damit lassen sich sogar die strengen Sicherheitsregeln der Automobil- und Flugzeug-Industrie einhalten.

Das UPStudio bietet fünf grafische Editoren:

Flow Chart: Damit wird der Programmfluss von Software für jeden leicht verständlich editiert.

Function Block: Zur Erstellung von sehr effizienter funktionaler Software.

Structogram: Mit dem Structogram-Editor kann jeder sauber strukturiert programmieren.

State Diagram: Zur Erstellung von Schrittketten für die Automatisierungs-Industrie.

Decision Table: Damit können Anwender leicht in Tabellen programmieren, etwa mit MS-Excel.

Jeder grafische Editor von UPStudio erzeugt als Zwischencode C-, C++- und C#-Code. So lässt sich passende Software für eine breite Palette von Ziel-Hardware generieren:

* C für schlanke und kostengünstige Echtzeitsteuerungen, etwa für die Automotive-Industrie,

* C++ für Industrie-PCs mit dem Linux-Betriebssystem,

* C# für jeden PC und IPC mit Microsoft Windows.

Zum Debuggen ist künftig keine Prototypen-Hardware mehr erforderlich. Denn jetzt kann man seine grafischen Programme direkt im PC debuggen.

Mit UPStudio kann man wie gehabt weiterhin in C, C++, C# und Python programmieren und debuggen. Dies ermöglicht den graduellen Übergang von der textualen zur grafischen Programmierung.

Wie unterstützt UPStudio das Multi-Processing?

Figure 4 - Online-Debugging von Multi-Prozessor-Systemen.

Figure 4 - Online-Debugging von Multi-Prozessor-Systemen.

© IAC

Bild 4 zeigt die Möglichkeiten des Online-Debugging von Multi-Prozessor-Systemen mit dem UPStudio und dem StandOS-Betriebssystem.

Beim Online-Debugging des Flow-Chart-Programms im »Target Computer 1« wird beim Single-Stepping mit der CAN-UDS-Message »Function Control« die Befüllungs-Funktion im »Target Computer 5« aufgerufen, die dort in der Function-Block-Sprache realisiert ist.

Fred Uwe Prahm ist Inhaber von PMS Prahm Microcomputer Systeme und IAC Intelligent Automotive Controllers.

Fred Uwe Prahm ist Inhaber von PMS Prahm Microcomputer Systeme und IAC Intelligent Automotive Controllers.

© IAC

UPStudio öffnet automatisch die Befüllungs-Funktion mit dem Function Block Editor im Unterverzeichnis des Projekts »Target Computer 5«. Dort können Software-Entwickler auf den Verbindungslinien Breakpoints setzen oder Single-Stepping durchführen - ganz nach Belieben.

Wenn die Befüllungs-Funktion mit Single-Stepping verlassen wird, wechselt der Input-Fokus zurück zum Flow-Chart-Programm im »Target Computer 1«, wo die Software-Entwickler weiter Single-Stepping betreiben oder die Software zum nächsten Breakpoint laufen lassen können.

Der Autor

Fred Uwe Prahm ist Inhaber von PMS Prahm Microcomputer Systeme und IAC Intelligent Automotive Controllers.

passend zum Thema


Lesen Sie mehr zum Thema