Mikrocontroller Programmierung in MicroPython SoSe 2026: Unterschied zwischen den Versionen
| (20 dazwischenliegende Versionen von 6 Benutzern werden nicht angezeigt) | |||
| Zeile 29: | Zeile 29: | ||
== Maschinensimulator == | == Maschinensimulator == | ||
Die Hauptaufgabe des Maschinensimulators ist die Nachbildung aller Sensordaten der Kaffeemaschine. Dies ermöglicht die Programmentwicklung der Steuerungselektronik ohne die reale Hardware. Die für die Simulation benötigte Hardware ist bereits rudimentär vorhanden, muss aber für einen zuverlässigen und störungsfreien Betrieb optimiert werden. Zudem muss für die Umsetzung der Durchflusssimulation noch eine entsprechende Hardware-Modellierung erfolgen. Softwareseitig ist der Python-Code für die Datengenerierung größtenteils fertiggestellt [http://www.institut-fuer-kaffeetechnologie.de/Wiki/index.php?title=Maschinensimulator <nowiki>[ToDo Maschinensimulator - Funktionsnutzung]</nowiki>]. Es fehlen aktuell noch die Flowmetersimulation sowie die Aufheizsimulation, welche für die Validierung der Druck- und Temperaturregelung benötigt wird. Die vom Maschinensimulator gelieferten Temperatur- und Druckwerte müssen validiert werden. Dabei wird soll ein bereits bekannter Messfehler bei den Temperaturwerten durch die Anpassung der Einstellwerte behoben werden. Für den Programmablauf des Simulators wird eine MATLAB®-App entwickelt, die parallel zum Ablauf des STM32 arbeitet. Für die UART-Kommunikation in der Sterntopologie zwischen dem Maschinensimulator und dem STM32 müssen zudem spezifische Sende- und Empfangs- Token implementiert sowie deren Taktung und Datenumfang definiert werden. Zusätzlich wird ein Gateway als Kommunikationsschnittstelle zwischen dem Maschinensimulator und der Wartungs-App implementiert. Des Weiteren muss während der Ausarbeitung des Maschinensimulators eine Projektfortschrittsdokumentation erfolgen. Die Ausarbeitung erfolgt in einem ein- bis zweiwöchigen Turnus. | |||
== Füllstandsregler == | == Füllstandsregler == | ||
Die Füllstandsregelung erkennt den Füllstand über eine Kurzschlussdetektion. Liegt kein | |||
Kurzschluss vor, wird dies als zu niedriger Füllstand interpretiert und der Boilerdruckregler | |||
zur Vermeidung von Trockenheizen gesperrt. Beim Erreichen des Sollfüllstands erfolgt eine | |||
gezielte Überfüllung bei reduzierter Pumpenspannung, um ein periodisches Ein- und | |||
Ausschalten der Regelung zu vermeiden. Da die in der MATLAB®-GUI realisierte Boiler Füllstandsregelung aus [114] bereits in einem ersten Stand in MicroPython übertragen | |||
wurde, liegt der Fokus hier auf der Validierung am Maschinensimulator sowie der | |||
Abstimmung mit den Schnittstellenpartnern. | |||
== Boilerdruckregelung == | == Boilerdruckregelung == | ||
Ziel ist es, die bisher in der MATLAB®-GUI realisierte Boilerdruckregelung aus [114], die auf | |||
einem PD-Regler basiert, vollständig zu übertragen, sodass die Regelung unabhängig von der | |||
externen PC-Umgebung arbeitet. | |||
== Mischtemperaturregler == | == Mischtemperaturregler == | ||
Der Mischtemperaturregler nach [114] dient zur Regelung der Kaffee- und | |||
Teewassertemperatur und wird als PID-Regler für das Mischventil umgesetzt. Die Stellgröße | |||
ist dabei die Verstellung des Mischventils. Der Temperatursollwert wird aus dem jeweils | |||
aktiven Rezept vorgegeben. Da die Regelung vom aktuellen Durchfluss abhängt, wird eine | |||
Kaskadenstruktur verwendet. In dieser Struktur arbeitet der Durchflussregler als innerer, | |||
schneller Regelkreis, während der Mischtemperaturregler den äußeren Regelkreis bildet und | |||
die Ergebnisse des inneren Kreises berücksichtigt. Daraus ergibt sich ein besonderes | |||
Augenmerk auf das Testen des Zusammenspiels der beiden Regler anhand des | |||
Maschinensimulators, um das Ziel – die Implementierung dieser Kaskadenregelung auf dem | |||
STM32 – zu erreichen. | |||
== Durchflussregler == | == Durchflussregler == | ||
Ein Durchflussregler, der in MATLAB® gemäß [114] vorliegt, wird als PID-Regler in | |||
MicroPython umgesetzt. Durch die Anpassung der Pumpendrehzahl über einen | |||
Spannungssollwert von 0–5 V kann ein konstanter oder ein profildefinierter Volumenstrom | |||
entsprechend der Sollwertvorgabe realisiert werden. Als innerer Regelkreis liefert er | |||
kontinuierlich Durchflusswerte an den Mischtemperaturregler. Daraus ergibt sich der Fokus | |||
auf der Implementierung und dem Test des Reglers sowie auf der Validierung seines | |||
Zusammenspiels mit dem übergeordneten Mischtemperaturregler im Maschinensimulator, | |||
um die Integration auf dem STM32 sicherzustellen. | |||
== Startprozedur == | == Startprozedur == | ||
Das Ziel ist es, eine Startprozedur zu definieren. Beim Einschalten der Stromversorgung starten die Prozessoren der Maschine. Ohne eine festgelegte Ablauflogik würden die einzelnen Systemteile jedoch unkoordiniert anlaufen. Daraus ergibt sich der technische Bedarf, eine eindeutige Reihenfolge für den Start festzulegen und die zugehörigen Ausgaben auf dem Display so zu definieren, dass der Startprozess nachvollziehbar verfolgt werden kann. | |||
Dafür müssen zunächst die relevanten Inhalte der Startprozedur identifiziert werden. Außerdem sind die beteiligten Schnittstellen zu erkennen und die Reihenfolge der einzelnen Startschritte so festzulegen, dass ein geordneter und technisch sinnvoller Maschinenstart möglich ist. | |||
== Display == | == Display == | ||
Ziel ist eine kompakte und benutzerfreundliche Displaylösung, die sich nahtlos in das Gesamtsystem integriert. Das Display mit Touchfunktion dient als Schnittstelle zur Interaktion zwischen Bediener und Maschine. Messwerte müssen strukturiert darzustellen sowie die Auswahl von Funktionen wie Kaffeerezepten, Teewasser- oder Dampfbezug zu ermöglichen. Zusätzlich übernimmt das Display die Visualisierung der Startprozedur, relevanter Betriebszustände und der Sicherheitsfunktionen. | |||
Zunächst werden die benötigten Funktionalitäten analysiert und definiert, darunter Messwertanzeige, Benutzerführung und Sicherheitsmeldungen. Parallel dazu werden drei unterschiedliche Displaytypen (rundes Display, LCD2 und 1,69Display) auf ihre Eignung hin untersucht, um anschließend die, am besten passende, Variante auszuwählen. Die MCU der Displayplatine erhält die benötigten Informationen über die UART-Kommunikation aus dem System und muss in die bestehende Gesamtarchitektur integriert werden. Der Vertikalhebel dient zur Vorgabe von Sollwerten, während die beiden Anschlagtaster die Funktionen Kaffeebezug und Flush beziehungsweise Reinigung auslösen. Diese Bedienelemente sind mit der Displayplatine zu verbinden, damit das Display die zugehörigen Informationen und Zustände für den Benutzer darstellen kann. | |||
== STM32 == | == STM32 == | ||
Als Haupt-MCU soll ein STM32H753ZI-Controller verwendet werden. Es soll sichergestellt | |||
werden, dass die vorinstallierten Steckerleisten CN7 bis CN10 ausreichend Pins für | |||
Definition der benötigten UART-, ADC-, DAC- und GPIO-Pins aufweisen.<br> | |||
Die Boilerdruck-, die Wassertemperatur-, die Durchfluss- und die Füllstandsregelung des | |||
Boilers müssen implementiert werden. Es soll ebenfalls eine UART-Kommunikation für ein | |||
Touch-Display, einen Maschinensimulator sowie eine Möglichkeit zum Anschließen einer | |||
Wartungs-App programmiert werden. Um einen geordneten Ablauf der einzelnen | |||
Komponenten bei Inbetriebnahme der Maschine zu gewährleisten, soll eine Startprozedur | |||
programmiert werden | |||
== Wartungs - APP == | == Wartungs - APP == | ||
Es müssen der Inhalt des Wartungs-Token definiert werden, ein GUI-Layout erstellt werden, ein Kommunikationsaufbau mit dem Maschinensimulator hergestellt werden, die Darstellung der Messwerte, eine manuelle Startprozedur, das Schalten von Magnetventilen, die Einstellung von Sollwertvorgaben (Boilerdruck, Bezugswassertemperatur, Durchfluss) und manuellen Stellwerten für das PWM-Heizelement, die Pumpenansteuerung und die Stellung des Dosierventils sowie die Messwertspeicherung und das Logging programmiert werden. Die App ist bis zu einem funktionsfähigen Prototypen erforderlich. | |||
= Leistungsvereinbarung = | = Leistungsvereinbarung = | ||
== Startprozedur == | |||
Es wird eine definierte und nachvollziehbare Startprozedur für die Maschine erarbeitet. Das Ergebnis umfasst eine festgelegte Reihenfolge der Startschritte, die Berücksichtigung der relevanten Schnittstellen sowie ein Konzept für die Ausgaben auf dem Display, damit der Startprozess strukturiert abläuft und für den Benutzer verfolgbar ist. | |||
== Maschinensimulator == | |||
Das Ziel dieser Arbeit ist die Entwicklung eines voll funktionsfähigen Maschinensimulators, der das Testen der auf den STM32 zu verlagernden Regelkreisen ermöglicht. Hierfür werden physikalische Größen wie Temperatur und Druck simuliert und über die Digital- Potentiometer MCP4151 als elektrische Signale an die Steuerungselektronik ausgegeben. Der Maschinensimulator wird in einer MATLAB®-App implementiert, sodass der Maschinensimulators parallel zu einer weiteern MCU an einem PC betrieben werden kann. Die App soll sowohl den Betrieb des Simulators als solches als auch die Nutzung als Wartungs-App ermöglichen. | |||
== Wartungs - APP == | |||
Die aktuelle MATLAB®-GUI soll in eine komfortable Bedienoberfläche für Wartungs- und Einstellarbeiten überführt werden. Bei aktivierter Wartungs-App sollen sämtliche Tastenfunktionen und die Vertikalhebelfunktion nutzbar sein und zudem alle Aktoren (Magnetventile, Pumpenleistung und Schrittmotorverstellungen) über diese App angesteuert werden können. Des Weiteren soll die bisherige Visualisierung der Messwerte und Schaltzustände erhalten bleiben. Dies allerdings mit einer geringeren Aktualisierungsrate, da vier Aktualisierungen pro Sekunde als ausreichend angesehen werden. | |||
==UART-Kommunikation== | |||
Um die spezifischen Daten von dem STM32H7 auf das Display zu übertragen, sowie | |||
Steuerbefehle des Displays für den STM32H7, wird ein neue UART-Schnittstelle mit Display-Token eingeführt. Ebenfalls wird eine UART-Kommunikation mit entsprechendem Token für | |||
Maschinensimulator und der Wartungs-App implementiert. Dabei soll ein Gateway den | |||
Zugriff für die Wartungs-App integriert werden. | |||
==Multitasking== | |||
Die direkte Hardware-Unterstützung über DMA gestaltet sich schwierig in MicroPython, da | |||
sie von MicroPython automatisch verwendet wird (bspw. bei Buffern) und nur über | |||
Registeraccess direkt ausgeführt werden kann. Daher wird die Nutzung der uasyncio-Library | |||
bevorzugt, welche die Vorgänge, die den Programmablauf verzögern, umleitet. Dadurch soll | |||
das Programm reibungsfreier ablaufen. | |||
==STM32H7== | |||
Die bestehenden Regelkreise, Füllstandsregelung (Boiler und Tanks), Boilerdruckregelung, | |||
Mischtemperaturregelung und Durchflussregelung werden von den drei Microcontroller auf | |||
den STM32H7 verlagert. Ebenfalls erfolgt die Migration der Messwerterfassung aller | |||
verbauten Sensoren auf die neue STM32H7-Plattform.<br> | |||
Zusätzlich wird eine UART-Kommunikation implementiert, die die Anbindung des Displays, | |||
eines Maschinensimulators sowie für den Zugriff durch eine externe Wartungs-App über | |||
einem Gateway ermöglicht.<br> | |||
Um einen geordneten Ablauf der einzelnen Komponenten bei Inbetriebnahme der Maschine | |||
zu gewährleisten, wird eine Startprozedur programmiert.<br> | |||
Die Hardware-Umsetzung wird von LfbA Armin Rohnen übernommen. | |||
== Display == | |||
Es wird eine geeignete Displaylösung ausgewählt und in das Gesamtsystem integriert. Das Ergebnis umfasst die Darstellung relevanter Messwerte, Betriebszustände, Sicherheitsmeldungen und der Startprozedur sowie die Einbindung der Bedienfunktionen über Touch, Vertikalhebel und Anschlagtaster. | |||
== Vertikalhebel == | |||
Der Vertikalhebel wird als Bedienelement technisch und funktional in das System integriert. Das Ergebnis umfasst die Erfassung und Verarbeitung der Hebelstellung als Sollwertvorgabe für den Durchflussregler, die Einbindung der Anschlagtaster als zusätzliche Bedienfunktionen sowie die Anzeige der relevanten Informationen auf dem Display. | |||
== Verlagerung der Regler Syntax == | |||
Ziel dieser Arbeit ist die vollständige Übertragung der in MATLAB® implementierten Regelalgorithmen aus [114] in MicroPython sowie deren Vorbereitung für die Implementierung auf einer STM32‑MCU. Die Umsetzung erfolgt entlang der bestehenden Reglerstruktur: Füllstandsregler, Boilerdruckregelung, Mischtemperaturregler und Durchflussregler. | |||
= Besprechungsprotokolle und weitere Unterlagen = | = Besprechungsprotokolle und weitere Unterlagen = | ||
| Zeile 67: | Zeile 153: | ||
* [[Projektrücksprache 03.07.2026]] | * [[Projektrücksprache 03.07.2026]] | ||
* [[Projektrücksprache 10.07.2026]] | * [[Projektrücksprache 10.07.2026]] | ||
* [[ | * [[Abschlusspräsentation 24.07.2026]] | ||
Aktuelle Version vom 26. April 2026, 10:55 Uhr
Mikrocontroller Programmierung in MicroPython Sommersemester 2026
Für die Projekte zur labortechnischen Espressomaschine (und weiteren Derivaten) ist die Mikrokontroller-Programmierung einer Steuerungselektronik erforderlich.
Die Programmierung der Mikrocontroller erfolgt in MicroPython und die übergeordnete Steuerung ist eine MATLAB®-APP mit einem Prozessschaubild. Die Grundfunktionalität dieses Vorgehensweise ist in der Quellenliste unter [40] (MATLAB® meets MicroPython) beschrieben.
Das Projekt wurde bereits durch eine Projektgruppe bearbeitet und hat einen Projektstand, der jedoch noch nicht die gesamte erforderliche Steuerungsfunktionalität umfasst.
Es wird angestrebt eine Steuerung auf Basis eines Nucleo STM32H743ZI2 zu erstellen. Dies würde die aktuell drei Steuerungsplatinen und Mikrocontroller auf einen reduzieren. Kommunikation wäre dann lediglich zum Displaycontroller erforderlich.
Aufgabenanalyse
UART-Kommunikation
Es soll eine Stern-Topologie implementiert werden, welche die UART-Kommunikation zu einem separaten Display-Controller, dem Maschinensimulator und der Wartungs- App herstellt. Dabei sind Sende- und Empfangs-Token f¨ ur das Display, die Wartungs-App und den Maschinensimulator einzuf¨ uhren. Es gilt dabei, den Umfang und Takt der neuen Token festzulegen.
Mehrkernnutzung und/oder Multitasking
Es gibt bestimmte Vorgänge, welche regelmäßig zur Unterbrechung des Pro- grammablaufs führen. Es gilt, diese Vorgänge zu identifizieren und umzuleiten, damit diese den Programmablauf nicht mehr unterbrechen. Die Möglichkeit der Mehrkernnutzung fällt dabei aus, da der STM32H753ZI nur über einen M7-Kern verfügt. Dank der Hardware-Unterstützung DMA sowie der Nutzung der uasyncio-Library besteht die Möglichkeit, die Vorgänge umzuleiten. Somit können die Unterbrechungen des Programmablaufs reduziert werden.
Maschinensimulator
Die Hauptaufgabe des Maschinensimulators ist die Nachbildung aller Sensordaten der Kaffeemaschine. Dies ermöglicht die Programmentwicklung der Steuerungselektronik ohne die reale Hardware. Die für die Simulation benötigte Hardware ist bereits rudimentär vorhanden, muss aber für einen zuverlässigen und störungsfreien Betrieb optimiert werden. Zudem muss für die Umsetzung der Durchflusssimulation noch eine entsprechende Hardware-Modellierung erfolgen. Softwareseitig ist der Python-Code für die Datengenerierung größtenteils fertiggestellt [ToDo Maschinensimulator - Funktionsnutzung]. Es fehlen aktuell noch die Flowmetersimulation sowie die Aufheizsimulation, welche für die Validierung der Druck- und Temperaturregelung benötigt wird. Die vom Maschinensimulator gelieferten Temperatur- und Druckwerte müssen validiert werden. Dabei wird soll ein bereits bekannter Messfehler bei den Temperaturwerten durch die Anpassung der Einstellwerte behoben werden. Für den Programmablauf des Simulators wird eine MATLAB®-App entwickelt, die parallel zum Ablauf des STM32 arbeitet. Für die UART-Kommunikation in der Sterntopologie zwischen dem Maschinensimulator und dem STM32 müssen zudem spezifische Sende- und Empfangs- Token implementiert sowie deren Taktung und Datenumfang definiert werden. Zusätzlich wird ein Gateway als Kommunikationsschnittstelle zwischen dem Maschinensimulator und der Wartungs-App implementiert. Des Weiteren muss während der Ausarbeitung des Maschinensimulators eine Projektfortschrittsdokumentation erfolgen. Die Ausarbeitung erfolgt in einem ein- bis zweiwöchigen Turnus.
Füllstandsregler
Die Füllstandsregelung erkennt den Füllstand über eine Kurzschlussdetektion. Liegt kein Kurzschluss vor, wird dies als zu niedriger Füllstand interpretiert und der Boilerdruckregler zur Vermeidung von Trockenheizen gesperrt. Beim Erreichen des Sollfüllstands erfolgt eine gezielte Überfüllung bei reduzierter Pumpenspannung, um ein periodisches Ein- und Ausschalten der Regelung zu vermeiden. Da die in der MATLAB®-GUI realisierte Boiler Füllstandsregelung aus [114] bereits in einem ersten Stand in MicroPython übertragen wurde, liegt der Fokus hier auf der Validierung am Maschinensimulator sowie der Abstimmung mit den Schnittstellenpartnern.
Boilerdruckregelung
Ziel ist es, die bisher in der MATLAB®-GUI realisierte Boilerdruckregelung aus [114], die auf einem PD-Regler basiert, vollständig zu übertragen, sodass die Regelung unabhängig von der externen PC-Umgebung arbeitet.
Mischtemperaturregler
Der Mischtemperaturregler nach [114] dient zur Regelung der Kaffee- und Teewassertemperatur und wird als PID-Regler für das Mischventil umgesetzt. Die Stellgröße ist dabei die Verstellung des Mischventils. Der Temperatursollwert wird aus dem jeweils aktiven Rezept vorgegeben. Da die Regelung vom aktuellen Durchfluss abhängt, wird eine Kaskadenstruktur verwendet. In dieser Struktur arbeitet der Durchflussregler als innerer, schneller Regelkreis, während der Mischtemperaturregler den äußeren Regelkreis bildet und die Ergebnisse des inneren Kreises berücksichtigt. Daraus ergibt sich ein besonderes Augenmerk auf das Testen des Zusammenspiels der beiden Regler anhand des Maschinensimulators, um das Ziel – die Implementierung dieser Kaskadenregelung auf dem STM32 – zu erreichen.
Durchflussregler
Ein Durchflussregler, der in MATLAB® gemäß [114] vorliegt, wird als PID-Regler in MicroPython umgesetzt. Durch die Anpassung der Pumpendrehzahl über einen Spannungssollwert von 0–5 V kann ein konstanter oder ein profildefinierter Volumenstrom entsprechend der Sollwertvorgabe realisiert werden. Als innerer Regelkreis liefert er kontinuierlich Durchflusswerte an den Mischtemperaturregler. Daraus ergibt sich der Fokus auf der Implementierung und dem Test des Reglers sowie auf der Validierung seines Zusammenspiels mit dem übergeordneten Mischtemperaturregler im Maschinensimulator, um die Integration auf dem STM32 sicherzustellen.
Startprozedur
Das Ziel ist es, eine Startprozedur zu definieren. Beim Einschalten der Stromversorgung starten die Prozessoren der Maschine. Ohne eine festgelegte Ablauflogik würden die einzelnen Systemteile jedoch unkoordiniert anlaufen. Daraus ergibt sich der technische Bedarf, eine eindeutige Reihenfolge für den Start festzulegen und die zugehörigen Ausgaben auf dem Display so zu definieren, dass der Startprozess nachvollziehbar verfolgt werden kann.
Dafür müssen zunächst die relevanten Inhalte der Startprozedur identifiziert werden. Außerdem sind die beteiligten Schnittstellen zu erkennen und die Reihenfolge der einzelnen Startschritte so festzulegen, dass ein geordneter und technisch sinnvoller Maschinenstart möglich ist.
Display
Ziel ist eine kompakte und benutzerfreundliche Displaylösung, die sich nahtlos in das Gesamtsystem integriert. Das Display mit Touchfunktion dient als Schnittstelle zur Interaktion zwischen Bediener und Maschine. Messwerte müssen strukturiert darzustellen sowie die Auswahl von Funktionen wie Kaffeerezepten, Teewasser- oder Dampfbezug zu ermöglichen. Zusätzlich übernimmt das Display die Visualisierung der Startprozedur, relevanter Betriebszustände und der Sicherheitsfunktionen.
Zunächst werden die benötigten Funktionalitäten analysiert und definiert, darunter Messwertanzeige, Benutzerführung und Sicherheitsmeldungen. Parallel dazu werden drei unterschiedliche Displaytypen (rundes Display, LCD2 und 1,69Display) auf ihre Eignung hin untersucht, um anschließend die, am besten passende, Variante auszuwählen. Die MCU der Displayplatine erhält die benötigten Informationen über die UART-Kommunikation aus dem System und muss in die bestehende Gesamtarchitektur integriert werden. Der Vertikalhebel dient zur Vorgabe von Sollwerten, während die beiden Anschlagtaster die Funktionen Kaffeebezug und Flush beziehungsweise Reinigung auslösen. Diese Bedienelemente sind mit der Displayplatine zu verbinden, damit das Display die zugehörigen Informationen und Zustände für den Benutzer darstellen kann.
STM32
Als Haupt-MCU soll ein STM32H753ZI-Controller verwendet werden. Es soll sichergestellt
werden, dass die vorinstallierten Steckerleisten CN7 bis CN10 ausreichend Pins für
Definition der benötigten UART-, ADC-, DAC- und GPIO-Pins aufweisen.
Die Boilerdruck-, die Wassertemperatur-, die Durchfluss- und die Füllstandsregelung des
Boilers müssen implementiert werden. Es soll ebenfalls eine UART-Kommunikation für ein
Touch-Display, einen Maschinensimulator sowie eine Möglichkeit zum Anschließen einer
Wartungs-App programmiert werden. Um einen geordneten Ablauf der einzelnen
Komponenten bei Inbetriebnahme der Maschine zu gewährleisten, soll eine Startprozedur
programmiert werden
Wartungs - APP
Es müssen der Inhalt des Wartungs-Token definiert werden, ein GUI-Layout erstellt werden, ein Kommunikationsaufbau mit dem Maschinensimulator hergestellt werden, die Darstellung der Messwerte, eine manuelle Startprozedur, das Schalten von Magnetventilen, die Einstellung von Sollwertvorgaben (Boilerdruck, Bezugswassertemperatur, Durchfluss) und manuellen Stellwerten für das PWM-Heizelement, die Pumpenansteuerung und die Stellung des Dosierventils sowie die Messwertspeicherung und das Logging programmiert werden. Die App ist bis zu einem funktionsfähigen Prototypen erforderlich.
Leistungsvereinbarung
Startprozedur
Es wird eine definierte und nachvollziehbare Startprozedur für die Maschine erarbeitet. Das Ergebnis umfasst eine festgelegte Reihenfolge der Startschritte, die Berücksichtigung der relevanten Schnittstellen sowie ein Konzept für die Ausgaben auf dem Display, damit der Startprozess strukturiert abläuft und für den Benutzer verfolgbar ist.
Maschinensimulator
Das Ziel dieser Arbeit ist die Entwicklung eines voll funktionsfähigen Maschinensimulators, der das Testen der auf den STM32 zu verlagernden Regelkreisen ermöglicht. Hierfür werden physikalische Größen wie Temperatur und Druck simuliert und über die Digital- Potentiometer MCP4151 als elektrische Signale an die Steuerungselektronik ausgegeben. Der Maschinensimulator wird in einer MATLAB®-App implementiert, sodass der Maschinensimulators parallel zu einer weiteern MCU an einem PC betrieben werden kann. Die App soll sowohl den Betrieb des Simulators als solches als auch die Nutzung als Wartungs-App ermöglichen.
Wartungs - APP
Die aktuelle MATLAB®-GUI soll in eine komfortable Bedienoberfläche für Wartungs- und Einstellarbeiten überführt werden. Bei aktivierter Wartungs-App sollen sämtliche Tastenfunktionen und die Vertikalhebelfunktion nutzbar sein und zudem alle Aktoren (Magnetventile, Pumpenleistung und Schrittmotorverstellungen) über diese App angesteuert werden können. Des Weiteren soll die bisherige Visualisierung der Messwerte und Schaltzustände erhalten bleiben. Dies allerdings mit einer geringeren Aktualisierungsrate, da vier Aktualisierungen pro Sekunde als ausreichend angesehen werden.
UART-Kommunikation
Um die spezifischen Daten von dem STM32H7 auf das Display zu übertragen, sowie Steuerbefehle des Displays für den STM32H7, wird ein neue UART-Schnittstelle mit Display-Token eingeführt. Ebenfalls wird eine UART-Kommunikation mit entsprechendem Token für Maschinensimulator und der Wartungs-App implementiert. Dabei soll ein Gateway den Zugriff für die Wartungs-App integriert werden.
Multitasking
Die direkte Hardware-Unterstützung über DMA gestaltet sich schwierig in MicroPython, da sie von MicroPython automatisch verwendet wird (bspw. bei Buffern) und nur über Registeraccess direkt ausgeführt werden kann. Daher wird die Nutzung der uasyncio-Library bevorzugt, welche die Vorgänge, die den Programmablauf verzögern, umleitet. Dadurch soll das Programm reibungsfreier ablaufen.
STM32H7
Die bestehenden Regelkreise, Füllstandsregelung (Boiler und Tanks), Boilerdruckregelung,
Mischtemperaturregelung und Durchflussregelung werden von den drei Microcontroller auf
den STM32H7 verlagert. Ebenfalls erfolgt die Migration der Messwerterfassung aller
verbauten Sensoren auf die neue STM32H7-Plattform.
Zusätzlich wird eine UART-Kommunikation implementiert, die die Anbindung des Displays,
eines Maschinensimulators sowie für den Zugriff durch eine externe Wartungs-App über
einem Gateway ermöglicht.
Um einen geordneten Ablauf der einzelnen Komponenten bei Inbetriebnahme der Maschine
zu gewährleisten, wird eine Startprozedur programmiert.
Die Hardware-Umsetzung wird von LfbA Armin Rohnen übernommen.
Display
Es wird eine geeignete Displaylösung ausgewählt und in das Gesamtsystem integriert. Das Ergebnis umfasst die Darstellung relevanter Messwerte, Betriebszustände, Sicherheitsmeldungen und der Startprozedur sowie die Einbindung der Bedienfunktionen über Touch, Vertikalhebel und Anschlagtaster.
Vertikalhebel
Der Vertikalhebel wird als Bedienelement technisch und funktional in das System integriert. Das Ergebnis umfasst die Erfassung und Verarbeitung der Hebelstellung als Sollwertvorgabe für den Durchflussregler, die Einbindung der Anschlagtaster als zusätzliche Bedienfunktionen sowie die Anzeige der relevanten Informationen auf dem Display.
Verlagerung der Regler Syntax
Ziel dieser Arbeit ist die vollständige Übertragung der in MATLAB® implementierten Regelalgorithmen aus [114] in MicroPython sowie deren Vorbereitung für die Implementierung auf einer STM32‑MCU. Die Umsetzung erfolgt entlang der bestehenden Reglerstruktur: Füllstandsregler, Boilerdruckregelung, Mischtemperaturregler und Durchflussregler.
Besprechungsprotokolle und weitere Unterlagen
- Übergabepräsentation Vorgänger
- Aktueller Projektstand
- Projektstart 26.03.2026
- Projektrücksprache 02.04.2026
- Projektrücksprache 09.04.2026
- Projektrücksprache 17.04.2026
- Projektrücksprache 24.04.2026
- Projektrücksprache 08.05.2026
- Projektrücksprache 15.05.2026
- Projektrücksprache 22.05.2026
- Projektrücksprache 29.05.2026
- Projektrücksprache 05.06.2026
- Projektrücksprache 12.06.2026
- Projektrücksprache 19.06.2026
- Projektrücksprache 03.07.2026
- Projektrücksprache 10.07.2026
- Abschlusspräsentation 24.07.2026