EPSIASoftwareentwicklung für komplexe Systeme · BerlinEN
Referenz

Bestehende Maschinensoftware übernommen: Sortieranlage wieder baubar, Fehler behoben und weiterentwickelt

EPSIA übernahm für einen Technologiekonzern die bestehende Software einer Sortieranlage. Die Software war zuvor von mehreren externen Entwicklern bearbeitet worden; der vorhandene Quellcode ließ sich nicht mehr zuverlässig in eine lauffähige Release-Version überführen.

EPSIA stellte zunächst eine reproduzierbare Build- und Release-Umgebung her, analysierte anschließend Maschinenabläufe und Softwarearchitektur und entwickelte eine Diagnoseversion für Störungen im laufenden Betrieb. Auf Grundlage der gewonnenen Daten wurden Fehler gezielt behoben. Heute betreut und entwickelt EPSIA die Maschinensoftware kontinuierlich weiter.

  • 32.791Zeilen bestehender C++-Code übernommen und weiterentwickelt
  • 2.654Änderungen in der übernommenen Codehistorie seit 2022
  • 10Baugruppen mit eigenen Zustandsautomaten
  • 90I/O-Signale und 4 Servoachsen an einem Steuerrechner

Die Fallstudie zeigt den Projektverlauf in sieben Schritten: Übernahme, Anlage, Systemanalyse, Diagnose, Fehlerbehebung, Weiterentwicklung und Ergebnis.

1 Übernahme: Quellcode ohne reproduzierbaren Build

Die Software der Sortieranlage war über mehrere Jahre von wechselnden externen Entwicklern bearbeitet worden. Der Betreiber verfügte über den Quellcode, jedoch nicht mehr über einen verlässlichen Weg, daraus eine reproduzierbare lauffähige Version der Maschinensoftware zu erstellen.

Damit waren Weiterentwicklung und systematische Fehlersuche erheblich erschwert. Selbst kleinere Änderungen an den Maschinenabläufen waren mit dem Risiko verbunden, keinen verlässlich reproduzierbaren Softwarestand ausliefern zu können.

EPSIA übernahm 2024 den vorhandenen Softwarebestand, sichtete und archivierte Quellcode und Abhängigkeiten und stellte daraus eine eigene reproduzierbare Build- und Release-Umgebung mit dem bestehenden Funktionsumfang her.

Damit entstand zunächst eine definierte technische Ausgangsbasis für alle weiteren Arbeiten.

2 Anlage: Präzisionskugeln vermessen und sortieren

Die Anlage sortiert kleine Präzisionskugeln anhand ihres Durchmessers. Zuführung und Vereinzelung bringen die Kugeln einzeln auf ein Sortierrad. Dieses transportiert sie getaktet zu einer Kamera mit eigener Blitzsteuerung.

Die Bildverarbeitung vermisst jede Kugel. Anschließend ordnet die Steuerungssoftware sie abhängig von Artikel und ermittelter Durchmesserklasse einem Sammelbehälter zu. Welche Klassen für einen Artikel gelten und welcher Behälter welcher Klasse zugeordnet ist, wird über die jeweilige Fachkonfiguration festgelegt.

Schematische Zeichnung der Prozessteilnehmer einer Sortieranlage: links der Steuerrechner unter Linux mit C++/Qt, zehn Baugruppen mit eigenem Zustandsautomaten, Fachkonfiguration je Artikel, Produktionsergebnis und Diagnose-Protokoll; rechts über EtherCAT vier Elmo-Servoantriebe für Zuführung, Vereinzelung, Sortierrad und Lift sowie Beckhoff-I/O mit 27 Eingängen und 63 Ausgängen für Türen, Ampel, Taster, Vakuum, Druckluft und Ventile samt Sicherheitsrelais; über die Kamera die Bildverarbeitung mit HALCON und eine Beleuchtungskugel; seriell eine Blitzsteuerung auf einem ESP32, die Behälterelektronik mit Anzeige je Behälter, ein Mikrocontroller und ein Netzteil.
Die Prozessteilnehmer der Sortieranlage: vier Servoachsen und 90 I/O-Signale am EtherCAT, Kamera mit eigener Blitzsteuerung, Behälterelektronik und Netzteil an seriellen Schnittstellen — alle an einem Steuerrechner.

Das bestehende System umfasst unter anderem:

Steuerung
Linux-basierter Steuerrechner mit C++ und Qt; zehn Baugruppen werden über jeweils eigene Zustandsautomaten gesteuert.
Antriebe
Vier Elmo-Servoantriebe über EtherCAT für Zuführung, Vereinzelung, Sortierrad und Lift.
Ein- und Ausgänge
90 I/O-Signale über sechs Beckhoff-Klemmen am EtherCAT, unter anderem für Türen, Signalleuchten, Taster, Vakuum, Druckluft und Ventile.
Sicherheitstechnik
Not-Halt und Türüberwachung werden über separate Sicherheitstechnik realisiert; die Maschinensoftware verarbeitet die für den Betrieb relevanten Zustände.
Bildverarbeitung
MVTec HALCON zur Vermessung der Kugeln sowie eine separate Blitzsteuerung auf Basis eines ESP32.
Weitere Komponenten
Serielle Kommunikation mit der Elektronik der Sammelbehälter, einem weiteren Mikrocontroller und einem Netzteil.

Umfang der übernommenen Software

Anlagensoftware
32.791 Zeilen C++ in 372 Dateien, zusätzlich 9.150 Zeilen Qt-Oberflächen
Blitzsteuerung
1.951 Zeilen C++ für den ESP32 mit PlatformIO
Änderungen
2.654 in der Codehistorie seit 2022
Baugruppen
10 mit Zustandsautomaten
Achsen
4 Elmo-Servoantriebe über EtherCAT
I/O-Signale
90 an 6 Beckhoff-Klemmen

3 Systemanalyse: Maschinenabläufe gemeinsam mit dem Betreiber verstehen

Nach der technischen Übernahme des Softwarebestands analysierte EPSIA das Verhalten der realen Anlage gemeinsam mit dem Betreiber.

Im November 2024 wurden vor Ort Maschinenabläufe, Baugruppen, Schnittstellen und bekannte Störungen systematisch durchgearbeitet. Dabei wurde der vorhandene Quellcode mit dem tatsächlichen Verhalten der Anlage abgeglichen.

Aus dieser Analyse entstand eine Entwicklungsagenda. Sie legte fest, welche Bereiche des Systems zunächst genauer untersucht werden mussten und welche bestehenden Probleme für den Produktionsbetrieb die höchste Priorität hatten.

4 Diagnose: Maschinenzustände nach einer Störung rekonstruieren

Ein wesentlicher Teil der gemeldeten Störungen trat nur während des laufenden Produktionsbetriebs auf und ließ sich nicht gezielt reproduzieren. Für eine belastbare Fehleranalyse reichten die vorhandenen Informationen deshalb nicht aus.

EPSIA entwickelte 2025 eine neue Softwareversion mit erweiterter Diagnose und Protokollierung. Die Software zeichnet relevante Zustände, Übergänge und Abläufe der einzelnen Baugruppen so auf, dass sich das Verhalten der Anlage nach einer Störung zeitlich nachvollziehen lässt.

Damit konnten Fehler nicht mehr nur anhand ihrer sichtbaren Folgen untersucht werden. Die Diagnoseinformationen zeigten, welche Zustände und Ereignisse unmittelbar vor einer Störung tatsächlich aufgetreten waren.

5 Fehlerbehebung: Änderungen auf Grundlage gemessener Abläufe

Auf Grundlage der Diagnoseinformationen behob EPSIA bestehende Fehler schrittweise. Änderungen wurden jeweils in eigenen Softwareversionen umgesetzt und anschließend in der laufenden Fertigungsumgebung geprüft.

Zu den umgesetzten Änderungen gehören beispielsweise:

  • Der Lift wird nach einem Produktionsstopp wieder definiert in seine Grundstellung geführt.
  • Die Positionierung des Lifts berücksichtigt einen korrigierten Versatz.
  • Eine definierte Serviceposition kann direkt angefahren werden und vereinfacht dadurch Wartungsarbeiten.
  • Zusätzliche Diagnosemeldungen dokumentieren kritische Maschinenzustände und Ablaufübergänge.

Die erweiterte Diagnose bleibt Bestandteil der Software und unterstützt damit auch die Analyse zukünftiger Störungen.

6 Weiterentwicklung: Bestehende Software schrittweise modernisieren

Nach der Stabilisierung des bestehenden Systems übernahm EPSIA die kontinuierliche Betreuung und Weiterentwicklung der Maschinensoftware.

Neue Anforderungen werden gemeinsam mit dem Betreiber bewertet und als definierte Softwarestände umgesetzt. Parallel dazu wurde ein technischer Plan für eine weitergehende Modernisierung des Systems erstellt.

Dieser umfasst unter anderem die schrittweise Anpassung der Hardwareanbindung, Kamera- und Netzwerkkommunikation, eine virtuelle Entwicklungs- und Testumgebung, die Kommunikation mit den Sammelbehältern, Maschinenablauf und Produktionssteuerung sowie Build-, Release- und Testprozesse.

Damit kann die Modernisierung in abgegrenzten Schritten erfolgen, ohne das bestehende System vollständig auf einmal ersetzen zu müssen.

7 Ergebnis: Von nicht reproduzierbarer Bestandssoftware zur kontinuierlichen Weiterentwicklung

EPSIA hat aus einem schwer wartbaren Softwarebestand wieder eine definierte technische Grundlage für den weiteren Betrieb und die Weiterentwicklung der Sortieranlage geschaffen.

  • Aus dem vorhandenen Quellcode entstand wieder eine reproduzierbar baubare und auslieferbare Softwareversion.
  • Architektur, Maschinenabläufe und technische Schnittstellen wurden systematisch analysiert.
  • Eine erweiterte Diagnose macht Zustände und Abläufe bei sporadisch auftretenden Störungen nachvollziehbar.
  • Auf dieser Grundlage konnten konkrete Fehler in der Steuerungssoftware identifiziert und behoben werden.
  • EPSIA betreut und entwickelt die Maschinensoftware heute kontinuierlich weiter.
  • Für eine weitergehende Modernisierung liegt ein technischer Umsetzungsplan vor.

Wofür steht dieses Projekt?

Das Projekt zeigt den typischen Ablauf einer Softwareübernahme durch EPSIA: Zunächst wird ein vorhandener Softwarebestand gesichert und wieder reproduzierbar baubar gemacht. Anschließend werden Architektur, Schnittstellen und das Verhalten der realen Anlage analysiert.

Wo vorhandene Informationen für die Fehlersuche nicht ausreichen, erweitert EPSIA die Software um gezielte Diagnosefunktionen. Erst auf Grundlage der gewonnenen Daten werden Fehler behoben und weitere Änderungen umgesetzt.

Aus einer zunächst schwer wartbaren Bestandssoftware entsteht so schrittweise wieder ein Softwaresystem, das nachvollziehbar gebaut, diagnostiziert und kontinuierlich weiterentwickelt werden kann.

Wie beginnt eine Softwareübernahme mit EPSIA?

Die Übernahme bestehender Maschinen- oder Anlagensoftware beginnt bei EPSIA mit einem Befund zum Altsystem zu einem vereinbarten Festpreis.

EPSIA übernimmt und analysiert den vorhandenen Softwarebestand und stellt, soweit technisch möglich, zunächst eine reproduzierbare lauffähige Version her. Der Befund dokumentiert den technischen Zustand der Software, relevante Abhängigkeiten und Risiken sowie die notwendigen Schritte für eine weitere Betreuung oder Modernisierung.

Die Ergebnisse des Befunds gehören dem Kunden und können auch dann weiterverwendet werden, wenn EPSIA nicht mit der anschließenden Umsetzung beauftragt wird.

Mehr zur Leistung unter Übernahme und Modernisierung bestehender Software.

Eckdaten

Branche
Sondermaschinenbau
Zeitraum
seit Juli 2024, laufend
Technik
C++, Qt, Linux, MVTec HALCON, EtherCAT, Elmo-Servoantriebe, Beckhoff-I/O, serielle Schnittstellen, ESP32, PlatformIO.