Systemsoftware: Unterschied zwischen den Versionen

Aus Technische Beeinflussbarkeit der Geschmacksache Kaffee
Zur Navigation springen Zur Suche springen
 
(113 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]] || Armin Rohnen || 1 || 70 ||  
| [[Grundfunktionen der MCU und mehrere MCUs]] || || || 100 ||
|-
|-
| [[UART-Kommunikation Multi-MCU]] || || 3 || 10 ||
|-
| Basisboard: [[Schalten Magnetventile (Labor) STM32-Basisboard]] MATLAB®GUI || || || 100
| Basisboard: [[Schalten Magnetventile (Labor) STM32-Basisboard]] MATLAB®GUI || || || 100
|-
|-
| Basisboard: [[Pumpenansteuerung Basisboard Multi-MCU]] || Noureddine Ait Ouhamou|| 1 || 10 || 27.05.2023
| Basisboard: [[Pumpenansteuerung Basisboard Multi-MCU]] || || || 100 ||
|-  
|-  
| Basisboard: [[Schrittmotorsteuerungen Basisboard Multi-MCU]] || Noureddine Ait Ouhamou|| 1 || 10 || 27.05.2023
| Basisboard: [[Schrittmotorsteuerungen Basisboard Multi-MCU]] || || || 100 ||
|-
|-
| Basisboard: [[Tastenerkennung Basisboard Multi-MCU]] || Noureddine Ait Ouhamou|| 3 || 10 ||  
| Basisboard: [[Tastenerkennung Basisboard Multi-MCU]] || || 1 || 10 ||  
|-  
|-  
| Basisboard: [[Füllstandserkennung Basisboard Multi-MCU]] || Noureddine Ait Ouhamou|| 1 || 10 || 27.05.2023
| Basisboard: [[Füllstandserkennung Basisboard Multi-MCU]] || || || 100 ||
|-  
|-  
| Basisboard: [[Durchflussmessung Basisnoard Multi-MCU]] || Noureddine Ait Ouhamou|| 1 || 10 || 27.05.2023
| Basisboard: [[Durchflussmessung Basisnoard Multi-MCU]] || || || 100 ||
|-      
|-      
| SSR-Platine: [[Schalten Magnetventile SSR-Platine Multi-MCU]] || Noureddine Ait Ouhamou|| 1 || 10 || 13.05.2023
| SSR-Platine: [[Schalten Magnetventile SSR-Platine Multi-MCU]] || || || 100 ||
|-  
|-  
| SSR-Platine: [[Schrittmotorsteuerungen SSR-Platine Multi-MCU]] || Noureddine Ait Ouhamou|| 1 || 10 ||   13.05.2023
| SSR-Platine: [[Schrittmotorsteuerungen SSR-Platine Multi-MCU]] || || || 100 ||
|-
|-
| Messplatine: [[Messdatenerfassung Multi-MCU]] || Noureddine Ait Ouhamou|| 1 || 10 || 13.05.2023
| Messplatine: [[Messdatenerfassung Multi-MCU]] || || || 100 ||
|-
|-
| || || || ||
| || || || ||
|}
|}


 
= ToDo-Liste der Grundlagenprogrammierung - MATLAB®-Funktionen und GUI =
= ToDo-Liste: MCUs - Realisierung und Übernahme der Funktionen =
{| class="wikitable sortable"
{| class="wikitable sortable"
|-
|-
! Arbeitspaket !! Wer !! Prio !! Status !! WV
! Arbeitspaket !! Wer !! Prio !! Status !! WV
|-
|-
| [[Füllstandsregler Basisboard Multi-MCU]] || || 2 || 10 ||  
| [[MATLAB®-GUI Start der App]] || || || ||
|-
|-
| [[Regler Boilerdruck Messplatine Multi-MCU]] || || 2 || 10 ||  
| [[MATLAB®-GUI Initialisierung Multi-MCU]] || || || ||
|-
|-
| [[Mischregler Basisboard Multi-MCU]] || || 2 || 10 ||  
| [[MATLAB®-GUI Schalten Magnetventile]] || || || ||
|-
| [[Durchflussregler Basisboard Multi-MCU]] || || 2 || 10 || 
|-
|-
| [[Preinfusion Basisboard Multi-MCU]] || || 2 || 10 ||  
| [[MATLAB®-GUI Datensicherung]] || || || ||
|-
|-
| [[einfacher (manueller) Kaffeebezug Basisboard Multi-MCU]] || || 2 || 10 ||
| [[Messwerte erfassen Multi-MCU]] || || || ||
|-
|-  
| [[Kaffeebezug Basisboard Multi-MCU]] || || 2 || 10 ||  
| [[Pumpenansteuerung Multi-MCU]] || || || ||
|-
| [[Füllstandsregler Multi-MCU]] || || || ||
|-
|-
| [[Wasserbezug Basisboard Multi-MCU]] || || 2 || 10 ||  
| [[Regler Boilerdruck Multi-MCU]] || || || ||
|-
|-
| [[Dampfbezug Basisboard Multi-MCU]] || || 2 || 10 ||  
| [[Mischregler Multi-MCU]] || || || ||
|-
|-
| [[Spülvorgänge Basisboard Multi-MCU]] || || 2 || 10 ||
| [[Durchflussregler Multi-MCU]] || || || ||
|-
|-
| [[Grundreinigung Basisboard Multi-MCU]] || || 2 || 10 || 
| [[Misch-Durchfluss Kaskadenregelung Multi-MCU]] || || || ||
|-
| [[Tastenbedienung Basisboard Multi-MCU]] || || 2 || 10 || 
|-
| || || || ||
|}
 
= ToDo-Liste: MATLAB®-Funktionen und GUI =
{| class="wikitable sortable"
|-
|-
! Arbeitspaket !! Wer !! Prio !! Status !! WV
| [[Preinfusion Multi-MCU]] || || || ||
|-
|-
| [[Messwerte erfassen (Labor)]] || Madita vom Stein, Noureddine Ait Ouhamou|| 1 || 30 || 25.05.2023
| [[einfacher Kaffeebezug Multi-MCU]] || || || ||
|-
|-
| [[Messwerte erfassen Multi-MCU]] || Noureddine Ait Ouhamou|| 1 || 10 || 04.08.2023
| [[Kaffeebezug Multi-MCU]] || || || ||
|-
| [[Pumpenansteuerung (Labor)]] || ||  || 100 ||  
|-
|-
| [[Pumpenansteuerung Multi-MCU]] || Noureddine Ait Ouhamou|| 1 || 10 ||  04.08.2023
| [[Wasserbezug Multi-MCU]] || || || ||
|-
| [[Füllstandsregler (Labor)]] || ||  || 100  ||  
|-
|-
| [[Füllstandsregler Multi-MCU]] || Noureddine Ait Ouhamou|| 1 || 10 || 27.07.2023
| [[Dampfbezug Multi-MCU]] || || || ||
|-
|-
| [[Regler Boilerdruck (Labor)]] || || || 100 ||
| [[Spülvorgänge Multi-MCU]] || || || ||
|-
|-
| [[Regler Boilerdruck Multi-MCU]] || Noureddine Ait Ouhamou|| 1 || 10 || 14.09.2023
| [[Grundreinigung Multi-MCU]] || || || ||
|-
|-
| [[Mischregler (Labor)]] || Madita vom Stein, Simon Thrainer|| 1 || 30 || 11.05.2023
| [[Tastenbedienung Multi-MCU]] || || || ||
|-
|-
| [[Mischregler Multi-MCU]] || Noureddine Ait Ouhamou|| 1 || 10 || 22.06.2023
| [[Display Multi-MCU]] || || || ||
|-
|-
| [[Durchflussregler (Labor)]] || Madita vom Stein, Simon Thrainer|| 1 || 30 || 11.05.2023
| [[Glasboiler Abtropfwanne]] || || || ||
|-
|-
| [[Durchflussregler Multi-MCU]] || Noureddine Ait Ouhamou|| 1 || 10 || 22.06.2023
| [[Schrittmotorensteuerung Bypass]] || || || ||
|-
|-
| [[Preinfusion Multi-MCU]] || || 99 || 10 ||
| [[Schrittmotorensteuerung Mischer]] || || || ||
|-
|-
| [[einfacher Kaffeebezug (Labor)]] || || || 100 ||
| [[Schrittmotorensteuerung Brühgruppendrossel]] || || || ||
|-
|-
| [[einfacher Kaffeebezug Multi-MCU]] || Noureddine Ait Ouhamou|| 1 || 10 || 04.08.2023
| [[Adaption an Multi-MCU - Neuprogrammierung MATLAB® GUI]] || || || ||
|-
|-
| [[Kaffeebezug (Labor)]] || Melina Scherf, Hendrik Wegjan|| || 30 || 06.07.2023
| || || || ||
|-
|-
| [[Kaffeebezug Multi-MCU]] || Noureddine Ait Ouhamou|| 2 || 10 || 20.07.2023
| || || || ||
|-
|-
| [[Wasserbezug (Labor)]] || Melina Scherf, Hendrik Wegjan|| || 30 || 11.05.2023
| Dokumentation der Software mit STM32-Elektronik. <br>Ein Betrieb dieser wird nicht mehr weiter verfolgt. || || || ||
|-
|-
| [[Wasserbezug Multi-MCU]] || Noureddine Ait Ouhamou|| 1 || 10 || 06.07.2023
| [[Messwerte erfassen (Labor)]] || || || ||
|-
|-
| [[Dampfbezug]] || ||  || 100 ||
| [[Pumpenansteuerung (Labor)]] || ||  || ||  
|-
|-
| [[Dampfbezug Multi-MCU]] || Noureddine Ait Ouhamou|| 1 || 10 || 04.08.2023
| [[Füllstandsregler (Labor)]] || || || ||  
|-
|-
| [[Spülvorgänge (Labor)]] || Hendrik Wegjan, Simon Thrainer, Madita vom Stein|| || 30 ||  27.04.2023
| [[Regler Boilerdruck (Labor)]] || || || ||   
|-
|-
| [[Spülvorgänge Multi-MCU]] || Noureddine Ait Ouhamou|| 1 || 10 || 20.07.2023
| [[Mischregler (Labor)]] || || || ||
|-
|-
| [[Grundreinigung Multi-MCU]] || || 2 || 10 ||
| [[Durchflussregler (Labor)]] || || || ||
|-
|-
| [[Tastenbedienung (Labor)]] || || || 99 ||   
| [[einfacher Kaffeebezug (Labor)]] || || || ||   
|-
|-
| [[Tastenbedienung Multi-MCU]] || Noureddine Ait Ouhamou|| 3 || 10 || 18.08.2023
| [[Kaffeebezug (Labor)]] || || || ||
|-
|-
| [[Anpassungen für Schrittmotorensteuerung]] || Madita vom Stein, Melina Scherf, Hendrik Wegjan|| 1 || 70 || 25.05.2023
| [[Wasserbezug (Labor)]] || || || ||
|-
|-
| [[Schrittmotorensteuerung Bypass]] || Madita vom Stein, Melina Scherf, Hendrik Wegjan|| 1 || 30 ||  25.05.2023
| [[Dampfbezug]] || || || ||   
|-
|-
| [[Schrittmotorensteuerung Mischer]] || Simon Thrainer, Hendrik Wegjan|| 1 || 30 || 25.05.2023
| [[Spülvorgänge (Labor)]] || || || ||
|-
|-
| [[Schrittmotorensteuerung Brühgruppendrossel]] || Simon Thrainer, Hendrik Wegjan|| 1 || 30 ||  08.06.2023
| [[Tastenbedienung (Labor)]] || || || ||   
|-
|-
| [[Adaption an Multi-MCU]] || Madita vom Stein, Melina Scherf|| 1 || 30 || 27.04.2023
| [[Anpassungen für Schrittmotorensteuerung]] || || || ||
|-
|-
| || || || ||
| || || || ||

Aktuelle Version vom 8. Dezember 2025, 18:43 Uhr

Breites Logoband.png


Die Systemsoftware lässt sich nicht ohne die Beachtung der Systemelektronik erstellen.

Für die Systemsoftware wurde ein mehrstufiger Entwicklungsprozess definiert:

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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

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

Arbeitspaket Wer Prio Status WV
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

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

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.
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

ToDo-Liste: APP

Arbeitspaket Wer Prio Status WV
APP - Konzept 2 10
Messwerte erfassen APP 99 10
Preset / Profilverwaltung 99 10