Autor Thema: Impulse verarbeiten  (Gelesen 3192 mal)

Offline mueller-m

  • Newbie
  • *
  • Beiträge: 18
Impulse verarbeiten
« am: Januar 20, 2021, 10:55:18 Vormittag »
Moin zusammen,

ich bin momentan an einer Auswertung eines Kontaktwasserzählers dran.
Mein Ziel ist es über einen schnellen Zähleingang I1 (Steuerung EASY-E4-UC-12RC1) Impulse pro Sekunde zu erfassen um diese auf einen Mengendurchfluss verarbeiten zu können.

Ich erhalte max. 5,55 Impulse pro Sekunde. Der Kontaktwasserzähler wird über ein solid state relais entkoppelt und auf den Eingang gegeben.
Impulslänge 50ms - Rechteckform (Angabe vomKontaktwasserzähler)

Zum Testen habe ich das ganze wie folgt aufgebaut:

//Sekundentakt über Zeitrelais blinkend
 T01(
EN:= TRUE,
RE:=,
ST:=,
I1:= T#500ms,
I2:= T#500ms,
Q1=>,
QV=>
);

Q03:=T01Q1;

//Frequenzzähler Messintervall 1,0s, Zählereingang C_:I1
CF01(
EN:= TRUE,
SH:= 10;
SL:= 1;
OF=>,
FB=>,
ZE=>,
QV=>MD05,
QF=>MD10
);

MD10:=MD10/10; //QF=Frequenz*10, daher wieder durch 10teilen

------

Mit dem Zeitrelais habe ich eine Frequenz von 1Hz auf den Ausgang gegeben. Verdrahtet habe ich den Ausgang an der Steuerung dann wiederum wieder auf den Eingang I1. Eine Änderung des Messintervalls hat ein identisches Ergebnis ergeben.

Die beiden Doppelwörter habe ich auf eine Textanzeige mit zwei Wertanzeigen gebracht mit den Einstellungen:
Wertebereich/Abbildungsbereich 65535 und entsprechender Verknüpfungsvariable

Auf dem Display und auch in den Bausteinparametern, die ich mir Online im Display direkt am Baustein anschauen kann, kommen 3Hz bei raus.
Sieht jemand vielleicht einen Fehler, warum dies so ist? Es müsste ja 1Hz rauskommen.


Offline mueller-m

  • Newbie
  • *
  • Beiträge: 18
Antw:Impulse verarbeiten
« Antwort #1 am: Januar 21, 2021, 09:37:51 Vormittag »
Hat jemand vielleicht eine Idee? Oder gibt es eine leichtere Herangehensweise

Offline weiss_nix

  • Sr. Member
  • ****
  • Beiträge: 608
  • it has to be easy, it's a easy!
Antw:Impulse verarbeiten
« Antwort #2 am: Januar 21, 2021, 20:45:02 Nachmittag »
Hallo mueller-m,

die Parametrierung sollte IMHO eher so aussehen

T01(
EN:= TRUE,
RE:=,
ST:=,
I1:= T#50ms,
I2:= T#950ms,
Q1=> Q03,
QV=>
);

Da du aber eine Steuerung mit Relais Ausgängen nutzt wird es vmtl. eher in Richtung 200ms, 800ms gehen.
Weiters sollte das Messintervall vom Frequenzzähler ein vielfaches der geringsten zu erwartenden Frequenz sein.
In deinem Fall würde ich mal bei 3 - 5 Sekunden anfangen.

Gruß

PS: ich habe hier sowas ähnliches programmiert ...

« Letzte Änderung: Januar 21, 2021, 20:51:04 Nachmittag von weiss_nix »
Sollte ich (gefährliches) Halbwissen verbreiten, beuge ich demütig mein Haupt mit der Gewissheit versagt zu haben!
WICHTIG: Sämtliche Programme dienen lediglich der Veranschaulichung von Funktionen und sind nicht für den Produktiveinsatz geeignet!

Offline mueller-m

  • Newbie
  • *
  • Beiträge: 18
Antw:Impulse verarbeiten
« Antwort #3 am: Januar 22, 2021, 10:20:13 Vormittag »
Hallo weiss_nix,

vielen Dank für die Antwort.

Ich habe mir mal dein Beispiel gezogen und es mal ausprobiert.
So ganz verständlich ist die Funktionsweise aber leider noch nicht und wie ich es auf mein System anpassen könnte.

Bei max. 5,55 Impulsen pro Sekunde müsste ich T32 auf 180ms stellen. Das wäre mein Max.
Mein min. ist ungefähr 0,5 Imp./Sek. Es kommt hier aber auch nicht auf kleinste Ungenauigkeiten an.

Jetzt muss ich aber noch die Zeitmessung der Impulse T01 und die Durchflussberechnung anpassen.

Die Berechnung des Durchflusses wäre:
Durchfluss (m³/h) = (Impulse/sek * 3600) / 1000 * 1
Das ganze bei einem 1Liter pro Impuls

Muss ich diese Formel quasi über die Arithmetik machen?
Kann ich mit diesem Ablauf auch Kommazahlen hinbekommen? Sieht nur nach Ganzzahliger Auswertung aus anhand der Funktionsbausteine.

 


« Letzte Änderung: Januar 22, 2021, 10:24:54 Vormittag von mueller-m »

Offline weiss_nix

  • Sr. Member
  • ****
  • Beiträge: 608
  • it has to be easy, it's a easy!
Antw:Impulse verarbeiten
« Antwort #4 am: Januar 23, 2021, 07:09:55 Vormittag »
Hallo mueller-m,

Anbei ein Beispiel wie es funktionieren würde, P01 ist nur für Testzwecke und kann für den Echtbetrieb entfallen  ;)

T01 ( // Timer ansprechverzögert
EN := true,
RE := M01, // Timer reset mit pos. Flanke von M01
ST := ,
I1 := T#5s000ms, // Zeit ohne Impuls bis Anzeige auf 0 geht
I2 := ,
Q1 => ,
QV =>
);

M01 := (I01 or P2) and not M02; // Positive Flanke generieren
M02 := (I01 or P2); // Hilfsmerker für pos. Flanke

if T01Q1 then // Wenn Zeit ohne Impuls abgelaufen
MD02 := 0; // setze MD02 auf 0
elsif M01 then // wenn M01 (pos. Flanke)
MD02 := 3600000 / T01QV; // berechne Impulse pro Stunde
end_if;

D01 ( // Aufruf Textanzeige, Werteangleich (Menge pro Impuls) erfolgt mit Abbildungsbereich!
EN := true,
AI := ,
Q1 => ,
AO =>
);

Have Fun
« Letzte Änderung: Januar 23, 2021, 07:13:47 Vormittag von weiss_nix »
Sollte ich (gefährliches) Halbwissen verbreiten, beuge ich demütig mein Haupt mit der Gewissheit versagt zu haben!
WICHTIG: Sämtliche Programme dienen lediglich der Veranschaulichung von Funktionen und sind nicht für den Produktiveinsatz geeignet!

Offline mueller-m

  • Newbie
  • *
  • Beiträge: 18
Antw:Impulse verarbeiten
« Antwort #5 am: Januar 26, 2021, 08:51:06 Vormittag »
Vielen Dank für deine Antwort und sorry für meine verspätete Rückmeldung!!
Ich hatte es übers Wochenende bereits ähnlich aufgebaut aber durch dein Beispiel das Programm noch ein wenig verschlanken können.
 
Vielen Dank nochmal!

Offline weiss_nix

  • Sr. Member
  • ****
  • Beiträge: 608
  • it has to be easy, it's a easy!
Antw:Impulse verarbeiten
« Antwort #6 am: Januar 26, 2021, 11:28:54 Vormittag »
... kein Problem, wenn's geholfen hat ist alles gut  ;)

Gruß
Sollte ich (gefährliches) Halbwissen verbreiten, beuge ich demütig mein Haupt mit der Gewissheit versagt zu haben!
WICHTIG: Sämtliche Programme dienen lediglich der Veranschaulichung von Funktionen und sind nicht für den Produktiveinsatz geeignet!