Hintergrund und Anwendungen

Mit der frei programmierbaren Steuerung lassen sich beliebige Ausgänge und Sensoren in mathematischen Formeln verknüpfen. Diese Formeln werden vom System ausgewertet und das Ergebnis kann dann auf einen Ausgang gelegt werden.

Das Modul Raumanforderung erfüllt diese Funktion bereits in eingeschränkter Weise. In der Raumanforderung können die Ausgänge aus der Einzelraumregelung derart verknüpft werden, dass ein zusätzlicher Ausgang geschalten wird, sobald einer der verknüpften Ausgänge vom System geschalten wird. Damit lässt sich beispielsweise realisieren, dass eine Pumpe oder der zentrale Wärmeerzeuger geschalten wird, sobald ein Raum einen Wärmebedarf meldet.

Mit der FPS lassen sich deutlich komplexere Sachverhalte abbilden, vorerst können aber nur Heizraumsensoren, Differenz- und Vorlauftemperaturregelungen, Raumanforderungen sowie FPS untereinander miteinander verknüpft werden.

Beispielsweise kann so eine Differenzregelung für eine Solaranlage mit einer Raumanforderung verknüpft werden. Im ersten Schritt wird der Differenzregelung kein Ausgang zugeordnet. In der FPS wird dann eine Formel angelegt, die das Ergebnis der Berechnung der Differenzregelung mit dem Ergebnis der Raumanforderung mit einem logischen UND verknüpft. Eine Verknüpfung mit logischem UND liefert als Ergebnis eine 1 bzw. AN genau dann, wenn beide (bzw. alle) verknüpften Ausgänge/Regelungen 1 bzw. AN liefern. Das Ergebnis der Auswertung wird dann auf einen Ausgang gelegt. Im Beispiel bedeutet das, dass ein Ausgang für die Differenzregelung tatsächlich nur dann geschalten wird, wenn gleichzeitig auch eine Raumanforderung besteht. Die Berechnung lässt sich natürlich auch dahingehend umstellen, dass etwa der Ausgang nur dann geschalten wird, wenn die Differenzregelung auf 1 bzw. AN schaltet, gleichzeitig aber keine Raumanforderung besteht. Ebenso lässt sich die Berechnung ausweiten durch Hinzufügen zusätzlicher Raumanforderungen, Differenzregelungen oder mit dem Vergleich von Sensorwerten.

Einrichtung

Jede FPS definiert eine Formel, deren Ergebnis einem virtuellen Ausgang A0 zugewiesen wird. Dieser Ausgang kann in der Ausgangszuordnung einem oder mehreren physischen digitalen, bzw. analogen Ausgängen eines Heizraum-Gateway zugewiesen werden. Dabei wird dieser virtuelle FPS Ausgang A0 in der Ausgangszuordnung eindeutig identifiziert über einen frei wählbaren Namen für die FPS. Es ist also zu empfehlen, einen eindeutigen, verständlichen Namen anzugeben.

Die FPS Formel selbst setzt sich aus dynamischen oder statischen Parametern und logischen oder/und mathematischen Operatoren zusammen, die im Ergebnis A0 zugewiesen werden. Damit die Formellänge überschaubar bleibt, erhalten alle relevanten Parameter einen Variablennamen wie S1, A4, M3 oder es werden voreingestellte Variablennamen verwendet. Ausschließlich diese Variablennamen werden in der FPS Formel zur Berechnung verwendet.

Wenn die Auswertung der Formel scheitert, wird der Fehlerwert als Ergebnis der Berechnung zurückgegeben und auf etwaig zugeordnete Ausgänge ausgegeben. Die Auswertung scheitert, wenn einer oder mehrere der verknüpften Formelparameter (s.u.) keinen Wert zurückgibt bzw. nicht überträgt. Damit ist sichergestellt, dass z.B. beim Ausfall von Sensoren ein definiertes Verhalten eintritt.

Funktionsweise

Parameter einer FPS Formel  –  Variablen, Konstanten und Raumwerte

Als Parameter einer FPS Formel können folgende Informationen verwendet werden:

  • die im Smart-Heat System bekannten Sensorwerte – repräsentiert durch Variablennamen: S1 … Sx
  • die physischen Gateway Ausgangswerte – repräsentiert durch Variablennamen: A1 … Ay,
    dabei stehen auch die Smart-Heat Modul-Ausgangswerte von konfigurierten Differenzregelungen, Raumanforderungen, Mischersteuerungen und FRS Formeln zur Verfügung
  • die im Smart-Heat System konfigurierten Modul-Informationen – repräsentiert durch Variablennamen: M1 … My,
    wie z.B. Timer, Kalender und Wetter-Pro
  • die Vorgabe von frei definierbaren Konstanten – repräsentiert durch Variablennamen: V1 … Vz ,
    positive oder negative Werte können alternativ auch als Exponentialwert eingegeben werden – also z.B. 2.5e-3 für 0.0025)
  • die raumbezogenen Temperaturwerte – repräsentiert durch Variablennamen wie: raum_#i_°aaa
    #i entspricht dabei der numerische ID des Raumes und °aaa dem möglichen Messwert: soll, ist, offset, offsets, ziel, temp

    • Beispiel 1: Eine Variable mit dem Namen raum_1_soll wird automatisch durch den Sollwert des Raumes mit der ID 1 ersetzt. “raum_1_offsets” wird durch den Gesamtoffset des Raumes ersetzt, “raum_1_temp” durch die Temperatur des Raumtemperatursensors,
    • Beispiel 2: Eine Variable mit dem Namen raum_1_ziel ist eine Abkürzung für “raum_1_soll + raum_1_offsets”.
    • Beispiel 3: Eine Variable mit dem Namen raum_1_offset_“mmm” wird durch den Offset (oder 0.0 falls nicht vorhanden) des spezifischen Moduls „mmm“ (z.B. “wetter” oder “geolocation”) ersetzt.
  • die Vorlauftemperaturwerte – repräsentiert durch Variablennamen wie: vtr_#j_ziel
    #j ist hierbei die in der Liste der Vorlauftemperaturregelungen angeführte Ziffer.

Operatoren

  • & (binäres UND).
  • | (binäres ODER).
  • not (Negation).
  • >, <, >=, <=, == (Vergleichsoperatoren).
  • +, -, *, / (Grundrechenarten).
  • () (Klammern).
  • if – else (WENN-DANN Verknüpfung)

Operatorenrangfolge

Die Operatorrangfolge definiert die Reihenfolge (auch: Präzedenz), in der Operatoren in einer Formel auszuwerten sind. Ein bekanntes Beispiel ist die Wertigkeit der Grundrechenarten. So gilt 1+2*3=7, da die Multiplikation vor der Addition ausgewertet wird. Soll bewusst die Addition vor der Multiplikation in dieser Gleichung ausgewertet werden, so sind Klammern zu verwenden, also (1+2)*3=9. Die Operatorrangfolge für die Formeln in der FPS ist in aufsteigender Reihenfolge:

  • if – else
  • not
  • <, >, <=, >=, ==, !=
  • |
  • &
  • +, –
  • *, /

D.h. Multiplikation und Division haben die höchste Präzedenz, if – else die niedrigste.

Hysterese und Ein-/Ausschaltverzögerung

Die Hysterese wird auf jeden Vergleich in der Formel angewandt (<, >, <=, >=, ==, !=). Um ggf. die gleichzeitige Anwendung der Hysterese auf mehrere Vergleiche in einer Formel zu vermeiden oder unterschiedliche Hysteresen für die jeweiligen Vergleiche einstellen zu können, müssen die Vergleiche in einzelne FPS Formeln heruntergebrochen werden und deren Ergebnisse dann in einer Gesamtformel zusammengeführt werden.
Die Ein-/Ausschaltverzögerung wird ganz am Ende, wenn das Ergebnis der Formel feststeht und damit der Schaltzustand für A0 berechnet ist, angewandt.

Beispiele

Für die Beispiele gehen wir davon aus, dass die Ausgänge und Sensoren für die Auswertung die folgenden Werte haben:

  • A1 = 1
  • A2 = 0
  • A3 = 1       (z.B. der aktuelle Ausgabewert einer Raumanforderung)
  • A4 = 55%  (z.B. der Mischer-Ausgabewert einer Vorlauftemperaturregelung)
  • A5 = 1       (z.B. der aktuelle Ausgabewert einer Differenzregelung)
  • A6 = 30     (z.B. der aktuell berechnete Ausgabewert einer FPS)
  • S1 = 24.5°
  • S2 = 45.0°
  • V1 = 0.1
  • V2 = 25

Beispielformeln:

  • not A1 = 0.
  • A1 & A2 = 0.
  • A1 | A2 = 1.
  • not A1 & A2 = 1. Diese Formel evaluiert zu 1. Da “&” eine höhere Präzedenz hat als “not”, wird zuerst “A1 & A2” ausgewertet und das Ergebnis dann mit “not” negiert.
  • (not A1) & A2 = 0. “(not A1)” wird zu 0, so dass “0 & A2” übrig bleibt und auch zu 0 wird.
  • A1 & not A2. Diese Formel führt zu einem Syntaxfehler, weil “&” eine höhere Präzedenz hat als “not”, so dass im ersten Auswertungsschritt nicht “not A2” evaluiert wird, sondern “A1 & not”.
  • A1 & S1 > 20. Diese Formel führt zu einem Syntaxfehler. “A1 & S1” wird als erstes ausgewertet und versucht inkompatible Datentypen zu verknüpfen, da A1 ein Wahrheitswert und S1 eine Dezimalzahl ist.
  • A1 & (S1 > 20) = 1. S1 ist mit 24.5° größer als 20, so dass der Term in Klammern zu 1 wird. Damit ist A1 & 1 = 1.
  • 1 if S1 > 20 else 0. S1 ist mit 24.5° größer als 20. Damit ist A1 = 1.
  • (S1-S2)*V1 if (S1-S2)>0 else 0. Am Ausgang liegen 10% der Temperaturdifferenz zwischen S1 und S2 an, solange die Differenz positive Werte hat.
  • S1 if A4<V2 else S1+(V1*S1). Diese Kennline ist abhängig vom analogen Ausgang A4 – zuerst 24,5 und dann verstärkt sich der Einfluss von S1. Dieses Verhalten ermöglicht z.B. dynamische Stellgrößen für nachgeschaltete Mischer-Regelungen mit nichtlinearen Verhalten in Abhängigkeit von anderen Systemzuständen (wie hier der analoge Ausgang A4).

Fehlermeldungen

  • „Variable nicht deklariert“: Tritt auf, wenn im Auswahlmenü für einen Ausgang oder Sensor nichts ausgewählt wurde.
  • „Auswertung nicht möglich / Fehlerwert“: Tritt auf, wenn einer der verknüpften Ausgänge oder Sensoren keinen Wert zurückliefert. Die Formel gibt als Ergebnis dann den definierten Fehlerwert zurück.
  • „Syntaxfehler“: Generischer Syntaxfehler, wenn die Formel nicht eindeutig ausgewertet werden kann.
  • „Syntaxfehler, Klammern geschlossen?“: Tritt u.a. auf, wenn Klammern in der Formel nicht geschlossen werden.
  • „Unbekannte Variable“/“Ungültige Variable verwendet“: Tritt auf, wenn in der Formel eine Variable verwendet wird, die nicht der A*/S* Konvention entspricht.
  • „Illegale oder unbekannte Operation in Formel“: Tritt auf, wenn ein Operator verwendet wird, der unbekannt oder zur Verwendung in Formeln nicht zugelassen ist.
  • „unzulässiger Operand für Operator XY“: Tritt auf, wenn z.B. „&“ verwendet wird, um einen 0/1 Wert eines Ausgangs mit einem Dezimalwert eines Sensors zu verknüpfen.

Anwendungsbeispiele

  • Warmwasser-Vorrangschaltung
  • Zirkulationspumpensteuerung
  • Saisonale Energieerzeuger-Umschaltung
  • Nichtlineare Sollwertberechnung
  • Temperaturabhängige Ventilsteuerung
  • Tageszeitabhängiger Wettereinfluss auf die Solarpumpensteuerung

Bemerkungen

  • die FPS Ausgänge, bzw. Berechnungsergebnisse können entweder von anderen FPS Formeln verwendet oder einem digitalen, respektive analogen Ausgang des Heizraum-Gateways zugeordnet werden.
  • wenn irgendeiner der zu verknüpfenden Ausgänge einen Fehlerwert liefert (z.B. wenn eine Differenzregelung auf “Fehler” steht) oder ein zu verknüpfender Sensor nicht überträgt, wird A0 auf den definierten Fehlerwert gesetzt.
  • deklarierte Ausgänge und Sensoren müssen mit ihrem exakten Namen verwendet werden, d.h. “a1” in der Formel für den Ausgang A1 ist nicht zulässig.
  • Differenz- und Mischerregelungen müssen nicht notwendig einen Ausgang zugeordnet haben, damit sie in der FPS verwendet werden können. Auch ohne Ausgang können diese Regelungen aufgrund der Sensorendaten ausgewertet werden. Diese Ergebnisse können in der FPS verwendet und verknüpft werden. Raumanforderungen haben (im Moment) notwendig einen Ausgang zugeordnet.
  • in einem weiteren Schritt werden aber auch die Ausgänge der Einzelraumregelung in der FPS auswählbar sein. Damit können dann auch komplexe Konstrukte als in der Raumanforderung abbildbar formuliert werden.
  • dazu wird es auch möglich sein, Offsets und Verzögerungen in der FPS zu verwenden.