ReBench - App Entwicklung für einen Prüfstand
Aufgabe
Unser Kunde benötigt für einen neuen Prüfstand zur Prüfung von Sinterkeramik eine passende Software. Die Software soll dabei nicht nur die Prozessdaten während der Prüfung erfassen, sondern den Prüfprozess auch vollautomatisch steuern und regeln. Besonders wichtig ist zudem die Visualisierung der Prozessdaten während des Prüfvorgangs in Echtzeit.
Nach der Prüfung soll die Software anhand von festgelegten Parametern automatisch entscheiden, ob die Prüfung erfolgreich verlaufen ist, oder das Bauteil die Prüfung nicht bestanden hat. Das Prüfergebnis wird in Form eines Prüfberichts (als PDF Datei) festgehalten.
Alle gesammelten Daten - Auswertungen, Berichte und Messdaten - sollen archiviert und für die spätere Nutzung vorgehalten werden.
Als Hardwarebasis steht eine Workstation (x86_64 Architektur) zur Verfügung, da jeder Prüfstand mit einem eigenen PC ausgerüstet wird.
Technologiebasis und GUI Framework
Wir haben uns bei der Umsetzung für eine App auf Basis von Python entschieden, lauffähig auf Windows 11 Professional.
Unser Kunde hat uns die Technologiewahl überlassen, jedoch den Wunsch nach Windows geäußert, damit die firmeninterne IT die Workstations managen kann.
Da Python prädestiniert für die Arbeit mit großen Datensätzen ist, war die Technologiebasis hier schnell gefunden. Als GUI setzen wir auf tkinter, da das Framework mit entsprechenden Themes auch auf Windows gutaussehende Ergebnisse liefert.
Interne Datenhaltung sowie Prüf-, Prozess- und Messdaten
Die Visualisierung der Messdaten, sowohl in Echtzeit als auch für die spätere Auswertung, erfolgte mit Matplotlib. Jeder gemessene Datenpunkt wird zudem persistent in einer Timeseries Datenbank gespeichert. Hier haben wir uns für PostgreSQL als lokale Installation auf den Workstations entscheiden. Diese können bei Bedarf mit einer zentralen, firmeninternen Installation repliziert werden.
Kommunikation mit der Prüfstand-Steuerung
Bei der Kommunikation mit der Steuerung des Prüfstandes (sowie mit der dahinterstehenden Hardware) haben wir snap7 genutzt. Dies bot sich an, da es sich bei der Hauptsteuerung um eine Siemens SPS handelt.
Auswertung und Prüfbericht
Jeder Prüfbericht enthält einen Auszug der visualisierten Messdaten. Zur Verbesserung der Ansicht müssen die Prozessdaten vorher jedoch „smoothed“ werden. Hier haben wir uns für den Savitzky-Golay-Filter aus der SciPy Bibliothek entschieden.
Der Prüfbericht wird im Anschluss als PDF Datei exportiert, dazu nutzen wir die Bibliothek reportlab.
Backup
In die Anwendung wurde ein lokales Backup-Feature integriert, welches die lokale Datenbank exportieren kann. Dies wird dann relevant, wenn die Workstation z.B. aufgrund eines Hardwaredefekts getauscht werden müsste.
Lokalisierung
Zur Unterstützung mehrere Sprachen kann mit Übersetzungsdateien gearbeitet werden, um das UI an die lokale Landessprache anzupassen. (Ohne weitere Anpassungen vornehmen zu müssen.)
Rollout, Deploy & Codesigning
Um die App am Ende auf den Workstations auszurollen und zu nutzen, wurde die Binary mit pyinstaller erstellt. Mit dem Tool SignTool (im Windows 10 SDK integriert) wurde die Binary mit unseren eigenen Zertifikaten signiert und anschließend an die IT Abteilung des Kunden zwecks Rollout übergeben.
Zusammenfassung Tech Stack
- Betriebssystem: Windows 11 Pro
- App und GUI: Python, tkinter
- Prozessdatenvisualisierung und Auswertung: Matplotlib, SciPy
- Datenbank (für Timeseries Daten): PostgreSQL
- Kommunikation mit Steuerung und Instrumenten: snap7
- PDF Dokumente: reportlab
Weitere Informationen zum Prüfstand findest du auf unserer IoT-Seite: Entwicklung eines Prüfstandes zur Prüfung von technischer Keramik
Aufgrund von NDAs mit unserem Kunden / Auftraggeber können wir leider keine Screenshots zeigen oder detailliertere Einblicke in das Projekt geben.
Hast du generelle Fragen zu unseren Projekten? Kontaktiere uns per E-Mail unter hello@parallelogon-software.com und lass uns über dein Projekt sprechen.