FB_BA_RoomSample1

FB_BA_RoomSample1 1:

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:

FB_BA_RoomSample1 2:

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.

FB_BA_RoomSample1 3:

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.

FB_BA_RoomSample1 4:

Die Initialisierung des Templates erfolgt innerhalb der Methode FB_Init.

Blockschaltbild

Bei Bedarf kann das Blockschaltbild heruntergeladen werden.

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

FB_BA_RoomSample1 5: Eingänge

Name

Typ

Beschreibung

stFacade

ST_BA_Facade

Fassadenspezifische Jalousiedaten und -telegramme.

stAreaLighting

ST_BA_Lighting

Resultierendes Lichttelegramm aus dem Gebäude, der Etage und letztendlich dem Bereich (Priorisierung).

FB_BA_RoomSample1 6: 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.

FB_BA_RoomSample1 7: Eingänge CONSTANT

Name

Typ

Beschreibung

BrtnsPrcSns

FB_BA_BrightnessPresenceDALI

Lese- und Auswertebaustein für einen DALI-Helligkeits- und Präsenzmelder.

Ctrl

FB_BA_HeatCool_PID

Heiz-Kühl-Regelbaustein.

VlvHtg

FB_BA_ActuatorAnalog

Analoges Ausgangsobjekt Heizventil.

VlvCol

FB_BA_ActuatorAnalog

Analoges Ausgangsobjekt Kühlventil.

WdwCon1

FB_BA_SensorBinary

Binäres Eingangsobjekt Fensterkontakt.

WdwCon2

FB_BA_SensorBinary

Binäres Eingangsobjekt Fensterkontakt.

DewPointSensor

FB_BA_SensorBinary

Binäres Eingangsobjekt Taupunktwächter.

RmTSen

FB_BA_SensorAnalog

Analoges Eingangsobjekt Raumtemperatursensor.

RmTAdj

FB_BA_SensorAnalog

Analoges Eingangsobjekt Sollwertanpassung.

SunBldZone

FB_BA_SunblindZone

Baustein Jalousiespezifischer Zonenfunktionen.

SunBld1

FB_BA_SunBld

Aktor Baustein für eine Jalousie.

SunBld2

FB_BA_SunBld

Aktor Baustein für eine Jalousie.

LightZoneConstant

FB_BA_LightGroupConstant

Licht-Zonenbaustein einer Konstantlichtregelung.

Light1

FB_BA_LightDALI_TC

Aktor Baustein für eine DALI-Leuchte.

Light2

FB_BA_LightDALI_TC

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