145 lines
5.4 KiB
Markdown
145 lines
5.4 KiB
Markdown
# Verbraucher Pufferspeicher
|
|
|
|
> Status: implementiert fuer IP-Symcon 8.0+ und den Enelix-2-Vertrag `4.0`.
|
|
|
|
Das Modul bindet elektrische Heizstufen eines Pufferspeichers an den
|
|
Enelix-Manager an. Die Freigabe wird aus Puffer- und Aussentemperatur,
|
|
Heizkurve, Hysterese, lokaler Aktivierung und aktueller Betriebsart berechnet.
|
|
|
|
Es ist eine gezielte Adaption des Enelix-1-Moduls `Puffer_Speicher`.
|
|
Leistungsstufen, Temperaturquellen, optionale PT1-Glaettung und Heizkurve
|
|
wurden uebernommen und ueberarbeitet. Zyklische Altlogik, alte
|
|
Kommunikationsvariablen, `Idle` und `PowerSteps` als Symcon-Variable wurden
|
|
verworfen.
|
|
|
|
| Technisches Merkmal | Wert |
|
|
| --- | --- |
|
|
| Modulname | `VerbraucherPufferspeicher` |
|
|
| Alias | `Pufferspeicher` |
|
|
| Modul-ID | `{C92D5EEF-9632-47A5-9659-4B02BF40FBE9}` |
|
|
| Enelix-Vertrag | `4.0` |
|
|
|
|
## Regelverhalten
|
|
|
|
Die Solltemperatur wird berechnet als:
|
|
|
|
`FusspunktVorlauftemperatur + HeizkurvenSteigung * (20 - Aussentemperatur)`
|
|
|
|
Anschliessend wird sie auf `HeizkurveMinimaltemperatur` und
|
|
`HeizkurveMaximaltemperatur` begrenzt.
|
|
|
|
Die Einschaltschwelle wird je nach `MindesttemperaturModus` bestimmt:
|
|
|
|
- `Aus`: Solltemperatur minus Hysterese,
|
|
- `Statisch`: konfigurierte absolute Mindesttemperatur,
|
|
- `Differenz`: Solltemperatur minus konfigurierte Differenz.
|
|
|
|
Es gilt:
|
|
|
|
- im PV-Betrieb unter der Einschaltschwelle: `[0, ...Leistungsstufen]`,
|
|
- im PV-Betrieb an oder oberhalb der Einschaltschwelle: `[0]`,
|
|
- im Peakbetrieb unabhaengig von der Temperatur: `[0]`,
|
|
- bei `Aktiv=false`: immer `[0]`,
|
|
- bei ungueltigen Temperaturen: `[0]` und nicht verfuegbar.
|
|
|
|
Der Pufferspeicher ist im Peakbetrieb damit pauschal gesperrt. Beim Wechsel in
|
|
Peak wird eine aktive Stufe sicher ausgeschaltet.
|
|
|
|
## Properties
|
|
|
|
Die Properties erscheinen im Formular in dieser Reihenfolge.
|
|
|
|
### Manager und Zeitverhalten
|
|
|
|
| Ident | Standard | Beschreibung |
|
|
| --- | ---: | --- |
|
|
| `PrioritaetPV` | `0` | Prioritaet im PV-Betrieb |
|
|
| `PrioritaetPeak` | `0` | Prioritaet im Peakbetrieb |
|
|
| `Meldeintervall` | `10 s` | Vollstaendige Rueckmeldung |
|
|
| `VorgabeTimeout` | `120 s` | Gueltigkeit einer Vorgabe |
|
|
| `LastwechselSperrzeit` | `5 s` | Mindestzeit zwischen Lastwechseln |
|
|
|
|
### Pufferspeicher
|
|
|
|
| Ident | Standard | Beschreibung |
|
|
| --- | ---: | --- |
|
|
| `LeistungsStufen` | `[]` | Stufe, Leistung und Boolean-Schaltkontakt |
|
|
| `PufferfuehlerVariableID` | `0` | Integer- oder Floatvariable |
|
|
| `AussentemperaturVariableID` | `0` | Integer- oder Floatvariable |
|
|
|
|
### Heizkurve
|
|
|
|
| Ident | Standard | Beschreibung |
|
|
| --- | ---: | --- |
|
|
| `FusspunktVorlauftemperatur` | `35.0 C` | Vorlauf bei 20 C aussen |
|
|
| `HeizkurvenSteigung` | `1.0` | Anhebung je Kelvin fallender Aussentemperatur |
|
|
| `HeizkurveMinimaltemperatur` | `20.0 C` | Untere Sollwertbegrenzung |
|
|
| `HeizkurveMaximaltemperatur` | `80.0 C` | Obere Sollwertbegrenzung |
|
|
| `Hysterese` | `5.0 K` | Abstand zur Einschaltschwelle |
|
|
| `MindesttemperaturModus` | `Aus` | Aus, statisch oder Differenz |
|
|
| `Mindesttemperatur` | `20.0 C` | Wert im statischen Modus |
|
|
| `MindesttemperaturDifferenz` | `5.0 K` | Wert im Differenzmodus |
|
|
| `WaermepumpenSolltemperaturVariableID` | `0` | Optionale Quelle fuer die WP-Uebernahme |
|
|
|
|
Der Button **Wert von Waermepumpe uebernehmen** berechnet den Fusspunkt so,
|
|
dass die lokale Heizkurve beim aktuellen Aussenwert durch den aktuellen
|
|
WP-Sollwert verlaeuft. Es entsteht keine dauerhafte Laufzeitkopplung.
|
|
|
|
### Erweiterte Einstellungen
|
|
|
|
| Ident | Standard | Beschreibung |
|
|
| --- | ---: | --- |
|
|
| `TemperaturMaxAlter` | `120 s` | Maximal zulaessiges Alter beider Messwerte |
|
|
| `PuffertemperaturGlaetten` | `false` | Aktiviert PT1-Glaettung |
|
|
| `ZeitKonstante` | `120 s` | PT1-Zeitkonstante |
|
|
| `EinstellungenInVisu` | `false` | Gemeinsame Verbraucheroption |
|
|
| `DiagnosevariablenAnzeigen` | `false` | Diagnosevariablen einblenden |
|
|
| `LoggingEin` | `false` | Debug-Protokoll aktivieren |
|
|
|
|
## Variablen
|
|
|
|
Immer vorhanden:
|
|
|
|
| Ident | Typ | Beschreibung |
|
|
| --- | --- | --- |
|
|
| `Aktiv` | Boolean / bedienbar | Lokale Ein-/Aus-Freigabe |
|
|
| `Puffertemperatur` | Float | Aktueller, gegebenenfalls geglaetteter Wert |
|
|
| `Aussentemperatur` | Float | Heizkurveneingang |
|
|
| `Solltemperatur` | Float | Berechneter und begrenzter Sollwert |
|
|
| `Heizbedarf` | Boolean | Temperatur liegt unter der Einschaltschwelle |
|
|
|
|
Optional sichtbar sind die gemeinsamen Verbraucher-Diagnosevariablen sowie
|
|
`AktiveStufe`, `BezogeneEnergie` und `TemperaturenGueltig`.
|
|
|
|
## Managerkommunikation
|
|
|
|
Das Modul implementiert `VerbraucherSchnittstelle` und Vertrag `4.0`.
|
|
Es uebernimmt zuerst die vom Manager angekuendigte Betriebsart, berechnet das
|
|
passende Leistungsangebot und meldet es mit derselben Betriebsart zurueck.
|
|
Erst danach wird eine Sollleistung angenommen.
|
|
|
|
Die Rueckmeldung enthaelt zusaetzlich:
|
|
|
|
- `Puffertemperatur_C`,
|
|
- `Aussentemperatur_C`,
|
|
- `Solltemperatur_C`,
|
|
- `Heizbedarf`,
|
|
- `AktiveStufe`,
|
|
- `Fuehlerfehler` und `Schaltfehler`.
|
|
|
|
## Sicherheit und Schaltung
|
|
|
|
Die Kontakte werden Break-before-make geschaltet: zuerst alle aus, danach
|
|
hoechstens eine Stufe ein. Ein Schaltfehler fuehrt zu einem Ausschaltversuch
|
|
aller Kontakte und einer Stoerungsmeldung. Hardwareseitige Verriegelungen,
|
|
Temperaturbegrenzer und Schutzorgane bleiben erforderlich.
|
|
|
|
## Tests
|
|
|
|
- `PufferspeicherReglerTest` prueft Heizkurve, Hysterese, Ein/Aus, Peak und
|
|
alle Mindesttemperatur-Modi.
|
|
- `PufferspeicherModulstrukturTest` prueft Metadaten, Properties, Formular,
|
|
Vertrag und Schaltfolge.
|
|
- Der standardisierte Symcon-Test prueft die reale Modulinstanz und ist im
|
|
gemeinsamen Manifest sowie in der Manager-Matrix registriert.
|