Hallo!
ich habs jetzt so gemacht, dass bei Programmstart konstante Werte aus den DB Bausteinen in Merker gespeichert werden... das ist sicherlich nicht die "schönste" Lösung, funktioniert aber fürn Anfang mal recht gut.
An das Remanent machen der Merker habe ich auch schon gedacht, jedoch will ich ja die vom Benutzer vorgenommenen Änderungen vorraussichtlich nicht remanent speichern; weiters habe ich es einfach nicht geschafft irgendwo die merker auf einfachen weg mit zahlen vorzubelegen

? wie geht das?
Wegen der linearen Interpolation: Es soll die "Soll-Temperatur" zwischen den Stützstellen (Zeit und Temperatur) linear interpoliert werden.
So, nun ein Beispiel zur linearen Interpolation:
In den Merkern sind die angestrebten Endtemperaturen und die Zeiten die benötigt werden sollen um diese zu erreichen gespeichert
-- also z.B. Zeit1 im MW50; Temperatur1 im MW51; Zeit2 im MW52; Zeit3 im MW53 usw
Als Beispiel mit Zahlen:
Zeit1=60min; Temperatur1=50°C;
Zeit2=120min; Temperatur2=50°C
Zeit3=100min; Temperatur3=200°C
Zeit4=300min; Temperatur4=200°C
Zeit5=600min; Temperatur5=Raumtemperatur
Der angestrebte soll-Temperaturverlauf sieht dann folgendermaßen aus:
-> in den ersten 60Minuten (Zeit1) nach Programmstart soll die Temperatur "linear" auf 50°C (Temp1) ansteigen.
(also wenn die starttemperatur/raumtemperatur/maschinentemperatur anfangs z.B. 20°C ist,
dann muss die soll-Temperatur nach 30Minuten 20°C+(30min/60min)*(50°C-20°C)=35°C betragen.
also, wenn die Zeit1 verstrichen ist (nach 60minuten) muss die solltemperatur Temp1 (50°C) betragen
-> in den folgenden 120min (Zeit2) soll die Temperatur auf 50°C (Temp2) gehalten werden
-> in den nächsten 100min (zeit3) soll die Temperatur wieder linear auf 200°C (Temp4) ansteigen
der Temperaturanstieg über die Zeit sollte wieder mittels linearer Interpolation geschehen.
wenn die Zeit3 verstrichen ist, soll die Maschine auf 200°C sein
-> In den darauffolgenden 300min (Zeit4) wird wieder die Temperatur gehalten,
da die Anfangs- und Endtemperatur dieses Zeitabschnittes gleich sind
-> im letzten Zeitabschnitt (Zeit5=10Std) soll die maschine wieder auf raumtemperatur abkühlen - wieder mit ca. linearem Temperaturverlauf.
Nur der vollständigkeit halber (du wirst es eh wissen) die Formel für die lineare Interpolation zwischen zwei stützstellen:
Zwischenwert = Anfangswert + [(verstrichene Zeit)/(Gesamtzeit)] *(Endwert-Anfangswert)
Die Heizung / das Gebläse sollen vorerst mit einem Schwellwertvergleich (zwischen Soll- und Isttemperatur) geschalten werden.
(Wenn das mal alles funktioniert, überlege ich einen PID Reglerbaustein zu verwenden und die Verbraucher mittels PWM zu "dimmen"...)
Die "Reglerparameter" (also Schwellengröße, oder P,I,D) werden später experimentell ermittelt...
Danke für deine Hilfe!
mfg H
P.S.: Wie die Hilfe-Funktion funktioniert weiß ich eh, und die Verteilung der Merker im Speicher ist mir auch schon klar (glaube ich halt...)