FB_BA_LightCtrlConst

Dieser Baustein stellt eine Konstantlichtregelung mit manueller Übersteuerung dar.
Er kann sich, wie in VDI 3813 Blatt 2 beschrieben, in den folgenden Betriebsstatus befinden:
- Deaktiviert: Ausgänge bControlMode = FALSE und bManualMode = FALSE
- Regelbetrieb: Ausgänge bControlMode = TRUE und bManualMode = FALSE
- Handübersteuerung: Ausgänge bControlMode = FALSE und bManualMode = TRUE
In den aktiven Zuständen (Regelbetrieb, Handübersteuerung) kann der Lichtausgabewert fOut beliebige Werte von 0…100% annehmen, im nicht aktiven Zustand ist er fest auf 0%.
Die Unterscheidung "aktiv" und "nicht aktiv" ist dann von Bedeutung, wenn mehrere Lichtsteuerfunktionen im Wechsel auf Aktoren zugreifen.
Damit eignet der Baustein sich für das Zusammenspiel mit anderen Lichtfunktionen in einer Prioritätsauswahl, in der der Ausgang fOut in Abhängigkeit der Betriebsstatusausgänge als gültiger Steuerwert angesehen wird.
Aufgrund des möglichen Zusammenspiels mit anderen Lichtsteuerfunktionen arbeitet die Lichtsteuerfunktion mit einem Eingang für den Helligkeitsstatus einer Referenzleuchte. Steuern mehrere Lichtfunktionen unabhängig voneinander per Prioritätssteuerung dieselbe Leuchte bzw. dieselbe Lichtgruppe an, so ist dem Baustein nicht bekannt, ob er der aktive ist. Mit Hilfe des Referenzeinganges kann jedoch immer vor jeder Schaltaktion auf den aktuellen Wert synchronisiert werden und vor einer Umschalt- (toggle-) Aktion beurteilt werden, ob das Licht im nächsten Schritt ein- oder ausgeschaltet werden soll.
Ist sichergestellt, dass die Funktion die alleinige ist, die das Licht ansteuert, so ist der Eingang nicht zu belegen. Er ist mit dem Wert -1 vorinitialisiert, was dem Baustein anzeigt, dass der Eingang nicht verknüpft ist.
Das bedeutet aber auch, dass es nicht möglich ist, online eine Eingangsverknüpfung zu löschen, ohne die Funktionsweise des Bausteines zu verfälschen!
Funktion
Vom nicht aktivierten Zustand aus gesehen arbeitet dieser Baustein in zwei Stufen: Kurze Tastendrücke an bSwi, bSwiUp oder bSwiDown sowie steigende Flanken an bOn, bSetCtrlMod oder bPrc schalten die Funktion zunächst in den Regelbetrieb. Der Präsenzmeldeeingang bPrc ist dabei jedoch nur im Vollautomatikmodus aktiv.
Der Betriebsmodus Vollautomatik oder Halbautomatik lässt sich am Eingang (eMode) parametrieren.
Einschaltverhalten
Die Lichtregelung wird zunächst auf den Wert fOnValCtrl geschaltet.
Das Schalten des Lichtes erfolgt dabei mit einer Rampe, die unter nSwiTi in Sekunden bezogen auf 0 bis 100% angegeben ist.
Ist der gewählte Lichtwert erreicht, so verharrt die Regelung für die Zeit nBrtnsAdjTi [s] auf diesem Wert, damit der Helligkeitssensor den korrekten Wert erfasst.
Bereits während dieser Wartezeit kann die Funktion in Handübersteuerung geschaltet werden.
Regelverhalten
Die Regelung versucht nun diesen Sollwert zu halten: erhöht sich der Tageslichteinfall, wird der Lichtstellwert am Ausgang fOut reduziert. Wird die Gesamthelligkeit schwächer, so wird der Lichtstellwert erhöht. Die Änderung folgt dabei ebenfalls einer Rampe, welche unter nRampTi in Sekunden bezogen auf 0 bis 100% angegeben ist. Die Konstantlichtregelung ist damit ein einfacher I-Regler.
Um zu verhindern, dass der Rampenbaustein ständig neue Lichtwerte vorgibt, kann am Eingang fHys ein Hysteresebereich angegeben werden.
Die Konstantlichtregelung steuert den Ausgang soweit hoch oder 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 der Hysterese richten sich nach dem Helligkeitssensor.
Minimalwert der Regelung
Änderungen im unteren Helligkeitsbereich werden häufig als störend empfunden.
Daher kann es sinnvoll sein, die Lichtregelung auf einen Minimal-Stellwert zu begrenzen und bei sehr hoher Außenhelligkeit das Licht dann ganz abzuschalten.
Hat die Regelung ihren Minimalstellwert fMinVal erreicht und soll noch weiter herunter regeln, so verharrt sie auf dem Minimalwert für die Zeit nOffDly [s] und schaltet dann auf den Ausgabewert 0.
Vor und nach dem Schalten wird jeweils der gemessene Helligkeitswert gespeichert. Die Differenz, welche sich daraus ergibt, ist der Helligkeitszuwachs durch Einschalten auf den Minimalwert.
Als neuer Schwellwert für das Wiedereinschalten gilt nun der Regelungssollwert minus dem Helligkeitszuwachs. Erreicht oder unterschreitet die gemessene Helligkeit diesen Schwellwert für die Zeit nOnDly [s], so wird das Licht wieder eingeschaltet und danach auf den Sollwert geregelt.
Die Wahl dieses Schwellwertes soll das folgende Diagramm verdeutlichen:

- Die gemessene Helligkeit fBrtns bewegt sich zunächst innerhalb der Toleranzgrenzen um den Sollwert fSP. Zum Ende hin überschreitet die Helligkeit jedoch den Toleranzbereich.
- Die Lichtregelung dimmt das Licht (Stellwert fOut) so weit herunter, bis der Lichtsollwert erreicht bzw. in dem SPS-Zyklus gerade unterschritten wird. Der gemessene Lichtwert fBrtns kann demnach etwas unter dem Sollwert liegen, was jedoch in Kauf genommen wird, um ständiges Nachregeln zu vermeiden.
- Die gemessene Helligkeit fBrtns bewegt sich wieder innerhalb der Toleranzgrenzen, wie in Phase 1.
- Es wird erneut geregelt, diesmal auf den minimalen Ausgabestellwert, wodurch die gesamte gemessene Helligkeit jedoch wieder in den Toleranzbereich rückt.
- Die gemessene Helligkeit steigt durch Außenhelligkeit erneut an und überschreitet den Toleranzbereich.
- Die gemessene Helligkeit fBrtns bleibt weiterhin oberhalb des Toleranzbereiches, die interne Zeit nOffDly [s] läuft ab.
- Das Licht wird abgeschaltet (fOut = 0). Die Differenz der gemessenen Helligkeit vor und nach dem Abschalten wird als Helligkeitszugewinn durch Einschalten des Lichtes auf den Minimalstellwert intern gemerkt. Der neue Schwellwert, der nun unterschritten werden muss, ist der Regelungssollwert minus dem Helligkeitszugewinn. Der Wahl dieses Schwellwertes liegen folgende Überlegungen zugrunde:
- Ein Wiedereinschalten des Lichtes darf nicht zur Folge haben, dass die gemessene Helligkeit danach wieder oberhalb des Toleranzbereiches liegt, da dies u.U. ein ständiges Ein- und Ausschalten zur Folge hätte.
- Dieser Schwellwert ist realistisch, d.h. > 0: zu Beginn von Phase 5 war die Außenhelligkeit schon derart hoch, dass auf den Minimalwert der Regelung gestellt wurde. Vor Abschalten des Lichts in Phase 7 ist noch einmal mehr Außenhelligkeit hinzugekommen. Im Diagramm ist leicht erkennbar, dass der neue Schwellwert dann erreicht ist, wenn der Zuwachs an Außenhelligkeit von Beginn der Phase 5 bis Ende Phase 6 wieder vergangen ist – ein realistisches Szenario. Sicherheitshalber wird jedoch intern nicht nur auf Unterschreiten, sondern auch noch auf Erreichen des Schwellwertes (kleiner oder gleich) geprüft.
- Der Schwellwert wird für die Zeit nOnDly [s] unterschritten.
- Das Licht wird wieder zunächst auf den Minimalwert geschaltet und danach so lange hochgedimmt, bis die gemessene Helligkeit dem Sollwert fSP entspricht.
- Die gemessene Helligkeit fBrtns bewegt sich wieder innerhalb der Toleranzgrenzen um den Sollwert fSP.
Handübersteuerung
Aus dem Regelbetrieb heraus lassen folgende Aktionen die Funktion in den Handbetrieb (Ausgänge bControlMode = FALSE und bManualMode = TRUE) wechseln:
- Kurze Tastendrücke an den Eingängen bSwi, bSwiUp und bSwiDwn schalten das Licht wechselseitig ein und aus.
- Mit bOn und bOff wird gezielt ein- bzw. ausgeschaltet.
- Ein langer Tastendruck am Eingang bSwi dimmt das Licht wechselseitig auf und ab. Das Dimmen erfolgt über eine Rampe, die unter nDimTi in Sekunden bezogen auf 0 bis 100% angegeben ist.
- Ein langer Tastendruck am Eingang bSwiUp dimmt das Licht gezielt auf. Das Dimmen erfolgt über eine Rampe, die unter nDimTi in Sekunden bezogen auf 0 bis 100% angegeben ist.
- Ein langer Tastendruck am Eingang bSwiDwn dimmt das Licht gezielt ab. Das Dimmen erfolgt über eine Rampe, die unter nDimTi in Sekunden bezogen auf 0 bis 100% angegeben ist.
- Eine Änderung am Eingang fSetValMan. Dieser Wert wird dann als neuer Lichtausgabewert übernommen.
"Aus" im Handbetrieb bedeutet dabei, dass die Gesamtfunktion weiterhin aktiv ist!
Mit einer positiven Flanke an bRstManMod oder bSetCtrlMod wird aus der Handübersteuerung wieder in den Regelbetrieb geschaltet.
Memory-Mode
Ist der Memory-Mode am Eingang bMemMod aktiviert, so wird sich intern der Wert gemerkt, den der Baustein vor dem letzten manuellen Abschalten innehatte. Beim nächsten Einschalten im Handmodus wird dieser Wert dann übernommen.
Ist Memory-Mode deaktiviert, erfolgt das Einschalten im Handmodus immer mit dem Wert fOnValMan.
Deaktivieren der Funktion
Aus dem Regelbetrieb oder Handbetrieb heraus lassen zwei Ereignisse die Funktion in den deaktivierten Zustand (Ausgänge bControlMode = FALSE und bManualMode = FALSE) wechseln:
- eine fallende Flanke am Eingang bPrc.
- ein TRUE-Signal am Eingang bRst. Dieser Eingang ist für die zentrale Deaktivierung des Bausteins gedacht oder für den Fall, dass kein Präsenzmelder vorhanden ist.
Bei der Deaktivierung wird über eine Rampe nPreOffRampTi (in Sekunden bezogen auf 100% bis 0%) auf einen Basiswert fPreOffVal herabgedimmt. Dieser Wert steht für die Zeit nPreOffDly [s] am Ausgang an, bevor ausgeschaltet wird. Der Funktionsbaustein ist dann deaktiviert.
Während der Ausschaltphase kann der Baustein wieder aktiviert werden, wobei er dann wieder in den Regelbetrieb übergeht.
Die Aktivierung erfolgt dabei über Kurze Tastendrücke an bSwi, bSwiUp oder bSwiDown sowie steigende Flanken an bOn oder bPrc. Der Präsenzmeldeeingang bPrc ist dabei jedoch nur im Vollautomatikmodus aktiv.
![]() | Ist der Lichtausgabewert vor der Deaktivierung bereits kleiner als der erwähnte Basiswert, so wird die Abschaltroutine übersprungen und unmittelbar ausgeschaltet. |
Eingänge
VAR_INPUT
bSwi : BOOL;
bSwiUp : BOOL;
bSwiDwn : BOOL;
bOn : BOOL;
bOff : BOOL;
fSetValMan : REAL;
bSetValMan : BOOL;
bSetCtrlMod : BOOL;
bRstManMod : BOOL;
bRst : BOOL;
bPrc : BOOL;
fBrtns : REAL;
fSP : REAL;
fHys : REAL := 50;
nSwiOvrTi : UDINT := 250;
nSwiTi : UDINT := 2;
nDimTi : UDINT := 5;
nRampTi : UDINT := 60;
nPreOffRampTi : UDINT := 10;
nBrtnsAdjTi : UDINT := 5;
fOnValCtrl : REAL := 50;
fOnValMan : REAL := 100;
fPreOffVal : REAL := 20;
nPreOffDly : UDINT := 20;
fMinVal : REAL;
nMinOffDly : UDINT := 300;
nMinOnDly : UDINT := 300;
bMemMod : BOOL;
eLgtActMod : E_BA_LightActivationMode;
fRefLgtVal : REAL := -1;
END_VAR
Name | Typ | Beschreibung |
---|---|---|
bSwi | 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. |
bSwiUp | 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: gezielt hochdimmen. |
bSwiDwn | 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: gezielt herabdimmen. |
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. |
fSetValMan | REAL | Handvorgabewert. Die Werte am Eingang fSetValMan werden bei durch eine steigende Flanke an bSetValMan als Lichtausgabewert übernommen. Der Baustein geht durch das Setzen direkt in den Handbetrieb über, egal, ob er vorher im Regelbetrieb oder im deaktivierten Zustand war. |
bSetValMan | BOOL | Übernahme des Handvorgabewertes, siehe fSetValMan. |
bSetCtrlMod | BOOL | Eine steigende Flanke versetzt den Baustein direkt in den Regelbetrieb, unabhängig davon, ob er vorher im deaktivierten Zustand oder im Handbetrieb war. |
bRstManMod | BOOL | Dieser Eingang lässt den Konstantlichtregelbaustein, sollte er sich im Handbetrieb befinden, zurück in den Automatikmodus wechseln. |
bRst | BOOL | Dieser Eingang schaltet den Konstantlichtregelbaustein ab. Die Abschaltung erfolgt über eine Rampe und Verweilzeit auf einem Basislichtwert, siehe unten: fPreOffVal, nPreOffDly und nPreOffRampT. |
bPrc | BOOL | Präsenzmeldeeingang. Ist der Konstantlichtregelbaustein im Vollautomatikbetrieb konfiguriert, so kann über diesen Eingang eine steigende Flanke die Funktion aktivieren, falls sie vorher nicht aktiv war und eine fallende Flanke deaktivieren. Im Halbautomatikbetrieb deaktiviert nur eine fallende Flanke an diesem Eingang den Konstantlichtregelbaustein. "Aktivieren" bedeutet hierbei, dass die Funktion um Handbetrieb eingeschaltet wird (Ausgänge bControlMode = TRUE und bManualMode = FALSE). Deaktivieren bedeutet: die Funktion ist weder im Hand-, noch im Regelbetrieb aktiv (Ausgänge bControlMode = FALSE und bManualMode = FALSE). |
fBrtns | REAL | Aktuelle Helligkeit für die Konstantlichtautomatik: Bereich und Einheit richten sich nach dem Helligkeitssensor. |
fSP | REAL | Helligkeits-Sollwert für die Konstantlichtautomatik: Es wird ein Abgleich mit fBrtnsSen angestrebt. Bereich und Einheit richten sich daher nach dem Helligkeitssensor. |
fHys | REAL | Konstantlicht-Automatik: Hystereseband. Die Konstantlichtregelung steuert den Ausgang soweit 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. |
nSwiOvrTi | UDINT | Zeit [ms] zur Unterscheidung zwischen kurzem- und langem Tastendruck. |
nSwiTi | UDINT | Rampe für die Schaltfunktionen in Sekunden, bezogen auf ein Dimmen von 0 bis 100 %. |
nDimTi | UDINT | Rampe für die Dimmfunktionen in Sekunden, bezogen auf ein Dimmen von 0 bis 100 %. |
nRampTi | UDINT | Regelrampe der Konstantlichtautomatik in Sekunden, bezogen auf ein Dimmen von 0 bis 100%. |
nPreOffRampTi | UDINT | Rampe, mit der vor dem Abschalten auf einen Basiswert fPreOffVal gefahren wird. |
nBrtnsAdjTi | UDINT | Wartezeit [s] 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. |
fOnValMan | REAL | Einschaltwert der Handfunktion, sollte nicht über den Parameter eOperationalMode "Memory-Mode" angewählt sein. |
fPreOffVal / nPreOffDly | REAL / UDINT | Basiswert und Haltezeit auf diesem Wert vor Ausschalten der Gesamtfunktion. Unterschreitet der aktuelle Lichtwert den Basiswert bereits, so ist diese Funktion nicht aktiv und es wird unmittelbar abgeschaltet. |
fMinVal | REAL | Konstantlichtautomatik: 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 [s] ab. Ist das Licht ausgeschaltet und die Regelung erkennt wieder Bedarf an Licht über dem Minimumwert, so schaltet die Regelung nach nOnDly [s] das Licht wieder auf zunächst fMinVal ein. |
nMinOffDly | UDINT | Konstantlichtautomatik: Abschaltwartezeit in Sekunden, siehe fMinVal. |
nMinOnDly | UDINT | Konstantlichtautomatik: Einschaltwartezeit in Sekunden, siehe fMinVal. |
bMemMod | 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. |
eLgtActMod | Aktivierungsmodus der Lichtsteuerfunktion. Vollautomatik: Die Lichtsteuerfunktion wird über erkannte Präsenz aktiviert und über wegfallende Präsenz deaktiviert. Tastendrücke können die Funktion auch aktivieren. Halbautomatik: Aktivierung der Lichtsteuerfunktion nur über Tastendruck, über wegfallende Präsenz ist sie automatisch deaktiviert. | |
fRefLgtVal | REAL | Lichtwert eines einzelnen Lichtaktors, der die Lichtzone repräsentiert. Dieser Eingang dient der Beurteilung, ob im Handbetrieb mit dem nächsten Tastendruck ein- oder ausgeschaltet wird oder ab welchem Wert gedimmt werden soll. Dieser Eingang ist mit "-1" vorinitialisiert. Bei einer Nichtbelegung wird dieses erkannt und davon ausgegangen, dass diese Funktion die alleinige zur Ansteuerung der Leuchten ist. Damit wird der Ausgabewert fOut als Lichtwert zur Beurteilung der nächsten Schaltaktionen herangezogen. |
Ausgänge
VAR_OUTPUT
fOut : REAL;
bControlMode : BOOL;
bManualMode : BOOL;
bAdjusting : BOOL;
nRemTiminOff : UDINT;
nRemTiminOn : UDINT;
END_VAR
Name | Typ | Beschreibung |
---|---|---|
fOut | REAL | Lichtausgabewert in 0…100 %. |
bControlMode | BOOL | Zeigt an, ob der Baustein im Regelbetrieb arbeitet. |
bManualMode | BOOL | Zeigt an, ob der Baustein im Handbetrieb arbeitet. |
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. |
nRemTiMinOff | UDINT | Kontrollausgang: Die Regelausgabe befindet sich am Minimalwert und es läuft der Timer bis zum Schalten auf "0%" ab. Dieser Ausgang zeigt die verbleibenden Sekunden. |
nRemTiMinOn | UDINT | Kontrollausgang: Die Konstantlichtregelung hat das Licht wegen genügend Umgebungslicht abgeschaltet, nun ist jedoch wieder Lichtbedarf vorhanden und es läuft der Timer bis zum Wiedereinschalten ab. Dieser Ausgang zeigt die verbleibenden Sekunden. |
Voraussetzungen
Entwicklungsumgebung | Erforderliche SPS-Bibliothek |
---|---|
TwinCAT ab v3.1.4024.55 | Tc3_BA2 ab v5.3.19.0 |