Schalten Magnetventile (Labor) STM32-Basisboard

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

Florian Todenhagen, 29.12.2022

Das Ventil Y11 wurde aus der labortechnischen Espressomaschine entfernt. Daher muss das Schalten des Ventils auch aus der Betriebssoftware entfernt werden.

Jan Budnick, 02.06.2022 (Abschlussbemerkung)

Die Ansteuerung der Magnetventile bei derzeitigen Hydraulikaufbau wurde realisiert. Dessen Prinzipielle Ansteuerung kann im To-Do Übersicht über verbaute Aktorik und Sensorik nachgelesen werden. In der MATLAB® App geschieht die Ansteuerung 2-Stufig. Regler und Programme greifen auf einen Vektor mit Länge 10 zu. In diesem wird der gewünschte Zustand der 10 ansteuerbaren Ventile gespeichert. Um mehrfachzugriff zu vermeiden, werden immer alle Ventile gleichzeitig überschrieben. Sind alle Regler und Programme durchgelaufen wird der Vektor mit den gewünschten Ventilstellung verglichen mit einem Vektor des (angenommenen) Istzustand. Nicht übereinstimmende Ventile werden verstellt und der neue Istzustand gespeichert. Edit: In der alternativen neuen Version werden bei einem Unterschied zwischen soll und ist alle Aktoren auf einmal verstellt.

Bei dem geplanten Ventillayout mit 2 3/2-Wegeventilen für den Wasserbezug ist aufgefallen, dass es keine Möglichkeit gibt komplett zu sperren. Da das Wasser in der Wasserwendel jedoch in etwa die gleiche Temperatur hat wie im Boiler, fängt dieses an zu Verdampfen. Dies bedeutet, dass sich die Wasserwendel leert. Das wiederum verzögert einen anschließenden Wasserbezug deutlich und das Messen der Wassertemperatur wird durch Blasenbildung erschwert. Aus diesem Grund wurde Ventil Y07 durch 2 2/2 Wege-Ventile ersetzt, welche ermöglichen die Wasserwendel komplett abzudichten.

Dies ist keine Dauerhafte Lösung. Erstens wird dafür ein Magnetventil extra Ansteuerung gebraucht. Zweitens kommt es bei der Erwärmung des Wassers zu Expansion, welche zu Druckanstieg führen, wenn es keinen Raum zum Expandieren gibt. Da Wasser inkompressibel ist, kann das einen sehr starken Druckanstieg hervorrufen. Es muss dem Wasser Platz gegeben werden zum Expandieren, im Folgenden "Entlüften" genannt. Entlüftung bedeutet in diesem Kontext die Wasserwendel hydraulisch mit etwas anderem Verbinden (durch öffnen von Ventilen) um die Wasserwendel ins Gleichgewicht damit zu bringen.

Bisher kann man dafür entweder den Festwasseranschluss oder den Boiler verwenden. Die "Entlüftung" in den Festwasseranschluss wird derzeit präferiert. Bei der Entlüftung in den Boiler kommt es aufgrund von örtlich verschiedenen Temperaturen zu Dampfbildung in der Wasserwendel, sodass erst etwa 20 ml oder mehr beim nächsten Bezug verwendet werden, um die Wendel zu füllen. Das bedeutet gleichzeitig, dass etwa 20 ml Wasser pro Bezug in den Boiler gelangen. Bei der Labormaschine geht das, wenn man nur ein paar Bezüge durchführt oder zwischendurch den Füllstand reduziert. In der 1,8L Maschine wäre der Boiler jedoch schnell überfüllt. Aus diesem Grund wird stattdessen für die Tanknutzung eine Teilentlüftung in den Rückfluss empfohlen. Es wird nach Ende eines Bezuges die Wasserwendel für eine kurze Zeit mit dem Rückfluss entlüftet, sodass sich komprimierbarer Dampf bildet. Dies ist kein größeres Problem, da am Anfang eines Bezuges schnell über den Rücklauf bezogen wird, was ein Auffüllen ermöglicht.

Somit wird die Software auch mit Entlüftung in den Festwasseranschluss übergeben. Es wird jedoch jeweils hinter den betreffenden Ventilstellungen einen Kommentar mit der Alternativen Ventilstellung geben (Entlüftung Rückfluss), damit die Verwendung eines Tanks möglich ist. Die "Entlüftung" in den Festwasseranschluss ist nur dann gewährleistet, wenn immer mindestens 1600+ mbar Festwasserdruck anliegen.

Dieses Schalten muss zusätzlich in der Software beachtet werden, was einen Zusatzaufwand bedeutet, Verzögerungen verursacht und keine absolute Sicherheit gibt, da es alles nur grob abgeschätzt wird.

Es wurden sich zusätzlich Gedanken gemacht, wie eine Ideallösung aussehen könnte. Alle beruhen auf der Verwendung eines Überdruckventils, auch Expansionsventil genannt.

1. Derzeitiges Ventillayout behalten. (bedeutet 1 Extraventil). Überdruckventil im Warmwasser platzieren mit Entlüftung Richtung Frischwasser:

+Verursacht kein Druckabfall bei Wasserbezug

-Derzeit kein passendes Ventil bei AVS-Römer verfügbar welches den hohen möglichen Druck im warmen Zustand aushält

-Mehr Magnetventile

-kein Verdampfungsschutz, sobald die Magnetventile offen sind.

2. Ein Überdruckventil hinter dem Mischer platzieren, welches die Leitung bis 2 bar blockiert

+verhindert auch bei Nullförderung Verdampfen, solang genug Druck anliegt (oder ein Rückschlagventil hinter der Pumpe

+kein extra Magnetventil Notwendig

-Derzeit kein passendes Ventil bei AVS-Römer verfügbar

-Verursacht auch beim Kaffeebezug einen Druckabfall, somit bleiben von den zulässigen 12 Bar nur noch 10 übrig

3. Die wohl beste Lösung: Zurück zum alten Ventillayout gehen und ein Überdruckventil in den Rückfluss setzen, hinter das Magnetventil, sodass dort kein hoher Druck entstehen kann.

+kein extra Magnetventil

+höchst wahrscheinlich gibt es ein passendes Überdruckventil bei AVS-Römer

-Verdampfen wird nicht beim Kaffee oder Teewasserbezug unterbunden

To-Do: Verdampfungsproblematik in der Wasserwendel besser lösen und anschließend in Software übernehmen (dauert länger).

Jan Budnick, 09.04.2022

Aufgrund der Änderung des Ventillayouts wird auf eine Ansteuerung von Y10 verzichtet. Um dies zu erreichen muss darauf geachtet werden, dass dieses richtig eingebaut wird. Stattdessen wird über das Steuersignal von Y10 nun das neue Ventil Y11 angesteuert. Auch Y07 wird durch ein 2/2-Wegeventil ausgetauscht wird aber weiterhin über das gleiche Steuersignal angesprochen.

Ventile Y07 und Y09 wurden erneut ausgebaut und der teilbare Verbinder geteilt. Die Einschraubgewinde wurden anschließend mit einem Standardsechskantschlüssel so fest gezogen, wie es per Hand ging. Das Ventil ist im Betrieb bisher Dicht. Ein Festziehen bis ans Limit per Hand scheint also keine Problem für die Festigkeit des Gewindes darzustellen und ist gleichzeitig ausreichend um die notwendige Dichtwirkung zu erreichen.

Jan Budnick, 01.04.2022

Beim ersten Schalten der Ventile mit angeschlossenem Wasser ist aufgefallen, dass unabhängig der Schaltung der Ventile Y07 und Y09 kein Wasser aus dem Mischerablauf oder aus der Brühgruppe kam. Weitere Analyse mit einem baugleichen Ventil, sowie dem Durchblasen der Ventile von der Brühgruppe und dem Abfluss aus, hat ergeben, dass die Ventile spiegelverkehrt eingebaut waren. Die Ventile wurden ausgebaut und gespiegelt wieder eingebaut.

Die Tests haben ebenfalls ergeben, dass die Verbindung zwischen Y07 und Y09 undicht ist. Dies gilt ebenfalls für den Teewasser und Dampfhahnanschluss. Die Gewinde waren komplett lose, nicht einmal handfest. Die Gewinde wurden festgezogen. Die Hähne scheinen bei dem geringen derzeit getesteten Druck dicht. Die Verbindung zwischen Y07 und Y09 ist weiterhin undicht, da die Verbindung nicht symmetrisch eingeschraubt wurde und somit einseitig nicht vollständig eingeschraubt ist.

Alle einfachen Magnetventile wurden getestet und erscheinen funktionsfähig. Ausnahme bildet hier das Ventil vor dem Dampfhahn, da dieser noch nicht geöffnet wurde. Dennoch ist anzunehmen, dass hier alles funktioniert, da ein Klicken zu hören ist, wenn dieses angesprochen wird. Jan Budnick, 25.03.2022 [Bearbeiten]

Die Pinbelegung für die Ventile wurde wie folgt ermittelt:

Ventilpinbelegung Ventilbezeichnung MCP Pin
Y01 1
Y02 15
Y03 14
Y04 0
Y05 9
Y06 13
Y07 12
Y08 11
Y09 8
Y10/Y11 10

Jan Budnick, 21.02.2022

Ansteuerungsadressen der Magnetventile ermitteln und in der GUI der Projektgruppe WiSe21/22 anpassen.

Philipp Wieland 25.01.2022

Aktuelle Fehlermeldung verhindert das definierten der gpio_exp und damit das ansteuern der Magnetventile:

Traceback (most recent call last):
 File "<stdin>", line 25, in <module> -> gpio_exp = mcp23017.MCP23017(i2c_exp, 0x20)
 File "mcp23017.py", line 165, in __init__ -> self.init()
 File "mcp23017.py", line 170, in init -> raise OSError('MCP23017 not found at I2C address  {:#x}'.format(self._address))
OSError: MCP23017 not found at I2C address 0x20

Wahrscheinlich gibt es einen Zusammenhang zwischen dem Durchbrennen der U7 auf der Basisplatine und der neuen Fehlermeldung. Der Code im "mcu_connection_test.mlapp" war davor funktionsfähig.

Magnetventile schalten beim Einschalten der Maschine allerdings dauerhaft (Y01-Y04 und Y06) und laufen heiß. Y07 und Y08 haben vor der Neuverlötung der Kabel und des Entfernen des Phasenschnittreglers funktioniert.

Philipp Wieland 12.01.2022

Magnetventile Y07 und Y08 können als einzige Magnetventile angesteuert werden (zudem funktionieren auch Pumpe und Dosierventil nicht). Aufgrund dessen, dass das Programm "mcu_connection_test.mlapp" bei der Gruppe zur Inbetriebnahme des Pumpenprüfstands funktioniert kann dies als Fehlerquelle ausgeschlossen werden. Jetzt wird die Verkabelung überprüft und ggf. neu verlötet

Philipp Wieland 03.12.2021

Der Plan ist die Magnetventile in MATLAB der GUI hinzuzufügen, sodass diese manuell angesteuert werden können.

Philipp Wieland 23.11.2021

Zuerst müssen die einzelnen Magnetventile angesteuert werden und die einzelnen Kanäle werden auf dem Microcontroller zugewiesen. Nach Prüfung der Ansteuerung wird ein Prozessablauf festgelegt. Später muss der noch an die gegebenen oder gemessenen Werte im System angepasst werden.