Raumtemperaturregler mit Kühlungsoption für Fußbodenheizung
Verfasst: Di Nov 22, 2022 6:01 pm
Hallo zusammen,
auch wenn ein derartiger Regler aufgrund verfügbarer Aktoren mit Regler nicht unbedingt erforderlich ist. Habe ich aus der Not geboren eine Custom-Logik für einen Raumteperaturregler mit Kühlungsoption erstellt.
Ich habe die Anwendung getestet. Die Anwendung lief wie erwartet. Es laufen 26 Logiken für alle Räume des Hauses. Alles wie gewünscht.
Die Ist-temperaturen kommen per Telegramm aus der KNX-Anlage, die Soll-Temperaturen kommen per Comet-Visu ebenfalls über den KNX. Die Stellgrößen gehen nachdem die Lgik fertiggestellt und gespeichert wurde wie gewünscht raus. Zum Testen habe ich die EIngangswerte "Kühlung", "Soll-Temperatur" entsprechend mit der Visualierung geändert. Die Stellgrößen werden entsprechend auf den KNX gesendet.
Nach jetzt über 2 Monaten Nutzungsdauer ist mir folgemdes aufgefallen:
Freue mich über Feedback. Vielleicht hat ja auch jemand eine Idee, was ich übersehen haben.
Arno
auch wenn ein derartiger Regler aufgrund verfügbarer Aktoren mit Regler nicht unbedingt erforderlich ist. Habe ich aus der Not geboren eine Custom-Logik für einen Raumteperaturregler mit Kühlungsoption erstellt.
Code: Alles auswählen
/**
* FB RTR mit Kühlung V1.0
* Arno Zietz 22.11.22
*
* "Der Schöpfer dieser Custom Logik überträgt die Nutzungsrechte gemäß der TOLL ("Timberwolf Open Logikblock License") die unter https://wrgt.news/TOLL zum Download zur Verfügung steht."
*/
{
"_Meta": { // Optional
"Description": "FB RTR mit Kühlen",
"Version": "1.00",
"Icon": "" // format: "data:image/svg+xml;base64,ENCODED_FILE"
},
"Input":[
["Sw","Schalter","$Switch","c"],
["Cool","Kühlen","$Cool","c"],
["TempIn","Temperatur Messung","$VAR<TempIn!>","a"],
["Const_TempInaktiv","Schwellwert ob Regelung notwendig","$TempCompInaktiv","u"],
["Const_TempMax","Schwellwert, ob Temperatur zu hoch","$TempCompMaxWarm","u"],
["Soll","Soll-Wert","$Reference","c"],
["Kp","Proportional-Term","$Kp","u"],
["Ki","Integral-Term","$Ki","u"],
["Kd","Diverential-Term","$Kd","u"]
],
"Output":[
["Stell","Stellgröße","$Out","a"],
["FuehlerAlarm","bei 1 kein Temperaturwert innerhalb der Überwachungszeit","$Alarm_Sensor","c"],
["HitzeAlarm","bei 1 zu Hohe gemessene Temperatur","$Alarm_MaxTemp","c"],
["Status","HK aktiv oder inaktiv","$Status","a"]
],
"Level":[
["$Switch","bool",false],
["$Cool","bool",false],
["$CompSwitch","bool",false],
["$Alarm_Sensor", "bool",false],
["$Alarm_MaxTemp", "bool",false],
["$dummyTrue","bool",true],
["$dummyFalse","bool",false],
["$VAR<TempIn!>","float",15],
["$watchdogTime","integer",360],
["$Status","bool",false],
["$internStatus","bool",false],
["$TempCompInaktiv","float",18],
["$TempCompMaxWarm","float",30],
["$Reference","float",20],
["$Controlled","float",20],
["$Manipulate","float",0],
["$Kp","float",0],
["$Ki","float",0],
["$Kd","float",0],
["$Konst100","float",100],
["$Konst1","float",1],
["$Konst0","float",0],
["$Out","float",0]
],
"Module":[
["Comparator","$Reference","$CompSwitch","$TempCompInaktiv"],
["And",["$CompSwitch","$Switch"],"$internStatus"],
["Multiplexer",["$dummyFalse",0],"$Out","$internStatus"],
["Multiplexer",["$dummyFalse",0],"$Status","$internStatus"],
["Break",["-$internStatus"]],
["Statistic",["$VAR<TempIn!>"],0,0,"$Controlled",0],
["Comparator","$Controlled","-$internStatus","$TempCompMaxWarm"],
["Multiplexer",["$dummyFalse",0],"$Out","$internStatus"],
["Multiplexer",["$dummyFalse",0],"$Status","$internStatus"],
["Multiplexer",["$dummyTrue","$dummyFalse"],"$Alarm_MaxTemp","$internStatus"],
["Break",["-$internStatus"]],
["PID controller","$Reference","$Controlled","$Manipulate","$Kp","$Ki","$Kd"],
["Polynomial","$Manipulate","$Manipulate",["$Konst0","$Konst100"]],
["Latch","-$Manipulate","$Manipulate","$Cool",0],
["Latch","$Manipulate","$Manipulate","-$Cool",0],
["Limiter","$Manipulate","$Out",0,["-$Konst0","$Konst100"]],
["Comparator","$Out","$internStatus",0],
["Multiplexer",["$dummyFalse","$dummyTrue"],"$Status","$internStatus"]
]
}
Die Ist-temperaturen kommen per Telegramm aus der KNX-Anlage, die Soll-Temperaturen kommen per Comet-Visu ebenfalls über den KNX. Die Stellgrößen gehen nachdem die Lgik fertiggestellt und gespeichert wurde wie gewünscht raus. Zum Testen habe ich die EIngangswerte "Kühlung", "Soll-Temperatur" entsprechend mit der Visualierung geändert. Die Stellgrößen werden entsprechend auf den KNX gesendet.
Nach jetzt über 2 Monaten Nutzungsdauer ist mir folgemdes aufgefallen:
- Logik gespeichert und getestet
- Nach einiger Zeit (1 Tag?) lässt sich die Stellgröße nicht mehr verändern. Es wir der falsche Wert gesendet, obwohl sich die EIngangswerte entsprechend ändern
- Nach erneuter Speicherung, läuft es wieder
Freue mich über Feedback. Vielleicht hat ja auch jemand eine Idee, was ich übersehen haben.
Arno