Hier mal meine fast fertige Pumpensteuerung, hoffe es klappt mit der angehängten Datei.
mfg swmggs
[gelöscht durch Administrator]
hast du hierzu auch schon eine beschreibung / source code?
bin im Moment dabei noch ein paar Temperatureingänge dazu zu programmieren, und so wächst auch die Beschreibung.
Hoffe der Feiertagsstress lässt es zu ;) ;)
swmggs
Hier meine neuster Version. Habe ich was vergessen, um Anregungen bin ich dankbar.
mfg swmggs
[gelöscht durch Administrator]
hier das pump interface aus der oscat lib vielleicht kannst du das mitverwenden
FUNCTION_BLOCK actuator_pump
VAR_INPUT
in : BOOL;
manual : BOOL;
rst : BOOL := FALSE;
END_VAR
VAR_INPUT CONSTANT
min_ontime : TIME := t#10s;
min_offtime : TIME := t#10s;
run_every : TIME := t#10000m;
END_VAR
VAR_OUTPUT
pump : BOOL;
runtime : REAL;
cycles : REAL;
END_VAR
VAR
tx : TIME;
last_change : TIME;
meter : ontime;
old_man : BOOL;
END_VAR
(*
version 1.0 4 dec 2006
programmer oscat
tested BY oscat
actuator_pump is a pump interface which cam be controlled by an input in and an input manual.
in or manual high turns the pump output on.
a rst input is used to reset the runtime counters.
when the pump was not active for a time run_every the actuator turns on the pump automatically for min_ontime.
two setup variables min_ontime and min_offtime guarantee a minimum runtime and offtime of the pump.
the units are hours and the output type is real to prevent fromoverfow.
*)
tx := TIME();
IF rst THEN
rst := FALSE;
meter(rst := 1);
meter.rst := 0;
ELSIF manual AND NOT pump AND NOT old_man THEN
last_change := tx;
pump := 1;
ELSIF NOT manual AND old_man AND pump AND NOT in THEN
last_change := tx;
pump := 0;
ELSIF in AND NOT pump AND tx - last_change >= min_offtime THEN
last_change := tx;
pump := 1;
ELSIF pump AND NOT in AND NOT manual AND tx - last_change >= min_ontime THEN
last_change := tx;
pump := 0;
ELSIF NOT pump AND tx - last_change >= run_every THEN
last_change := tx;
pump := 1;
END_IF;
meter(in := pump);
runtime := meter.ontime;
cycles := meter.cycles;
old_man := manual;
Hallo Hugo,
danke für die Anregung, ich kann aber kein Englisch :'( :'( :'(, (reicht nur zum Essen und Trinken, also zum Überleben ;D).
Deswegen wäre ich für eine kurze deutsche Erklärung dankbar.
mfg. swmggs
Hallo Hugo,
ich glaube aus deiner Pumpensteuerung herauszulesen das dort auch eine Pumpenzwangschaltung drin ist.
Gibt es diese Funktion irgendwo einzeln ?
Sieht bei Dir ganz einfach aus ;D ;D, ich mach das mit timer, rtrigs uswusw :-[ :-[.
Ich kann leider nur mit CFC :-[ :-[ :-[
Könnte die gut in meiner Pumpen- und in der Mischersteuerung einbauen.
mfg swmggs
versuch doch einfach mal das modul aus der aktuellen oscat.lib
zugegeben in st ist vieles einfacher, dort kann man eben wirklich programmieren...
naja zumindest was sps anbelangt.
mit in schaltest du die pumpe an und aus.
manual ist ein override eingang für eine hand zwangssteuerung
rst setzt die timer des betriebsstundenzählers auf null.
der ausgang pump steuert die pumpe, und der ontime und cycles zählt betriebsstunden und ein aus zyklen.
wenn du auf das modul einen doppelclick machst
kannst du die werte für zwangssteuerung und minimale laufzeit einstellen.
viel spass
Tja das mit dem Programmieren.... , bin leider noch Anfänger und muss deshalb auf bestehend Funktionen zurückgreifen ;) ;),
aber wenn das was ich will mal mit CFC läuft habe ich mal Zeit mich mit st zu beschäftigen und dann werde ich hoffentlich mal
ein richtiger Programmierer ;) ;) ;) ;) ;) ;) ;) ;) ;) ;).
mfg swmggs
ups
FB_Pumpe:
das habe ich in meiner Pumpenfunktion auch ja alles drin, halt nur mit CFC, dachte die Funktion Zwangein gäbe es irgendwo als CFC, sieht unter st so einfach aus ;D.
Und ich finde (meine persönliche Meinung) einen Eingang manual gefährlich, bei mir kommt immer eine Handsteuerung in den Schaltschrank.
swmggs
den input manual musst du ja nicht benutzen, wenn er einfach offen bleibt wird er nicht benutzt
die zwangssteuerung ist aber nicht der manual eingang,
eine zwangssteuerung sorgt dafür das die pumpe alle xxx stunden automatisch yyy minuten läuft, als schutz um nicht festzusetzen.
schon klar,
ich als alter CFCÃÆ'ââ,¬Å¡Ãƒâ€šÃ,´ler mache das jetzt mit dem BLINK, dachte nur gäbe was anderes
swmggs
Hier als Anhang die verbesserte Pumpensteuerung, habe den Frostschutz- und Sommerabschaltung rausgenommen und als eigene Funktionsblöcke angelegt, kann diese somit besser in andere Funktionen einbinden ( Kesselsteuerung, Mischersteuerung usw).
swmggs
[gelöscht durch Administrator]