Impuls Durchflussmengenmesser auswerten

mortus

Active member
Beiträge
43
Punkte Reaktionen
0
Zuviel Werbung?
->Hier kostenlos registrieren
Hallo zusammen,

ich habe einen Druchflussmengenmesser, der eine Durchflussmenge von 30l - 500l pro h messen kann und 400 Impulse/Liter ausgibt.
Ich möchte diese Impulse auf eine digitale Eingangskarte geben und in Liter pro Minute, Stunde umwandeln.
Jetzt wär die Frage zur allgemeinen Vorgehensweise? Bei angenommenen 500 l pro Stunde wären es ~56 Impulse/s. Wäre es sinnvoll
in einen zeitlich aufgerufenen Task zu arbeiten oder mit Zeitrelais. Es soll wenn möglich jeder Impuls auch erfasst werden.

gruß mortus
 

bits'bytes

Well-known member
Beiträge
347
Punkte Reaktionen
53
Hallo,
schnell hochgerechnet ergibt das ca. 112 notwendige Zyklen pro Sekunde, also eine Task-Zeit von < 9ms. Ich würde eher auf einen Zählereingang gehen und z.B. jede Sekunde den Zählerfortschritt auswerten.

Liter / Minute = delta ZS * 60

Liter / Stunde : kommt auch darauf an wie konstant der Durchfluss ist, wahrscheinlich wäre hier ein Zeitfenster von 10 - 30 Sekunden besser und hochrechnen auf 3600 Sekunden.

Du wirst hier bestimmt ein wenig herumprobieren bis du ansprechende Werte bekommst, hängt stark von deinen Wünschen ab und vom Verhalten des Durchflusses....

bg
bb
 
OP
M

mortus

Active member
Beiträge
43
Punkte Reaktionen
0
Zuviel Werbung?
->Hier kostenlos registrieren
Erstmal vielen Dank für die informationsreiche Antwort.

Habe hier mal ein kleines Beispiel programmiert und dies schon mal simulationstechnisch an einer Wago mit der Blinkfunktion ausprobiert
(Durchflussmengenmesser noch nicht vorhanden)
BLINK_1(ENABLE:= xDurchflussEin , TIMELOW:= t#100ms, TIMEHIGH:= t#100ms, OUT=>xImpuls );
BLINK_2(ENABLE:= TRUE , TIMELOW:= t#1s, TIMEHIGH:= t#1s, OUT=>xAuswerten );

R_TRIG_1(CLK:=xImpuls , Q=>xFlankeImpuls );
R_TRIG_2(CLK:=xAuswerten , Q=>xFlankeAuswerten );

IF xFlankeImpuls THEN
iZaehlwert:= iZaehlwert+1;
END_IF

IF xFlankeAuswerten THEN
iLiterMinute:= iZaehlwert*60;
iZaehlwert:=0;
END_IF

Wäre dies eine sinnvolle Weise, habe Steuerungen bis jetzt nur in der Schule und nicht in der Praxis programmiert.
Um professionelle Antworten wegen der Syntax und Variablendeklaration wäre ich sehr erfreut

Gruß mortus
 
OP
M

mortus

Active member
Beiträge
43
Punkte Reaktionen
0
Kleiner Fehler noch im Programm, ich muss den iZehlwert noch durch 400 teilen, da 400 Impulse = 1Liter
 

PN/DP

User des Jahres 2011-2013; 2015-2017; 2020-2021
Beiträge
19.495
Punkte Reaktionen
5.876
ich habe einen Druchflussmengenmesser, der eine Durchflussmenge von 30l - 500l pro h messen kann und 400 Impulse/Liter ausgibt.
Das macht zwar rechnerisch eine Periodendauer von >= 18ms, doch das Problem bei normalen Durchflußmessern ist, daß die Impulse kein Tastverhältnis 1:1 haben. Ich schätze, Deine Impulse können < 1ms kurz sein. Du wirst einen schnellen (Hardware-)Zähler brauchen.

Harald
 
Oben