ich benötige mal eure Hilfe bei einem Skript.
Bei einer Heizungssteuerung soll eine Toleranztemperatur (toleranz_Temp) hinzugefügt werden.
Die Toleranztemperatur soll dazu dienen, dass die Heizung um Temperatur x abkühlt.
Nachdem (soll_TempOffice + toleranz_Temp) unterschritten wurde, soll die Heizung angehen und aufheizen bis die Solltemperatur (soll_TempOffice), ohne Toleranz, erreicht wurde.
Code: Alles auswählen
! evtl. Variablen casten, wegen Ganzzahl ohne Nachkommastelle
var ist_TempOffice = 19.4;
! var soll_TempOffice = dom.GetObject("BidCos-RF.MEXXXXXXXX:4.SET_TEMPERATURE").Value();
var soll_TempOffice = 20.0;
var toleranz_Temp = -0.5;
var akt_VentOffice = 25;
var HzOffice = -1;
var HZ_RHZ = -1;
! Office
if ((ist_TempOffice >= (soll_TempOffice + toleranz_Temp)) && (akt_VentOffice <= 25))
{HzOffice=0;
WriteLine("F1: Ist : " # ist_TempOffice.ToString(1));
WriteLine("F1: Soll : " # soll_TempOffice.ToString(1));
WriteLine("F1: Toleranz : " # toleranz_Temp.ToString(1));
WriteLine("F1: Ventil : " # akt_VentOffice);
WriteLine("F1: HzOffice : " # HzOffice);
}
if ((ist_TempOffice < (soll_TempOffice + toleranz_Temp)) && (akt_VentOffice >= 25))
{HzOffice=10;
WriteLine("F2: Ist : " # ist_TempOffice.ToString(1));
WriteLine("F2: Soll : " # soll_TempOffice.ToString(1));
WriteLine("F2: Toleranz : " # toleranz_Temp.ToString(1));
WriteLine("F2: Ventil : " # akt_VentOffice);
WriteLine("F2: HzOffice : " # HzOffice);
}
if ((ist_TempOffice < (soll_TempOffice + toleranz_Temp)) || (akt_VentOffice>95))
{HzOffice=10;
WriteLine("F3: Ist : " # ist_TempOffice.ToString(1));
WriteLine("F3: Soll : " # soll_TempOffice.ToString(1));
WriteLine("F3: Toleranz : " # toleranz_Temp.ToString(1));
WriteLine("F3: Ventil : " # akt_VentOffice);
WriteLine("F3: HzOffice : " # HzOffice);
}
! aktuelle Temperatur zwischen soll Temperatur + toleranzTemp oder soll Temperatur und Raumheizung eingeschaltet -> Heizung ausschalten
if ((((ist_TempOffice >= (soll_TempOffice + toleranz_Temp)) || (ist_TempOffice < soll_TempOffice)) && HZ_RHZ=="AN"))
{HzOffice=0;
WriteLine("F4: Ist : " # ist_TempOffice.ToString(1));
WriteLine("F4: Soll : " # soll_TempOffice.ToString(1));
WriteLine("F4: Toleranz : " # toleranz_Temp.ToString(1));
WriteLine("F4: Ventil : " # akt_VentOffice);
WriteLine("F4: HzOffice : " # HzOffice);
}
! aktuelle Temperatur zwischen soll Temperatur + toleranzTemp und soll Temperatur und Raumheizung ausgeschaltet -> Heizung einschalten
if ((((ist_TempOffice > (soll_TempOffice + toleranz_Temp)) || (ist_TempOffice < soll_TempOffice)) && HZ_RHZ=="AUS"))
{HzOffice=10;
WriteLine("F5: Ist : " # ist_TempOffice.ToString(1));
WriteLine("F5: Soll : " # soll_TempOffice.ToString(1));
WriteLine("F5: Toleranz : " # toleranz_Temp.ToString(1));
WriteLine("F5: Ventil : " # akt_VentOffice);
WriteLine("F5: HzOffice : " # HzOffice);
}
if ((HzOffice)>0)
{
HZ_RHZ="AN";
}
else
{
HZ_RHZ="AUS";
}
WriteLine("-------------------");
WriteLine("Heizung " # HZ_RHZ);
Code: Alles auswählen
var ist_TempOffice = 20.0;
var soll_TempOffice = 20.6;
var toleranz_Temp = -0.5;
var akt_VentOffice = 25;
var HzOffice = -1;
var HZ_RHZ = -1;
var ist_TempOffice_last = ist_TempOffice;
var temp_trend = 0;
while (true)
{
if (ist_TempOffice > ist_TempOffice_last) {
temp_trend = 1;
} elseif (ist_TempOffice < ist_TempOffice_last) {
temp_trend = -1;
} else {
temp_trend = 0;
}
ist_TempOffice_last = ist_TempOffice;
if (temp_trend == -1 && ist_TempOffice < (soll_TempOffice + toleranz_Temp)) {
HzOffice = 10;
} elseif (temp_trend == 1 && ist_TempOffice >= soll_TempOffice) {
HzOffice = 0;
}
}
if ((HzOffice)>0)
{
HZ_RHZ="AN";
}
else
{
HZ_RHZ="AUS";
}
WriteLine("F1: Ist : " # ist_TempOffice.ToString(1));
WriteLine("F1: Soll : " # soll_TempOffice.ToString(1));
WriteLine("F1: Toleranz : " # toleranz_Temp.ToString(1));
WriteLine("F1: Ventil : " # akt_VentOffice);
WriteLine("F1: last : " # ist_TempOffice_last.ToString(1));
WriteLine("F1: trend : " # temp_trend);
WriteLine("F1: HzOffice : " # HzOffice);
WriteLine("-------------------");
WriteLine("Heizung " # HZ_RHZ);
Um weitere Hilfe wäre ich sehr dankbar.
Viele Grüße