Analogwert zu einer Tagessumme addieren

Bender25

Level-2
Beiträge
584
Reaktionspunkte
20
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen...

Steck gerade in etwas fest. Ich möchte einen Analogwert zu einer Tagessumme addieren. Wenn dieser Analogwert etwas angezeigt, sprich ein Durchfluss vorhanden soll dieser Wert zu einer Summe addiert werden. Wie gehe ich am besten vor. Die Einheit beträgt m³/h..
Ach ja.. Die Messung zeigt am Tag 2-3x einen Durchfluss sonst ist die 0


Wie alles realiesiert werden muß, das es zum umschalten bei Tageswechsel kommt ist klar. Nur wie addiere ich den Analogwert am besten.
Hab gerade irgendwie einen Hänger :confused: und komm nimmer weiter.
Wird Zeit für Wochenende
 
Was soll das Eregbnis sein? Da es sich um einen Durchfluss handelt, gehe ich mal davon aus, dass die Durchflussmenge (in diesem Falle m³) ermittelt werden sollen. Dann ist eine zeitliche Gewichtung erforderlich, d.h. wie lange ist wieviel durchgeflossen.
Mögliche Vorgehensweise: im OB35 den Wert auf die gewünschte Größe skalieren, das Aufrufintervall einrechnen und zu einem DWORD addieren. Bei Tageswechsel den alten Wert löschen (oder vorher sichern) und wieder bei 0 beginnen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Was soll das Eregbnis sein? Da es sich um einen Durchfluss handelt, gehe ich mal davon aus, dass die Durchflussmenge (in diesem Falle m³) ermittelt werden sollen. Dann ist eine zeitliche Gewichtung erforderlich, d.h. wie lange ist wieviel durchgeflossen.
Mögliche Vorgehensweise: im OB35 den Wert auf die gewünschte Größe skalieren, das Aufrufintervall einrechnen und zu einem DWORD addieren. Bei Tageswechsel den alten Wert löschen (oder vorher sichern) und wieder bei 0 beginnen.


hm kam warscheinlich nicht genau rüber. Aber wie du schon sagst soll ein Tageswert rauskommen m³

Aber genau da hänge ich. Ich weiß das ich diesen Analogenwert einlesen muß... Und was mach genau mit der Zeit? Da hänge ich. Hab mir das so gedacht, das ich den analogen wert auf >0 überwache.. ist dies der Fall starte ich eine Zeit...Aber dann??? *herr bitte mehr hirn* :confused:
 
Ich würde das mit einem Analog - Frequenzwandler (Baustein) lösen. Deinen normierten Wert auf den Baustein aufschalten und fertig. Solange der Wert 0 ist werden auf beim Bausteinausgang keine Impulse ankommen. Diesen Wert auf einen Tag summieren und fertig. Der Baustein anbei!
Grussss klauserl

VAR_INPUT
EINGANGSVAR : REAL ;
END_VAR
VAR_TEMP
TIMEVAR : TIME ;
OUTTIMEVAR : TIME ;
REALVAR : REAL ;
END_VAR
BEGIN
NETWORK
TITLE =Frequenz bilden (bis max. 500 Hz)
//Taktzeit berechnen
L 2.764800e+004; //Konstante anpassen an
L #EINGANGSVAR; //die Eingangsvariable
/R ;
RND ;
T #TIMEVAR;
//Startmerker negieren (M1.2 bilden)
UN M 1.1;
= M 1.2;
//SFB4 TON_IEC_TC (mit Instanz-DB4)
CALL "TON" , DB 4 (
IN := M 1.2,
PT := #TIMEVAR,
Q := M 1.1,
ET := #OUTTIMEVAR);
//Lange Impulszeiten unterbrechen (M1.1 setzen)
L #TIMEVAR;
L #OUTTIMEVAR;
<D ;
S M 1.1;
//Rechtecksignal formen (M1.0 blinkt)
UN M 1.1;
BEB ; //** BAUSTEINENDE **
UN M 1.0; //KEINE mechanischen
= M 1.0; //Bauteile ansteuern

END_FUNCTION
 
1. Abtastzeit überlegen, bei der der Meßfehler noch erträglich bleibt:
1min, 10 min, 1h?

2. Meßwert in Real wandeln wegen Rechenfehler mimieren

3. Meßwert auf Zeiteinheit skalieren
z.B. Abtastzeit 1min -> Summand = Meßwert / 60.0 //wegen m^3/h

4. Addieren: Tagessumme := Tagessume + Summand //Tagessumme in m^3

Punkte 2-4 zyklisch ausführen mit gewählter Abtastzeit
 
Zuviel Werbung?
-> Hier kostenlos registrieren
jetzt hat es klick gemacht.. Vielen Dank euch allen... Werd ich nachm Frühstück gleich mal umsetzten... :D

Vielen Dank auch klauserl... dein Baustein klingt auch sehr sehr gut...

Werd beides mal testen... :D
 
hm kam warscheinlich nicht genau rüber. Aber wie du schon sagst soll ein Tageswert rauskommen m³

Aber genau da hänge ich. Ich weiß das ich diesen Analogenwert einlesen muß... Und was mach genau mit der Zeit? Da hänge ich. Hab mir das so gedacht, das ich den analogen wert auf >0 überwache.. ist dies der Fall starte ich eine Zeit...Aber dann??? *herr bitte mehr hirn* :confused:
Du benötigst dafür keine extra Zeit. Du musst nur das Aufrufintervall des OB35 kennen (alternativ geht das natürlich auch im OB1 und Abfrage der aktuellen Zeit).
Du brauchst: Durchflussmenge = Durchfluss * Zeit
=> Lese aktuellen Analogwert ein, normiere ihn (= berücksichtige die vergangene Zeit), addiere ihn, fertig
In welchen Grenzen bewegt sich das? Welche Werte liefert der Analogeingang bei welchen physikalischen Größen? Welche maximalen Durchflussmengen pro Tag (wegen Grenzwert- bzw. Genauigkeitsbetrachtung) sollen erfasst werden?
 
Der Analogeingang ist eigentlich schon normiert.... Bekomme den Durchfluss schon fertig in einer Real-Zahl. Werde mich jetzt einmal dran setzen... Der Durchfluss wenn,wenn er da ist, liegt bei ca 150m³/h und der Analogwert geht von 0-300 m³/h

Vielen Dank
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Der Analogeingang ist eigentlich schon normiert.... Bekomme den Durchfluss schon fertig in einer Real-Zahl. Werde mich jetzt einmal dran setzen... Der Durchfluss wenn,wenn er da ist, liegt bei ca 150m³/h und der Analogwert geht von 0-300 m³/h

Vielen Dank
Dann ist es doch ganz einfach:
Code:
L Durchfluss     // Normierter Realwert
L 36.0           // Bei 100 ms OB 35 und Ergebnis in Liter 
/R               // Zahl / 36 = Zahl / 36000 * 1000
L TagesSumme
+R               // Summe liegt jetzt in Litern vor
T TagesSumme
Nur noch das Sichern des alten Wertes und das Nullen bei Datumswechsel berücksichtigen.
 
Dann ist es doch ganz einfach:
Code:
L Durchfluss     // Normierter Realwert
L 36.0           // Bei 100 ms OB 35 und Ergebnis in Liter 
/R               // Zahl / 36 = Zahl / 36000 * 1000
L TagesSumme
+R               // Summe liegt jetzt in Litern vor
T TagesSumme
Nur noch das Sichern des alten Wertes und das Nullen bei Datumswechsel berücksichtigen.


Vielen Dank.. läuft bereits schon... Super Danke an alle.. Weiß nicht wo ich heute morgen wieder meinen hänger hatte.. :rolleyes:
 
Zurück
Oben