Zählimpulse aus Analogwert bilden....!

rothhaut123

Level-1
Beiträge
9
Reaktionspunkte
1
Zuviel Werbung?
-> Hier kostenlos registrieren
Schönen Guten Abend!
Ich bräuchte mal ein wenig Ingenieursleistung :)

Also ich lese in meine SPS (S7- CPU 314) einen Analogwert eines Durchflussmessers ein.
Da Ganze geschieht per 4..20mA, Messbereich 0-500m³/h.
Soweit kein Ding.

Jetzt bräuchte ich aber daraus einen Zählwert, bzw. einen Impuls der mir
1 Impuls pro m³ ausgibt.
Das heißt also quasi, jedesmal wenn 1m³ durchgeflossen ist, wird ein Impuls ausgegeben. Die Impulslänge spielt kein Rolle.
Im Prinzip also ein Analog-Frequenzwandler.
Gibt es da schon was fertiges, oder hat jemand was im Ärmel ?

Ich habe schon diverse Eigenkreationen ausprobiert, aber irgendwie fehlt mir ein Stück Hirn, glaub ich...

Ich hab zwar einen ähnlichen Threat gefunden, aber das war leider nicht so zufriedenstellend :)

Ich hoffe hier kann mir jemand weiterhelfen.. eilt :)
Vielen Dank!
 
Ansatz:

Rechne die 500m³/h in l/s um und berechne sekündlich aus deinem momentanen Durchfluss die Durchgeflossene Wassermenge in l. Das summierst du, wenn die Summe > 1000 ist schickst du einen Puls raus.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Lars, vielen Dank.

Wie, denkst du, soll die sekundliche Berechung aussehen?
Soll ich die Berechnung in den OB 35 schreiben und den Weckalarm auf 1000ms einstellen ? .. Nur verständnishalbeer :)


Weitere Vorschläge ?!
 
Zuletzt bearbeitet:
Denke mal, so hat er sich das vorgestellt. Beim Erreichen von 1000 gibst Du dann den Puls raus. Nur den Rest nicht verschludern, denn du wirst die 1000 fast nie glatt treffen. Also den Rest in nen Zwischenspeicher schieben, den Zähler resetten und den Zwischenspeicher wieder in den Zähler packen. Hoffe das war einigermaßen verständlich.

Gruß
Zeuselix
 
Hallo,

ich hätte noch die Idee, über den Durchfluss zu Integrieren. Entweder mit einem selbst geschriebenem Integrator oder du schaltest den FB41 (PID-Control) als I-Regler. Das (zeitliche) Integral über m³/h sollte dann m³ ergeben. Die Zykluszeit kannst du dann auch kleiner wählen als 1000ms.
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
das Schlüsselwort heißt hier sicherlich "Flächen-Integral bilden".
Ich würde hier also mit einer schnellen Abtastrate (OB35 - z.B. 10ms) mit dem eineglesenen Analogwert dieses bilden und aufaddieren. Hast du den Wert, der 1m³ entspricht erreicht dann löscht du den Aufaddierer und erzeugst deinen Impuls (den allerdings im zyklischen Programm).

Gruß
LL
 
Hallo, vielen Dank für eure Antworten.
Das klingt alles einleuchtend - nur leider hab ich keinen Plan wie ich den Wert integriert bekomme... Wie gesagt - ich brauch ein bissel Ingenieursleistung :)

Also hätte jemand ein Stück Code für mich ?! :)
 
Hallo,
das hat nichts mit "Ingenieursleistung" zu tun sondern ist einfacher Dreisatz.
Wenn dein Geber dir 500m³/Std. meldet dann sind das 500/3600 m³/Sek. und weiterhin 500/360000 m³/10mSek. das mußt du dann nur aufaddieren bis du bei 1m³ bist ...

Gruß
LL
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Wenn sie OB35 jede 100 ms aufruf und in ob35 lese zie die analogwert ein und scaliere die auf max 500m³/h

36 000 * 100 ms = 1stunde
36 000 * 500 = 18 000 000 = 1stunde * 500M³/h
18 000 000 / 500 = 36 000 = 1 M³

Die scalierte wert addieren sie in ein DINT
Code:
L  #M3_st //INT
ITD
L #Wert   // Dint
+D
T #Wert
L L#36000  //=1m³
<D
spb M1
-D
T #Wert    //rest 
Set
S Puls
M1:L #Wert
L  L#18000  //=0,5 m³
>D
R Puls      // Puls bleib 0,5 M³ auf 1
 
...Ich würde hier also mit einer schnellen Abtastrate (OB35 - z.B. 10ms) mit dem eineglesenen Analogwert dieses bilden und aufaddieren...
Wobei man mit jeder Addition auch einen gewissen Meßfehler addiert. Man sollte also gut abwägen, welche Abtastrate man wählt. Sinnvoll wäre zu dem auch eine Schleichmengenunterdrückung.

Diese ingenieurtechnischen Leistungen lieferte Ihnen Onkel Dagobert :ROFLMAO:
 
Wobei man mit jeder Addition auch einen gewissen Meßfehler addiert. Man sollte also gut abwägen, welche Abtastrate man wählt. Sinnvoll wäre zu dem auch eine Schleichmengenunterdrückung.

Diese ingenieurtechnischen Leistungen lieferte Ihnen Onkel Dagobert :ROFLMAO:

Ja das wird ungenau. Sinnvoller wäre es z.B. wirklich sekündlich zu Berechnen, dann mit einem Durchflussmittelwert aus 10-100ms-Durchflussmomentanwerten. Das wird recht genau.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
... wobei ihr aber daran denken solltet, dass der Messwert ja nicht ein rücksetzbarer Mittelwert aller bisherigen Messungen sein wird sondern der Istwert, der jetzt im Moment anliegt. Ich denke, da hat jede Abtastrate so ihr Vor- und Nachzüge ... :rolleyes: Grundsätzlich habe ich bei solchen Dingen aber die Erfahrung gemacht, dass eine hohe Abtastrate genau wird ...
Ich denke aber, dass man da durch "ausprobieren" vielleicht den richtigen Wert findet.

Gruß
LL
 
Hallo,

vielen Dank für die Zahlreichen Antworten.
Ich werde mich morgen mal ans Werk machen und die verschiedenen Ansätze testen.
Ehrlich gesagt muss das gar nicht "so" genau sein, mit ein paar Prozent fehler kann ich an der Stelle gut leben.
Das ganze soll, so hoffe ich, eh nur ein Provisorium sein, bis Geld da ist eine gescheite Q-Messung zu kaufen, welche den Impuls gleich mit rausgibt.
Aber bekanntlicherweise halt ja nichts länger als ein Provisorium :)

Ich werde berichten!
Danke!
 
Zurück
Oben