CAD-Rendering
Motivation
Da die Trinkwasserqualität in St. Florian sehr auf der Kalkigen seite ist (25dH+), was in der Vergangenheit zu gehäuften defekten an der Wasserinstallation und enormen Kalkablagerungen geführt hat, haben wir eine Enthärtungsanlage einbauen lassen. Um das Wasser jedoch auf eine gute Weichheit zu bringen (3-4dH) muss eine enorme Menge Natrium (durch den Calcium-Natrium Ionentausch) in Kauf genommen werden.
Da uns das Wasser weder vorher noch nachher geschmeckt hat, habe ich eine Umkehrosmose-Anlage eingebaut. Der erste (funktionierende) Prototyp basierte auf einem Arduino Nano mit Relais-Board und einem Schlauchpaket, welches vom Sockelbereich der Küche zum zu füllenden Gefäß gelegt und der Füllvorgang per Knopfdruck gestartet wurde.
Schön dass es funktioniert hat, jedoch ein unnötiger Aufwand und ab und zu Glitches vor allem vom Knopf, der alle paar Wochen den Dienst versagte. Sie konnte jedoch bereits Automatische Vorspülung, Nachspülung und Überwachung des Füllvorganges bis zur maximalen Gefäßfüllung unseres 9 Liter Glasbehälters mit Zapfhahn.
Vision
Ich wünsche mir Ich wünsche mir eine Zapfstation welche vollautomatisch Funktioniert, optisch ansprechend ist und dem Nutzer nur ein Minimum an Kompetenzen übergibt.
Der Systemaufbau soll an den State-Of-The-Art der Industriellen Verfahrenstechnik in der Trinkwasseraufbereitung angelehnt sein, Langlebig sein und beste Wasserqualität liefern.
Anforderungen
Selbstständig bei unterschreiten des Minimum-Füllstandes den Füllvorgang des 9-Liter Glasbehälters bis zum erreichen Maximum-Füllstandes Durchführen.
Selbständig die Vorspülung der Konzentratseite des Osmosefilters Triggernund den den Erstverwurf des Permeartes (welches durch die Stagnation an Qualität verloren hat) durchführen.
Der Permeaterstverwurf soll in einen kleineren Glasbehälter geleitet werden, sofern dieser eingesetzt und nicht voll ist, da das Wasser für Pflanzen sehr geeignet ist.
Die Bedienung für den Nutzer soll einfach und intuitiv sein.
Die ganze Technik soll unsichtbar im Blendenbereich der Küche sein.
Die Ventilbox soll jegliche Wasserkomponenten den Sediment-Vorfilter den Aktivkohle-Filter Die Umkehrosmose-Membran und die Reminerisierungskartusche enthalten und mit Deckel geschlossen sein und sich im Urlaub leicht entfernen und in den Kühlschrank stellen lassen.
Die Steuerbox Soll alle elektrischen Komponenten insbesondere die SPS Enthalten und von dort aus über steckbare Kabelverbindungen verteilt sein.
Das Gerät soll eine interne Plausibilitätsprüfung aller relevanter Betriebsparameter durchführen, und entsprechend der Freigaben Aktionen durchführen oder in einen Störungszustand wechseln.
Der Wechsel der Vorfilter soll durch ein Abschätzen der Literzahl, respektive durch das Erreichen der maximalen Live-Span von einem Jahr indiziert werden. Das End of Life der Umkehrosmosemembran soll über einen Soll-Ist-Abgleich detektiert und indiziert werden.
Der unkontrollierte Wasseraustritt soll durch 2 unabhängige Systeme detektiert und die Hauptwasserzuleitung unterbrochen werden.
Der zweiwöchentliche Reinigungsintervall für den Glasbehälter soll durch ein Ausbleiben des automatischen Füllvorgangs und eine LED indiziert werden.
Das Verhältnis zwischen Permiat und Konzentrat soll automatisch nachgeführt werden.
Alle nötigen Schritte zur Sicherstellung einer maximalen Wasserqualität sowie Lebensdauer und einer minimalen Verkeimung sollen umgesetzt werden.
Die Statusausgabe und manuelle Eingriffe sollen über Modbus TCP an das KNX-System angebunden sein, jedoch im Standalone-Modus jegliche Funktionalität beibehalten.
Systemverständnis Umkehrosmose
Eine Umkehrungsmose-Anlage stellt unter Druck am eingang auf dem einen Ausgang Permeat (Reinstwasser), auf dem anderen Konzentrat (Schmutzwasser) bereit.
Durch die das herrschende Druckgefälle in der Membran, wird das reine Wasser durch die Membran (vorstellbar als extrem feiner Filter), welche nur die reinen H2O-Moleküle passieren lässt.
Auf der anderen Seite, also der Druckseite wird ein Konzentrat erzeugt da alle Salze und sonstigen Stoffe welche im Wasser vorhanden sind auf dieser Seite aufkonzentriert und ausgespült werden.
Würde sie nicht dauernd gespült, wäre Die Konzentratseite nach kurzer Zeit verstopft und die Membran würde ihren Dienst einstellen.
Lebensdauer / Wasserqualität
Die Lebensdauer der Membran und die Wasserqualität hängen stark davon ab, wie viel Ablagerungen sich auf der Konzentratseite bilden.
Da sich die Salzkonzentration im Betrieb gut und gerne verdoppeln kann, was die Bildung von Ablagerungen (Verkalkung usw.) exponentiell beschleunigt, ist es essenziell nach jedem Füllvorgang das Konzentrat ungedrosselst auszuspülen, während dem die Permeatseite verriegelt ist. Somit wird die Salzkonzentration auf der Konzentratseite auf das Niveau des Leitungswassers gesenkt.
Auf der anderen Seite ist es wichtig, vor der Verwendung der Membran, die Konzentratseite ungedrosslet auszuspülen, um die beginnenden Kristallkeime mit hohem Durchfluss auszuschwemmen.
Um effizient Vermehrt zu produzieren Ist es wichtig das Verhältnis von Reinwasser zu Spülwasser Richtig einzustellen. Das Verhältnis hängt vom Ausgangswasser ab also je höher der Kalk-/Salzgehalt desto mehr Spülwasser wird benötigt. Die simple Methode wäre also auf beiden Seiten einem Messbecher hinzustellen und das Verhältnis manuell zu messen und eine einstellbare Drossel zur Regulierung zu verwenden.
Temperaturabhängigkeit
Da die Membran aus Kunststoff besteht hängt ihre Durchlässigkeit stark von der Wassertemperatur und dem Druck ab. Somit wäre ein einmaliges Einstellen nur genau für diese Wassertemperatur Sinnvoll. Die Schwankungen der Wassertemperatur im Jahresverlauf sind jedoch ziemlich groß, im Winter kann es zeitweise sein, dass das Netzwasser um die 5°C hat, bei Aktiver Heizung kann das stehende Wasser in der Enthärtungsanlage jedoch auch mal 30°C haben. Somit ist ein Delta von >25K zu erwarten, was die Membran in ihren Eigenschaften signifikant verändert.
Somit braucht es in einem guten System, welches effizient Wasser produziert (also ohne Zu viel Spülwasser zu verbrauchen - geht in den Abfluss) eine kontinuierliche Überwachung der Wassertemperatur und eine Anpassung der Drosselung, welche am Ausgang der Konzentratseite nachgeschaltet ist.
Konzept
Permeat-Konzentrat-Verhältnis
Das Permeat-Konzentrat-Verhältnis wird Temperaturabhängig über eine Drosselkaskade gesteuert.
Stufe drossel 200ml/min (für Wasser <=14°C)
Stufe Drossel 300ml/min (für Wasser 14°C< tW <=22°C)
Stufe 1+2 also 500ml/min (für 22°C < tW)
Bypass-Stufe also Unrestricted-Flow
Somit wird unter allen Bedingungen ein Verhältnis von 1 / 1 bis 1 / 1,7 erzielt, welches für den niedrigen Kalk- und den hohen Naturiumgehalt geeignet ist.
Die Steuerung der Drosseln wird anhand der Filterkennlinien in der Dokumentation der DoW DuPont Filmtec-Membran (BW60-1812-75) vorgenommen.
Steuerung
Als Zentrale Steuereinheit habe ich mich für die Schneider Modicon M221 Serie entschieden, Da sie einen guten Kompromiss zwischen Preis und Leistungsfähigkeit darstellt.
Leider unterstützt sie nur Anweisungsliste (AWL), Kontaktplan (KOP) oder Ablaufsprache (Grafcet Liste/ SFC), Was zu einem Umdenken führt da ich bisher Meist in C++ programmiert habe, welche am ehesten der Structured-Text (ST) Programmiersprache der SPS-Programmierung nach IEC 61131-3 entspräche.
Genau das neue reizt mich aber, weil das eine komplett neue Herangehensweise an die Thematik fordert, was ich extrem spannend finde. Also habe ich mich entschieden Das Ganze mit KOP zu implementieren.
Sensorik
Für die Sensorik möchte ich so weit wie möglich auf industrielle Komponenten setzen, welche Durch ihre Kompatibilität mit der Industrieüblichen 24 Volt basierten steuerungen und ihre Zuverlässigkeit glänzen.
Füllstände mittels M30 Kakpazitiven Sensoren (3Stk)
Anwesenheit des Haupt-Behälter-Hahns und der Schliesszustand des Entnahmehahns mittels Induktiver Sensoren
Anwesenheit des Haup-Behälters und des Pflanzenwasser-Behälters mittels Endschaltern
2 Taster über 24V
Messung der Temperatur über einen PT100 (100 Ohm bei 0°C) Wandlers mit 0-10V Ausgang.
Messung des Wasserdrucks direkt vor der Umkehrosmose-Membran mittels industriellem 4-20mA Drucksensors und Messbrücke für Umwandlung in 2-10V
Messung des Durchflusses mit einem Durchflusssensor mit Schliesser-Kontakt
Feststellung von Leckagen mittels KEMO M158 Wassermeldern - Systemintern in der SPS
Feststellung von Leckagen mit externem Wasserschutzschalter WSS1, welcher direkt an das Eckventil und 230V angeschlossen wird
Aktorik
Über 9 Magnetventile werden die verschiedenen Wasserpfade gesteuert
Hauptventil (Hauptwasserzulauf)
Füllventil Hauptbehälter (Permeat Trinkwasser)
Füllventil Nebenbehälter (Permeat verwurf für Pflanzen)
Permeat-Waste-Ventil (Permeat-Verwurf bei vollem oder abwesenden Nebenbehälter)
Flush-Ventil (Druckspülung mit hohem Durchfluss der Konzentrat Seite)
Drossel-Ventil Konzentratseite 300ml/min (für 14°C< Wassertemperatur <=22°C)
Drossel-Ventil Konzentratseite 200ml/min (für Wassertemperatur <=14°C oder >22°C)
Indikation
LED_Weiß - Zustand “Füllen Hauptgefäss” (Kombiniert mit LED_Orange Reinigen Hauptgefäss)
LED_Blau - Zustand “Füllen Angefordert”
LED_Orange - Wartung! (Vorfilter/Membran)
LED_Rot - Fehler!
Alle Zustände werden über Modbus TCP auf den Schneider Spacelynk (Baugleich Logic Machine 5, also Visualisierungs- und Ausomatisierungsserver) und weiter auf das KNX-System und die Visualisierung ausgegeben.
Verkabelung / Steckverbindungen
Nach langem hin und her mit Industrie-Steckverbindungen, welche einfach oft zu teuer und schlecht lieferbar sind, habe ich mich für D-Sub-Kabel entschieden. Sie sind solide, günstige und vielseitige Optionen. Für die Zapfeinheit ein DB-15, für die Ventil-Box ein DB-9.
Zur Ansteuerung der Ventile sind sie aufgrund des geringen Querschnitts nicht geeigenet. Für die Ventile habe ich ein Kabel aus dem Fahrzeugbereich mit 1×1mm² + 7×0,5mm² Leitungsquerschnitt gefunden, welches perfekt auf die Anforderungen des geringen Spannungsabfalls auf der 2m langen Leitung mit bis zu maximal 4 gleichzeitig angesteuerten 6,5W 12V-Ventilen mit gemeinsamer Masse ausgelegt ist. Der maximale Spannungsabfall beträgt rechnerisch 0,114V was unter einem Prozent liegt und somit perfekt geeignet ist. Als Steckverbindung habe ich einen 8-Poligen Verbinder mit Schraubklemmen gefunden, welcher einseitig zur Gehäusemontage vorgesehen ist.
Bedienung
Überwiegend selbständiger Ablauf der nötigen Schritte zur sicherstellung optimaler Qualität, Hygiene und Lebensdauer.
Start/Stop-Taster (Kurzer Tastendruck → Füllanforderung Setzen / Rücksetzen; langer Tastendruck → Fehlerzustand rücksetzen)
Funktions-Taster (Als “Shift” taste, um mit gleichzeitig gedrückter Start/Stop-Taste mit: Kurzer Tastendruck → Vorfilter Erstspülung mit manuellem Bypass-Ventil; langer Tastendruck → Membran Erstspülung)
Die Behälter-Reinigungs-Erinnerung wird nach der Entnahme der Hauptbehälters für mehr als 30 Sekunden beim wiedereinsetzen zurückgesetzt.
Wenn man weiss, dass erhöhter Wasserbedarf besteht (Topf Suppe kochen) und das Gefäss zur neige geht, kann ein manueller Füllvorgang über den Start/Stop-Taster angefordert werden.
Wenn das Füllgeräusch stört (leises Plätschern) kann über den Start/Stop-Taster abgebrochen werden (wird bei unterschreiten des Minimum-Fullstandes erneut angefordert).
Software
Ich werde die Steuerlogik in eine State-Machine integrieren, welche jeweils einen eigenen State (Zustand) hat, in welchem die Ausgangsmatrix (Gesamtheit aller Ausgänge) jeweils einen fest vorgegebenen Grundzustand (Zustände von gewissen Ausgängen sind Festgeschrieben) hat, und über Subroutinen Nebenbedingungen für “variable Ausgänge” gesteuert werden. Der aktive State wird durch erfüllen respektive nichterfüllen von Bedingungen verlassen. Die Subroutinen sind in gewissen Zuständen aktiv, in anderen inaktiv.
Die Dokumentation mit sprechenden Namen und aussagekräftigen Kommentaren ist essentiell!
Beispiel
So ist beispielsweise im Grundzustand von [Füllen] V_1-EIN (Hauptventil offen) und V_2-EIN (Permeat Hauptgefäss offen) und V_3 bis V_5 AUS, zusätzlich LED_Weiss-EIN, um den Füllzustand anzuzeigen. Die Subroutine für die Drosselkaskade steuert parallel dazu, ob V_6 (Drossel 300ml/min) und/oder V_7 (Drossel 200ml/min) aufgrund der gemessenen Wassertemperatur aktiv sind. Im Hintergrund wird zusätzlich überwacht, ob mindestens eines der beiden Ventile angesteuert ist, damit jederzeit ein Spülstrom sichergestellt ist.
Ein reguläres Verlassen des Zustands [Füllen], wird durch das Erreichen des Maximalpegels ausgelöst, welches direkt in den Zustand [Nachspülen] führt, welcher im Grundzustand V_1-EIN (Hauptventil offen) und V_5-EIN (Spülbypass offen) und den Rest Geschlossen hält. Im Hintergrund wird in diesem Zustand überprüft, ob mit einer Einschwingzeit von 3 Sekunden der Durchflusswächter im Abwasserstrang anschlägt, um sicherzustellen, dass der Netzwasserdruck da, der Spülvorgang aktiv, und das Hauptventil funktional ist (welches das meistgenutzte Ventil und somit einen Indikator für Verschleiß / Ausfall darstellt).
Irreguläres Verlassen wird durch Taster Start/Stop kurz oder Öffnen des Zapfhahnes oder Entfernen des Hauptbehälters in zustand [IDLE] (Alle Ventile zu) verlassen. Wobei beim Öffnen des Zapfhahnes die Füllanforderung aufrecht bleibt und beim schließen wieder in den Zustand [Füllen] gewechselt wird.
Die Sicherheitsroutine bleibt immer aktiv und wechselt in bei Leckage in den Zustand [FAULT]. Zusätzlich wird der Fehlerzustand ausgelöst, wenn beim Vorspülen oder Nachspülen kein Durchfluss detektiert wird. Die Fülldauer wird mit einem Watchdog (Wachhund bellt, wenn etwas nicht stimmt!) überwacht und schaltet bei einem Füllvorgang, der länger als 50 Minuten dauert in den Fehlerzustand. Das gibt eine zusätzliche Sicherheit, falls der Maximalpegel-Sensor ausfällt, um den Wasserstand in der küche unter Kniehöhe zu begrenzen.
States und Transitions
Die Füllanforderung wird durch die Tägliche Spülung (Stillstand >= 1440min) oder das unterschreiten des Minimumsensors des Hauptgefässes getriggert und kann in allen States ausser [FAULT / LOCKOUT] bei Start/Stop Tastendruck (kurz) invertiert werden (wenn EIN → AUS und wenn AUS → EIN).
Transition zu [FAULT / LOCKOUT] aus jedem Systemzustand bei detektierter Leckage.
S10: [Idle] (Alle Ventile ZU)
Füllanforderung aktiv && Stillstand < 15min → [Ready / Settle]
Füllanforderung aktiv && Stillstand >= 15min → [Preflush]
Shift-Taste halten und gleichzeitig Start/Stop Taster kurz drücken → [Service Prefilter]
Shift-Taste halten und gleichzeitig Start/Stop Taster lang drücken → [Service Membrane Fast]
S20: [Preflush] (10s Bypass Kalk-Kristallkeime ausspülen — V_MAIN + V_BYPASS)
Zeit Abgelaufen && Stillstand < 60min → [Ready / Settle]
Zeit Abgelaufen && Stillstand >= 60min && Nebengefäß ( abwesend || voll ) → [Waste]
Zeit Abgelaufen && Stillstand >= 60min && Nebengefäß ( anwesend && nicht voll ) → [Plants]
Nach 3 Sekunden kein Durchfluss im Abwasserstrang detektiert → [FAULT / LOCKOUT]
S30: [Waste](150s Permeat erstverwurf — V_MAIN + V_WASTE)
Zeit abgelaufen → [Ready / Settle]
Nebengefäß anwesend && nicht voll → [Plants]
S35: [Plants] (150s Nebengefäß — V_MAIN + V_FILL_PLANTS)
Zeit abgelaufen → [Ready / Settle]
Nebengefäß ( abwesend || voll ) → [Waste]
S40: [Ready / Settle] (2s Druckstabilisierung Alle Ventile ZU)
Füllanforderung aktiv && Hauptgefäß ( anwesend && nicht voll ) && Hahn zu → [Filling]
Zeit abgelaufen (5min) → [Afterflush]
S50: [Filling] (Füllen Hauptgefäß — V_MAIN + V_FILL_MAIN + Drosseln)
Hauptgefäß ( abwesend || voll ) || Hahn offen → [Ready / Settle]
Maximale Fülldauer (50min) überschritten → [FAULT / LOCKOUT]
S60: [Afterflush] (15s Kalkschutz — V_MAIN + V_BYPASS)
Zeit abgelaufen → [Idle]
Start/Stop kurz → [Ready / Settle]
Nach 3 Sekunden kein Durchfluss im Abwasserstrang detektiert → [FAULT / LOCKOUT]
S70: [Service Prefilter] (Sediment- und Aktivkohlefilter 15min mit manuellem Bypass durchspülen)
Start/Stop kurz || Zeit abgelaufen → [Idle] + Literzähler sowie Nutzungsdauer rücksetzten
S80: [Service Membrane Fast] (Umkehrosmose Membran Konzentratseite 15min spülen)
Start/Stop kurz → [Idle]
Zeit abgelaufen → [Service Membrane Permeate]
Nach 3 Sekunden kein Durchfluss im Abwasserstrang detektiert → [FAULT / LOCKOUT]
S85: [Service Membrane Permeate] (Umkehrosmose Membran Permeatseite 1h spülen)
Start/Stop kurz || Zeit abgelaufen → [Idle]
S99: [FAULT / LOCKOUT] (Alle Ventile ZU)
Start/Stop Taster lang → [Idle]
Die booleschen Verknüpfungen: && — logisches UND; || — logisches ODER; die Klammerung wird von innen nach außen ausgewertet
Prozess
Schemata zeichnen
Einer der zentralsten Schritte, bei welchem die Zeit sehr sinnvoll investiert ist, da einem genau hier diese Fehler auffallen, welche man später nicht begeht — die anderen wird man noch früh genug finden. ;)
Die Farbgebung ist überwiegend an die vorhandenen D-Sub Kabel angelehnt, um Verdrahtungsfehler zu reduzieren.
CAD
Ein kniffliger aber auch spannender Teil des Prozesses.
Alle verwendeten Komponenten müssen erst vermessen und modelliert werden, die einen findet man glücklicherweise im Web. Abstraktionen auf die wesentlichen Astpekte sind erlaubt und auch wichtig, um die Zeit für relevante zu nutzen.
Alles muss passen, jegliche Interfaces zu Anbauteilen müssen übereinstimmen, die Zugänglichkeit zu Schrauben, Klemmen und Reglern, die Stecker, Kabel und Schläuche.
Und dem Auge schmeicheln soll es auch — ich bin zufrieden!
Fertigung
Als Material habe ich mich wegen seiner guten Eigenschaften bezüglich Zähigkeit, Druckbarkeit, Lebensmittelechtheit und Beständigkeit gegenüber UV und Alterung für PETG entschieden.
Die Druckparameter sind ein guter Kompromiss zwischen Stabilität, Materialverbrauch und Druckzeit.
Ergebnis
Schwierigkeiten
Platzprobleme
Da alle Unsichtbare Technik in den Sockelbereich der Küchenzeile verschwinden sollte, hatte ich gewisse dimensionale Vorgaben. In der Ventilbox habe ich es irgendwie geschafft, alles sinnvoll in einer 30×40cm Euro-Box mit Deckel unterzubringen. In der Elektro-Box war es schon ein wenig kniffliger die ganzen Komponenten und Klemmen unterzubringen. Die Sensoreinheit Hahn hatte es in sich, ist dank den Löt-Schrumpf-Verbindern erstaunlich gut gegangen. In der Zapfstation selber war es am CAD und beim Montieren und Verdrahten eine Herausforderung.
Leckagesensor
Leider ist die elektrische Leitfähigkeit des Permeates zu gering um in einem Sauberen umfeld den Leckagesensor auszulösen. Die Mineralisierungskartusche hebt den Leitwert von den ursprünglichen ung. 10µS/cm auf knapp unter 60µS/cm, dennoch detektiert die Messsonde nicht zuverlässig. Auf dem Boden unter der Küchenzeile funtioniert es dank Staub usw. ganz gut. In der Ventilbox ist es jedoch zu sauber.
Mein Workaround: Eine Priese Salz!
Wenige Salzkörner heben den Leitwert bereits genug an, um den Sensor zu triggern. Also habe ich ein wenig Salz auf den Boden der Ventilbox gestreut, es funktioniert — günstig — simpel — zuverlässig!
Resümee
Hat echt spass gemacht, mich wieder mal in so ein komplexes und vielschichtiges Projekt zu vertiefen. Die vier wochen haben meiner Seele echt gut getan!