Spülvorgänge Multi-MCU

Aus Technische Beeinflussbarkeit der Geschmacksache Kaffee
Zur Navigation springen Zur Suche springen

Armin Rohnen, 15.08.2023

Die Spülvorgänge sind angelegt, jedoch nur rudimentär getestet. Fehler im Programcode sin derzeit nicht auszuschließen und die Funktionalität ist noch nicht erprobt. Insbesondere die Wirksamkeit der Schaltung des Rückspülventils (Y08) am Ende des Pumpvorganges ist derzeit noch nicht nachgewiesen.

Armin Rohnen, 15.08.2023

In der GUI im Tab "manueller Modus" wurde die Taste "Flush / Reinigung" eingeführt. Drücken dieser Taste setzt "app.flag_Reinigung = 1" und gibt eine Statusmeldung aus.

Die Steuerung der Reinigungsfunktionalität erfolgt durch Aufruf der Funktion "app.FlushReinigung" durch Prüfung des Steuerungsindikators "if app.flag_Reinigung > 0" innerhalb der Funktion "mwp_verarbeitung".

Der Indikator "app.flag_Reinigung" kann den Wertebereich 0 bis 4 annehmen. Jeder Wert größer 0 hat eine Bedeutung für die Reinigung der Maschine. Die Steuerung erfolgt durch eine switch - case Anweisung in der Funktion "FlushReinigung".

app.flag_Reinigung = 1

"app.flag_Reinigung = 1" signalisiert den Start der Maschinenreinigung. Dies kann ein FLush (kurzes Durchspülen der Brühgruppe) oder eine Rückspülreinigung sein. Für den Start der Reinigung ist dies jedoch unerheblich. Es wird "app.flag_Aktivitaet = 1" gesetzt, damit es zu keinen Kollisionen mit anderen Funktionalitäten kommt. Das Dosierventil wird auf 100 gesetzt, alternativ kann hier eine Solltemperatur gesetzt und der Mischregler aufgerufen werden. Der Pumpenbypass erhält die Stellung 0 und die Magnetventile Y01, Y06 und Y07 werden geschaltet. Y08 wird in den Ruhezustand versetzt. Damit wird das Wasser bei eingeschalteter Pumpe mit "app.Pumpenleistung.Value = 2500" in die Brühgruppe geleitet.

Abschließend wird ein Statustext ausgegeben und "app.flag_Reinigung = 2".

app.flag_Reinigung = 2

Der Maschinenzustand aus "app.flag_Reinigung = 1" wird 15 Sekunden beibehalten. Erst danach erfolgt weitere Funktionalität.

Ist nach 15 Sekunden Wasserpumpen der Brühgruppendruck größer 0,75 bar, dann ist aller Wahrscheinlichkeit nach ein Blindsieb eingesetzt und es soll eine Rückspülreinigung vorgenommen werden. Dazu wird "app.Pumpenleistung.Value = 0" gesetzt und das Frischwasserventil (Y01) geschlossen. Für den Druckabbau wird das Rückspülventil (Y08) geöffnet. Es wird ein Statustext ausgegeben, "app.flag_Reinigung = 3" und "app.Rueckspuelswitch = 2 (Einwirkung)" gesetzt.


Ist nach 15 Sekunden Wasserpumpen der Brühgruppendruck kleiner 0,75 bar, dann sollte aller Wahrscheinlichkeit nach eine Durchspülung der Brühgruppe (Flush) erfolgen. Das ist damit dann auch erfolgt und der Reinigungsvorgang wird beendet.
Es werden die Steuerungsindikatoren "app.flag_Reinigung = 0" und "app.flag_Aktivitaet = 0", die verwendeten Magnetventile (Y01, Y06, Y07, Y08) in den Ruhezustand, die Pumpenleistung auf 0 gesetzt und eine Statusmeldung ausgegeben.

app.flag_Reinigung = 3

In "app.flag_Reinigung = 3" wird der Rückspülvorgang gesteuert. Dieser Kennt zwei Zustände, welche über "app.Rueckspuelswitch" gesteuert werden.

"app.Rueckspuelswitch = 1" steht für pumpen. Es wird 5 Sekunden gegen das Blindsieb gepumpt. Danach wird die Pumpe abgeschaltet und das Entschichtungsventil (Y08) geöffnet.

"app.Rueckspuelswitch = 2" steht für einwirken. Bis zum Ende des aus pumpen und einwirken bestehenden einzelnen Rückspülzyklus wird gewartet. Danach erfolgt wieder erneutes Anpumpen gegen das Blindiseb. Es wird der aktuelle Zeitstempel als Referenzzeitpunkt übernommen ("app.ReinigungStart = app.mwp_zeitstempel(end,1)"), das Frischwasserventil (Y01) geöffnet und die Pumpenlsteuerspannung auf 2500 mV und "app.Rueckspuelswitch = 1" gesetzt. Damit beginnt der Rückspülzyklus von neuem.

Damit die Rückspülung beenden wird, existiert mit "app.Reinigungszaehler" eine Mitzähllogik. "app.Reinigungszaehler" ist aktuell mit 10 vorbelegt und am Ende des Rückspülzyklus wird dieser um 1 verringert. Hat "app.Reinigungszaehler" den Wert 0 erreicht, ist das Ende der Rückspülung erreicht. Es wird "app.flag_Reinigung = 4" gesetzt und eine Statusmeldung ausgegeben. Die MAschine befindet sich jetzt in der Durchspülung.
Sind noch nicht alle Rückspülzyklen durchgeführt, also "app.Reinigungszaehler > 0" wird das Rückspülventil (Y08) geschlossen und im Status eine Meldung ausgegeben wie viele Rückspülungen noch durchgeführt werden.

app.flag_Reinigung = 4

In "app.flag_Reinigung = 4" wird die Durchspülung gesteuert. Diese ist in "app.flag_Reinigung = 3" eingeschaltet worden. Nach aktuell 90 Sekunden wird die Durchspülung beendet. Es wird die Pumpensteuerspannung auf 0, die Magnetventile Y01, Y06, Y07 und Y08 in den Ruhezustand geschaltet. Über "app.flag_Reinigung = 0", "app.flag_Aktivitaet = 0" und der Ausgabe eines Statustextes wird die Reinigung beendet.

Armin Rohnen, 19.06.2023

Das auf der STM32-Elektronik erprobten Reinigungsprogramm muss für die Multi-MCU getestet und evtl. neu befähigt werden. Außerdem müssen genaue Parameter definiert werden, um eine erfolgreiche Reinigung sicherzustellen.

Armin Rohnen, 16.02.2023

Auf Tastendruck soll ein Spülvorgang ausgelöst werden. Befindet sich kein Blindsieb im Siebträger ist bei definierter Pumpenleistung ein Durchfluss zu erkennen. Dabei sollte zwischen dem Zuständen "Siebträger mit Kaffeepuk", "Siebträger ohne Kaffeepuk" und "ohne Siebträger" unterschieden werden können. Für die Fälle "Siebträger ohne Kaffeepuk" und "ohne Siebträger" soll ein Flush-Vorgang aktiviert werden. Für "Siebträger mit Kaffeepuk" wird eine Fehlbedienung angenommen.

Befindet sich ein Blindsieb im Siebträger, dann stellt sich bei definierter Pumpenleistung ein statischer Druck ein und es erfolgt kein bzw. lediglich marginaler Durchfluss. Dieses Merkmal wird dazu verwendet eine halbautomatische Rückspülreinigung durch zu führen.