FB_BA_RoomSample1

Dieses Template stellt einen einfachen Raum mit einem Heiz-Kühlregler, einer Sonnenschutz-Zonenfunktion mit zwei Jalousien und einer Sonnenschutz-Zonenfunktion mit zwei DALI-Leuchten dar.
Gesteuert und überwacht wird der Raum zusätzlich mit einem DALI-Präsenzmelder, welcher außerdem die Raumhelligkeit zur Verfügung stellt.
DALI-Ansteuerung
Da dieses Raumtemplate ein Beispiel mit DALI-Komponenten darstellt, erfordert es eine schnelle Task mit einem DALI-Kommunikationsbaustein.
Der Datenaustausch mit den DALI-Geräten erfolgt dann über ein Interface und wird im FB_Init vordefiniert, hier am Beispiel des Helligkeits- und Präsenzsensors:
BrtnsPrcSns.iParent := THIS^;
BrtnsPrcSns.iLabel := LblCtl_BrightnessPresenceSensor;
BrtnsPrcSns.eDPADMode := E_BA_DPADMode.eInclude;
BrtnsPrcSns.nAdr := 11;
BrtnsPrcSns.nInstancePresence := 1;
BrtnsPrcSns.nInstanceBrightness := 0;
BrtnsPrcSns.nResBrtns := 10;
BrtnsPrcSns.ipDALICommunication := DALICommunication.fbKL6821Communication;
In der letzten Zeile wird der DALI-Kommunikationsbaustein dem Kommunikations-Interfacepointer des Helligkeits- und Präsenzsensors zugewiesen.
Dieses Beispiel implementiert im Programm DALICommunication den Funktionsbaustein fbKL6821Communication:

Das Programm DALICommunication ist in einer schnellen Task aufzurufen - eine Anleitung dazu findet sich im Kapitel: Schnelle Task für serielle Kommunikation.
Helligkeits- und Präsenzmelder
Der Baustein FB_BA_BrightnessPresenceDALI repräsentiert DALI-Geräte, die gleichermaßen Helligkeit und Präsenz auslesen können. In der Anleitung des Bausteins ist beschrieben, dass die Präsenz ereignisgesteuert ausgegeben, die Helligkeit jedoch in einem Intervall der einstellbaren Dauer nPrdQueryBrtns [s] ausgelesen wird.
In diesem Beispiel werden eine kurze Dauer nPollingIntervalFast und eine lange nPollingIntervalNormal vorgegeben: die kurze ist für die Helligkeitsadaption einer Konstantlichtregelung gedacht, sollte diese einen Nachregelauftrag erhalten (LightZoneConstant.bAdjusting), die lange Dauer dann im Normalbetrieb, um den DALI-Bus nicht weiter zu belasten.
Heiz- und Kühlregler
Kern der Heiz- und Kühlfunktion ist der Baustein FB_BA_HeatCool_PID.
Die globale Variablenliste Site teilt dem Baustein mit, ob Heiz- oder Kühlbetrieb ansteht (eHeatCoolMedium), welche Temperaturen für welches Energieniveau gelten (stBuildingSpRmT) und welches Energieniveau gebäudeweit gerade gültig ist (eBuildingEnergyLevel).
Generell soll nur bei Präsenz die volle Heiz- und Kühlleistung im Energieniveau Comfort zur Verfügung stehen. Dies wird dem Baustein über den Präsenzmelder des Raumes am Eingang bPrc gemeldet.
Zwei Fensterkontakte WdwCon1 und WdwCon2 überwachen das Heizen/Kühlen. Diese Kontakte sind so vorgesehen, dass sie bei geschlossenem Fenster ein TRUE-Signal liefern. Wird eines der Fenster geöffnet, erhält der Baustein FB_BA_HeatCool_PID am Eingang bWdwCon ein TRUE-Signal und schaltet intern auf das Energieniveau Protection um nicht unnötig gegen die Außentemperatur zu steuern.
Der Taupunktwächter, DewPointSensor, ist wie die Fensterkontakte nach dem Ruhestromprinzip ausgelegt. Im kritischen Fall wird er ein FALSE-Signal ausgeben, welches negiert als TRUE am Eingang bDewPnt des FB_BA_HeatCool_PID gelangt. Damit wird der Kühlmodus sofort beendet und verriegelt.
Ein analoger Sensor RmTSen stellt der Regelung die Raumtemperatur zur Verfügung, über einen Sollwertsteller RmTAdj kann der Raumtemperatur-Sollwert in geringen Grenzen verändert werden. Die im FB_Init voreingestellten Werte für fRmTAdjMin und fRmTAdjMax liegen bei -5K und 5K.
![]() | Die Raumtemperaturanpassung ist nur dann wirksam, wenn das Energieniveau Comfort oder Precomfort anliegt, siehe hierzu FB_BA_RmTAdj. |
Jalousieansteuerung
Für die Jalousiesteuerung ist in diesem Beispiel ein Zonenbaustein FB_BA_SunblindZone vordefiniert, welcher parallel 2 Jalousie Aktor Bausteine FB_BA_SunBld ansteuert.
Dabei bündelt der Zonenbaustein die gesamte Generierung der Automatikbefehle, der Handansteuerung sowie die Verknüpfung zu einer Visualisierung (HMI).
Die Jalousie AktorBausteine beinhalten lediglich die Fahrprofile und die Verknüpfung zur Hardware. Jede Jalousie oder Jalousiegruppe, welche einzeln angesteuert werden soll, benötigt daher einen Zonenbaustein.
Der Zonenbaustein erhält über den Eingang stFacade Daten wie Sturm- und Vereisungsschutz oder aber Sonnenschutz und Thermoautomatik. Er ist damit einer bestimmten Fassade zugeordnet. Würde es sich um einen Eckraum mit Jalousien unterschiedlicher Ausrichtung handeln, müsste ein weiterer Zonenbaustein hinzugefügt werden.
Über den Präsenzmeldeeingang bPrcDetc, an dem der Helligkeits- und Präsenzmelder verknüpft ist, entscheidet der Baustein, ob der Sonnenschutz aktiv sein kann (Präsenz) oder aber die Thermoautomatik (Nicht-Präsenz).
Die Thermoautomatik braucht darüber hinaus Informationen über die Raumtemperatur, sowie den aktuell gültigen Gebäudesollwert, um mithilfe der Jalousien die Strahlungswärme der Sonne zu nutzen oder davor zu schützen. Sonnenschutz und Thermoautomatik sind innerhalb des FB_BA_SunblindZone zusätzlich generell abwählbar.
Die Tasteingänge bSunbldSwiUp und bSunbldSwiDwn sind hier als einfache Variablen deklariert und es obliegt dem Anwender diese mit seiner Applikation zu verknüpfen.
Zur Zustandsbeurteilung der Jalousiegruppe und zur Anzeige in einer Visualisierung ist ein Jalousie Aktor als Referenz zu wählen. Sein Ausgang stFeedback muss mit dem Eingang stReferenceFeedback des Zonenbausteins verbunden werden. Bei einer Einzeljalousie ist diese selbst der Referenz Aktor.
Lichtansteuerung
Ähnlich wie bei den Jalousien ist auch beim Licht das Kernstück ein Zonenbaustein, der die Generierung der übergeordneten Befehle (Gebäude, Etage, Bereich) mit der lokalen Handbedienung und der Ansteuerung und Anzeige einer möglichen Visualisierung zusammenfasst. Die Aktor Bausteine stellen lediglich die Ansteuerung der Leuchtmittel dar, welche direkt über eine Busklemme oder über ein Protokoll (DALI) sein kann.
Auch hier benötigt jeder einzeln anzusteuernde Aktor einen Zonenbaustein. Ebenfalls ist zur Zustandsbeurteilung einer Gruppe ein Referenz Aktor zu wählen, dessen Ausgang stFeedback mit dem Eingang stReferenceFeedback des Zonenbausteins verknüpft werden muss. Bei einer Einzelleuchte ist diese selbst der Referenz Aktor.
In diesem Beispiel ist die Lichtzone eine Konstantlichtregelung FB_BA_LightGroupConstant.
Der Helligkeits- und Präsenzmeldebaustein FB_BA_BrightnessPresenceDALI kann, sofern Vollautomatik gewählt ist, über den Präsenzmeldeeingang bPrcDetc die Konstantlichtregelung aktivieren. Wird keine Präsenz mehr erkannt, wird über den Eingang bResetRoomFunction die Lichtsteuerung zurückgesetzt. Die Automatikfunktion, bzw. deren lokale Handübersteuerung, ist dann nicht mehr aktiv und Lichttelegramme niedrigerer Priorität aus Gebäude, Etage oder Bereich, welche über den Eingang stAreaLighting einfließen, können die Lichtsteuerung übernehmen.
Der Eingang fBrightness empfängt die gemessene Lichtstärke des Helligkeitssensors zur Lichtregelung. Der Tasteingang bLightSwi ist hier als einfache Variable deklariert und es obliegt dem Anwender diese mit seiner Applikation zu verknüpfen.
![]() | Die Initialisierung des Templates erfolgt innerhalb der Methode FB_Init. |
Syntax
FUNCTION_BLOCK FB_BA_RoomSample1 EXTENDS FB_BA_View
VAR_INPUT
stFacade : ST_BA_Facade;
stAreaLighting : ST_BA_Lighting;
END_VAR
VAR_INPUT CONSTANT PERSISTENT
fRmTAdjMin : REAL;
fRmTAdjMax : REAL;
fLgtT : REAL;
nPollingIntervalFast : UDINT;
nPollingIntervalNormal : UDINT;
END_VAR
VAR_INPUT CONSTANT
BrtnsPrcSns : FB_BA_BrightnessPresenceDALI;
Ctrl : FB_BA_HeatCool_PID;
VlvHtg : FB_BA_ActuatorAnalog;
VlvCol : FB_BA_ActuatorAnalog;
WdwCon1 : FB_BA_SensorBinary;
WdwCon2 : FB_BA_SensorBinary;
DewPointSensor : FB_BA_SensorBinary;
RmTSen : FB_BA_SensorAnalog;
RmTAdj : FB_BA_SensorAnalog;
SunBldZone : FB_BA_SunblindZone;
SunBld1 : FB_BA_SunBld;
SunBld2 : FB_BA_SunBld;
LightZoneConstant : FB_BA_LightGroupConstant;
Light1 : FB_BA_LightDALI_TC;
Light2 : FB_BA_LightDALI_TC;
END_VAR
VAR
bSunbldSwiUp : BOOL;
bSunbldSwiDwn : BOOL;
bLightSwi : BOOL;
RmTAvg : FB_BA_EnAvrg02;
bInitializeSensor : BOOL;
END_VAR
Eingänge
Name | Typ | Beschreibung |
---|---|---|
stFacade | Fassadenspezifische Jalousiedaten und -telegramme. | |
stAreaLighting | Resultierendes Lichttelegramm aus dem Gebäude, der Etage und letztendlich dem Bereich (Priorisierung). |
Eingänge CONSTANT PERSISTENT
Name | Typ | Beschreibung |
---|---|---|
fRmTAdjMin | REAL | Mindestwert der Temperatursollwertverschiebung, vordefiniert auf -5K. |
fRmTAdjMax | REAL | Mindestwert der Temperatursollwertverschiebung, vordefiniert auf 5K. |
fLgtT | REAL | Feste Lichttemperatur der Konstantlichtregelung, vordefiniert auf 3000K. |
nPollingIntervalFast | UDINT | Schnelles Abrufintervall des Helligkeitssensors, vordefiniert auf 1s. |
nPollingIntervalNormal | UDINT | Langsames Abrufintervall des Helligkeitssensors, vordefiniert auf 15 s. |
Eingänge CONSTANT
Name | Typ | Beschreibung |
---|---|---|
BrtnsPrcSns | Lese- und Auswertebaustein für einen DALI-Helligkeits- und Präsenzmelder. | |
Ctrl | Heiz-Kühl-Regelbaustein. | |
VlvHtg | Analoges Ausgangsobjekt Heizventil. | |
VlvCol | Analoges Ausgangsobjekt Kühlventil. | |
WdwCon1 | Binäres Eingangsobjekt Fensterkontakt. | |
WdwCon2 | Binäres Eingangsobjekt Fensterkontakt. | |
DewPointSensor | Binäres Eingangsobjekt Taupunktwächter. | |
RmTSen | Analoges Eingangsobjekt Raumtemperatursensor. | |
RmTAdj | Analoges Eingangsobjekt Sollwertanpassung. | |
SunBldZone | Baustein Jalousiespezifischer Zonenfunktionen. | |
SunBld1 | Aktor Baustein für eine Jalousie. | |
SunBld2 | Aktor Baustein für eine Jalousie. | |
LightZoneConstant | Licht-Zonenbaustein einer Konstantlichtregelung. | |
Light1 | Aktor Baustein für eine DALI-Leuchte. | |
Light2 | Aktor Baustein für eine DALI-Leuchte. |
VAR
Name | Typ | Beschreibung |
---|---|---|
bSunbldSwiUp | BOOL | Variable zur Tasterbelegung "Jalousie manuell auf". |
bSunbldSwiDwn | BOOL | Variable zur Tasterbelegung "Jalousie manuell ab". |
bLightSwi | BOOL | Variable zur Tasterbelegung "Licht manuell schalten". |
bInitializeSensor | BOOL | Variable zur Neuinitialisierung des DALI-Helligkeits- und Präsenzmelder. |
Voraussetzungen
Entwicklungsumgebung | Erforderliche Function |
---|---|
TwinCAT ab v3.1.4024.64 | TF8040 | TwinCAT Building Automation ab V5.10.1.0 |