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

Seite 3 von 4 ErsteErste 1234 LetzteLetzte
Ergebnis 21 bis 30 von 37

Thema: Durchflussmengenzähler für Wasseraufbereitungsanlage

  1. #21
    Registriert seit
    22.01.2009
    Beiträge
    288
    Danke
    61
    Erhielt 32 Danke für 25 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    ich habe einen ähnlichen Fall wo mir kein Impuls zur Verfügung steht.
    Kann ich das so machen?

    Aufruf im OB35 alle 100ms

    Code:
    L #Skalierter Analogwert in REAL
    L  3.600000e+004
    /R    
    L  #Zählwert_REAL
    +R    
    T #Zählwert_REAL
    L  1.000000e+000
    <R    
    SPB   out1
    L #Zählwert_REAL
    L 1.000000e+000
    -R    
    T #Zählwert_REAL
    L #Zähler_DINT
    L 1
    +D    
    T #Zähler_DINT
    out1: NOP   0
    Gruß Klaus
    Geändert von Klärmolch (31.12.2011 um 00:24 Uhr)

  2. #22
    Registriert seit
    19.12.2011
    Ort
    Bremen
    Beiträge
    13
    Danke
    9
    Erhielt 6 Danke für 6 Beiträge

    Standard

    Hallo,

    hier ein Beispiel. Habe auf schnelle gemacht und kurz getestet, dennoch sind Fehler nicht auszuschließen.

    Code:
    FUNCTION "AnalWertSummZaehll" : VOID
    TITLE =Summenzähler eines analoges Wertes.
    //Zum Beispiel es sollte eine Gesamtvolumen eines durchgeflossenes Medium mit
    //einem Wert von Duchflüssmesser berechnet werden. Der Wert wird aus einer
    //analogen Karte gelesen. Wegen Umrechnungsfehler wird er zu erst in DI
    //gezählt. Zeit wird nicht berücksichtigt, weil die Abfrage immer periodisch in
    // abgefragt wird. Es wird ein Kaskaden-Zähler verwendet um die
    //Rundungsfehler wehniger zu machen.
    //Zur Info: wenn der Analogwer voller Aufschlag hat (mit Übersteuerungsbereich)=
    //32511, die abfrage alle 100ms,wird der erste Summenzähler erst in 1 Woche voll.
    //der Zweite Summenzähler erst in (2^32 Wochen) 41072091 Jahren
    AUTHOR : Bart
    VERSION : 0.1

    VAR_INPUT
    eZaehlReset : BOOL ; //Zählerstand auf null reseten
    eUmrechnFakt : REAL ; //Umrechnungfaktor. Darf nicht 0 sein
    eAnalWert : INT ; //Analogerwert direkt aus PEW
    END_VAR
    VAR_OUTPUT
    Zaehlerstand : REAL ; //AktuellerZählerstand
    END_VAR
    VAR_IN_OUT
    sSummenzhler1 : DINT ; //Erster Summenzähler
    sSummenzhler2 : DINT ; //Zweiter Summenzähler
    END_VAR
    BEGIN
    NETWORK
    TITLE =Wert übernehmen
    //Diesen Netzwerk alein in OB35 benutzen ist besser
    L #eAnalWert;
    ITD ;
    L #sSummenzhler1;
    +D ;
    T #sSummenzhler1;
    L L#2147451000;
    >D ;
    SPBN UBR1;
    -D ;
    T #sSummenzhler1;
    L L#1;
    L #sSummenzhler2;
    +D ;
    T #sSummenzhler2;
    UBR1: NOP 0;
    NETWORK
    TITLE =Wert ausgeben
    //Wert wird berechnet
    L #sSummenzhler2;
    DTR ;
    L 2.147451e+009;
    *R ;
    L #sSummenzhler1;
    DTR ;
    +R ;
    L #eUmrechnFakt;
    /R ;
    T #Zaehlerstand;
    NETWORK
    TITLE =Zähler reset
    //Zaehlerstand auf 0 setzen
    //
    U #eZaehlReset;
    SPBN Res1;
    L L#0;
    T #sSummenzhler1;
    T #sSummenzhler2;
    Res1: NOP 0;
    END_FUNCTION

    Guten Rutsch

  3. #23
    Registriert seit
    08.12.2011
    Beiträge
    67
    Danke
    0
    Erhielt 5 Danke für 5 Beiträge

    Standard

    Numerische Rechenfehler sollten immer beachtet werden. Diese Betrachtung nützt aber wenig, wenn der analoge Volumenstrommesswert viel ungenauer ist. Hierzu gibt es bislang keine Angabe. Wenn der Volumenstromwert bspw. nur +-10% Genauigkeit hat (der %-Wert bezieht sich dabei i.d.R. auf den Messbereichsendwert und ist demnach bei kleinen Volumenströmen schnell recht groß), dann summiert sich dieser Fehler mit jedem Iterationsschritt auf, sodass die Gesamtmenge (Volumen) schnell sehr ungenau wird!
    Geändert von Drucky89 (31.12.2011 um 12:17 Uhr)

  4. #24
    Registriert seit
    06.10.2003
    Beiträge
    3.414
    Danke
    451
    Erhielt 506 Danke für 408 Beiträge

    Standard

    Zitat Zitat von Drucky89 Beitrag anzeigen
    ..dann Summiert sich dieser Fehler mit jedem Interationsschritt auf, sodass die Gesamtmenge (Volumen) schnell sehr ungenau wird!
    Genau. Daher sollte die Interationszeit so groß wie möglich gewählt werden. Wie groß diese Zeit sein kann, hängt davon ab wie konstant der Volumenstrom ist und wie lange er ansteht. 100ms ist etwas sehr klein. Zudem sollte man unbedingt eine Schleichmengenunterdrückung vorsehen, also erst zählen, wenn der Meßwert eine realistische Größe erreicht hat.

    Zitat Zitat von Klärmolch Beitrag anzeigen
    ..Kann ich das so machen?..
    Prinzipiell ja. So ähnlich habe ich es auch schon einmal (widerwillen) gemacht.


    Guten Rutsch!
    Es gibt viel mehr Leute, die freiwillig aufgeben, als solche, die echt scheitern.
    Henry Ford

  5. #25
    Registriert seit
    22.01.2009
    Beiträge
    288
    Danke
    61
    Erhielt 32 Danke für 25 Beiträge

    Standard

    Der OB35 ist auf 100ms voreingestellt und wird so benötigt.
    Das kann ich noch anpassen.
    Den Reset und die Schleichmengenunterdrückung habe ich. Das ist nur der Summierteil.
    Mir passt das auch nicht, aber der Geber hat kein Impuls.

    Gruß
    Klaus

  6. #26
    Registriert seit
    08.12.2011
    Beiträge
    67
    Danke
    0
    Erhielt 5 Danke für 5 Beiträge

    Standard

    Zitat Zitat von Onkel Dagobert Beitrag anzeigen
    Genau. Daher sollte die Interationszeit so groß wie möglich gewählt werden.
    Aber auch hier gibt es schnell Grenzen. Das geht nur gut, wenn der Volumenstrom relativ konstant ist. Bei zeitlichen Schwankungen wird das Integrationsergebnis sonst zu ungenau.

  7. #27
    Registriert seit
    26.03.2007
    Beiträge
    47
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo, ich muss das Thema "Durchflussmesser" noch einmal aufleben lassen
    Habe folgendes Problem, von meinem Durchflusssensor bekomme ich 92 Impulse/Liter. Benötige nun einen Baustein der mir die aktuellen L/min ausgibt. Ich weiß das ich die Zeit zwischen den Impulsen messen muss, aber irgendwie komme ich auf keinen Lösungsansatz Hat jemand so einen Baustein eventuell schon erstellt? In dem man einfach als Eingangsvariable den pulsierenden Eingang und einen Normierungswert (Umrechnungsfaktor um auf die physikalische Größe pro Zeiteinheit zu kommen) einlesen kann, dass ich als Ausgangsvariable Liter/min, Umdrehungen/sec, usw. auslesen kann.

    Vieeelen Dank euch

  8. #28
    Registriert seit
    02.02.2012
    Ort
    Kaarst
    Beiträge
    126
    Danke
    10
    Erhielt 7 Danke für 7 Beiträge

    Standard

    Insteressant wäre erstmal zu wissen wie viel Liter da maximal fließen!
    Wenn du z.B. max 100m³/h hättest entspräche das ja 100.000l / h => 27l / sec => 2555 Impulse / sekunde!
    Selbst wenn nur 10m³/h wären lägst du ja immernoch bei 255 Impulse und damit wärs ja schon verdammt schwer alle Impulse definitiv mitzubekommen! (Es sei denn du hättest eine Zykluszeit von ca 1ms ^^")

    Am einfachsten wäre es da, glaube ich, 200-300€ zu investieren und dir einen Impulsumformer zu besorgen der aus den Impulsen ein 0/4-20mA Signal macht!

    Also klär erstmal über welchen maximalen Durchfluss wir reden.
    Gegebenfalls könnte man auch über Countermodule nachdenken welche dann aber halt wieder ein paar Hundert € mehr kosten!

  9. #29
    Registriert seit
    03.04.2008
    Beiträge
    6.200
    Danke
    237
    Erhielt 815 Danke für 689 Beiträge

    Standard

    Zitat Zitat von S1MoN Beitrag anzeigen
    Hallo, ich muss das Thema "Durchflussmesser" noch einmal aufleben lassen
    Habe folgendes Problem, von meinem Durchflusssensor bekomme ich 92 Impulse/Liter. Benötige nun einen Baustein der mir die aktuellen L/min ausgibt. Ich weiß das ich die Zeit zwischen den Impulsen messen muss, aber irgendwie komme ich auf keinen Lösungsansatz Hat jemand so einen Baustein eventuell schon erstellt? In dem man einfach als Eingangsvariable den pulsierenden Eingang und einen Normierungswert (Umrechnungsfaktor um auf die physikalische Größe pro Zeiteinheit zu kommen) einlesen kann, dass ich als Ausgangsvariable Liter/min, Umdrehungen/sec, usw. auslesen kann.

    Vieeelen Dank euch
    Das ist lösbar.
    Wie genau muss die Auswertung sein?
    Wieviel Wasser fliesst pro Zeiteinheit?
    Welches Aktualisierungsraster wird benötigt?

    bike

  10. #30
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.728
    Danke
    398
    Erhielt 2.406 Danke für 2.002 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,
    du packst den Impulsgeber auf eine Zählerkarte, parametrierst die für Frequenzmessung und versiehst die ausgegebene Frequenz mit einem Faktor und schon hast du was du brauchst ...

    Gruß
    Larry

Lesezeichen

Berechtigungen

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