Mengenerfassung

Hier noch ein paar Anmerkungen zum FC103 und wieso mir der FC103 nicht so gut gefällt:

Der FC103 vergleicht einen Eingabewert mit vorhandenen Eingabewerten aus einer Tabelle und sucht den ersten Wert, der größer oder gleich dem Eingabewert ist. Der entsprechende Ausgabewert aus der Tabelle wird dann als Ausgabewert ausgegeben.

Das Problem ist nun, dass zwischen den einzelnen Tabellenwerte keine Interpolation stattfindet. Man bekommt also keine kontinuierliche Funktion mit Zwischenwerten, sondern eine Treppenkurve mit Sprüngen in den Werten.

Code:
Überfallhöhe [cm] =>  Entlastungsmenge [l/s]
 
              [B]15  =>  0915  (Tabellenwert)[/B]
              16  =>  1470
              17  =>  1470
              18  =>  1470
              19  =>  1470
              [B]20  =>  1470  (Tabellenwert)[/B]
              21  =>  2050
              22  =>  2050
              23  =>  2050
              24  =>  2050
              [B]25  =>  2050  (Tabellenwert)[/B]
              26  =>  2700

Wenn man nun die Formel von @Ralle verwendet, bekommt man diese Probleme nicht. Mit der Formel hat man eine kontinuierliche Funktion mit einer beliebigen Anzahl von Zwischenwerten.

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

Ich selber würde also die Funktion von @Ralle verwenden.

Gruß Kai
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Naja, ich will mich da ja nicht einmischen, aber die x/y Wertepaare in einen DB legen und dazwischen linear interpolieren kostet auch nicht mehr als 30min Programmierarbeit.

chchchch.......grins
 
Das Drama nimmt kein Ende!
Nachdem ich Dank Eurer Hilfe das Ganze auf einer 314-CPU zumlaufen
gebracht habe , möchte man nun auch ältere Anlagen
(S7-214 CPU ) mit dieser Funktion nachrüsten.
Ich werde wohl nun die Formel von Ralle verwenden müssen , da in Micro-Win
kein entsprechender Baustein existiert.
Ich habe wieder eine Tabelle mit Wertepaaren die nicht liniar ist.
Wie sieht die Umsetzung der Formel in AWL aus ?
Für ein Beispiel wäre ich Dankbar.
 
Das Drama nimmt kein Ende!
Nachdem ich Dank Eurer Hilfe das Ganze auf einer 314-CPU zumlaufen
gebracht habe , möchte man nun auch ältere Anlagen
(S7-214 CPU ) mit dieser Funktion nachrüsten.
Ich werde wohl nun die Formel von Ralle verwenden müssen , da in Micro-Win
kein entsprechender Baustein existiert.
Ich habe wieder eine Tabelle mit Wertepaaren die nicht liniar ist.
Wie sieht die Umsetzung der Formel in AWL aus ?
Für ein Beispiel wäre ich Dankbar.
Wie man die Formel rechnet ist mir nunmehr klar.
Ich jedoch momentan mit der scalierung des Eingangswertes nicht klar.
Mein Endress und Hauser Ultraschallsensor liefert einen Strom von
4mA - 20mA bei einem Messwert von 0cm (0mA) - 124,5cm (20mA).
Wie muss ich den Eingangswert normien , wenn ich mit der Formel von
Ralle ( Trend2.zip) arbeiten will?
 

Anhänge

  • RUEB.PDF
    194,9 KB · Aufrufe: 19
Die erste Tabelle im Anhang habe ich vom Ing.-Büro erhalten. Sie stellt die
Werte für die Überlaufmenge ab der Überlaufschwelle (ab 90,5cm)dar.
Bei dem Becken mit der 300 Cpu konnte ich mit FC103 und einer Wertetabelle
arbeiten , diese habe ich bei der Überfallschwelle beginnen lassen .
Bei der 200 Cpu habe ich diese Möglichkeit nicht.
Ich habe versucht den Endress und Hauser -Ultraschallsensor bei 90,5 cm
auf 0 zusetzten , jedoch keinen Erfolg gehabt . Er meldet mir kein auswertbares Signal. Die Werte in den Tabellen des Ing.-Büros sind immer
von 0 cm bis 80 cm berechnet , in der Praxis ist jedoch meistens bei
40 - 50 cm Schluss (siehe Zeichnung im Anhang) . Bei der Lösung mit
Tabellen ist dies auch kein Problem , Werte über 40 cm kommen dann
einfach nicht vor.
Die Tabelle Nr.3 im Anhang stellt die Realität in der Rinne dar.
Alle Werte bis 90,5 cm sind 0 , die Berechnung beginnt bei 91,5 cm .
Ich habe die Formel getestet , es sind jedoch utopische Werte entstanden.
Wahrscheinlich liegt der Fehler in der Scalierung des Eingangs.
 
Die Berechnung der Entlastungsmenge sowie die Aufaddierung zu Tages.-
und Wochenwerte unsoweiter funktioniert bei der S7-300 wunderbar.
Ich habe den OB35 auf 1 Sekunde gestellt und rufe damit das Berechnungs-
Unterprogramm auf.
Die Berechnung bei der S7-200 funktioniert soweit ebenfalls, nur der Takt
macht noch Probleme .
Kann ich die Unterprogramme über den SM0.4 aufrufen oder muss ich das
Ganze über einen Interrupt machen. Wie bekomme den Interrupt auf
1 Sekunde gestellt ?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
such mal in MicroWin unter Interrupt (Operationsliste) nach ATCH, ENI, markiere diesen und drücke F1. Die Hilfe ist wirklich sehr ausführlich. Damit sollte es dann problemlos funktionieren.

Gruß Andre
 
Danke für die schnelle Antwort.
Ich hatte dort schon nachgeschaut .
Es steht dort etwas von 255 ms.
Ich habe im Moment leider keine Hardware im Hause um zu testen ob
1 sec möglich ist.
 
Hallo,
versuch doch mal das "Interruptbeispiel 1 (Flanke E0.0)".
In der Hilfe findest du den Punkt: "Interrupts, Prioritäten und Ereignisnummern", hier findest du die Ereignisnummer, die bei EVNT einzutragen ist. Evtl. käme hier Ereignis 0 in Frage (steigende Flanke E0.0). Versuch doch mal, ob du mit SM 0.5 (1 Sek.-Takt) auf den E 0.0 schreiben kannst.
LD SM0.5
= E0.0
Vielleicht kannst du das Ereignis so auslösen.
Gruß Andre
 
Hallo,
du kannst mit der pos. Flanke des SM 0.5 einen Merker setzen, mit diesem das Unterprogramm mit der Berechnung aufrufen und den Merker am Ende des Unterprogramms zurücksetzen. Dann bearbeitet das Programm die Berechnung alle 1 Sek. genau einmal.
Gruß Andre
 
Ich häng mich mal hier mit ran, versuche mich auch gerade an der Tabelle von Ralle, bekomme aber keine realistischen Ergebnisse

// Edit
// bin im Chat von wwwAndy geholfen worden
// die Lösung meines Problems ist ein Polynom 4.Ordnung
// schaut dann so aus (bezogen auf meine xls):
// =9,97418*E29^4+0,34294*E29^3-1,6179*E29^2+3,11029*E29-1,13149
// Danke vielmals
 

Anhänge

  • LF8.1.xls.txt
    23,5 KB · Aufrufe: 31
Zuletzt bearbeitet:
Zurück
Oben