ich nutze eine solche Methode. Du kannst dich gerne an diesem Beispiel bedienen. Ich fülle die Inputs üver die Visu, aber du kannst die Eingaben auf „Parameter“ umstellen und die Werte direkt eintragen. Einen Zeittrigger kannst du bei Bedarf in der graphischen Modul-Ansicht über das „+“ bei den Parametern hinzufügen .
Code: Alles auswählen
/**
**Pkt 00: Zielsetzung**
Diese Logik dient als zentrale Verwaltung und als Speicher (Merker) für die Betriebsparameter der PV-Batteriesteuerung. Sie fungiert als Bindeglied zwischen einer Visualisierung (die Werte setzt und anzeigt) und der eigentlichen Haupt-Steuerungslogik.
**Pkt 01: Funktionsprinzip**
Die Logik ist bewusst einfach gehalten. Bei jeder Wertänderung an einem der Eingänge wird der neue Wert sofort auf den entsprechenden Ausgang kopiert. Dies wird durch `Latch`-Module realisiert, die bei jeder durch eine Eingangsänderung ausgelösten Neuberechnung der Logik die Werte durchreichen.
**Pkt 02: Ein- und Ausgänge**
Die Logik verwaltet die folgenden Parameter, wobei jeder Parameter einen eigenen Ein- und Ausgang hat:
* Min. Ladeleistung (W)
* Max. Ladeleistung (W)
* Min. Einspeisung (W)
* Min. Entladeleistung (W)
* Max. Entladeleistung (W)
* Min. Rest-Bezug (W)
*/
{
"Module": [
// Version: 1.0.1, Datum: 2025-10-01
// Kopiert jeden Eingangswert bei einer Änderung auf den entsprechenden Ausgang
["Latch", "$in_minLadeleistung", "$out_minLadeleistung", "$ConstTrue", 0],
["Latch", "$in_maxLadeleistung", "$out_maxLadeleistung", "$ConstTrue", 0],
["Latch", "$in_minEinspeisung", "$out_minEinspeisung", "$ConstTrue", 0],
["Latch", "$in_minEntladeleistung", "$out_minEntladeleistung", "$ConstTrue", 0],
["Latch", "$in_maxEntladeleistung", "$out_maxEntladeleistung", "$ConstTrue", 0],
["Latch", "$in_minBezug", "$out_minBezug", "$ConstTrue", 0]
],
"Level": [
// --- Konstanten ---
["$ConstTrue", "bool", true],
// --- Eingangs-Variablen ---
["$in_minLadeleistung", "float", 400.0],
["$in_maxLadeleistung", "float", 1200.0],
["$in_minEinspeisung", "float", 200.0],
["$in_minEntladeleistung", "float", 150.0],
["$in_maxEntladeleistung", "float", 800.0],
["$in_minBezug", "float", 30.0],
// --- Ausgangs-Variablen (ohne Init-Wert, um Start-Senden zu erzwingen) ---
["$out_minLadeleistung", "float", 0.0],
["$out_maxLadeleistung", "float", 0.0],
["$out_minEinspeisung", "float", 0.0],
["$out_minEntladeleistung", "float", 0.0],
["$out_maxEntladeleistung", "float", 0.0],
["$out_minBezug", "float", 0.0]
],
"Input": [
["Min. Ladeleistung (W)", "Setzt die minimale Ladeleistung", "$in_minLadeleistung", "c"],
["Max. Ladeleistung (W)", "Setzt die maximale Ladeleistung", "$in_maxLadeleistung", "c"],
["Min. Einspeisung (W)", "Setzt die minimale Netzeinspeisung", "$in_minEinspeisung", "c"],
["Min. Entladeleistung (W)", "Setzt die minimale Entladeleistung", "$in_minEntladeleistung", "c"],
["Max. Entladeleistung (W)", "Setzt die maximale Entladeleistung", "$in_maxEntladeleistung", "c"],
["Min. Rest-Bezug (W)", "Setzt den minimalen Netzbezug", "$in_minBezug", "c"]
],
"Output": [
["Min. Ladeleistung (W)", "Aktueller Wert", "$out_minLadeleistung", "c"],
["Max. Ladeleistung (W)", "Aktueller Wert", "$out_maxLadeleistung", "c"],
["Min. Einspeisung (W)", "Aktueller Wert", "$out_minEinspeisung", "c"],
["Min. Entladeleistung (W)", "Aktueller Wert", "$out_minEntladeleistung", "c"],
["Max. Entladeleistung (W)", "Aktueller Wert", "$out_maxEntladeleistung", "c"],
["Min. Rest-Bezug (W)", "Aktueller Wert", "$out_minBezug", "c"]
]
}