-
Notifications
You must be signed in to change notification settings - Fork 1
Architektur Ueberblick
Die Architektur der easyVerwaltung Hardware basiert auf Prinzipien, die einen stabilen Betrieb in einer rauen Werkstattumgebung sowie eine langfristige Wartbarkeit durch wechselnde Teams garantieren sollen. Jede Design-Entscheidung wurde unter dem Aspekt der industriellen Zuverlässigkeit getroffen.
Die Hardware-Komponenten sind für den Dauerbetrieb (24/7, 365 Tage im Jahr) ausgelegt. Ein Ausfall der Zugangskontrolle blockiert unmittelbar den Werkstattbetrieb, weshalb Stabilität oberste Priorität hat.
- Software-Robustheit: Die Firmware ist so konzipiert, dass sie Speicherlecks vermeidet und auch bei instabilen Netzwerkverbindungen nicht blockiert.
- Hardware-Watchdogs: Zur Absicherung gegen unvorhergesehene Software-Hänger werden Hardware-Watchdogs eingesetzt, die das System im Notfall autonom neu starten.
- Fehlertoleranz: Das System unterscheidet zwischen kritischen Fehlern und temporären Störungen und wechselt immer in den für den jeweiligen Kontext sichersten Zustand.
Ein Kernproblem ehrenamtlicher oder wechselnder Strukturen ist der Wissensverlust bei personellen Veränderungen. Die Architektur begegnet diesem "Bus-Faktor" durch strikte Standardisierung.
- Einheitliche Code-Basis: Alle Machine Nodes nutzen denselben Kern-Code. Gerätespezifische Unterschiede werden ausschließlich über Konfigurationsdateien definiert.
- Minimierung von Spezialwissen: Durch die Verwendung weit verbreiteter Standards (C++, Docker, REST) wird die Einarbeitungszeit für neue Supporter minimiert.
- Zentrales Management: Alle projektrerelevanten Daten (Code, Platinen-Designs, Dokumentation) werden zentral in einem Repository verwaltet, um "Wissens-Inseln" zu verhindern.
Das System ist nicht als statisches Produkt, sondern als wachsende Infrastruktur gedacht. Der modulare Aufbau stellt sicher, dass neue Anforderungen integriert werden können.
- Zentrale Datenverwaltung (Stateless Hardware): Um maximale Flexibilität zu gewährleisten, sind die Geräte "stateless". Variable Daten wie Nutzerdatenbanken, Schraubenpreise oder Filamentkosten werden niemals in der Hardware einprogrammiert. Diese Informationen liegen zentral auf dem Server (easyVerwaltung) und werden via API abgefragt.
- Over-The-Air Updates (OTA): Bei einer Flotte von 30+ Geräten ist der physische Zugriff für Wartungszwecke nicht skalierbar. OTA-Updates sind daher essenzieller Bestandteil der Architektur. Neue Features und Sicherheitsupdates werden zentral ausgerollt.
- Software-Kapselung: Die Trennung von hardwarenaher Steuerung (Firmware) und logischer Verarbeitung (Docker-Container) erlaubt unabhängige Updates.
Um das Risiko lokaler Fehlkonfigurationen auszuschließen, wird der Build-Prozess vollständig in die Cloud verlagert.
- GitHub Actions als Build-Instanz: Die Erstellung der Binärdateien und Container-Images findet ausschließlich über GitHub Actions statt. Dies stellt sicher, dass jedes Artefakt in einer sauberen, vordefinierten Umgebung gebaut wird, die für jeden Entwickler identisch ist.
- Single Source of Truth: Nur Code, der die automatisierten Builds und Tests auf GitHub erfolgreich durchläuft, gilt als verifiziert. Wir verlassen uns nicht auf lokale Builds ("Works on my machine"), da diese durch individuelle Betriebssystem-Konfigurationen oder Compiler-Versionen korrumpiert sein können.
- Automatisierte Dokumentation: Auch die technische Dokumentation (z. B. Doxygen) wird bei jedem Push automatisch durch die CI-Pipeline aktualisiert, um sicherzustellen, dass Wiki und Code-Stand niemals auseinanderlaufen.
Da die Geräte in direkter Nähe zu leistungsstarken Elektromotoren und Frequenzumrichtern betrieben werden, ist der Schutz vor Störungen essenziell.
- 230V-Isolation: Strenge Einhaltung von Kriech- und Luftstrecken auf den PCBs zur Trennung von Niederspannung und Niedervolt.
- EMV-Maßnahmen: Einsatz von Filtern, Schirmung und optimiertem Layer-Design auf den Platinen, um Fehlauslösungen durch induktive oder kapitive Einstreuungen (z. B. durch Anlaufen großer Maschinen) zu verhindern.
- Sicherer Zustand (Fail-Safe): Bei Stromausfall oder Systemabsturz fallen alle Last-Relais automatisch in den geöffneten Zustand (Maschine aus), um unkontrollierte Wiederanläufe zu verhindern.