
Next-Gen Embedded Tooling
Überblick
Entwicklung einer neuen Generation von Konfigurations- und Diagnose-Tools für die SICK AG — einen der weltweit führenden Hersteller von Sensoren und Sensorlösungen für industrielle Anwendungen. Die Plattform ermöglicht die Konfiguration von Safety-Sensoren und Roboter-Systemen über moderne Web-Technologien.
Die Herausforderung
Die bisherige Konfiguration industrieller Sensoren und Roboter erfolgte über spezialisierte Desktop-Applikationen. Diese Tools waren funktional, aber technologisch veraltet: schwer zu warten, plattformgebunden und mit einer Usability, die nicht mehr den heutigen Standards entsprach.
Die neue Generation sollte auf Web-Technologien basieren, um plattformunabhängig, leichter wartbar und intuitiver bedienbar zu sein. Die besondere Herausforderung: Die Konfigurationsprozesse industrieller Sensoren sind hochkomplex. Ein einzelner Sensor kann dutzende Parameter haben, die in bestimmten Abhängigkeiten zueinander stehen. Ein falscher Wert kann im schlimmsten Fall ein Safety-relevantes System kompromittieren.
Diese Komplexität musste deterministisch, nachvollziehbar und testbar in Software abgebildet werden.
Die Lösung
Die Plattform wurde als moderne Web-Applikation mit Angular im Frontend und NestJS im Backend entwickelt. Der Schlüssel zur Beherrschung der komplexen Konfigurationslogik war der Einsatz von XState — einer Library für endliche Zustandsautomaten (Finite State Machines).
Architektur-Highlights
- XState für State-Management: Komplexe Konfigurationsprozesse als deterministische Zustandsautomaten modelliert — jeder Zustand, jeder Übergang explizit definiert und testbar
- Angular 14 Frontend: Komponentenbasierte UI mit reaktiven Formularen für komplexe Sensor-Parameter
- NestJS + TypeORM Backend: Typsicheres Backend mit sauberer Datenbankanbindung
- RxJS für reaktive Datenströme: Echtzeitverarbeitung von Sensordaten und Konfigurationsänderungen
Mein Beitrag
Als Full-Stack Engineer war ich sowohl für Frontend- als auch Backend-Entwicklung verantwortlich. Mein Hauptbeitrag lag in der Modellierung der komplexen Konfigurationslogik mit XState.
Die Herausforderung bestand darin, industrielle Konfigurationsprozesse — die bisher als implizites Wissen in Legacy-Code steckten — in explizite, testbare Zustandsautomaten zu überführen. Das Ergebnis: Eine Konfigurationslogik, die nicht nur funktioniert, sondern deren Verhalten vollständig nachvollziehbar und über automatisierte Tests abgesichert ist.
Darüber hinaus habe ich zur Architektur der NestJS-Services beigetragen und die Anbindung an bestehende Datenquellen über TypeORM umgesetzt.
Technologien
Der Stack wurde gezielt auf die Anforderungen industrieller Software ausgerichtet: Determinismus, Testbarkeit und langfristige Wartbarkeit stehen im Vordergrund.
Ergebnisse
