Füllstandsregler Multi-MCU

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

Noureddine Ait Ouhmamou, 13.10.2023

Während der Befüllung des Boilers baut sich Druck auf. Um dies zu vermeiden wird während der Befüllung der Dampfhahn Y13 geöffnet. Um schwankende Füllstandszustände zu verhindern, welche beim Entschichten entstehen, wird die Pumpe beim erstmaligen Erreichen des Füllstands für 1,5 s mit einer Pumpenleistung von 1000 mV betrieben. Zuerst wird die Leistung in den digitalen Wert umgerechnet und an die Basisplatine weitergegeben. Danach wird in das Textfeld der Pumpenleistung der aktuelle Wert eingeschrieben und das Programm pausiert für 1,5 s.

         wert = ceil(1000*4095/5000);
         writeline(app.bas_platine, ['Pumpenansteuerung.pumpe(' num2str(wert) ')']);
         app.Pumpenleistung.Value = 1000;
         pause(1.5) 

Armin Rohnen, 13.08.2023

In der Funktion "fuellstandsregler" welche durch die Funktion "bas_verarbeitung" aufgerufen wird, erfolgt die Steuerung des Boilerfüllstands.

Funktionssteuerungen bzw. Regelungen, welche nicht gleichzeitig zur Boilerbefüllung ablaufen dürfen, müssen über

         app.flag_Aktivitaet = 1

die Funktionalität des Füllstandsreglers unterbinden. Regelungen, welche die Heizleistung einstellen müssen über

         if str2num(app.Boilerfuellstand.Text) == 1

den Füllstand des Boilers überprüfen. Ist dieser nicht gegeben, dann ist die Boilerbefüllung undefiniert und das Heizelement darf nicht eingeschaltet werden. Missachtung dieser Maßnahme führt zum durchbrennen des Heizelements und zu Kurzschluss in der Maschine, mit den entsprechenden Folgeauswirkungen und Schäden.

Funktionssteuerungen bzw. Regelungen, welche nicht gleichzeitig zur Boilerbefüllung ablaufen dürfen, müssen zusätzlich über

         if app.flag_Fuellstandsregler == 1

die eingeschaltete Boilerbefüllung prüfen.

Vorrang hat die zuerst gestartete Funktionalität.

Ist der Boilerfüllstand undefiniert (if str2num(app.Boilerfuellstand.Text) == 0) und der Füllstandsregler bislang noch nicht aktiviert (if app.flag_Fuellstandsregler == 0) wird das Frischwasserventil (Y01) und das Füllventil (Y03) geöffnet sowie die Pumpe mit 4000 mV angesteuert. Es erfolgt solange eine Befüllung des Boilers, bis der Boilerfüllstand wieder definiert ist (if str2num(app.Boilerfuellstand.Text) == 1, bzw. der else-Zweig der ersten Abfrage).

Die Abschaltbedingung ist erfüllt, wenn der Boilerfüllstand definiert (if str2num(app.Boilerfuellstand.Text) == 1) und der Füllstandsregler gleichzeitig aktiviert (if app.flag_Fuellstandsregler == 1) ist. Dann wird das Frischwasserventil (Y01) und das Füllventil (Y03) wieder geschlossen, die Pumpe mit 0 mV ausgeschaltet und über

         app.flag_Fuellstandsregler = 0

die Boilerbefüllung beendet.

Armin Rohnen, 16.02.2023

Der für die STM32-Elektronik realisierte Füllstandsregler ist für die Multi-MCU-Elektronik zu realisieren.