FB_DALIV2ConstantLightControlEco
Der Baustein FB_DALIV2ConstantLightControlEco() dient zur Konstantlichtregelung mit DALI-Vorschaltgeräten.
Durch zyklisches Auf- und Abdimmen wird versucht, auf einen vorgegebenen Sollwert zu regeln. Die Dynamik der Regelung wird durch eine Totzeit (tDeadTime) bestimmt. Die Totzeit legt die Wartezeit zwischen den einzelnen Befehlen zur Veränderung der Stellgröße fest. Je kleiner die Totzeit, desto schneller wird nachgeregelt. Eine frei definierbare Hysterese (nHysteresis) verhindert ein ständiges Schwingen um den Sollwert. Liegt der Istwert im Bereich der Hysterese um den Sollwert, so wird die Helligkeit der Lampen nicht verändert. Per Option kann festgelegt werden, ob die Lampen automatisch ein- und ausgeschaltet werden sollen (siehe Tabelle unten).
Parameter nMasterDevAddr
Das DALI-System bietet die Möglichkeit, Lampen nicht nur einzeln zu steuern, sondern diese auch gruppenweise oder mit Sammelbefehlen anzusprechen. Da die einzelnen Geräte Teilnehmer von verschiedenen Gruppen sein können, kann die Situation entstehen, dass vor einer Gruppen- bzw. Sammelansteuerung die einzelnen Lampen verschiedene Helligkeitszustände innehaben. Um dennoch eine Aussage darüber treffen zu können, ob die Lampen nun ein- oder ausgeschaltet werden sollen, wird jeder Gruppe ein Referenzgerät (Master-Device) zugeordnet, nach dessen Zustand sich die restlichen Geräte richten. Soll mit dem Baustein eine einzelne Lampe angesteuert werden, eAddrType = eAddrTypeShort, so braucht kein Master-Device angegeben werden. Der Parameter nMasterDevAddr ist in diesem Fall ohne Bedeutung.
VAR_INPUT
bEnable : BOOL := TRUE;
bOn : BOOL;
bOff : BOOL;
bToggle : BOOL;
nSetpointValue : UINT := 500;
nActualValue : UINT;
nHysteresis : UINT := 50;
tDeadTime : TIME := t#10s;
nAddr : BYTE := 0;
eAddrType : E_DALIV2AddrType := eDALIV2AddrTypeShort;
nMasterDevAddr : BYTE := 0;
tCycleActualLevelMasterDev : TIME := t#0s;
nOptions : DWORD := 0;
bEnable: Schaltet den Baustein frei. Ist dieser Eingang auf FALSE, so sind die Eingänge bOn, bOff und bToogle gesperrt. Außerdem werden keine Stellgrößen ausgegeben.
bOn: Schaltet die angesprochenen Geräte auf MAX_LEVEL und aktiviert die Konstantlichtregelung.
bOff: Schaltet die angesprochenen Geräte aus und deaktiviert die Konstantlichtregelung.
bToggle: Je nach Zustand des Referenzgerätes wird die Beleuchtung ein- oder ausgeschaltet.
nSetpointValue: An diesem Eingang wird der Sollwert vorgegeben.
nActualValue: An diesem Eingang wird der Istwert angelegt.
nHysteresis: Regelhysterese um den Sollwert. Liegt der Istwert innerhalb dieses Bereiches, so werden die Stellgrößen der Lampen nicht verändert.
tDeadTime: Totzeit zwischen den einzelnen Befehlen, mit denen die Stellgröße der DALI-Lampen verändert wird.
nAddr: Adresse eines Teilnehmers oder einer Gruppe.
eAddrType: Kurzadresse, Gruppenadresse oder Sammelruf (Broadcast).
nMasterDevAddr: Adresse des Master-Gerätes (Referenzgerät) bei Gruppen- und Sammelschaltungen.
tCycleActualLevelMasterDev: Zykluszeit, mit der im Hintergrund der aktuelle Istwert (ACTUAL DIM LEVEL) der Referenzlampe ausgelesen wird. Damit das Regeln der Lampen nicht gestört wird, wird das Auslesen immer in der niedrigsten Priorität durchgeführt. Wird der Wert auf 0 gesetzt, so wird das Auslesen gesperrt. Der ausgelesene Wert wird an dem Ausgang nActualLevelMasterDev ausgegeben.
nOptions: Optionen (siehe Tabelle). Die einzelnen Konstanten müssen miteinander ODER verknüpft werden.
Konstante | Beschreibung |
---|---|
DALIV2_OPTION_SWITCH_ON_AND_OFF | Es werden zum Verändern der Stellgröße die DALI-Befehle ON_AND_STEP_UP und STEP_DOWN_AND_OFF verwendet. Hierdurch werden die Lampen, nach dem Erreichen vom MIN_LEVEL STEP_UP und STEP_DOWN eingesetzt. Die Lampen bleiben dadurch immer eingeschaltet. |
DALIV2_OPTION_SWITCH_ON_WITH_MIN_LEVEL | Wird durch die Konstandlichtregelung das Licht wieder eingeschaltet, so wird durch diese Option immer der Befehl MIN_LEVEL verwendet. Ist die Option nicht gesetzt wird MAX_LEVEL aufgerufen. Diese Option steht ab V2.9.3 der SPS-Bibliothek zur Verfügung. |
VAR_OUTPUT
nActualLevelMasterDev : BYTE;
nDeviation : INT;
bControllerIsActive : BOOL;
bBusy : BOOL;
bError : BOOL;
nErrorId : UDINT;
nActualLevelMasterDev: Aktueller Ausgabewert des Master-Gerätes (bei eAddrType = eAddrTypeShort immer des jeweilig angesprochenen Gerätes).
nDeviation: Aktuelle Regelabweichung (Sollwert - Istwert).
bControllerIsActive: Dieser Ausgang wird gesetzt, sobald die Regelung aktiviert wurde.
bBusy: Bei der Aktivierung des Bausteins wird der Ausgang gesetzt und bleibt so lange aktiv bis der Befehl abgearbeitet wurde.
bError: Dieser Ausgang wird auf TRUE geschaltet, wenn bei der Ausführung eines Befehls ein Fehler aufgetreten ist. Der befehlsspezifische Fehlercode ist in nErrorId enthalten. Wird durch das Ausführen eines Befehls an den Eingängen auf FALSE zurückgesetzt.
nErrorId: Enthält den befehlsspezifischen Fehlercode des zuletzt ausgeführten Befehls. Wird durch das Ausführen eines Befehls an den Eingängen auf 0 zurückgesetzt. Siehe Fehlercodes.
VAR_IN_OUT
stCommandBuffer : ST_DALIV2CommandBuffer;
stCommandBuffer: Verweis auf die interne Struktur zur Kommunikation mit den Bausteinen FB_DALIV2Communication() (KL6811) oder FB_KL6821Communication() (KL6821).