Startprozedur: Unterschied zwischen den Versionen
| (10 dazwischenliegende Versionen von 4 Benutzern werden nicht angezeigt) | |||
| Zeile 1: | Zeile 1: | ||
= Armin Rohnen, 07.05.2026 - Startprozedur mit STM32 - Steuerung = | |||
Durch die Entscheidung anstelle mehrerer Platinen mit einzelnen MCUs zu verwenden eine zentrale Maschinensteuerungs-Platine mit einer STM32H753 MCU verändert sich der Ablauf des Maschinenstarts. Hinzu kommt, dass ein Touch-Display mit integrierter MCU-Platine für die Visualisierung und Interaktion mit dem Anwender eingesetzt wird. Das Display verarbeitet auch die User-Interaktion über den Vertikalhebel und den zwei Drucktasten. Im weiteren gibt es für Wartungs- und Simulationszwecke einen Maschinensimulator. | |||
Die Kommunikation zwischen STM32-Maschinensteuerung, dem Display und ggf. dem Maschinensimulator erfolgt über getrennte UART-Schnittstellen. | |||
[[Datei:20260505 Rohnen Startprozedur 1.001.png|thumb|350|right|]] | |||
== Initialisierung der Maschinensteuerung == | |||
Die Maschinensteuerung (STM32 MCU) und das Display starten durch Einschalten der Maschine (Power On). Aufgrund des erforderlichen Einschwingens der einzelnen Steuerungskomponenten erfolgt zunächst eine zeitlich begrenzte Wartezeit von mehreren Sekunden. Die Maschinensteuerung muss dabei länger warten als die Display-MCU. Es muss sichergestellt sein, dass zur Initialisierung der Maschinensteuerung alle MCUs in der Peripherie bereits gestartet und initialisiert sind. Für den Maschinensimulator und die Wartungs-APP bedeutet dies, dass die zugehörigen MATLAB®-Apps bereits aktiv sind. | |||
Danach erfolgt die Initialisierung der verwendeten PINs und der Messwerterfassung sowie die Aktivierung der Interrupt-Service-Routinen (ISRs) für die Durchflussmessung(en) über die FLowmeter. Zu dieser Initialisierung gehört auch die Initialisierung der Schrittmotoren der Dosierventile. Diese Initialisierung wird mehrere Sekunden in Anspruch nehmen. Es wird ein Counter (Maschinen_Counter) angelegt, der während der Startprozedur und später während des Maschinenbetriebs die jeweils aktuelle Situation des Maschinenzustands beschreibt. Damit ist die Initialisierung der Maschinensteuerung abgeschlossen, der Maschinen_Counter wird mit 0 angelegt. Es folgt der Kommunikationsaufbau mit der Peripherie. | |||
== Kommunikationsaufbau mit Display == | |||
Für den Kommunikationsaufbau mit dem Display wird das Byte "0x0A" über UART an das Display gesendet. Es wird im Programmablauf sofort eine UART-Leseanweisung durchgeführt, für den Fall keiner oder zu sehr verzögerter Antwort wird über eine Timer-Funktion abgebrochen. Im Fall TimeOut wird ohne Display-Ausgabe der Maschinenstart weiter durchgeführt. Ohne die angeschlossene Wartungs-App ist dann aber keine Maschinennutzung möglich. | |||
Ist das Display kommunikationsbereit, wird für den kontinuierlich zu sendenden Display-Token ein Timer mit Timer-Funktion angelegt. Für die Kommunikation von Display zu STM32 erfolgt die Initialisierung einer ISR auf die entsprechende UART RX-Leitung. Der Maschinen_Counter wird auf 1 erhöht. | |||
== Kommunikationsaufbau mit Maschinensimulator == | |||
Für den Kommunikationsaufbau mit dem Maschinensimulator wird das Byte "0x0A" über UART an dan Maschinensimulator gesendet. Es wird im Programmablauf sofort eine UART-Leseanweisung durchgeführt, für den Fall keiner oder zu sehr verzögerter Antwort wird über eine Timer-Funktion abgebrochen. Im Fall TimeOut wird ohne Wartungs-App / Mschinensimulator der Maschinenstart weiter durchgeführt. | |||
Ist der Maschinensimulator angeschlossen, wird für den kontinuierlich zu sendenden Simulator-Token ein Timer mit Timer-Funktion angelegt. Zur Sicherheit wird für die Kommunikation von Maschinensimulator zu STM32 eine ISR auf der entsprechenden UART RX-Leitung initialisiert. Es erfolgt normal keine Kommunikation von Maschinensimulator zu STM32. Hierüber wäre eine Umschaltung von Maschinensimulator auf Wartungs-App möglich. | |||
Alle für die Reglersteuerung erforderlichen Flags werden 1 gesetzt und es erfolgt der weitere Ablauf des Maschinenstarts. | |||
Ist der Maschinensimulator als Gateway zur Wartungs-APP angeschlossen, wird für den kontinuierlich zu sendenden Wartungs-Token ein Timer mit Timer-Funktion angelegt. Für die Kommunikation von Wartungs-App über Maschinensimulator an STM32 wird eine ISR auf der entsprechenden UART RX-Leitung initialisiert. Alle für die Reglersteuerung erforderlichen Flags werden in diesem Fall 0 gesetzt und es erfolgt der Übergang in die Reglerschleife. | |||
Es erfolgt entsprechendes Logging am Display. | |||
[[Datei:20260505 Rohnen Startprozedur2.001.png|thumb|350|right|]] | |||
== Reglerschleife == | |||
Die Reglerschleife ist sowohl Bestandteil der Startprozedur als auch Bestandteil des normalen Maschinenbetriebs. Solange der Maschinen_Counter kleiner 5 ist, befindet sich die Maschine in der Startprozedur. Während der Startprozedur werden die, für den Maschinenbetrieb erforderlichen Komponenten in den Betriebszustand überführt. Die Reglerschleife wird mit einem Takt von ca. 100 Hz entweder als Timer-Funktion oder mittels anderweitiger Programmierung. | |||
Die Reglerschleife startet mit der Messwerterfassung aller analogen Sensoren und der Zustandsabfrage der Füllstands-PINs. Die Messwerterfassung der Flowmeter erfolgt über eigene ISR-Funktionen. Für alle Messwerte (auch die Flowmeter) wird ein aus mindestens 25 Momentanmesswerte bestehender gleitender Effektivwert mit exponentieller Gewichtung gebildet. Bei erstmaliger Messwerterfassung wird der Maschinen_Counter auf 2 gesetzt. | |||
Ist das Flag für den Tankfüllstandsregler auf 1 gesetzt und der Maschinen_Counter hat mindestens den Wert 2, erfolgt der Programmdurchlauf des Tankfüllstandsreglers. Der Maschinen_Counter wird auf 3 gesetzt, wenn der Tankfüllstand erstmalig sein Maximum erreicht hat. | |||
Ist das Flag für den Boilerfüllstandsregler auf 1 gesetzt und der Maschinen_Counter hat mindestens den Wert 3, es ist also der Tank bereits auf maximum aufgefüllt, erfolgt der Programmdurchlauf des Boilerfüllstandsreglers. Der Maschinen_Counter wird auf 4 gesetzt, wenn der Boilerfüllstand erstmalig sein Maximum erreicht hat. | |||
Ist das Flag für den Boilerdruckregler auf 1 gesetzt und der Maschinen_Counter hat mindestens den Wert 4, es ist demnach der Boiler hinreichend gefüllt, erfolgt der Programmdurchlauf des Boilerdruckreglers. Handelt es sich um einen Systemstart aus Umgebungstemperatur, erfolgt der Aufheizvorgang mit den zugehörigen Maßnahmen zur thermischen Entschichtung. Der Boilerdruckregler wird zusätzlich verriegelt, wenn der Boilerfüllstand nicht als Maximum erkannt wird. Der Mschinen_Counter wird auf 5 gesetzt, wenn erstmals der eingestellte Boilersolldruck erreicht wird. Die Maschine wechselt dann von der Startprozedur in den regulären Betrieb. | |||
Die einzelnen Zwischenstände der Startprozedur werden kontinuierlich über UART an das Display kommuniziert und dort als Logging angezeigt. Erreicht die Maschine den regulären Betrieb, wechselt am Display die Darstellungsform und es wird das Bedienungsmenü mit den Systemanzeigen sichtbar. | |||
Befindet sich die Maschine im regulären Betrieb (Maschinen_Counter = 5) und es wird über das Display ein Bezug (Kaffee oder Teewasser) aktiviert, erfolgt der Programmdurchlauf des Mischtemperaturreglers. Dies beinhaltet die Schaltung der erforderlichen Magentventile und die Herstellung eines Wasserdurchflusses. Solange die Mischtemperatur nicht erreicht ist, wird das Bezugswasser in die Abtropfschale abgeleitet. Wenn die Mischtemperatur erreicht ist, wird der Maschinen_Counter auf 6 gesetzt. | |||
Ist das Flag für den Bezug auf 1 gesetzt und ist die Mischtemperatur erreicht (Maschinen_Counter = 6) wird er Programmablauf für den Durchflussregler durchlaufen. Darin enthalten sind die erforderlichen Ventilschaltungen für den Kaffeebezug bzw. Teewasserbezug. Im Fall des Kaffeebezugs wird nach einer definierten Totzeit der Istwert für den Mischtemperaturregler auf den Temperatursensor in der Brühgruppe umgeschaltet. Wird der Bezug durch Nutzeraktion oder durch erreichen der Bezugsmenge beendet, wird der Maschinen_Counter = 5 gesetzt. Dies deaktiviert die beiden, für den Wasserbezug erforderlichen Regelkreise. Es werden alle geschalteten Magnetventile zurück, die Pumpensteuerung auf 0 V und der Istwert für den Mischtemperaturregler wieder auf den Mischwassertemperatursensor gesetzt. | |||
= Philipp Schiebel, 13.11.2025 - Aufgabenanalyse = | |||
==Initialisierung der Systeme== | |||
Nach dem Einschalten der Stromversorgung werden alle vier Mircocontroller (MCU) automatisch aktiviert und führen ihren Code in main.py aus. Darin wird die Kommunikation initialisiert. | |||
==Aufbau der Kommunikationsstruktur== | |||
Nach einer definierten Startwertzeit stellt die Messwertplatine den Anfangstoken bereit. Aufgrund des Verbundes der Platinen (Messwertplatine -> Basisplatine -> SSR-Platine -> Displayplatine) kann die Displayplatine bei Erhalt des Anfangstokens auf eine korrekte Initialisierung aller Platinen schließen. | |||
Jede Platine überprüft zusätzlich den Kommunikations-TimeOut und geht bei ausbleibendem Token in einen Sicherheitszustand über. | |||
==Start der Messwerterfassung== | |||
Nach erfolgreichem Wiedererhalt des Initialisierungstokens startet die die Messplatine die Messwerterfassung, erstellt den ersten Messwertdatensatz und sendet anschließend kontinuierlich Messwert-Token. Die Basisplatine ergänzt die empfangenen Messwerttoken um eigene Messdaten. Dadurch wird ein kontinuierlicher Kommunikations- und Datenaustausch zwischen allen MCUs ermöglicht, bei dem die Messplatine den Takt vorgibt. | |||
==Reglerstart== | |||
Mit Beginn der Messwerterfassung wird auch der Boilerfüllstand überprüft. Bei der Glasboilermaschine werden zusätzlich die Füllstände der beiden Tanks überprüft. Darauf reagiert die Füllstandsregelung. Solange der Sollwert noch nicht erreicht ist, bleibt der Boilerdruckregler deaktiviert. Erst wenn der Füllstand erreicht ist, wird dieser aktiviert. Dabei wird zusätzlich die Boilertemperatur überwacht, um die Entschichtungsfunktion zu steuern. Wird eine einstellbare Abschalttemperatur überschritten, wird die Entschichtung deaktiviert. | |||
Die Startprozedur gilt als erfolgreich abgeschlossen, sobald der Sollwert des Boilerdrucks erstmals überschritten wird. In diesem Moment erkennt der Boilerdruckregler die Betriebsbereitschaft und sendet diese. Die Displayplatine reagiert darauf, indem sie die Betriebsbereitschaft zum Kaffeebezug signalisiert. | |||
==Anzeige und Fehlerausgabe== | |||
Während des gesamten Ablaufs zeigt die Displayplatine den aktuellen Status der Startprozedur an. Dazu gehören Informationen über den Boilerfüllstand, den Boilerdruck und die Boilertemperatur. Bei Timeout oder Fehlern während des Startvorgangs erfolgt eine sichtbare Ausgabe am Display. | |||
= Armin Rohnen, 18.10.2025 - Vorschlag zur Startprozedur = | = Armin Rohnen, 18.10.2025 - Vorschlag zur Startprozedur = | ||
Wenn die aktuelle manuelle Startprozedur der labortechnischen Espressomaschine als Grundlage für die zukünftige Startprozedur dient, dann ergäbe sich für den Ablauf: | Wenn die aktuelle manuelle Startprozedur der labortechnischen Espressomaschine als Grundlage für die zukünftige Startprozedur dient, dann ergäbe sich für den Ablauf: | ||
Aktuelle Version vom 8. Mai 2026, 12:49 Uhr
Armin Rohnen, 07.05.2026 - Startprozedur mit STM32 - Steuerung
Durch die Entscheidung anstelle mehrerer Platinen mit einzelnen MCUs zu verwenden eine zentrale Maschinensteuerungs-Platine mit einer STM32H753 MCU verändert sich der Ablauf des Maschinenstarts. Hinzu kommt, dass ein Touch-Display mit integrierter MCU-Platine für die Visualisierung und Interaktion mit dem Anwender eingesetzt wird. Das Display verarbeitet auch die User-Interaktion über den Vertikalhebel und den zwei Drucktasten. Im weiteren gibt es für Wartungs- und Simulationszwecke einen Maschinensimulator.
Die Kommunikation zwischen STM32-Maschinensteuerung, dem Display und ggf. dem Maschinensimulator erfolgt über getrennte UART-Schnittstellen.
Initialisierung der Maschinensteuerung
Die Maschinensteuerung (STM32 MCU) und das Display starten durch Einschalten der Maschine (Power On). Aufgrund des erforderlichen Einschwingens der einzelnen Steuerungskomponenten erfolgt zunächst eine zeitlich begrenzte Wartezeit von mehreren Sekunden. Die Maschinensteuerung muss dabei länger warten als die Display-MCU. Es muss sichergestellt sein, dass zur Initialisierung der Maschinensteuerung alle MCUs in der Peripherie bereits gestartet und initialisiert sind. Für den Maschinensimulator und die Wartungs-APP bedeutet dies, dass die zugehörigen MATLAB®-Apps bereits aktiv sind.
Danach erfolgt die Initialisierung der verwendeten PINs und der Messwerterfassung sowie die Aktivierung der Interrupt-Service-Routinen (ISRs) für die Durchflussmessung(en) über die FLowmeter. Zu dieser Initialisierung gehört auch die Initialisierung der Schrittmotoren der Dosierventile. Diese Initialisierung wird mehrere Sekunden in Anspruch nehmen. Es wird ein Counter (Maschinen_Counter) angelegt, der während der Startprozedur und später während des Maschinenbetriebs die jeweils aktuelle Situation des Maschinenzustands beschreibt. Damit ist die Initialisierung der Maschinensteuerung abgeschlossen, der Maschinen_Counter wird mit 0 angelegt. Es folgt der Kommunikationsaufbau mit der Peripherie.
Kommunikationsaufbau mit Display
Für den Kommunikationsaufbau mit dem Display wird das Byte "0x0A" über UART an das Display gesendet. Es wird im Programmablauf sofort eine UART-Leseanweisung durchgeführt, für den Fall keiner oder zu sehr verzögerter Antwort wird über eine Timer-Funktion abgebrochen. Im Fall TimeOut wird ohne Display-Ausgabe der Maschinenstart weiter durchgeführt. Ohne die angeschlossene Wartungs-App ist dann aber keine Maschinennutzung möglich.
Ist das Display kommunikationsbereit, wird für den kontinuierlich zu sendenden Display-Token ein Timer mit Timer-Funktion angelegt. Für die Kommunikation von Display zu STM32 erfolgt die Initialisierung einer ISR auf die entsprechende UART RX-Leitung. Der Maschinen_Counter wird auf 1 erhöht.
Kommunikationsaufbau mit Maschinensimulator
Für den Kommunikationsaufbau mit dem Maschinensimulator wird das Byte "0x0A" über UART an dan Maschinensimulator gesendet. Es wird im Programmablauf sofort eine UART-Leseanweisung durchgeführt, für den Fall keiner oder zu sehr verzögerter Antwort wird über eine Timer-Funktion abgebrochen. Im Fall TimeOut wird ohne Wartungs-App / Mschinensimulator der Maschinenstart weiter durchgeführt.
Ist der Maschinensimulator angeschlossen, wird für den kontinuierlich zu sendenden Simulator-Token ein Timer mit Timer-Funktion angelegt. Zur Sicherheit wird für die Kommunikation von Maschinensimulator zu STM32 eine ISR auf der entsprechenden UART RX-Leitung initialisiert. Es erfolgt normal keine Kommunikation von Maschinensimulator zu STM32. Hierüber wäre eine Umschaltung von Maschinensimulator auf Wartungs-App möglich.
Alle für die Reglersteuerung erforderlichen Flags werden 1 gesetzt und es erfolgt der weitere Ablauf des Maschinenstarts.
Ist der Maschinensimulator als Gateway zur Wartungs-APP angeschlossen, wird für den kontinuierlich zu sendenden Wartungs-Token ein Timer mit Timer-Funktion angelegt. Für die Kommunikation von Wartungs-App über Maschinensimulator an STM32 wird eine ISR auf der entsprechenden UART RX-Leitung initialisiert. Alle für die Reglersteuerung erforderlichen Flags werden in diesem Fall 0 gesetzt und es erfolgt der Übergang in die Reglerschleife.
Es erfolgt entsprechendes Logging am Display.
Reglerschleife
Die Reglerschleife ist sowohl Bestandteil der Startprozedur als auch Bestandteil des normalen Maschinenbetriebs. Solange der Maschinen_Counter kleiner 5 ist, befindet sich die Maschine in der Startprozedur. Während der Startprozedur werden die, für den Maschinenbetrieb erforderlichen Komponenten in den Betriebszustand überführt. Die Reglerschleife wird mit einem Takt von ca. 100 Hz entweder als Timer-Funktion oder mittels anderweitiger Programmierung.
Die Reglerschleife startet mit der Messwerterfassung aller analogen Sensoren und der Zustandsabfrage der Füllstands-PINs. Die Messwerterfassung der Flowmeter erfolgt über eigene ISR-Funktionen. Für alle Messwerte (auch die Flowmeter) wird ein aus mindestens 25 Momentanmesswerte bestehender gleitender Effektivwert mit exponentieller Gewichtung gebildet. Bei erstmaliger Messwerterfassung wird der Maschinen_Counter auf 2 gesetzt.
Ist das Flag für den Tankfüllstandsregler auf 1 gesetzt und der Maschinen_Counter hat mindestens den Wert 2, erfolgt der Programmdurchlauf des Tankfüllstandsreglers. Der Maschinen_Counter wird auf 3 gesetzt, wenn der Tankfüllstand erstmalig sein Maximum erreicht hat.
Ist das Flag für den Boilerfüllstandsregler auf 1 gesetzt und der Maschinen_Counter hat mindestens den Wert 3, es ist also der Tank bereits auf maximum aufgefüllt, erfolgt der Programmdurchlauf des Boilerfüllstandsreglers. Der Maschinen_Counter wird auf 4 gesetzt, wenn der Boilerfüllstand erstmalig sein Maximum erreicht hat.
Ist das Flag für den Boilerdruckregler auf 1 gesetzt und der Maschinen_Counter hat mindestens den Wert 4, es ist demnach der Boiler hinreichend gefüllt, erfolgt der Programmdurchlauf des Boilerdruckreglers. Handelt es sich um einen Systemstart aus Umgebungstemperatur, erfolgt der Aufheizvorgang mit den zugehörigen Maßnahmen zur thermischen Entschichtung. Der Boilerdruckregler wird zusätzlich verriegelt, wenn der Boilerfüllstand nicht als Maximum erkannt wird. Der Mschinen_Counter wird auf 5 gesetzt, wenn erstmals der eingestellte Boilersolldruck erreicht wird. Die Maschine wechselt dann von der Startprozedur in den regulären Betrieb.
Die einzelnen Zwischenstände der Startprozedur werden kontinuierlich über UART an das Display kommuniziert und dort als Logging angezeigt. Erreicht die Maschine den regulären Betrieb, wechselt am Display die Darstellungsform und es wird das Bedienungsmenü mit den Systemanzeigen sichtbar.
Befindet sich die Maschine im regulären Betrieb (Maschinen_Counter = 5) und es wird über das Display ein Bezug (Kaffee oder Teewasser) aktiviert, erfolgt der Programmdurchlauf des Mischtemperaturreglers. Dies beinhaltet die Schaltung der erforderlichen Magentventile und die Herstellung eines Wasserdurchflusses. Solange die Mischtemperatur nicht erreicht ist, wird das Bezugswasser in die Abtropfschale abgeleitet. Wenn die Mischtemperatur erreicht ist, wird der Maschinen_Counter auf 6 gesetzt.
Ist das Flag für den Bezug auf 1 gesetzt und ist die Mischtemperatur erreicht (Maschinen_Counter = 6) wird er Programmablauf für den Durchflussregler durchlaufen. Darin enthalten sind die erforderlichen Ventilschaltungen für den Kaffeebezug bzw. Teewasserbezug. Im Fall des Kaffeebezugs wird nach einer definierten Totzeit der Istwert für den Mischtemperaturregler auf den Temperatursensor in der Brühgruppe umgeschaltet. Wird der Bezug durch Nutzeraktion oder durch erreichen der Bezugsmenge beendet, wird der Maschinen_Counter = 5 gesetzt. Dies deaktiviert die beiden, für den Wasserbezug erforderlichen Regelkreise. Es werden alle geschalteten Magnetventile zurück, die Pumpensteuerung auf 0 V und der Istwert für den Mischtemperaturregler wieder auf den Mischwassertemperatursensor gesetzt.
Philipp Schiebel, 13.11.2025 - Aufgabenanalyse
Initialisierung der Systeme
Nach dem Einschalten der Stromversorgung werden alle vier Mircocontroller (MCU) automatisch aktiviert und führen ihren Code in main.py aus. Darin wird die Kommunikation initialisiert.
Aufbau der Kommunikationsstruktur
Nach einer definierten Startwertzeit stellt die Messwertplatine den Anfangstoken bereit. Aufgrund des Verbundes der Platinen (Messwertplatine -> Basisplatine -> SSR-Platine -> Displayplatine) kann die Displayplatine bei Erhalt des Anfangstokens auf eine korrekte Initialisierung aller Platinen schließen. Jede Platine überprüft zusätzlich den Kommunikations-TimeOut und geht bei ausbleibendem Token in einen Sicherheitszustand über.
Start der Messwerterfassung
Nach erfolgreichem Wiedererhalt des Initialisierungstokens startet die die Messplatine die Messwerterfassung, erstellt den ersten Messwertdatensatz und sendet anschließend kontinuierlich Messwert-Token. Die Basisplatine ergänzt die empfangenen Messwerttoken um eigene Messdaten. Dadurch wird ein kontinuierlicher Kommunikations- und Datenaustausch zwischen allen MCUs ermöglicht, bei dem die Messplatine den Takt vorgibt.
Reglerstart
Mit Beginn der Messwerterfassung wird auch der Boilerfüllstand überprüft. Bei der Glasboilermaschine werden zusätzlich die Füllstände der beiden Tanks überprüft. Darauf reagiert die Füllstandsregelung. Solange der Sollwert noch nicht erreicht ist, bleibt der Boilerdruckregler deaktiviert. Erst wenn der Füllstand erreicht ist, wird dieser aktiviert. Dabei wird zusätzlich die Boilertemperatur überwacht, um die Entschichtungsfunktion zu steuern. Wird eine einstellbare Abschalttemperatur überschritten, wird die Entschichtung deaktiviert. Die Startprozedur gilt als erfolgreich abgeschlossen, sobald der Sollwert des Boilerdrucks erstmals überschritten wird. In diesem Moment erkennt der Boilerdruckregler die Betriebsbereitschaft und sendet diese. Die Displayplatine reagiert darauf, indem sie die Betriebsbereitschaft zum Kaffeebezug signalisiert.
Anzeige und Fehlerausgabe
Während des gesamten Ablaufs zeigt die Displayplatine den aktuellen Status der Startprozedur an. Dazu gehören Informationen über den Boilerfüllstand, den Boilerdruck und die Boilertemperatur. Bei Timeout oder Fehlern während des Startvorgangs erfolgt eine sichtbare Ausgabe am Display.
Armin Rohnen, 18.10.2025 - Vorschlag zur Startprozedur
Wenn die aktuelle manuelle Startprozedur der labortechnischen Espressomaschine als Grundlage für die zukünftige Startprozedur dient, dann ergäbe sich für den Ablauf:
- alle MCUs starten, wenn die Stromversorgung eingeschaltet wird. Dadurch wird der Programmcode in main.py ausgeführt. In main.py wird als erstes die UART-Kommunikation initialisiert, wie es in der 2. Auflage von [40] beschrieben ist. Dabei wird uart.irq_rx mit einem uart_rx.handler verwendet sowie für ausreichend definierten Schreib- und Lesespeicher gesorgt.
- Alle MCUs warten auf die Initialisierung der Kommunikation
- Nach einer definierten Startwartezeit sendet die MCU der Messwertplatine einen Token zur Initialisierung der Kommunikation.
- Jede andere MCU arbeitet die Initialisierung ab und sendet den Token weiter.
- Der Token muss wieder bei der Messwertplatine ankommen. Erfolgt dies nicht innerhalb einer definierten Zeit (Timeout) dann erfolgt der Abbruch der Startprozedur mit einer entsprechenden Ausgabe am Display. Kommt der Token InTime bei der Messwertplatine wieder an, dann sendet die Messwertplatine einen Token zum Start der Messwerterfassung.
- Der Token wird von der Messplatine erstellt. Dort wird die Messwerterfassung gestartet und wenn der erste Messwertdatensatz zusammengestellt ist, der erste Token gesendet. Ab diesem Zeitpunkt wird immer dann, wenn ein Messwertdatensatz der Messplatine zusammengestellt ist, ein Token gesendet. Dadurch gibt die Messwertplatine den Kommunikationstakt vor.
- Die Basisplatine fügt dem Token die Messwerte der Basisplatine bei.
- Wenn die Displayplatine erstmalig alle Messwerte erhalten hat, sendet diese einen Token zum Start der Systemüberprüfung.
- Auf den Token der Systemüberprüfung reagiert als erstes die Basisplatine. Dort wird der Boilerfüllstand geprüft und so lange ein Boilerfüllstands-Flag 0 gesetzt, solange der Füllstand nicht erreicht ist. Das Boilerfüllstands-Flag muss Bestandteil des kontinuierlich umlaufenden Tokens sein. Solange der Füllstand nicht erreicht ist, darf der Boilerdruckregler nicht starten bzw. muss die Heizleistung = 0 sein.
- Wenn der Boilerfüllstand erreicht ist, wird auf der Messplatine der Boilerdruckregler aktiv. Durch Abgleich mit der Boilertemperatur (kleiner 95 ° C) wird entschieden ob die Entschichtungsfunktion aktiviert wird. Wird die Boilertemperatur von 95 °C überschritten wird die Entschichtung deaktiviert. Wird erstmalig der Sollwert des Boilerdrucks überschritten ist die Maschine betriebsbereit.
- Auf dem Display wird der jeweilige Stand der Startprozedur angezeigt. Während der Startprozedur ist, zumindest aktuell, ein sichtbares Logging sinnvoll.
- Der Zustand des Boilerfüllstandsreglers, des Druckreglers, die Boilertemperatur und der Boilerdruck werden kontinuierlich am Display visualisiert, ebenso wird bei Kaffeebezug die Durchflussrate und der Brühgruppendruck angezeigt. Die Displayplatine dient der Übertragung von Systemlogging und Messwerten zur MATLAB® Wartungs-App.
Armin Rohnen, 04.10.2025
Für den Systemstart der Espressomaschine muss der Funktionsablauf definiert werden. So ist z. B. zunächst die MCU-Kommunikation zu starten, die Messwerterfassung zu starten, es ist zu prüfen ob das Wartungstool angeschlossen ist, es sind die Füllstände zu kontrollieren usw.