FB_BA_LightGroupConstant

In einer Licht-Zone werden ein oder mehrere Lichtaktoren zur gleichzeitigen Ansteuerung zusammengefasst, je nachdem wie es die örtlichen Gegebenheiten erfordern.
Dieses Template stellt eine Licht-Zone (Raum) mit Konstantlichtregelung und manueller Übersteuerung dar.
Funktion
Ist über den Parameter eLightActivationMode Vollautomatik eingestellt, so schaltet sich die Lichtfunktion ConstLgtCtrl bei Präsenzerkennung am Eingang bPresence in den Regelbetrieb. Ist hingegen Halbautomatk angewählt, wird der erste Tastendruck am Template bManualSwitch den Baustein in den Regelbetrieb versetzen. Weitere Tastendrücke oder eine Wertvorgabe über die HMI (fSetLightValueMan_In / SetLightValueMan_In) brechen den Regelbetrieb ab und der Baustein befindet sich in der Hand-Übersteuerung.
In diesem Modus lässt sich das Licht über den Templateeingang bManualSwitch wechselweise ein- und ausschalten bzw. bei Langtastendruck (t>SwiOvrTi) auf- und abdimmen. Die Eingänge bOn und bOff lassen das Licht gezielt ein- und ausschalten während über eine HMI durch den Befehl bSetLightValueMan_In der Lichtwert fSetLightValueMan_In direkt gesetzt wird.
Der Licht-Steuerbaustein zeigt seinen derzeitigen Status "Regelbetrieb" oder "Handübersteuerung" an den Ausgängen bControlMode und bManualMode an; beide Ausgänge gleichzeitig werden nicht gesetzt. Mit diesen Ausgängen wird entweder über den Baustein CnstLgtAuto ein Lichtausgabetelegramm mit der Priorität eAutomaticLight erzeugt oder über ManMode ein Telegramm der Priorität eManual. Die unterschiedliche Telegrammpriorität wird am Baustein PrioSwi der internen HMI-Variable eActualPrio_Out zugewiesen. So kann über eine HMI eine Unterscheidung Regelbetrieb oder Handübersteuerung zur Anzeige gebracht werden.
Bei einer fallenden Flanke am Templateeingang bPresence oder durch Setzen von bResetRoomFunction wird der Lichtsteuerbaustein deaktiviert, wobei er, falls angewählt, noch über eine Ausschaltrampe mit Verweilzeit auf einem Vorab-Ausschhaltwert sein Abschalten ankündigt. Danach werden beide Bausteinausgänge bControlMode und bManualMode abgelöscht.
Neben den internen Telegrammen von bControlMode und ManMode werden auch die eingangsseitigen stAreaLighting und stScene mit auf den Selektor (PrioSwi) geführt.
Dabei stellt stArea das resultierende Telegramm aus den übergeordneten Ebenen (Bereich/area, Etage/floor und Gebäude/building) dar, während stScene für eine beliebige, die Konstantlichtregelung zu übersteuernde Lichtszene reserviert ist.
Der Telegrammselektor (PrioSwi) leitet das höchst priorisierte Telegramm durch - bei gleicher Priorität das zuletzt gesendete (last writer wins).
Der Sollwert für die Konstantlichtregelung wird mithilfe eines Analogobjekts SpBrightness eingestellt.
Eingang stReferenceFeedback
Über diesen Eingang werden Informationen über den angesteuerten Lichtaktor bzw. den Referenzaktor einer Gruppe in die Lichtsteuerfunktion zurückgeführt.
Hierbei ist der Lichtwert des Referenzaktors von besonderer Bedeutung: Ist der Lichtaktor bereits von einer anderen Funktion gleicher oder niederer Priorität angesteuert und das hier beschriebene Template "übernimmt" nun die Kontrolle, so muss es den Aktor ausgehend von seinem bestehenden Lichtwert aus ansteuern.
Darüber hinaus werden aktuelle Werte und Status übertragen, die über die HMI zur Anzeige gebracht werden können.
Datenaustausch HMI
Der Datenaustausch mit der HMI wird hier in der Basisklasse FB_BA_Ext_LightConstCtrl (interner Baustein) realisiert. In diesem Template sichtbar ist die Verwendung folgender Variablen:
- bSetLightValueMan_In: Befehl in den Handbetrieb zu wechseln.
- fSetLightValueMan_In: Lichtwert, der dabei angenommen werden soll.
- bSetCtrlMod_In: Befehl in den Konstantlichtregelbetrieb zu wechseln.
- eLightActivationMode_In: Aktivierungsmodus der Lichtsteuerfunktion aus der HMI (Vollautomatik oder Halbautomatik). Der über die HMI gewählte Modus persistent gespeichert.
- fLightValue_Out: Ausgabe prozentualer Lichtwert an die HMI.
- bLightOn_Out: Ausgabeinformation "Licht Ein" an die HMI.
- bErr_Out: Ausgabeinformation "Referenzaktor in Störung" an die HMI.
- eActualPrio_Out: Aktuell steuernde Telegrammpriorität an die HMI.
- bCtrlMod_Out: Ausgabeinformation "Lichtfunktion ist im Regelbetrieb" an die HMI.
![]() | Die Initialisierung des Templates erfolgt innerhalb der Methode FB_Init. |
Blockschaltbild

Syntax
FUNCTION_BLOCK FB_BA_LightGroupConstant EXTENDS FB_BA_Ext_LightConstCtrl
VAR_INPUT
bManualSwitch : BOOL;
bOn : BOOL;
bOff : BOOL;
bResetRoomFunction : BOOL;
bPresence : BOOL;
fBrightness : REAL;
stAreaLighting : ST_BA_Lighting;
stScene : ST_BA_Lighting;
stReferenceFeedback : ST_BA_LightActuatorFeedback;
END_VAR
VAR_OUTPUT
stLighting : ST_BA_Lighting;
bAdjusting : BOOL;
END_VAR
VAR_INPUT CONSTANT PERSISTENT
fHys : REAL;
nSwiOvrTi : UDINT;
nSwiTi : UDINT;
nDimTi : UDINT;
nRampTi : UDINT;
nPreOffRampTi : UDINT;
nBrtnsAdjTi : UDINT;
fOnValCtrl : REAL;
fOnValMan : REAL;
fPreOffVal : REAL;
nPreOffDly : UDINT;
fMinVal : REAL;
nMinOffDly : UDINT;
nMinOnDly : UDINT;
bMemoryMode : BOOL;
fLgtT : REAL;
END_VAR
VAR_INPUT CONSTANT
SpBrightness : FB_BA_AV_Op;
ManMode : FB_BA_LightingEvt := ( ePrio := E_BA_LightingPrio.eManual);
CnstLgtAuto : FB_BA_LightingEvt := ( ePrio := E_BA_LightingPrio.eAutomaticLight);
END_VAR
VAR
ConstLgtCtrl : FB_BA_LightCtrlConst;
PrioSwi : FB_BA_LightingTgmSel4;
END_VAR
Eingänge
Name | Typ | Beschreibung |
---|---|---|
bManualSwitch | BOOL | Ist der Konstantlichtregelbaustein noch nicht aktiv, so schaltet ein kurzer Tastendruck zunächst die Regelung ein, danach lassen weitere Signale den Baustein in die Handfunktion übergehen und es gilt: kurzer Tastendruck: an/aus, lange Tastendrücke: wechselweise hoch- oder herunterdimmen. |
bOn | BOOL | Ist der Konstantlichtregelbaustein noch nicht aktiv, so schaltet ein TRUE-Signal zunächst die Regelung ein, danach bezieht sich dieser Eingang nur auf das Einschalten im Hand-Modus. |
bOff | BOOL | Schaltet das Licht aus, der Konstantlichtregelbaustein befindet sich weiterhin im Handbetrieb. War der Konstantlichtregelbaustein vorher im Regelbetrieb, so befindet er sich nun im Handbetrieb. |
bResetRoomFunction | BOOL | Dieser Eingang schaltet den Konstantlichtregelbaustein ab. Die Abschaltung erfolgt über eine Rampe und Verweilzeit auf einem Basislichtwert, siehe Parameter: fPreOffVal, nPreOffDly und nPreOffRampT. |
bPresence | BOOL | Präsenzmeldeeingang. Ist der Konstantlichtregelbaustein im Vollautomatikbetrieb konfiguriert, so kann über diesen Eingang eine steigende Flanke die Funktion ein- und eine fallende Flanke ausschalten. Im Halbautomatikbetrieb schaltet nur eine fallende Flanke an diesem Eingang den Konstantlichtregelbaustein aus. |
fBrightness | REAL | Aktuelle Helligkeit für die Konstantlichtautomatik: Bereich und Einheit richten sich nach dem Helligkeitssensor. |
stAreaLighting | Resultierendes Telegramm aus den übergeordneten Ebenen (Bereich/area, Etage/floor und Gebäude/building), welches im Baustein FB_BA_AreaLighting gebildet wird. | |
stScene | Reservierter Telegramm-Eingang für eine Szenenansteuerung. | |
stReferenceFeedback | Rückmeldeeingang des angesteuerten Lichtaktors bzw. der Führungsleuchte der angesteuerten Gruppe. |
Ausgänge
Name | Typ | Beschreibung |
---|---|---|
stLighting | Resultierendes Ausgabeprogramm. | |
bAdjusting | BOOL | Der Konstantlichtregelbaustein befindet sich im Ausregelbetrieb. Dieses Signal kann dazu genutzt werden, Helligkeitssensoren, welche nicht analog, sondern über eine Kommunikation arbeiten, häufiger abzufragen und damit ein günstigeres Regelverhalten zu erzielen. |
Eingänge CONSTANT PERSISTENT
Name | Typ | Beschreibung |
---|---|---|
fHys | REAL | Konstantlicht-Automatik: Hystereseband. Die Konstantlichtregelung steuert den Ausgang so weit hoch, bzw. herunter, bis die gemessene Helligkeit den Zielwert erreicht, bzw. leicht über- oder unterschreitet. Das Licht gilt dann als ausgeregelt. Erst wenn die gemessene Helligkeit den Sollwert um fHys/2 über- oder unterschreitet, wird erneut nachgeregelt. Bereich und Einheit richten sich nach dem Helligkeitssensor, siehe oben: fBrtnsSP und fBrtnsSen. In FB_Init voreingestellt auf 50. |
nSwiOvrTi | UDINT | Unterscheidungszeit [ms] zwischen Kurz- und Langtastendruck. In FB_Init voreingestellt auf 250ms. |
nSwiTi | UDINT | Rampe für die Schaltfunktionen in Sekunden, bezogen auf ein Dimmen von 0 bis 100%. In FB_Init voreingestellt auf 2s. |
nDimTi | UDINT | Rampe für die Dimmfunktionen in Sekunden, bezogen auf ein Dimmen von 0 bis 100%. In FB_Init voreingestellt auf 10s. |
nRampTi | UDINT | Regelrampe der Konstantlicht-Automatik in Sekunden, bezogen auf ein Dimmen von 0 bis 100%. In FB_Init voreingestellt auf 60s. |
nPreOffRampTi | UDINT | Rampe, mit vor dem Abschalten auf einen Basiswert fPreOffVal gefahren wird. In FB_Init voreingestellt auf 2s. |
nBrtnsAdjTi | UDINT | Wartezeit in Sekunden nach Einschalten des Lichts, damit der Helligkeitssensor den korrekten Wert erfasst. |
fOnValCtrl | REAL | Einschaltwert für den Regelbetrieb, sollte dieser bei vorher ausgeschalteter Funktion aktiviert werden. In FB_Init voreingestellt auf 50%. |
fOnValMan | REAL | Einschaltwert der Handfunktion, sollte nicht über den Parameter eOperationalMode "Memory-Mode" angewählt sein. In FB_Init voreingestellt auf 100%. |
fPreOffVal / nPreOffDly | REAL / UDINT | Basiswert und Haltezeit auf diesem Wert vor dem Ausschalten der Gesamtfunktion. Unterschreitet der aktuelle Lichtwert den Basiswert bereits, so ist diese Funktion nicht aktiv und es wird unmittelbar abgeschaltet. In FB_Init voreingestellt auf 4% und 10s. |
fMinVal | REAL | Konstantlicht-Automatik: Mindestausgabewert. Wird dieser Wert intern unterschritten (d.h. es ist hell genug, dass kein künstliches Licht benötigt wird), so schaltet die Konstantlichtregelung das Licht nach Ablauf von nOffDly in Sekunden ab. Ist das Licht ausgeschaltet und die Regelung erkennt wieder Bedarf an Licht über dem Minimumwert, so schaltet die Regelung nach nOnDly in Sekunden das Licht wieder auf zunächst fMinVal ein. In FB_Init voreingestellt auf 4% |
nMinOffDly | UDINT | Konstantlicht-Automatik: Abschaltwartezeit in Sekunden, siehe fMinVal. In FB_Init voreingestellt auf 300s. |
nMinOnDly | UDINT | Konstantlicht-Automatik: Einschaltwartezeit in Sekunden, siehe fMinVal. In FB_Init voreingestellt auf 300s. |
bMemoryMode | BOOL | Memory-Mode: Beim Einschalten des Lichts im Handbetrieb nimmt das Licht den Wert an, den die Funktion vor dem letzten Ausschalten innehatte. Ist der "Memory-Mode" nicht aktiv, so ist der Einschaltwert über fOnValMan definiert. In FB_Init voreingestellt auf FALSE. |
fLgtT | REAL | Lichttemperatur: In FB_Init voreingestellt auf 3000K. |
Eingänge CONSTANT
Name | Typ | Beschreibung |
---|---|---|
SpBrightness | Analoges Eingabeobjekt: Sollwert der Regelungs [lx]. | |
ManMode | Telegrammerzeuger für die Lichtwerte im Handbetrieb (bManualMode = TRUE). Die Priorität ist voreingestellt auf eManualActuator. | |
CnstLgtAuto | Telegrammerzeuger für die Lichtwerte im Regelbetrieb (bControlMode = TRUE). Die Priorität ist voreingestellt auf eConstantLightControl. |
VAR
Name | Typ | Beschreibung |
---|---|---|
ConstLgtCtrl | Konstantlichtregelbaustein. | |
PrioSwi | Telegrammauswahl. |
Voraussetzungen
Entwicklungsumgebung | Erforderliche Function |
---|---|
TwinCAT ab v3.1.4024.56 | TF8040 | TwinCAT Building Automation ab V5.8.0.0 |