Sollwerte anhand Klimakurve ermitteln

langer711

Level-1
Beiträge
19
Reaktionspunkte
1
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen!
Anhand einer Klimakurve soll in Abhängigkeit vom Gewicht der Tiere ein Sollwert für die Temperaturregelung ermittelt werden.

Es handelt sich in diesem Fall um einen Schweinemaststall.
Beispielkurve:
Die Kurve wird in einer DB angelegt

20 Kg - 30 Grad
30 Kg - 26 Grad
40 Kg - 23 Grad
50 kg - 22 Grad
60 kg - 21 Grad
70 kg - 20 Grad
140 kg - 18 Grad

Ich brauche also ein Funktion, die mir die beiden nächsten Eckwerte nach Vorgabe des aktuellen Gewichts nimmt, und mir den entsprechenden Wert ausrechnet.


Das Nächste:
Wie erhalte ich einen Integer Wert zwischen zwei Datumsangaben?
Konkret
Einstalldatum 1.Juni.2011
Heutiges Datum: 19.Juni.2011
Ergebnis: Masttag 19


Ich bin mir sicher, das in den Tiefen der angebotenen Funktionen irgendwo etwas passendes dabei ist, aber ich hab keine Ahnung, welche...

Sorry, aber ich bin es gewohnt, in Hochsprachen wie VB oder Pascal zu scripten.
Da gibts dann so schöne Funktionen wie "DateToInt"oder ähnliches...
Deswegen ist der Umstieg auf Step 7 nicht ganz so einfach ;-)


Siemens S7-300
Step7

Ansonsten... Schönen Sonntag :)
Der Lange
 
Wie erhalte ich einen Integer Wert zwischen zwei Datumsangaben?
Konkret
Einstalldatum 1.Juni.2011
Heutiges Datum: 19.Juni.2011
Ergebnis: Masttag 19

Der Lange

Wenn ich mich nicht täusche ist in der OSCAT-Bibliothek eine Funktion enthalten die Dir genau dieses errechnet.

Die OSCAT-Bibliothek ist frei erhältlich und Open Source, vielleicht findest Du dort auch noch etwas passendes für die Temperaturkurve.
 
Hmm.... ich wollt eigentlich nicht die OSCAT Bibliothek auch noch studieren, aber ok, ich schau mir das mal an, danke ;-)

Musst du doch nicht.
Ein fertiges Programm willst du?
Gibt es hier.
Viele hier verdienen ihr damit. Musst nur noch den Betrag angeben den du ausgeben willst. *ROFL*

Helfen tun hier viele, doch sollte zumindest Eigeninitiative vorhanden sein.
Versuche es und wenn du nicht weiterkommst, dann nachfragen.


bike
 
Zuviel Werbung?
-> Hier kostenlos registrieren
hey Bike, nicht gleich aus der Haut fahren ;-)
Ich hab nicht erwartet, das man mir direkt ein fertiges Programm unterjubelt, keine Angst.

Ich finde nur die passenden Funktionen noch nicht, mit denen ich dann weitermachen kann, das ist alles.

Aber danke für den Hinweis... Tschulligunk :)
 
hey Bike, nicht gleich aus der Haut fahren ;-)
Ich hab nicht erwartet, das man mir direkt ein fertiges Programm unterjubelt, keine Angst.

Ich finde nur die passenden Funktionen noch nicht, mit denen ich dann weitermachen kann, das ist alles.

Aber danke für den Hinweis... Tschulligunk :)

Ich fahre nie aus der Haut.
Ich rege mich auch nie auf, warum auch? Bringt nichts und verkürzt das Leben.

Wenn du die Frage so stellst, dass du keinen Ansatz hast, dann kann dir geholfen werden. ;)

Wenn ich dich recht verstanden habe, dann gibt es eine Tabelle mit den Werten.
Diese Werte würde ich in einem Datenbaustein ablegen.
Im Programm den Wert einlesen, diesen dann auf Grenzen abfragen, das heißt ab wann willst du auf bzw abrunden?
Mit Hilfe dieser Werte kannst du dann aus dem DB die Werte holen.
Schön wäre es wenn du eine Formel aus den Werten machen könntest.


bike
 
Ich gehe mal davon aus, dass du die Daten irgendwie in einen DB bekommst.
Beispielkurve:

20 Kg - 30 Grad
30 Kg - 26 Grad
40 Kg - 23 Grad
50 kg - 22 Grad
60 kg - 21 Grad
70 kg - 20 Grad
140 kg - 18 Grad

Ich brauche also ein Funktion, die mir die beiden nächsten Eckwerte nach Vorgabe des aktuellen Gewichts nimmt, und mir den entsprechenden Wert ausrechnet.
Du mußt also erstmal durch vergleichen herausfinden zwischen welchen beiden Eckwerten du dich befindest. Hast du das, dann kannst du dir aus der Gewichts-Differenz und der Temperatur-Differenz die Steigung (Grad/kg) berechnen und die dann auf deinen aktuellen Wert beziehen.


Wie erhalte ich einen Integer Wert zwischen zwei Datumsangaben?
Konkret
Einstalldatum 1.Juni.2011
Heutiges Datum: 19.Juni.2011
Ergebnis: Masttag 19
Zum Thema "Systemuhr auslesen" (SFC1) und "Datum aus der Systemzeit" gibt es in der Suche sicherlich etwas passendes zu lesen.
Wenn du das so machst dann erhälst du ein Format DATE, dass in Tagen formatiert ist. Wenn du die als Einstall-Datum speicherst dann kannst du durch subtrahieren ganz einfach eine Differenz bilden - und die ist dann auch schon in Tagen formatiert.

Viel Erfolg !
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ja ganz richtig, aufregen bringt nix, dafür werden wir nicht bezahlt, und die die dafür bezahlt werden mit Steuergeldern, lachen sich tot :)

Zum Thema.
Genau so hatte ich das Gedacht

DB anlegen mit den entsprechenden Werten
Per Schleife die beiden angrenzenden Knickpunkte ermitteln.
Dazwischen eine "Linie" berechnen, und anteilig den Mittelwert berechnen.

Also unter Excel-VBA wäre ich damit schon fertig... *ROFL*

Ich versuch mich grad darin, eine Funktion in SCL zu bauen.

Wie gesagt, ich war davon ausgegangen, das irgendwo eine solche Funktion oder Baustein bereits in Step7 existiert.
Ich mach dann mal weiter...


Achso: zu Sache mit dem Datum und dem Integerwert in Tagen:

Oscat-> Days_Delta

Liefert die Tage zwischen zwei Datum-Vorgaben in Form von INT
Danke dafür :)

Der Lange
 
Ich versuch mich grad darin, eine Funktion in SCL zu bauen.

Kommst du aus der Welt der Hochsprachen?

Sonst würde ich den Wert nehmen, mit CMP prüfen zwischen welchen Werten dein Wert ist.
Mit dieser Information den Baustein durchsuchen.

L Wert
L 25 // Eckwert plus Toleranz
<= I
= M 0.0 // Wert ist Minimum


L Wert
L 35
<=I
UN M0.0
= M0.1

Wegen Date / Time ist SFC1 dein Freund ;-)

So ein kleiner Tipp


bike
 
Zurück
Oben