FB_DALIV2ConstantLightControlEco

FB_DALIV2ConstantLightControlEco 1:

Der Funktionsbaustein 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).

Anmerkung zum 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 es sein, dass die einzelnen Lampen vor einer Gruppen- bzw. Sammelansteuerung verschiedene Helligkeitszustände haben. Um dennoch eine Aussage darüber treffen zu können, ob die Lampen nun ein- oder ausgeschaltet werden sollen, wird jeder Gruppe ein Führungsgerä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.

FB_DALIV2ConstantLightControlEco 2: Eingänge

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;
END_VAR

Name

Typ

Beschreibung

bEnable

BOOL

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

BOOL

Schaltet die angesprochenen Geräte auf MAX_LEVEL und aktiviert die Konstantlichtregelung.

bOff

BOOL

Schaltet die angesprochenen Geräte aus und deaktiviert die Konstantlichtregelung.

bToggle

BOOL

Je nach Zustand des Referenzgerätes wird die Beleuchtung ein- oder ausgeschaltet.

nSetpointValue

UINT

An diesem Eingang wird der Sollwert vorgegeben.

nActualValue

UINT

An diesem Eingang wird der Istwert angelegt.

nHysteresis

UINT

Regelhysterese um den Sollwert. Liegt der Istwert innerhalb dieses Bereiches, so werden die Stellgrößen der Lampen nicht verändert.

tDeadTime

TIME

Totzeit zwischen den einzelnen Befehlen, mit denen die Stellgröße der DALI-Lampen verändert wird.

nAddr

BYTE

Adresse eines Teilnehmers oder einer Gruppe

eAddrType

E_DALIV2AddrType

Kurzadresse, Gruppenadresse oder Sammelruf (Broadcast)

nMasterDevAddr

BYTE

Adresse des Master-Gerätes (Referenzgerät) bei Gruppen- und Sammelschaltungen

tCycleActualLevelMasterDev

TIME

Zykluszeit, mit der im Hintergrund der aktuelle Istwert der Referenzlampe ausgelesen wird (siehe ACTUAL DIM LEVEL). 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

DWORD

Optionen für das Vertauschen der Kurzadressen (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 ausgeschaltet.. Liegt die Regelabweichung oberhalb der Hysterese, werden die Lampen wieder eingeschaltet. Ist diese Option nicht gesetzt, so werden die Befehle 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 v3.3.2.0 der Tc2_DALI SPS-Bibliothek zur Verfügung.

FB_DALIV2ConstantLightControlEco 3: Ein-/Ausgänge

VAR_IN_OUT
  stCommandBuffer : ST_DALIV2CommandBuffer;
END_VAR

Name

Typ

Beschreibung

stCommandBuffer

ST_DALIV2CommandBuffer

Verweis auf die interne Struktur zur Kommunikation mit FB_KL6811Communication (KL6811) oder FB_KL6821Communication (KL6821).

FB_DALIV2ConstantLightControlEco 4: Ausgänge

VAR_OUTPUT
  nActualLevelMasterDev : BYTE;
  nDeviation            : INT;
  bControllerIsActive   : BOOL;
  bBusy                 : BOOL;
  bError                : BOOL;
  nErrorId              : UDINT;
END_VAR

Name

Typ

Beschreibung

nActualLevelMasterDev

BYTE

Aktueller Ausgabewert des Master-Gerätes (bei eAddrType = eAddrTypeShort immer des jeweilig angesprochenen Gerätes)

nDeviation

INT

Aktuelle Regelabweichung (Sollwert - Istwert)

bControllerIsActive

BOOL

Dieser Ausgang wird gesetzt, sobald die Regelung aktiviert wurde.

bBusy

BOOL

Bei der Aktivierung des Funktionsbausteins wird der Ausgang gesetzt und bleibt so lange aktiv, bis der Befehl abgearbeitet wurde.

bError

BOOL

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

UDINT

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).

Voraussetzungen

Entwicklungsumgebung

Einzubindende SPS-Bibliothek

TwinCAT ab v3.1.4020.14

Tc2_DALI ab v3.4.3.0