

AccuManageCooling (Akku Management - Kühlen)
Dieser Baustein gehört zum Paket „Accu (Akku).“
Paket-Preis: 29,50€
Kurzbeschreibung
Dieser Baustein steuert ein Kühlungssystem, das auf mehreren Eingabekriterien basiert. Sie erlaubt es, Bedingungen wie Innen- und Außentemperaturen, die Akkuladung und bestimmte Zeitpläne zu berücksichtigen, um den Kühlmodus dynamisch anzupassen. Außerdem werden Lizenzen validiert, um die Nutzung des Systems zu autorisieren. Die Ergebnisse der Ausführung werden protokolliert und in mehreren Ausgängen zur Verfügung gestellt.
Besonderheit
- Flexible Steuerung des Kühlbetriebs:
Dieser Baustein ermöglicht eine dynamische und anpassbare Kühlung, basierend auf verschiedenen Bedingungen wie Innen- und Außentemperaturen, Akkuladung und anderen Faktoren. - Zeitbasierte Steuerung:
Die Kühlung kann zeitabhängig gesteuert werden, abhängig von konfigurierten Zeitplänen. - Lizenzvalidierung:
Der Baustein prüft, ob eine gültige Lizenz und eine unmanipulierte .dll-Datei vorliegen. Ohne gültige Lizenz ist keine Funktion gewährleistet. - Fehlerbehandlung:
Ausführliche Try-Catch-Blöcke sichern den Baustein gegen Fehler ab und erzeugen detaillierte Logs zur Diagnose. - Zusätzliche Sicherheits- und Komfortmodi:
Die Klasse berücksichtigt Sommer- und Heizbetrieb sowie zusätzliche Triggerbedingungen. - Logging und Statusmeldungen:
Alle relevanten Ereignisse und Zustände werden in Log-Variablen protokolliert, die als Ausgänge zur Verfügung stehen.
Der Baustein AccuManageCooling ist eine Steuerlogik für ein Kühlsystem, das auf verschiedenen Eingaben basiert, wie z. B. Temperaturen, Akkuladungen und Zeitplänen. Die Steuerung der Kühlung erfolgt über folgende Hauptfunktionen:
- Kühlung aktivieren:
Die Kühlung wird nur aktiviert, wenn bestimmte Bedingungen erfüllt sind, z. B. der Aktivierungszustand, Sommerbetrieb und die aktuellen Temperatur- und Akkuladungswerte. - Zustandsabhängige Steuerung:
- Außentemperaturen werden mit einem Schwellenwert verglichen, der dynamisch angepasst werden kann. Ein Schwellenwert von
-1000
deaktiviert die Überprüfung für die Außentemperatur. - Die Akkuladung wird basierend auf den geplanten Abhängigkeiten überprüft, und ein komfortabler Kühlmodus wird nur aktiviert, wenn genügend Ladung vorhanden ist.
- Eine zusätzliche Triggerbedingung erlaubt es, manuelle Eingriffe vorzunehmen.
- Außentemperaturen werden mit einem Schwellenwert verglichen, der dynamisch angepasst werden kann. Ein Schwellenwert von
- Zeitgesteuerte Kühlung:
Über Zeitpläne, die konfiguriert werden können, wird die Kühlung zu bestimmten Tageszeiten angepasst. Hierbei werden die geplanten Zeitpunkte sortiert und mit der aktuellen Uhrzeit abgeglichen, um den nächsten passenden Zeitpunkt zu ermitteln. - Lizenzverwaltung:
Die Klasse enthält umfangreiche Funktionen zur Überprüfung der Lizenz. Dabei wird überprüft, ob die Lizenz gültig ist, ob die MAC-Adresse des Geräts mit der Lizenz übereinstimmt und ob die Lizenz nicht abgelaufen ist. Im Simulationsmodus wird der Hardwaremodus nicht benötigt, und Tests sind auch ohne vollständige Lizenz möglich. - Betriebsmodi:
Die Klasse unterstützt mehrere Betriebsmodi:- Komfortmodus (volle Kühlung)
- Standby-Modus (minimale oder keine Kühlung)
- Frostschutz-/Hitzeschutzmodus (bei Sommerbetrieb aktiv)
- Protokollierung:
Alle wichtigen Ereignisse und Fehler werden in Protokollen erfasst und an dedizierten Ausgängen bereitgestellt, z. B. für LogExecute und LogSchedule.
- Activate (bool):
Aktiviert die Kühlung, wenn auftrue
gesetzt. - CoolingWithoutAccuDependece (bool):
Steuert, ob die Kühlung ohne Berücksichtigung der Akkuladung aktiv sein darf. - AdditionalCoolingWithDependenceTemperatureInside (bool):
Erlaubt zusätzliche Kühlung abhängig von der Innentemperatur. - AdditionalTrigger (bool):
Über den zusätzlichen Trigger kann bei Bedarf die Kühlung umgeschalten werden. - Condition (bool):
Nur wenn „Condition = true“ dann kann die Kühlung aktiviert werden. - HeatingCooling (bool):
Aktiviert den Heiz- oder Kühlbetrieb. (true = heating | false = cooling) - Summer (bool):
Aktiviert Sommermodi, die Frostschutz und Hitzeschutz unterstützen.
- TemperatureOutside (double):
Außentemperatur in Grad Celsius. (Schwellenwert von-1000
deaktiviert die Überprüfung) - TemperatureOutsideThreshold (double):
Schwellenwert für Außentemperaturen. - TemperatureInside (double):
Innentemperatur in Grad Celsius. - TemperatureInsideThreshold (double):
Schwellenwert für Innentemperaturen. (Schwellenwert von-1000
deaktiviert die Überprüfung) - NumberOfAccuDependence (int):
Anzahl der geplanten Abhängigkeiten für die Akkuladung. (Minimal = 0 | Maximal = 10) - LicenseKey01 (string):
Erster Teil des Lizenzschlüssels. - LicenseKey02 (string):
Zweiter Teil des Lizenzschlüssels.
- Cooling (bool):
Schaltet die Kühlung an (true
= aktiv,false
= inaktiv). - OperationModeCooling (byte):
Schaltet den Betriebsmodus. (1 = Komfortmodus | 2 = Standby (Abwesend) | 4 = Frost-/Hitzeschutz) - OperationModeCoolingString (string):
Textdarstellung des Betriebsmodus. - LogExecute (string):
Protokolliert die Ergebnisse der Kühlsteuerung. - LogSchedule (string):
Protokolliert die Planung und Steuerung der Kühlung - LogLicense (string):
Informationen zur Lizenz- und DLL-Integrität.
Beispiel 1 – Automatische Kühlung basierend auf Außentemperaturen:
In diesem Beispiel wird die Kühlung automatisch aktiviert, wenn die Außentemperatur über einem definierten Schwellenwert liegt und der Sommermodus aktiv ist. Die Steuerung orientiert sich ausschließlich an der Außentemperatur.
- Eingabe:
- Activate:
true
(Die Kühlung ist eingeschaltet.) - HeatingCooling:
false
(Kühlen ist aktiv) - Condition: true (Bedingung erfüllt)
- TemperatureOutside:
25.0
(Die aktuelle Außentemperatur beträgt 25 °C.) - TemperatureOutsideThreshold:
15.0
(Die Kühlung wird aktiviert, wenn die Außentemperatur über 15 °C liegt.) - TemperatureInsideThreshold:
-1000
(Innentemperaturabfrage deaktiviert) - Summer:
true
(Der Sommermodus ist aktiv.) - CoolingWithoutAccuDependece:
false
(Die Kühlung hängt von weiteren Bedingungen, wie Akkustatus, ab, aber in diesem Beispiel beeinflusst dies das Ergebnis nicht.)
- Activate:
- Ausgabe:
- Cooling:
true
(Die Kühlung wird aktiviert, da die Außentemperatur den Schwellenwert überschreitet und der Sommermodus aktiv ist.) - OperationModeCooling:
1
(Der Komfortmodus ist aktiviert, da die Bedingungen für eine aktive Kühlung erfüllt sind.) - OperationModeCoolingString:
"Komfort"
(Die Ausgabe beschreibt den Betriebsmodus der Kühlung in Textform, der auf Komfort eingestellt ist.)
- Cooling:
Erklärung:
Die Außentemperatur (25 °C) liegt über dem Schwellenwert (15 °C), wodurch die Bedingung zur Aktivierung der Kühlung erfüllt ist. Da außerdem der Sommermodus eingeschaltet ist, wird der Komfortmodus aktiviert, und die Kühlung läuft.


Beispiel 2 – Zeitplanbasierte Kühlung mit Akkuladung:
In diesem Beispiel wird die Kühlung nur zu bestimmten geplanten Zeiten aktiviert, vorausgesetzt, die Akkuladung erfüllt die Anforderungen. Die Temperaturbedingungen werden dabei nicht geprüft.
- Eingabe:
- Activate:
true
(Die Kühlung ist eingeschaltet.) - HeatingCooling:
false
(Kühlen ist aktiv) - Condition: true (Bedingung erfüllt)
- NumberOfAccuDependence:
2
(Es gibt zwei geplante Akkuladungswerte für den Betrieb.) - AccuDependence:
[60, 40]
(Die geplanten Akkuladegrenzen sind 60 % und 40 % zu den entsprechenden Zeitpunkten.) - AccuActual:
70
(Die aktuelle Akkuladung beträgt 70 %.) - TimeDependence:
[12:00, 18:00]
(Die Kühlung darf nur um 12:00 Uhr und 18:00 Uhr aktiviert werden.) - TemperatureOutsideThreshold:
-1000
(Die Überprüfung der Außentemperatur ist deaktiviert.) - TemperatureInsideThreshold:
-1000
(Die Überprüfung der Innentemperatur ist deaktiviert.)
- Activate:
- Ausgabe:
- Cooling:
true
(Die Kühlung ist aktiv, da der aktuelle Zeitpunkt mit einem geplanten Zeitpunkt übereinstimmt und die Akkuladung ausreicht.) - OperationModeCooling:
1
(Der Komfortmodus ist aktiviert.) - OperationModeCoolingString:
"Komfort"
(Der Betriebsmodus der Kühlung wird als Komfortmodus beschrieben.)
- Cooling:
Erklärung:
Die Steuerung überprüft die geplanten Zeiten (TimeDependence
) und wählt die nächste gültige Zeit aus (z. B. 12:00 Uhr). Wenn die aktuelle Zeit und die Akkuladung (70 %) mit den Bedingungen übereinstimmen (z. B. 60 % oder mehr zur geplanten Zeit), wird die Kühlung aktiviert. In diesem Fall läuft die Kühlung im Komfortmodus, unabhängig von den Temperaturbedingungen.


Beispiel 3 – Zusätzliche Kühlung abhängig von Innentemperatur:
Hier wird die Kühlung aktiviert, wenn die Innentemperatur einen definierten Schwellenwert überschreitet. Dies ist zusätzlich zu den normalen Bedingungen wie Akkuladung und Zeitplan möglich.
- Eingabe:
- Activate:
true
(Die Kühlung ist eingeschaltet.) - HeatingCooling:
false
(Kühlen ist aktiv) - Condition: true (Bedingung erfüllt)
- AdditionalCoolingWithDependenceTemperatureInside:
true
(Es wird eine zusätzliche Kühlung aktiviert, abhängig von der Innentemperatur.) - TemperatureInside:
24.0
(Die aktuelle Innentemperatur beträgt 24 °C.) - AdditionalCoolingWithDependenceTemperatureInsideThreshold:
23.5
(Die Kühlung wird aktiviert, wenn die Innentemperatur über 23,5 °C liegt.) - AccuActual:
50
(Die Akkuladung beträgt 50 %.) - AccuDependence:
[40]
(Die minimale Akkuladung für den Betrieb beträgt 40 %.) - TimeDependence:
[12:00]
(Die Kühlung darf um 12:00 Uhr aktiviert werden.)
- Activate:
- Ausgabe:
- Cooling:
true
(Die Kühlung wird aktiviert, da die Innentemperatur die Schwelle von 23,5 °C überschreitet und die Akkuladung ausreichend ist.) - OperationModeCooling:
1
(Der Komfortmodus wird aktiviert.) - OperationModeCoolingString:
"Komfort"
(Die Kühlung läuft im Komfortmodus.)
- Cooling:
Erklärung:
Die zusätzliche Kühlung wird basierend auf der Innentemperatur aktiviert. Da die aktuelle Innentemperatur (24 °C) den Schwellenwert (23,5 °C) überschreitet und die Akkuladung (50 %) ausreicht, wird die Kühlung eingeschaltet. Dies geschieht unabhängig von der Außentemperatur, da die Bedingung nur auf der Innentemperatur basiert. Der Komfortmodus wird aktiviert, da alle Bedingungen erfüllt sind.


Überprüfen Sie die anderen Bedingungen, wie Akkuladung, Temperaturen oder den Sommermodus.
Setzen Sie den Schwellenwert (TemperatureOutsideThreshold
oder TemperatureInsideThreshold
) auf -1000
.
In diesem Fall funktioniert die Kühlung nicht, und der Lizenzstatus wird in LogLicense
als „Invalid“ angezeigt.
- Wenn die Bedingung
AdditionalCoolingWithDependenceTemperatureInside
auftrue
steht und die Innentemperatur (TemperatureInside
) den Schwellenwert vonAdditionalCoolingWithDependenceTemperatureInsideThreshold
erreicht oder überschreitet,
wird die Kühlung aktiviert, unabhängig von der Akkuladung. - Das heißt: Hier wird die Akkuabhängigkeit ignoriert, und es zählt nur die Innentemperatur.
- Dieser Schwellenwert wird verwendet, um die Kühlung in Kombination mit der Akkuabhängigkeit zu steuern.
- Das bedeutet: Die Kühlung wird nur aktiviert, wenn die Akkuladung ausreicht und die Innentemperatur (
TemperatureInside
) diesen Schwellenwert erreicht oder überschreitet.
- Version 3.0.10
- First Release
Baustein-Support
Wenn Sie X1-Logik-Baustein-Support benötigen, senden Sie uns bitte zusätzlich den Log (LogExecute und LogSchedule, welcher als Ausgang des Bausteins ausgegeben wird) und eine detaillierte Beschreibung des Problems zu!