FB_BA_LightActrDALI_TC

Dieser Baustein dient zur Ansteuerung eines DALI-Lichtaktors, einer DALI-Gruppe oder von DALI-Geräten mit Sammelbefehl (broadcast), wobei Farbtemperatursteuerung (Temperature-Control) unterstützt wird.
Funktion
Im Baustein werden 4 Routinen durchlaufen:
- Das Setzen des Lichtwertes, wenn dieser vom aktuellen Wert abweicht. Beaufschlagt ist dieses mit einem Hysteresebereich nHysLgtVal, siehe unten.
- Das Setzen der Farbtemperatur, wenn diese vom aktuellen Wert abweicht. Beaufschlagt ist dieses mit einem Hysteresebereich fHysLgtT, siehe unten.
- Das Auslesen des Lichtwertes. Dieses geschieht zyklisch im Intervall nPrdQueryLgtVal in Sekunden.
- Das Auslesen der Farbtemperatur. Dieses geschieht zyklisch im Intervall nPrdQueryLgtT in Sekunden.
Als "aktueller Wert" wird zunächst immer der Wert angenommen, welcher fehlerfrei gesendet wurde. Die zyklische Abfrage der jeweiligen Lesefunktion wird den Wert korrigieren, sollte ein Telegramm dennoch "verloren" gegangen oder das Vorschaltgerät in irgendeiner Form anderweitig angesteuert worden sein.
Diese Vorgehensweise stellt sicher, dass zum einen der DALI-Bus nicht zu sehr belastet wird, auf der anderen Seite jedoch der tatsächliche Lichtwert immer wieder gelesen wird.
Die Ansteuerung des Bausteins erfolgt über Werte aus dem Lichttelegramm stLightingCmd. Dabei werden die Steuerwerte des Lichts und der Farbtemperatur auf die Grenzen limitiert, welche zuvor durch eine Initialisierungsroutine mit anderen Konfigurationsparametern in das Vorschaltgerät, bzw. die Geräte übertragen wurden, siehe VAR_INPUT CONSTANT PERSISTENT. Die Initialisierung erfolgt über den Eingang bInitialize. Hier werden auch fest eingestellte Werte übertragen, siehe VAR CONSTANT.
Ein Farbtemperatur-Sollwert von "0" wird explizit ignoriert. Dadurch lassen sich Telegramme erzeugen, welche nur die Helligkeit, nicht aber die zuvor anderweitig eingestellte Farbtemperatur beeinflussen.
Das Setzen des Lichtwertes erfolgt intern ausschließlich über den DALI-Befehl FB_DALI102DirectArcPowerControl. Damit ist die FadeTime (Stufenzeit) die Zeit, mit der jeweils auf den neuen Lichtwert gedimmt wird.
Voreingestellt ist diese Dimmzeit auf 0 s, um Dimmrampen so ausschließlich in der SPS realisieren zu können.
Ist eine Gruppen- oder Sammelansteuerung gewählt (broadcast), so richten sich die Steuer- und Initialisierungsbefehle an alle Geräte. Lesebefehle hingegen werden nur an das Referenzgerät gesendet.
Syntax
FUNCTION_BLOCK FB_BA_LightDALI_TC
VAR_INPUT
bEn : BOOL;
bInitialize : BOOL;
stLightingCmd : ST_BA_Lighting;
eAdrType : Tc3_DALI.E_DALIAddressType := Tc3_DALI.E_DALIAddressType.Short;
nAdr : BYTE;
nAdrRefDev : BYTE;
ipDALICommunication : Tc3_DALI.I_DALICommunication;
END_VAR
VAR_OUTPUT
byActlLgtVal : BYTE;
fActlLgtVal : REAL;
fActlLgtT : REAL;
bInitializing : BOOL;
bErr : BOOL;
END_VAR
VAR_INPUT CONSTANT PERSISTENT
nHysLgtVal : BYTE;
fHysLgtT : REAL;
nPrdQueryLgtVal : UDINT;
nPrdQueryLgtT : UDINT;
nMinLevel : BYTE := 126;
nMaxLevel : BYTE := 254;
nPowerOnLevel : BYTE := 254;
nSystemFailureLevel : BYTE := 254;
eFadeTime : Tc3_DALI.E_DALIFadeTime := Tc3_DALI.E_DALIFadeTime.Disabled;
eFadeRate : Tc3_DALI.E_DALIFadeRate := Tc3_DALI.E_DALIFadeRate.N358StepsPerSec;
fTemperatureLimitWarmest : LREAL := 2700;
fTemperatureLimitCoolest : LREAL := 6500;
fPowerOnTemperature : LREAL := 3000;
fSystemFailureTemperature : LREAL := 3000;
END_VAR
VAR CONSTANT
eExtendedFadeTimeBase : Tc3_DALI.E_DALIExtendedFadeTimeBase := Tc3_DALI.E_DALIExtendedFadeTimeBase.Base01;
eExtendedFadeTimeMultiplier : Tc3_DALI.E_DALIExtendedFadeTimeMultiplier := Tc3_DALI.E_DALIExtendedFadeTimeMultiplier.Disabled;
END_VAR
VAR_INPUT
Name | Typ | Beschreibung |
---|---|---|
bEn | BOOL | Freigabe des Bausteines: ein TRUE-Signal an diesem Eingang aktiviert die Funktion. |
bInitialize | BOOL | Eine positive Flanke an diesem Eingang startet die DALI-Initialisierungsroutine, welche die eingestellten Parameter in das DALI-Gerät überträgt, siehe FB_BA_Swi4DALI. |
stLightingCmd | ST_BA_Lighting | Lichtsteuertelegramm |
eAdrType | Tc3_DALI.E_DALIAddressType | Definiert, ob der Eingang nAdr eine Kurzadresse (0…63) oder eine Gruppenadresse (0…31) enthält. Der Eingang nAdr hat keine Bedeutung, wenn ein Sammelruf (Broadcast) geschickt wird |
nAdr | BYTE | DALI-Kurzadresse des Sensors. |
nAdrRefDev | BYTE | DALI-Adresse eines Referenzgerätes, sollte Gruppen- oder Broadcast-Steuerung gewählt sein. Dieses Referenzgerät repräsentiert dann alle anderen angesteuerten Geräte. |
ipDALICommunication | Interface-Pointer auf den DALI-Kommunikationsbaustein. |
VAR_OUTPUT
Name | Typ | Beschreibung |
---|---|---|
byActlLgtVal | BYTE | Aktueller Lichtwert im DALI-Format (0…254). |
fActlLgtVal | REAL | Aktueller Lichtwert in Prozent. |
fActlLgtT | REAL | Aktuelle Farbtemperatur in Kelvin. |
bInitializing | BOOL | Der Sensor befindet sich in der DALI-Initialisierungsphase, d.h. die eingetragenen Parameter werden in das DALI-Gerät übertragen. |
bErr | BOOL | Fehlerausgang. Ein Klartext wird in TwinCAT im Ausgabefenster in der Fehlerliste (Error List) ausgegeben. |
VAR_INPUT CONSTANT PERSISTENT
Name | Typ | Beschreibung |
---|---|---|
nHysLgtVal | BYTE | Hysteresebereich um den Lichtvorgabewert. Ein erneuter Setzbefehl wird dann gestartet, wenn der Sollwert nHysLgtVal/2 über oder unter dem Istwert liegt. |
fHysLgtT | REAL | Hysteresebereich um den Farbtemperaturvorgabewert. Ein erneuter Setzbefehl wird dann gestartet, wenn der Sollwert nHysLgtVal/2 über oder unter dem Istwert liegt. |
nPrdQueryLgtVal | UDINT | Abfrageintervall des Lichtwertes [s]. |
nPrdQueryLgtT | UDINT | Abfrageintervall der Farbtemperatur [s]. |
![]() | Die folgenden Parameter werden durch die Initialisierungsroutine in das DALI-Vorschaltgerät bzw. die DALI-Geräte übertragen. |
Name | Typ | Beschreibung |
---|---|---|
nMinLevel | BYTE | Minimaler Lichtstellwert im DALI-Ausgabeformat (0…254). Voreingestellt auf 126. |
nMaxLevel | BYTE | Maximaler Lichtstellwert im DALI-Ausgabeformat (0…254). Voreingestellt auf 254. |
nPowerOnLevel | BYTE | Lichtstellwert beim Anlegen der Versorgungsspannung an das Vorschaltgerät. Voreingestellt auf 254. |
nSystemFailureLevel | BYTE | Lichtstellwert bei einem Fehler am DALI-Bus. Voreingestellt auf 254. |
eFadeTime | Die Fade Time (Stufenzeit) legt die Zeit des aktuellen Ausgangswerts zum geforderten Wert fest. Die FadeTime ist auf "disabled" voreingestellt, was zusammen mit der deaktivierten "Extended FadeTime" (VAR CONSTANT) einer Stufenzeit von 0s entspricht. | |
eFadeRate | Die Fade Rate (Stufengeschwindigkeit) legt die Veränderungsgeschwindigkeit (in Stufen pro Sekunde) für die Änderung des Ausgangswerts fest. Für das Verhalten dieses Bausteines ist sie nicht ausschlaggebend. Sie ist auf 358 Stufen/s voreingestellt. | |
fTemperatureLimitWarmest | LREAL | Untere Grenze des Farbtemperaturbereiches in Kelvin. Voreingestellt auf 2700K. |
fTemperatureLimitCoolest | LREAL | Obere Grenze des Farbtemperaturbereiches in Kelvin. Voreingestellt auf 6500K. |
fPowerOnTemperature | LREAL | Farbtemperaturwert beim Anlegen der Versorgungsspannung an das Vorschaltgerät. Voreingestellt auf 3000K. |
fSystemFailureTemperature | LREAL | Farbtemperaturwert bei einem Fehler am DALI-Bus. Voreingestellt auf 3000K. |
VAR CONSTANT
![]() | Die folgenden Parameter sind unveränderbar und werden durch die Initialisierungsroutine in das DALI-Gerät übertragen. |
Name | Typ | Beschreibung |
---|---|---|
eExtendedFadeTimeBase | Die Extended Fade Time ist für sehr lange Dimmrampen bis 16 min gedacht. Sie ist für diesen Anwendungsfall deaktiviert. eExtendedFadeTimeBase bezeichnet die Zeitbasis und ist auf den kleinsten Wert "Base01" voreingestellt. | |
eExtendedFadeTimeMultiplier | eExtendedFadeTimeMultiplier ist der Multiplikator zur Zeitbasis und ist auf den Wert "Disabled" eingestellt. |
Voraussetzungen
Entwicklungsumgebung | Erforderliche Function |
---|---|
TwinCAT ab v3.1.4024.35 | TF8040 | TwinCAT Building Automation ab V5.0.0.0 |