% gwp-steuerung-osmose % Steuerung für Osmose-Anlage des Günztal Waschparks % 06.09.2015
Die Platine steuert folgende Einheiten an den entsprechenden PINs:
/** Pumpe */
const int pumpPin = 8;
/** Magnetventil */
const int mValvePin = 9;
/** Spülventil */
const int rinseValvePin = 10;
Wasser wird von der Hochdruckpumpe angesaugt und durch das Membranmodul (Filter) gedrückt.
Mit öffnen des Magnetventils wird der Wasserzulauf geöffnet.
Die Filter werden gespült.
Vier Schalter werden verwendet um die Ausgänge zu steuern.
/** Tank ist leer */
const int emptyContainerPin = 2;
/** Tank ist voll */
const int fullContainerPin = 3;
/** Druckschalter */
const int pressureButtonPin = 4;
/** Startknopf */
const int startButtonPin = 5;
Wenn der Vorratstank für Osmosewasser leer ist schließt dieser Schalter.
Wenn der Vorratstank für Osmosewasser voll ist öffnet dieser Schalter.
Der Druckschalter schließt, wenn der Wassereingangsdruck in Ordnung ist.
Beim schließen dieses Schalters wird der Füllvorgang gestartet, sofern der Tank nicht voll ist.
Die Steuerung kann sich in folgenden Zuständen befinden:
enum Event {
/** Unbeschäftigt */
NONE,
/** Vorbereiten des Füllvorgangs (Spülen) */
SETUP_FILL,
/** Auffüllen des Tanks */
FILL,
/** Nachbereiten des Füllvorgangs (Spülen) */
RINSE,
/** Fehlerzustand */
ERR
};
Weder die Pumpe wird noch gestartet, noch ein Ventil wird geöffnet.
Über einen Zeitraum von zwei Minuten wird der Füllvorgang vorbereitet. Dazu wird neben der Pumpe und dem Magnetventil auch das Spülventil aktiviert.
Die Pumpe läuft und das Magnetventil ist geöffnet.
Über einen Zeitraum von drei Minuten wird der Füllvorgang nachbereitet. Dazu wird neben der Pumpe und dem Magnetventil auch das Spülventil aktiviert.
Falls die Schalter Tank leer
und Tank voll
gleichzeitig melden oder der Druckschalter nicht beim Pumpen aktiviert ist wird in einen blockierenden Fehlerzustand gewechselt.
Dabei sind die Pumpe sowie alle Ventile deaktiviert.