Systemsoftware: Unterschied zwischen den Versionen
| (112 dazwischenliegende Versionen von 7 Benutzern werden nicht angezeigt) | |||
| Zeile 38: | Zeile 38: | ||
* [[Entwicklung Systemsoftware SoSe2022]] | * [[Entwicklung Systemsoftware SoSe2022]] | ||
* [[Entwicklung Systemsoftware SoSe2023]] | * [[Entwicklung Systemsoftware SoSe2023]] | ||
* [[Mikrocontroller Programmierung in MicroPython WiSe 2025/26]] | |||
= [http://www.institut-fuer-kaffeetechnologie.de/Intern/index.php?title=Programmcode Programmcode] = | = [http://www.institut-fuer-kaffeetechnologie.de/Intern/index.php?title=Programmcode Programmcode] = | ||
| Zeile 60: | Zeile 61: | ||
99 - Abbruch per Beschluss (Dokumentation dazu erforderlich)<br> | 99 - Abbruch per Beschluss (Dokumentation dazu erforderlich)<br> | ||
100 - Maßnahme bestätigt<br> | 100 - Maßnahme bestätigt<br> | ||
= ToDo-Liste: Mechatronische Inbetriebnahme Glasboilermaschine = | |||
{| class="wikitable sortable" | |||
|- | |||
! Arbeitspaket !! Wer !! Prio !! Status !! WV | |||
|- | |||
| [[Fehlerbehebungen]] || || 1 || 10 || | |||
|- | |||
| [[Startprozedure]] || || 1 || 10 || | |||
|- | |||
| [[Tankfüllstandsregelung]] || || 1 || 10 || | |||
|- | |||
| [[Boilerfüllstandsregelung]] || || 1 || 10 || | |||
|- | |||
| [[Boilerdruckregelung]] || || 1 || 10 || | |||
|- | |||
| [[Mischwassertemperaturregelung]] || || 1 || 10 || | |||
|- | |||
| [[Durchflussregelung]] || || 1 || 10 || | |||
|- | |||
| [[Kaffeebezug]] || || 2 || 10 || | |||
|- | |||
| [[Teebezug]] || || 1 || 10 || | |||
|- | |||
| [[Temperatureinstellung über Vertikalhebel]] || || 1 || 10 || | |||
|- | |||
| [[Simulation Handhebelmaschine]] || || 1 || 10 || | |||
|- | |||
| [[Flush/Rückspülreinigung]] || || 1 || 10 || | |||
|- | |||
| || || || || | |||
|} | |||
= ToDo-Liste: MCUs - Verlagerung der Regelkreise aus der MATLAB®-GUI auf die Mikrocontroller der Steuerungselektronik = | |||
{| class="wikitable sortable" | |||
|- | |||
! Arbeitspaket !! Wer !! Prio !! Status !! WV | |||
|- | |||
| [[Kommunikation per UART|UART Kommunikation zwischen den einzelnen MCUs]] || Peter Vogginger|| 1 || 30 || 11.12.2025 | |||
|- | |||
| [[Mehrkernnutzung und/oder Multitasking]] || Peter Vogginger|| 1 || 30 ||18.12.2025 | |||
|- | |||
| [[Startprozedur]] | |||
|Philipp Schiebel | |||
|1 | |||
|30 | |||
|08.01.2025 | |||
|- | |||
| [[Verlagerung des Füllstandsreglers auf das Basisboard]] || Philipp Schiebel|| 1 || 30 || 11.12.2025 | |||
|- | |||
| [[Verlagerung der Boilerdruckregelung auf die Messplatine]] || Philipp Schiebel|| 1 || 30 || 18.12.2025 | |||
|- | |||
| [[Verlagerung des Mischtemperaturreglers auf das Basisboard]] || Philipp Schiebel|| 1 || 10 || 08.01.2025 | |||
|- | |||
| [[Verlagerung des Durchflussreglers auf das Basisboard]] || Philipp Schiebel|| 1 || 10 || 22.01.2025 | |||
|- | |||
| [[Erstellung der Funktionssteuerung - Preinfusion auf dem Basisboard]] || || 2 || 10 || | |||
|- | |||
| [[Erstellung der Funktionssteuerung - Kaffeebezug auf dem Basisboard]] || || 1 || 10 || | |||
|- | |||
| [[Erstellung der Funktionssteuerung - Wasserbezug auf dem Basisboard]] || || 1 || 10 || | |||
|- | |||
| [[Erstellung der Funktionssteuerung - Dampfbezug auf dem Basisboard]] || || 1 || 10 || | |||
|- | |||
| [[Erstellung der Funktionssteuerung - Spülen auf dem Basisboard]] || || 1 || 10 || | |||
|- | |||
| [[Erstellung der Funktionssteuerung - Grundreinigung auf dem Basisboard]] || || 1 || 10 || | |||
|- | |||
| [[Integration eines Displays mit Touchfunktion]] || || 1 || 30 || | |||
|- | |||
| [[Integration eines Vertikalhebels]] || || 1 || 30 || | |||
|- | |||
| [[Visualisierung und Interaktion über die MATLAB®-GUI]] || || 1 || 10 || | |||
|- | |||
| [[Visualisierung und Interaktion über eine WEB-Anwendung]] || || 1 || 10 || | |||
|- | |||
| [[Maschinensimulator]] || alle|| 1 || 30 ||11.12.2025 | |||
|} | |||
= ToDo-Liste: Allgemeines = | = ToDo-Liste: Allgemeines = | ||
| Zeile 80: | Zeile 159: | ||
! Arbeitspaket !! Wer !! Prio !! Status !! WV | ! Arbeitspaket !! Wer !! Prio !! Status !! WV | ||
|- | |- | ||
| [[Grundfunktionen der MCU und mehrere MCUs]] || | | [[Grundfunktionen der MCU und mehrere MCUs]] || || || 100 || | ||
|- | |- | ||
| Basisboard: [[Schalten Magnetventile (Labor) STM32-Basisboard]] MATLAB®GUI || || || 100 | | Basisboard: [[Schalten Magnetventile (Labor) STM32-Basisboard]] MATLAB®GUI || || || 100 | ||
|- | |- | ||
| Basisboard: [[Pumpenansteuerung Basisboard Multi-MCU]] || | | Basisboard: [[Pumpenansteuerung Basisboard Multi-MCU]] || || || 100 || | ||
|- | |- | ||
| Basisboard: [[Schrittmotorsteuerungen Basisboard Multi-MCU]] || | | Basisboard: [[Schrittmotorsteuerungen Basisboard Multi-MCU]] || || || 100 || | ||
|- | |- | ||
| Basisboard: [[Tastenerkennung Basisboard Multi-MCU]] || | | Basisboard: [[Tastenerkennung Basisboard Multi-MCU]] || || 1 || 10 || | ||
|- | |- | ||
| Basisboard: [[Füllstandserkennung Basisboard Multi-MCU]] || | | Basisboard: [[Füllstandserkennung Basisboard Multi-MCU]] || || || 100 || | ||
|- | |- | ||
| Basisboard: [[Durchflussmessung Basisnoard Multi-MCU]] || | | Basisboard: [[Durchflussmessung Basisnoard Multi-MCU]] || || || 100 || | ||
|- | |- | ||
| SSR-Platine: [[Schalten Magnetventile SSR-Platine Multi-MCU]] || | | SSR-Platine: [[Schalten Magnetventile SSR-Platine Multi-MCU]] || || || 100 || | ||
|- | |- | ||
| SSR-Platine: [[Schrittmotorsteuerungen SSR-Platine Multi-MCU]] || | | SSR-Platine: [[Schrittmotorsteuerungen SSR-Platine Multi-MCU]] || || || 100 || | ||
|- | |- | ||
| Messplatine: [[Messdatenerfassung Multi-MCU]] || | | Messplatine: [[Messdatenerfassung Multi-MCU]] || || || 100 || | ||
|- | |- | ||
| || || || || | | || || || || | ||
|} | |} | ||
= ToDo-Liste der Grundlagenprogrammierung - MATLAB®-Funktionen und GUI = | |||
= ToDo-Liste | |||
{| class="wikitable sortable" | {| class="wikitable sortable" | ||
|- | |- | ||
! Arbeitspaket !! Wer !! Prio !! Status !! WV | ! Arbeitspaket !! Wer !! Prio !! Status !! WV | ||
|- | |- | ||
| [[ | | [[MATLAB®-GUI Start der App]] || || || || | ||
|- | |- | ||
| [[ | | [[MATLAB®-GUI Initialisierung Multi-MCU]] || || || || | ||
|- | |- | ||
| [[ | | [[MATLAB®-GUI Schalten Magnetventile]] || || || || | ||
|- | |- | ||
| [[ | | [[MATLAB®-GUI Datensicherung]] || || || || | ||
|- | |- | ||
| [[ | | [[Messwerte erfassen Multi-MCU]] || || || || | ||
|- | |- | ||
| [[ | | [[Pumpenansteuerung Multi-MCU]] || || || || | ||
|- | |||
| [[Füllstandsregler Multi-MCU]] || || || || | |||
|- | |- | ||
| [[ | | [[Regler Boilerdruck Multi-MCU]] || || || || | ||
|- | |- | ||
| [[ | | [[Mischregler Multi-MCU]] || || || || | ||
|- | |- | ||
| [[ | | [[Durchflussregler Multi-MCU]] || || || || | ||
|- | |- | ||
| [[ | | [[Misch-Durchfluss Kaskadenregelung Multi-MCU]] || || || || | ||
| || || | | |||
|- | |- | ||
| [[Preinfusion Multi-MCU]] || || || || | |||
|- | |- | ||
| [[ | | [[einfacher Kaffeebezug Multi-MCU]] || || || || | ||
|- | |- | ||
| [[ | | [[Kaffeebezug Multi-MCU]] || || || || | ||
|- | |- | ||
| [[ | | [[Wasserbezug Multi-MCU]] || || || || | ||
|- | |- | ||
| [[ | | [[Dampfbezug Multi-MCU]] || || || || | ||
|- | |- | ||
| [[ | | [[Spülvorgänge Multi-MCU]] || || || || | ||
|- | |- | ||
| [[ | | [[Grundreinigung Multi-MCU]] || || || || | ||
|- | |- | ||
| [[ | | [[Tastenbedienung Multi-MCU]] || || || || | ||
|- | |- | ||
| [[ | | [[Display Multi-MCU]] || || || || | ||
|- | |- | ||
| [[ | | [[Glasboiler Abtropfwanne]] || || || || | ||
|- | |- | ||
| [[ | | [[Schrittmotorensteuerung Bypass]] || || || || | ||
|- | |- | ||
| [[ | | [[Schrittmotorensteuerung Mischer]] || || || || | ||
|- | |- | ||
| [[ | | [[Schrittmotorensteuerung Brühgruppendrossel]] || || || || | ||
|- | |- | ||
| [[ | | [[Adaption an Multi-MCU - Neuprogrammierung MATLAB® GUI]] || || || || | ||
|- | |- | ||
| | | || || || || | ||
|- | |- | ||
| | | || || || || | ||
|- | |- | ||
| | | Dokumentation der Software mit STM32-Elektronik. <br>Ein Betrieb dieser wird nicht mehr weiter verfolgt. || || || || | ||
|- | |- | ||
| [[ | | [[Messwerte erfassen (Labor)]] || || || || | ||
|- | |- | ||
| [[ | | [[Pumpenansteuerung (Labor)]] || || || || | ||
|- | |- | ||
| [[ | | [[Füllstandsregler (Labor)]] || || || || | ||
|- | |- | ||
| [[ | | [[Regler Boilerdruck (Labor)]] || || || || | ||
|- | |- | ||
| [[ | | [[Mischregler (Labor)]] || || || || | ||
|- | |- | ||
| [[ | | [[Durchflussregler (Labor)]] || || || || | ||
|- | |- | ||
| [[ | | [[einfacher Kaffeebezug (Labor)]] || || || || | ||
|- | |- | ||
| [[ | | [[Kaffeebezug (Labor)]] || || || || | ||
|- | |- | ||
| [[ | | [[Wasserbezug (Labor)]] || || || || | ||
|- | |- | ||
| [[ | | [[Dampfbezug]] || || || || | ||
|- | |- | ||
| [[ | | [[Spülvorgänge (Labor)]] || || || || | ||
|- | |- | ||
| [[ | | [[Tastenbedienung (Labor)]] || || || || | ||
|- | |- | ||
| [[ | | [[Anpassungen für Schrittmotorensteuerung]] || || || || | ||
|- | |- | ||
| || || || || | | || || || || | ||
Aktuelle Version vom 8. Dezember 2025, 18:43 Uhr
Die Systemsoftware lässt sich nicht ohne die Beachtung der Systemelektronik erstellen.
Für die Systemsoftware wurde ein mehrstufiger Entwicklungsprozess definiert:
- Nutzung einer MCU auf der MicroPython verwendet werden kann. Dies ist durch das STM32F411 nucleo Board der Basiselektronik bzw. durch den Raspberry Pi Pico der Multi-MCU-Elektronik gegeben.
- Auf der MCU werden lediglich die elementaren Grundfunktionen (GPIO schalten und erfassen, Messwert erfassen, PWM Ausgeben, Sollwert ausgeben, etc.) realisiert und über eine MicroPython zu MATLAB® Schnittstelle [41] wird die Funktionalität in einer MATLAB® GUI hergestellt.
- Die Softwareentwicklung startet mit der labortechnischen Espressomaschine und wird auf die weiteren Projekte schrittweise transportiert. Dazu ist die Maschinenelektronik gleich zu halten und es sind die gleichen Anschluss-Pins zu verwenden.
- Nach Abschluss der Testphase der MATLAB® Bedienung wird schrittweise die Betriebssoftware in MicroPython auf der MCU implementiert, so dass am Ende dieses Prozessschrittes die MATLAB®-Verbindung lediglich für weiterführende Datenerfassung und grafische Darstellungen verwendet wird, welche nicht mit dem Display der Maschine möglich ist oder dort nicht dargestellt werden soll.
- Ob eine Portierung des MicroPython-Codes nach Microcontroller C durchgeführt wird, ist derzeit nicht entschieden.
Es wurden mehrere, die Softwareentwicklung vorbereitende FMEAs durchgeführt. Die hierdurch entstandenen Dokumentation befinden sich in der Dokumentationsauflistung. Im weiteren wurde eine Projektarbeit zur Konzeptfindung für die Badienung durchgeführt. Auch die hierdurch entstandenen, teilweise auf die FMEA aufbauenden Dokumente befinden sich in der Dokumentationsliste.
Projektdokumentationen und Beschreibungen
- Konzeptbeschreibung Systemelektronik
- Workflow Embedded Systems
- Funktionsanalyse Boilerbefüllung, Tassenwärmung, Milchschäumen
- Funktionsanalyse zur halbautomatischen Entkalkung
- Funktionsanalyse Rückspülung und Spülung
- Funktionsanalyse Espresso und Teewasserbezug
- Funktionsanalyse Energieeffizienz
- Funktionsanalyse Bedienung
- Funktionsanalyse Abbildung aller Maschinen
- Fehleranalyse Entschichtung
- Fehleranalyse Brühgruppe und Dampfbezug
- Fehleranalyse Mischer und Magnetventile
- Fehleranalyse Boiler
- Dichtheitsprüfung
- Prüfkonzepte Magnetventile und Mischer
- Maßnahmen Boiler
- Maßnahmen Entschichtung
- Maßnahmen Brühgruppe und Dampf
- FMEA Tabelle
- PPT Simulation des Bedienkonzeptes
- Bedienkonzept Funktionsliste
- Bedienkonzept Projektdokumentation
- MATLAB® GUI
- Entwicklung Systemsoftware SoSe2022
- Entwicklung Systemsoftware SoSe2023
- Mikrocontroller Programmierung in MicroPython WiSe 2025/26
Programmcode
Aktueller Programmcode und Änderungsdokumentation ab Jan 2023
Software-Bugs
ToDo-Liste(n) Systemsoftware
Prioritätsangabe
Prio 1 - Abarbeitung zeitnah erforderlich
Prio 2 - Abarbeitung erforderlich
Prio 3 - Abarbeitung kann warten
Prio 99 - Abarbeitung erfordert Vorarbeiten
Status
10 - Erfasst
30 - in Bearbeitung
50 - Lösung definiert
70 - in Umsetzung
90 - Umsetzung abgeschlossen
99 - Abbruch per Beschluss (Dokumentation dazu erforderlich)
100 - Maßnahme bestätigt
ToDo-Liste: Mechatronische Inbetriebnahme Glasboilermaschine
| Arbeitspaket | Wer | Prio | Status | WV |
|---|---|---|---|---|
| Fehlerbehebungen | 1 | 10 | ||
| Startprozedure | 1 | 10 | ||
| Tankfüllstandsregelung | 1 | 10 | ||
| Boilerfüllstandsregelung | 1 | 10 | ||
| Boilerdruckregelung | 1 | 10 | ||
| Mischwassertemperaturregelung | 1 | 10 | ||
| Durchflussregelung | 1 | 10 | ||
| Kaffeebezug | 2 | 10 | ||
| Teebezug | 1 | 10 | ||
| Temperatureinstellung über Vertikalhebel | 1 | 10 | ||
| Simulation Handhebelmaschine | 1 | 10 | ||
| Flush/Rückspülreinigung | 1 | 10 | ||
ToDo-Liste: MCUs - Verlagerung der Regelkreise aus der MATLAB®-GUI auf die Mikrocontroller der Steuerungselektronik
ToDo-Liste: Allgemeines
| Arbeitspaket | Wer | Prio | Status | WV |
|---|---|---|---|---|
| Sicherheitsfunktionen | 99 | 50 | ||
| Übersicht über verbaute Aktorik und Sensorik in Tabellenform | 2 | 90 | ||
| Stromsparmodus | 99 | 10 | ||
ToDo-Liste: MCUs - Hardwarenahe Software
| Arbeitspaket | Wer | Prio | Status | WV |
|---|---|---|---|---|
| Grundfunktionen der MCU und mehrere MCUs | 100 | |||
| Basisboard: Schalten Magnetventile (Labor) STM32-Basisboard MATLAB®GUI | 100 | |||
| Basisboard: Pumpenansteuerung Basisboard Multi-MCU | 100 | |||
| Basisboard: Schrittmotorsteuerungen Basisboard Multi-MCU | 100 | |||
| Basisboard: Tastenerkennung Basisboard Multi-MCU | 1 | 10 | ||
| Basisboard: Füllstandserkennung Basisboard Multi-MCU | 100 | |||
| Basisboard: Durchflussmessung Basisnoard Multi-MCU | 100 | |||
| SSR-Platine: Schalten Magnetventile SSR-Platine Multi-MCU | 100 | |||
| SSR-Platine: Schrittmotorsteuerungen SSR-Platine Multi-MCU | 100 | |||
| Messplatine: Messdatenerfassung Multi-MCU | 100 | |||
ToDo-Liste der Grundlagenprogrammierung - MATLAB®-Funktionen und GUI
ToDo-Liste: APP
| Arbeitspaket | Wer | Prio | Status | WV |
|---|---|---|---|---|
| APP - Konzept | 2 | 10 | ||
| Messwerte erfassen APP | 99 | 10 | ||
| Preset / Profilverwaltung | 99 | 10 | ||