Forum: Mikrocontroller und Digitale Elektronik Schwimmerschalter


von Stefan P. (scoop086)


Angehängte Dateien:

Lesenswert?

Hallo!
Ich habe ein Problem bei der Programmierung des Schwimmers! Mein ganzer 
Aufbau sieht so aus wie auf dem Bild.
Der Ablauf sollte so aussehen, dass ich einen Befehl via I2C Bus vom 
Master bekomme. Der Befehl startet den Befüllzyklus. Das Magnetventil 
öffnet und lässt das Wasser so lange in den Behälter laufen bis der 
Schwimmerschalter auslöst. Danach wird ein Rührer aktivieret (ist nicht 
im Bild eingezeichnet). Nach einer kurzen Mischzeit soll die unter dem 
Behälter stehende Pumpe das Wasser abpumpen.
Der Ablauf wird mittels Statemachine gemacht. Das große Problem das ich 
jetzt habe ist das wenn ich die Pumpe einschalte der Füllstand fällt 
(logisch). Sobald jedoch das Signal vom Schwimmerschalter weg ist öffnet 
das Magnetventil und lässt wieder Wasser in den Behälter. Habe schon 
versucht es mit verschachtelten If- Abfragen zu machen jedoch ohne 
Erfolg daher die Idee mit der State Maschine. Wäre echt froh über jede 
Hilfe die ich bekomme!
Noch ein paar Worte zur Schaltung: Eingangssignale (Schwimmerschalter) 
werden mittels Optokoppler eingelesen, Ausgangssignale (Pumpe, Rührer, 
Ventil) werden über ULN2003 geschaltet.

mfg Stefan 

von Hölscheranlage (Gast)


Lesenswert?

Die Zulaufzeit mit einem Counter erfassen und beim Ablassen wieder 
rückwärts zählen lassen.
Oder einen zweiten Schwimmerkontakt im Sumpf montieren, das ist 
sicherer.
So wird das auch in manchen Hebeanlagen gemacht, sogar mit einem dritten 
Schalter für die Überlaufalarmierung.

von Thilo M. (Gast)


Lesenswert?

Wenn du unbedingt Schwimmerschalter benutzen willst, dann brauchst du 
zwei davon. Einen zum Ventil öffnen, den Anderen zum Ventil schließen 
und Rührer starten.

von Hölscheranlage (Gast)


Lesenswert?

> Die Zulaufzeit mit einem Counter erfassen und beim Ablassen wieder
 > rückwärts zählen lassen.

Das geht aber nur gut, wenn Zu-und Ablauf die SELBEN Dimensionen habe.

von Dietmar (Gast)


Lesenswert?

> Noch ein paar Worte zur Schaltung

Das ist ein Logikproblem, kein Problerm der Schaltung. Mit einem 
Tank-Voll-Sensor kann man nicht feststellen, wann er leergepumpt ist - 
da helfen auch keine IF-Abfragen. Man müsste die Pumpe zeitlich steuern 
(z.B. eine Minute lang laufen lassen, bis der Tank garantiert leer ist), 
aber da Pumpen i.a. nicht leerlaufen dürfen...

> Die Zulaufzeit mit einem Counter erfassen und beim Ablassen wieder
rückwärts zählen lassen.

Das wird nicht gehen, da Zulauf und Ablauf nicht über den gleichen Pfad 
erfolgen.

von NurEinGast (Gast)


Lesenswert?

So ganz klar ist mir das Problem nicht.

Du willst es ja mit einer Statemachine angehen.

Nun - im State "Abpumpen" wir einfach der Schwimmerschalter nicht 
betrachtet und somit das Magnetventil nicht angesteuert.

von NochEinGast (Gast)


Lesenswert?

[quote]Nun - im State "Abpumpen" wir einfach der Schwimmerschalter nicht
betrachtet und somit das Magnetventil nicht angesteuert.[/quote]

Und wie kommst du dann aus diesem State wieder heraus?

Wie gesagt, du wirst eine zweiten Schwimmerschalter brauchen.

von NurEinGast (Gast)


Lesenswert?

NochEinGast schrieb:
> Und wie kommst du dann aus diesem State wieder heraus?

Über Timer, über zweiten Schwimmerschalter, über Befehl vom Master,... - 
das wissen die Götter. Da muss sich der Kollege natürlich was überlegen 
- klar.
Aber das war doch gar nicht die Eingangsfrage.

Der OP schrieb :
   Das große Problem das ich
   jetzt habe ist das wenn ich die Pumpe
   einschalte der Füllstand fällt .... Magnetventil öffnet ..

Ihr habt Euch - löblicherweise - eines anderen Problems angenommen.
Nämlich "Funktioniert das ganze überhaupt" oder "Ist der Aufbau Sinvoll"

Ich wollte mehr darauf hinweisen, dass der OP anscheinend ein Problem 
mit dem Verständniss der Statemachine hat, und darüber nachdenken sollte 
wie er seine States sinvoll aufbaut.
Wenn das Magnetventil IMMER am Schwimmerschalter hängt, dann ist das 
eben keine Statemachine.

von Hölscheranlage (Gast)


Lesenswert?

Dann male er sich das mal in Relaistechnik auf und übersetzt es in einen 
Programm-Ablaufplan, dann sieht er die Abhängigkeiten.
In Relaistechnik ist es ein nach dem Startimpuls ein Selbsthaltekontakt 
des Schalters und einem Endkontakt in Reihe zu alledem.

von Stefan P. (scoop086)


Lesenswert?

Danke für die schnellen Antworten!!! Das mit dem zweiten 
Schwimmerschalter lässt sich nicht realisieren da es aufgrund von 
platzgründen nicht mglich ist einen zweiten schwimmer zu instalieren! 
das abpumpen hätte ich sowieso mittels timer realisiert da es "immer" 
fast die selbe zeit ist! Meine pumpe ist auch gegen trockenlauf eher 
unempfindlich!



Hölscheranlage schrieb:
> Dann male er sich das mal in Relaistechnik auf und übersetzt es in einen
> Programm-Ablaufplan, dann sieht er die Abhängigkeiten.

Werde mal dieser idee nachgehen es in Relaistechnik zu zeichnen und dann 
zu übersetzen! nur halt die Selbsthalung macht mir da etwas sorgen! Habe 
keine ahnung wie ich das am besten schreiben soll! Vielleicht hat ja 
jemand einen Denkanstoß für mich!
mfg Stefan

von Hölscheranlage (Gast)


Lesenswert?

Wenn weitere Hub-Schwimmer platzmäßig nicht passen, dann sollte es ein 
einzelner Schwimmer auf einer Drehachse sein, z.B. von Zehnder.
Da stecken in einem Zylindergehäuse 3 Schalter drin für Minimum, Maximum 
u. Überlauf.
Die Achse bewegt immer gleichzeitig alle Quecksilberschalte, jeder hat 
seine eigene Kipp-Einbaulage innerhalb des gemeinsamen Drehwinkels.

von Hölscheranlage (Gast)


Lesenswert?

Ich sehe gerade, dass neue WUZ-Hebeanlagen von Zehnder mit 
Pneumatikschaltern ausgeliefert werden, Ersatzteile für alte gibt es 
jedoch weiterhin.
Du könntest also einen Druckschalter aus Waschmaschinen nehmen, die 
haben mehrere Druckanschlüsse für Niveaudetektion.

von U.R. Schmitt (Gast)


Lesenswert?

Irgendwie diskutiert Ihr hier komplett am Thema vorbei.
Der einzige der passend zum Problem gepostet hat war NurEinGast.

@Hölscheranlage
Wie willst Du eine 'State Machine' bzw. ein Zustandautomat in einer 
Relaisschaltung realisieren? Willst Du den ersten Relaiscomputer neu 
erfinden oder was?

Das Problem war doch Schwimmer schaltet wieder weil durch den Rührer 
sich das Niveau ändert.
Man könnte es mit einer Relaisverriegelung machen: Wenn Pumpe an, dann 
klemm Schwimmerschalter ab.
ABER ER HAT DOCH EINEN MICROCONTROLLER!
Also Zustandsmaschine
Zustand 1: Warten auf Füllbefehl. Wenn Füllbefehl Übergang auf Zustand 
2.
Zustand 2: Füllventil an, Schwimmerschalter abfragen bis Voll angezeigt 
wird, dann Ventil aus und Übergang auf Zustand 3.
Zustand 3: Über einen Timer rühren. Bei Timerende Übergang auf Zustand 4
Zustand 4: Abpumpen. Wie auch immer Timer, 2. Schwimmer, 
Durchflussmesser etc. Dann Übergang auf Zustand 1???

Wo ist da das Problem?

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.