FB_BA_LightGroupSwitchPresence

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) dar, welche sowohl über Schalter als auch über Präsenzmelder bedient wird.
Funktion
Über den Templateeingang bManualSwitch lässt sich das Licht über den Steuerbaustein LightSwitch 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.
Ist über den Parameter eLightActivationMode Vollautomatik-Betrieb eingestellt, so schaltet sich das Licht bei Präsenzerkennung am Eingang bPresence automatisch ein und bei fallender Flanke automatisch aus. Ist hingegen Halbautomatik-Betrieb angewählt, so erfolgt über den Präsenzeingang nur eine Abschaltung.
Der Licht-Steuerbaustein unterscheidet, ob er über Präsenz oder über Hand aktiviert bzw. Hand-übersteuert wurde. Im ersten Fall wird der Ausgang bAutomaticMode gesetzt, im zweiten Fall bManualMode; beide Ausgänge gleichzeitig werden nicht gesetzt. Mit diesen Ausgängen wird entweder über den Baustein AutoMode 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 Automatik oder Hand/Handübersteuerung zur Anzeige gebracht werden.
Bei einer fallenden Flanke am Templateeingang bPresence oder durch das Setzen von bResetRoomFunction wird der Lichtsteuerbaustein deaktiviert, wobei er, falls angewählt, noch über eine Ausschaltrampe mit Verweilzeit auf einem Vor-Ausschhaltwert sein Abschalten ankündigt. Danach werden beide Bausteinausgänge bAutomaticMode und bManualMode abgelöscht.
Neben den internen Telegrammen von AutoMode 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).
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_LightCtrl (interner Baustein) realisiert. In diesem Template sichtbar ist die Verwendung folgender Variablen:
- fSetLightValueMan_In: Lichtwert, der über die HMI gesetzt werden soll.
- bSetLightValueMan_In: Befehl von der HMI, dass der obige Lichtwert gesetzt werden soll.
- bLightOn_Out: Ausgabeinformation "Licht Ein" an die HMI.
- fLightValue_Out: Ausgabeinformation Lichtwert an die HMI.
- bErr_Out: Ausgabeinformation "Referenzaktor in Störung" an die HMI.
- eActualPrio_Out: Aktuell steuernde Telegrammpriorität an die HMI.
![]() | Die Initialisierung des Templates erfolgt innerhalb der Methode FB_Init. |
Blockschaltbild

Syntax
FUNCTION_BLOCK FB_BA_LightGroupSwitch EXTENDS FB_BA_Ext_LightCtrl
VAR_INPUT
bManualSwitch : BOOL;
bOn : BOOL;
bOff : BOOL;
bResetRoomFunction : BOOL;
bPresence : BOOL;
stAreaLighting : ST_BA_Lighting;
stScene : ST_BA_Lighting;
stReferenceFeedback : ST_BA_LightActuatorFeedback;
END_VAR
VAR_OUTPUT
stLighting : ST_BA_Lighting;
END_VAR
VAR_INPUT CONSTANT PERSISTENT
nSwiOvrTi : UDINT;
nSwiTi : UDINT;
nDimTi : UDINT;
nPreOffRampTi : UDINT;
fOnVal : REAL;
fPreOffVal : REAL;
nPreOffDly : UDINT;
bMemoryMode : BOOL;
eLightActivationMode : E_BA_LightActivationMode;
fLgtT : REAL;
END_VAR
VAR_INPUT CONSTANT
ManMode : FB_BA_LightingEvt :=( ePrio:= E_BA_LightingPrio.eManual);
AutoMode : FB_BA_LightingEvt :=( ePrio:= E_BA_LightingPrio.eAutomaticLight);
END_VAR
VAR
LightSwitch : FB_BA_LightCtrl;
PrioSwi : FB_BA_LightingTgmSel4;
END_VAR
Eingänge
Name | Typ | Beschreibung |
---|---|---|
bManualSwitch | BOOL | Kurze Tastendrücke an diesem Eingang schalten das Licht an und aus. Lange Tastendrücke (t > SwiOvrTi) lassen das Licht auf- und abdimmen. |
bOn | BOOL | Schaltet das Licht ein und aktiviert den Lichtsteuerbaustein. |
bOff | BOOL | Schaltet das Licht aus. Bedingt durch eine Zusatzbeschaltung, die bei Erreichen von 0% am Lichtsteuerbaustein einen Triggerimpuls an dessen Eingang bRst gibt, wird auch gleichzeitig der Baustein deakiviert. |
bResetRoomFunction | BOOL | Dieser Eingang schaltet den Lichtbaustein LightSwitch ab - er ist dann nicht mehr aktiv (Ausgang bAutmaticMode/bManualMode = FALSE). Die Abschaltung erfolgt über eine Rampe und Verweilzeit auf einem Basislichtwert, siehe Parameter: fPreOffVal, nPreOffDly und nPreOffRampT. |
bPresence | BOOL | Präsenzmeldeeingang. Ist über den Parameter eLightActivationMode Vollautomatik angewählt, so wird der Lichtbaustein mit einer steigenden Flanke als "automatisch" aktiviert (Ausgang bAutomaticMode = TRUE), sofern er nicht vorher schon auf Hand/Hand-übersteuert stand (Ausgang bManualMode = TRUE). Eine fallende Flanke deaktiviert den Lichtsteuerbaustein (Ausgang bAutomaticMode=FALSE, bMaualMode=FALSE). |
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. |
Eingänge CONSTANT PERSISTENT
Name | Typ | Beschreibung |
---|---|---|
nSwiOvrTi | UDINT | Unterscheidungszeit [ms] zwischen Kurz- und Langtastendruck. In FB_Init voreingestellt auf 250 ms. |
nSwiTi | UDINT | Rampe für die Schaltfunktionen in Sekunden, bezogen auf ein Dimmen von 0 bis 100%. In FB_Init voreingestellt auf 2 s. |
nDimTi | UDINT | Rampe für die Dimmfunktionen in Sekunden, bezogen auf ein Dimmen von 0 bis 100%. In FB_Init voreingestellt auf 10 s. |
nPreOffRampTi | UDINT | Rampe, mit vor dem Abschalten auf einen Basiswert fPreOffVal gefahren wird. In FB_Init voreingestellt auf 2 s. |
fOnVal | REAL | Einschaltwert. 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. |
bMemoryMode | BOOL | 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. |
eLightActivationMode | Auswahl der Funktion der Beleuchtungsautomatik:
| |
fLgtT | REAL | Lichttemperatur: In FB_Init voreingestellt auf 3000K. |
Eingänge CONSTANT
Name | Typ | Beschreibung |
---|---|---|
ManMode | Telegrammerzeuger für die Lichtwerte. Die Priorität ist voreingestellt auf eManualActuator. | |
AutoMode | Telegrammerzeuger für die Lichtwerte, sollte der Baustein über den Präsenzmelder aktiviert worden und (noch) nicht handübersteuert sein. Die Priorität ist voreingestellt auf eAutomaticLight. |
VAR
Name | Typ | Beschreibung |
---|---|---|
LightSwitch | Lichtsteuerbaustein. | |
PrioSwi | Telegrammauswahl. |
Voraussetzungen
Entwicklungsumgebung | Erforderliche Function |
---|---|
TwinCAT ab v3.1.4024.56 | TF8040 | TwinCAT Building Automation ab V5.8.0.0 |