HeizkurveAWL
Version Forum
Folgende Formel für eine Heizkurve habe ich im Heizungsbauforum gefunden:
Tv = neigung*1.8317984*(raumsoll-aussentemp)^0.8281902 + niveau + raumsoll
Ein Darstellung mittels Excel sieht sehr ähnlich aus, wie die mir bekannten Heizkurven. Diskussionen im Web zeigen aber, dass es anscheinend doch verschiedene Ansätze gibt, die stark vom beheizten Gebäude abhängig sind.
In diesem Fall habe ich die Formel so umgestellt:
Tv = (neigung*1.8317984*(raumsoll-aussentemp))^0.8281902 + niveau + raumsoll
Ich habe zuerst die Subtraktion ausgerechnet und negative Werte abgefangen, danach habe ich die Multiplikationen ausgeführt und danach den Exponenten berechnet.
Die Formel in AWL implementiert:
L #Raumsoll L #AussenTemp -R // raumsoll-aussentemp SPM Set0 // Falls negativ eine 0 fest zurückgeben L 1.831798e+000 *R L #Neigung *R LN L 8.281902e-001 *R EXP L #Niveau +R L #Raumsoll +R SPA Ende Set0: L 0.000000e+000 Ende: T #Zieltemp
In diesem Fall habe ich die Formel so umgestellt:
Tv = neigung*1.8317984*((raumsoll-aussentemp)^0.8281902) + niveau + raumsoll
Ich habe zuerst die Subtraktion ausgerechnet und negative Werte abgefangen, danach den Exponenten berechnet und dann die Multiplikationen ausgeführt.
L #Raumsoll L #AussenTemp -R // raumsoll-aussentemp SPM Set0 // Falls negativ eine 0 fest zurückgeben LN L 8.281902e-001 *R EXP L 1.831798e+000 *R L #Neigung *R L #Niveau +R L #Raumsoll +R SPA Ende Set0: L 0.000000e+000 Ende: T #Zieltemp
Da in einer S7-300 kein x^y berechnet werden kann, sondern nur e^y muss die Formel mittels ln (logarithmus) und exp (e^y) umgestellt werden.
Alle Variablen sind als Eingang bzw. Ausgang in der Funktion vom Typ Real (Gleitkommazahl) definiert.