Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Ergebnis 1 bis 10 von 10

Thema: Analogwert zu einer Tagessumme addieren

  1. #1
    Registriert seit
    23.08.2004
    Beiträge
    565
    Danke
    73
    Erhielt 19 Danke für 18 Beiträge

    Standard


    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 und komm nimmer weiter.
    Wird Zeit für Wochenende
    Zitieren Zitieren Analogwert zu einer Tagessumme addieren  

  2. #2
    Registriert seit
    27.10.2005
    Ort
    Schwäbisch Gmünd
    Beiträge
    5.224
    Danke
    630
    Erhielt 955 Danke für 769 Beiträge

    Standard

    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.
    Rainer Hönle
    DELTA LOGIC GmbH

    Ein Computer kann das menschliche Gehirn nicht ersetzen. Engstirnigkeit kann unmöglich simuliert werden. (Gerd W. Heyse)

  3. #3
    Bender25 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    23.08.2004
    Beiträge
    565
    Danke
    73
    Erhielt 19 Danke für 18 Beiträge

    Standard

    Zitat Zitat von Rainer Hönle Beitrag anzeigen
    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*

  4. #4
    Registriert seit
    21.07.2005
    Beiträge
    222
    Danke
    54
    Erhielt 2 Danke für 2 Beiträge

    Standard

    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

  5. #5
    Registriert seit
    30.01.2004
    Ort
    Erfurt
    Beiträge
    961
    Danke
    42
    Erhielt 109 Danke für 87 Beiträge

    Standard

    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
    __
    Mit freundlichem Gruß Peter

    ...Wir sind Alle Zeitreisende. Die überwiegende Mehrzahl schafft allerdings täglich nur einen Tag.... (Jasper Fforde: "In einem andern Buch")

  6. #6
    Bender25 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    23.08.2004
    Beiträge
    565
    Danke
    73
    Erhielt 19 Danke für 18 Beiträge

    Standard

    jetzt hat es klick gemacht.. Vielen Dank euch allen... Werd ich nachm Frühstück gleich mal umsetzten...

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

    Werd beides mal testen...

  7. #7
    Registriert seit
    27.10.2005
    Ort
    Schwäbisch Gmünd
    Beiträge
    5.224
    Danke
    630
    Erhielt 955 Danke für 769 Beiträge

    Standard

    Zitat Zitat von Bender25 Beitrag anzeigen
    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*
    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?
    Rainer Hönle
    DELTA LOGIC GmbH

    Ein Computer kann das menschliche Gehirn nicht ersetzen. Engstirnigkeit kann unmöglich simuliert werden. (Gerd W. Heyse)

  8. #8
    Bender25 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    23.08.2004
    Beiträge
    565
    Danke
    73
    Erhielt 19 Danke für 18 Beiträge

    Daumen hoch

    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

  9. #9
    Registriert seit
    27.10.2005
    Ort
    Schwäbisch Gmünd
    Beiträge
    5.224
    Danke
    630
    Erhielt 955 Danke für 769 Beiträge

    Standard

    Zitat Zitat von Bender25 Beitrag anzeigen
    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.
    Rainer Hönle
    DELTA LOGIC GmbH

    Ein Computer kann das menschliche Gehirn nicht ersetzen. Engstirnigkeit kann unmöglich simuliert werden. (Gerd W. Heyse)

  10. #10
    Bender25 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    23.08.2004
    Beiträge
    565
    Danke
    73
    Erhielt 19 Danke für 18 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von Rainer Hönle Beitrag anzeigen
    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..

Ähnliche Themen

  1. S5, Zähler addieren
    Von Boardmaker im Forum Simatic
    Antworten: 8
    Letzter Beitrag: 24.04.2010, 23:21
  2. Addieren Real
    Von Emilio im Forum Simatic
    Antworten: 8
    Letzter Beitrag: 21.12.2007, 13:37
  3. Analogwert in abhängigkeit einer Zeit erhöhen !!
    Von Snoopy123123 im Forum Simatic
    Antworten: 11
    Letzter Beitrag: 17.03.2007, 08:16
  4. Analogwert in nicht gleich Analogwert aus ?
    Von Dilbert im Forum Simatic
    Antworten: 13
    Letzter Beitrag: 16.03.2007, 08:24
  5. BCD addieren CPU 224
    Von digidax im Forum Simatic
    Antworten: 0
    Letzter Beitrag: 13.02.2006, 07:33

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •