Pumpensteuerung

Begonnen von swmggs, 24. Dezember 2006, 16:45:54

Vorheriges Thema - Nächstes Thema

0 Mitglieder und 27 Gäste betrachten dieses Thema.

swmggs

Hier mal meine fast fertige Pumpensteuerung, hoffe es klappt mit der angehängten Datei.

mfg swmggs

[gelöscht durch Administrator]

hugo

hast du hierzu auch schon eine beschreibung / source code?

swmggs

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

swmggs

Hier meine neuster Version. Habe ich was vergessen, um Anregungen bin ich dankbar.

mfg  swmggs

[gelöscht durch Administrator]

hugo

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;

swmggs

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

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



hugo

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

swmggs

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

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

hugo

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.

swmggs

schon klar,

ich als alter CFCÃÆ'ââ,¬Å¡Ãƒâ€šÃ,´ler mache das jetzt mit dem BLINK, dachte nur gäbe was anderes

swmggs

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]