-> Hier kostenlos registrieren
(geschlossen)LogiCad3 + RevolutionPi + Nivouregulierung
Hallo,
ich habe versucht eine Nivouregulierung zu schreiben die Sowohl Automatisch oder Per Hand abläuft. Mein Gedeanken war, Ich frage für 72h die aussentemperartur ab. sollte diese für diese Zeit Konstand sein soll der Füllvorgang gestartet werden. Mit einem Drucksensor frage ich die Momentane Wasserhöhe ab, wenn der wert X erreicht soll die Automatik stoppen.
Zugleich wollte ich aber auch in den Handbetrieb wechseln können so das ich bei unterschreiten der Wasserhöhe X unabhöngig der Temp. Vorgabe das ganze starten kann.
Leider fehlt mir da der richtige Ansatz.
ich habe dies die ganze Zeit über einen Timer geregelt den ich nur per Hand Starten kann. Aber dies ist doch zu ungenau da ich die Kontrolle nicht habe wie hoch der Wasserstand X wirklich ist.
nun ist die Frage, wie löse ich es das ich, wenn Wasserstand unter X sowie für eine Zeit X so bleibt, das dann bei Bedarf gefüllt wird.
Vieleicht habe ich ja hier auch den Komplett Falschen Ansatz.
gruss
Hallo,
ich habe versucht eine Nivouregulierung zu schreiben die Sowohl Automatisch oder Per Hand abläuft. Mein Gedeanken war, Ich frage für 72h die aussentemperartur ab. sollte diese für diese Zeit Konstand sein soll der Füllvorgang gestartet werden. Mit einem Drucksensor frage ich die Momentane Wasserhöhe ab, wenn der wert X erreicht soll die Automatik stoppen.
Zugleich wollte ich aber auch in den Handbetrieb wechseln können so das ich bei unterschreiten der Wasserhöhe X unabhöngig der Temp. Vorgabe das ganze starten kann.
Leider fehlt mir da der richtige Ansatz.
ich habe dies die ganze Zeit über einen Timer geregelt den ich nur per Hand Starten kann. Aber dies ist doch zu ungenau da ich die Kontrolle nicht habe wie hoch der Wasserstand X wirklich ist.
Code:
IF(ox_Nivou)THEN
IF((Zustand = 0 OR Zustand =1 OR Zustand =11) AND (NOT Pumpe_ein)) THEN
oWasserstand := TO_WORD (rW_Stand_ist *10); // Ausgabe der Wasserhöhe
// Regelung für Frischwasserzufuhr FWZ Hand
R_TRIG_hand(CLK := FW_Hand OR TON_FWZ_Hand1.Q);
IF (R_TRIG_Hand.Q) THEN
Ventil_FWZ := NOT Ventil_FWZ;
mout_wasser := Ventil_FWZ;
END_IF;
TON_FWZ_Hand (IN:=Ventil_FWZ, PT:= t#5s);
TON_FWZ_Hand1.IN := TON_FWZ_Hand.Q;
R_TRIG_FZW_Hand (CLK := TON_FWZ_Hand.Q);
TON_FWZ_Hand1 (IN:= TON_FWZ_Hand.Q,PT:= t#5m);
Frischwasser := TON_FWZ_Hand1.IN;
END_IF;
Vieleicht habe ich ja hier auch den Komplett Falschen Ansatz.
gruss
Zuletzt bearbeitet: