Mengenerfassung

willirt

Level-1
Beiträge
24
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich muss aus einer Tabelle mit Wertepaaren (Überfallhöhe in cm und Entlastungsmenge in liter/sec) die momentane Entlastungsmenge (Liter/sec) berechnen und zu einer Gesammtmenge seit dem Eintreten des Entlastungs-
ereignisses aufaddieren. Dieser Wert soll dann in eine DB mit dem Zeitpunkt
von Beginn und Ende der Entlassung eingetragen werden. Beginn heißt der Zeitpunkt ab dem Messwert >0.
Der Messwert liegt als normierter Wert (INT) vor und gibt den Wasserhöhenstand von 0-100 cm an (4-20 mA).
Ich bin momentan ziemlich ratlos wie ich diese Aufgabe lösen soll.
Derartige Aufgabenstellungen werden an der Anlage (Regenüberlaufbecken)
mit Endress+Hauser Geräten, die sich entsprechend parametrieren lassen,
gelöst.
Obrige Aufgabenstellung kam nun nachträglich hinzu und soll softwaremäßig
gelöst werden.
Bei der SPS handelt es sich um eine S7-314
Für Lösungsvorschläge wäre ich unendlich dankbar.
 

Anhänge

  • Image0001.JPG
    Image0001.JPG
    107,6 KB · Aufrufe: 202
Verstehe ich das richtig:

Du musst aus einer Kurve (x,y) interpolieren und den entsprechenden Wert aufintegrieren?

Einen linearinterpolations-FB gibt es, also brauchst Du nur alle zB 1 Minute den Istwert nehmen und nach Interpolation (hier eher linear) den Liter- Wert/sek x 60 sek. aufaddieren.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich würde gleich die Formel für die Kurve hernehmen. In einem festen Intervall, z.Bsp. im Sekundentakt liest du dann die Überfallhöhe ein, berechnest nach der Formel die Entlastungsmenge und addierst das ganze in einem DB auf.

Das feste Intervall machst du entweder mit einem Timer oder du stellst den OB35 auf 1000ms ein (Hardwarekonfig) und machst das dann darin.
 

Anhänge

  • Trend2.zip
    2,5 KB · Aufrufe: 146
@Ralle: sehr sehr hübsch.

Da wir auch öfters was für Kläranlagen machen denke ich es gibt sogar eine "richtige" Formel für zB Regenüberlaufbecken um aus Höhe über Abflusskante (Breite muss auch bekannt sein) die Überlaufmenge zu berechnen.
 
JA, da gibt es eine Formel. Sie ist aber recht umfangreich.
Einige Endress&Hauser Geräte z.B. FMU861 haben diese Formel
ob Board. Sollte man für die Höhenstandsmessung eine Echolotmessung
benutzten, hat man eine Messungenauigkeit von min. 1cm.
Dies hat bei dieser Anwendung eine riesige Messungenauigkeit zur Folge.
Da kann man besser schätzen.

Bitverbieger
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hier zur Info die Überfallformeln:

Code:
//
//  Abhängig davon, ob der Wasserstand den Ablaufschlitz teilweise oder komplett bedeckt, 
//  werden folgende beide Formeln zur Ermittlung des Klärüberlaufs berücksichtigt:
//
//  Wenn unvollständiger Überlauf (Level H > Level V), dann wird phi <> 1.
//
//  I) Wasserstand füllt den Ablaufschlitz nicht komplett ([B]oder Überlaufschwelle[/B]):
//
//  Q = 2/3 * my * b * WURZEL(2g) * h2^1.5 * phi
//
//  my = 0,64   (Wasser über Schwelle)
//  b  = Schwellen/Schlitzlänge in [m]
//  g  = 9.80665 m/s^2
//  h2 = relative Höhe des Wasserstandes über der Schwelle in [m]
//  phi = 1 bei vollständigem Überlauf.
//   
//  II) Wasserstand füllt den Ablaufschlitz komplett:
//
//  Q = 2/3 * my * b * WURZEL(2g) * (h2^1.5 - h1^1.5) * phi
//
//  my = 0,64
//  b  = Schlitzlänge in [m]
//  g  = 9.80665 m/s^2
//  h2 = relative Höhe des Wasserstandes über Unterkannte Schlitz in [m]
//  h1 = relative Höhe des Wasserstandes über Oberkannte  Schlitz in [m]
//
//  Hinweis = h2 - h1 ergibt somit die Höhe der Schlitzblende (HoeheSli)
//  HoeheABS - RefHoehe - HoeheSli =  h1 
//  HoeheABS - RefHoehe            =  h2
//
//  
//                      XX
//      ________________XX  
//     W :       : h1   XX
//     W :     __:______XX
//     W :h2  
//     W :                  => QAbl
//     W :______________
//     W     RefHoehe   XX
//     W                XX
//     W                XX
//     W                XX      h2 - h1 = hSli
//
//
//  Beide Formeln liefern die Wasserüberlaufmenge in m^3/s
//
//
//
//  log.(3wrz(a)) = log.a / 3
//
 
Fc103?

Könnte ich die berechnung nicht auch mit CDT (fc103) durchführen.
Funktioniert es wenn ich die Tabelle in 80 Spalten aufteile (von Wert
1cm - Wert 80cm), obwohl die Werte nicht linear sind?
 
Der FC korrelierte Datentabellen ist genau richtig dafür.
Du legst aber nicht 80 Spalten sondern 80 Zeilen mit
entsprechenden x/y Wertepaaren an.
So kann man BELIEBIGE Funktionen hinterlegen,
natürlich auch nichtlineare.
Beim Aufruf des FC korr. Datentabelle ermittelt dieser
zu einem vorgegebenen X Wert das diesem Wert
nächstgelegene X/Y Wertepaar.

Ich denke das von Dir beschriebene Problem kann
man so elegant lösen....

Gruß ans Forum
 
Zuviel Werbung?
-> Hier kostenlos registrieren
ich möchte mich für die prommte Antword bedanken.
Da ich jedoch nur ein ziehmlich grüner Anwenderprogrammierer bin
habe ich noch ein Problem mit dem anlegen der Datenbank.
Wie muss der Aufbau aussehen , wenn sich die Wertepaare in einer Datenbank
befinden sollen (cm , l/s).
 
Hallo Willirt,

ja macht doch Sinn die X Werte
in cm und die zugehörigen Y Werte
in l/sec zu skalieren.

Schau mal in der Bausteinbezogenen
Hilfe zum FC korrelierte Datentabelle
bei S7 rein. Da ist meines Wissens
auch der Aufbau der Daten recht gut
mit einem Beispiel erklärt...

Gruß
 
Genau an diesem Punkt komme ich nicht weiter.
Ich habe bisher nur die allgemeine Erklärung für FC103 gefunden.
Sowohl die Beschreibung des Bausteins alsauch F1 sind für mich
diesbezüglich ein Buch mit 7 Siegeln.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Na ja, wenn das mit dem FC zu aufwendig wird, dann nimm doch die Formel:

Y=-0,0063X^3+1,819^X2+42,521x-63,568

Das ist doch mit einer Simatic null Problem und du brauchst weder Tabelle noch Interpoaltion. Wo liegt denn da das Problem?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Was muss man den da umsetzen?

Code:
//Y=-0,0063X^3+1,819^X2+42,521x-63,568
Y := EXPT((-0.0063*X), 3) + EXPT(1.819, (X*2))+ (42.521 * X) -63.568

Dein Programmcode ist in SCL, da wird die Rechnung natürlich einfacher. Wenn @willirt jedoch kein SCL zur Verfügung hat und in AWL programmieren muss, dann wird die Rechnung doch etwas komplizierter.

Gruß Kai
 
Ich kann mal ein Beispielprogramm für den FC103 schreiben und das Programm nachher ins Forum stellen.

Gruß Kai
 
Zurück
Oben