FB_DALI102Dimmer1Switch

FB_DALI102Dimmer1Switch 1:

Der Baustein FB_DALI102Dimmer1Switch stellt die wichtigsten Funktionen für die Realisierung eines Tast-Dimmers zur Verfügung.

Bedienung

Der Eingang bSwitch ist für die Verknüpfung mit einem Taster vorgesehen. Durch kurzes Betätigen werden die DALI-Vorschaltgeräte ein- bzw. ausgeschaltet. Ein langes Drücken lässt den Ausgangswert der DALI-Vorschaltgeräte zyklisch zwischen den minimalen und den maximalen Wert dimmen (siehe weiter unten).

Durch positive Flanken an den Eingängen bRecallMinLevel, bRecallMaxLevel, bOn, bOff, bToogle, bGoToScene und bSetLevel kann der Ausgangswert der DALI-Vorschaltgeräte geändert werden (siehe weiter unten).

Der Baustein bietet die Möglichkeit, ein einzelnes DALI-Vorschaltgerät per Kurzadresse, mehrere DALI-Vorschaltgeräte per Gruppenadresse oder alle DALI-Vorschaltgeräte einer DALI-Linie per Sammelruf anzusprechen.

Die Variablen minLevel, maxLevel, fadeRate, fadeTime, extendedFadeTimeBase und extendedFadeTimeMultiplier sind Parameter, die in jedem DALI-Vorschaltgeräte separat abgespeichert werden. Durch die Eigenschaften und durch den Eingang bInitialize können diese Variablen in den DALI-Vorschaltgeräten verändert werden.

Werden DALI-Befehle für das Setzen der Ausgangswerte gesendet (bBusy = TRUE), so werden weitere positive Flanken an den Eingängen ignoriert. Sobald bBusy wieder zurückgesetzt wurde, können neue Befehle ausgeführt werden.

Bedienung über den Eingang bSwitch

Durch ein kurzes Signal am Eingang bSwitch werden die DALI-Vorschaltgeräte, je nach Zustand des Referenz DALI-Vorschaltgerätes, ein- oder ausgeschaltet. Liegt das Signal länger an, so wird in den Dimmermodus umgeschaltet und die Ausgangswerte der DALI-Vorschaltgeräte fahren zyklisch zwischen minLevel und maxLevel bis bSwitch wieder FALSE ist. Erreicht der Ausgangswert des Referenz DALI-Vorschaltgerätes den Grenzwert minLevel oder maxLevel, so ändert der Baustein seine Dimmrichtung.

Wird bSwitch wieder auf FALSE gesetzt, so bleiben die aktuellen Ausgangswerte der DALI-Vorschaltgeräte unverändert. Durch einen erneuten Impuls auf den Eingang bSwitch, werden die Ausgangswerte auf 0 gesetzt. Wird im Dimmermodus der Eingang bSwitch kurzzeitig weggenommen, so ändert der Baustein seine Dimmrichtung.

Die Geschwindigkeit, in der die Ausgangswerte der DALI-Vorschaltgeräte sich im Dimmermodus ändern, wird durch die Variable fadeRate in den einzelnen DALI-Vorschaltgeräten festgelegt. Die Geschwindigkeit, in der die DALI-Vorschaltgeräte wieder eingeschaltet werden, wird durch die Variablen fadeTime, extendedFadeTimeBase und extendedFadeTimeMultiplier vorgegeben.

Bedienung über die Eingänge bOn, bOff, bGoToScene und bSetLevel

Durch positive Flanken an den Eingängen bOn, bOff, bGoToScene und bSetLevel kann der Ausgangswert der DALI-Vorschaltgeräte unmittelbar geändert werden.

Bei bOn, bGoToScene und bSetLevel wird die Geschwindigkeit, in der der angegebene Wert erreicht werden soll, durch die Variablen fadeTime, extendedFadeTimeBase und extendedFadeTimeMultiplier vorgegeben. Durch bOff werden die DALI-Vorschaltgeräte unmittelbar ausgeschaltet.

Memory-Mode

Beim Einschalten muss unterschieden werden, ob der Memory-Mode (siehe nOptions) aktiv ist oder nicht. Ist der Memory-Mode aktiv, so wird beim Einschalten der zuletzt eingestellte Wert als Ausgangswert für die DALI-Vorschaltgeräte übernommen. Ist der Memory-Mode nicht aktiv, so wird bei den DALI-Vorschaltgeräten der Ausgangswert aus den Parameter nLevelMemoryMode verwendet. Hierbei ist es gleichgültig, ob die DALI-Vorschaltgeräte über den Eingang bOn, bToggle oder bSwitch geschaltet werden.

DALI-Kurzadresse Referenzgerät (nReferenceDeviceAddress)

Werden mehrere DALI-Vorschaltgeräte angesprochen, so wird über nReferenceDeviceAddress der aktuelle Ausgangswert des Referenz DALI-Vorschaltgerätes ausgelesen. Je nach Zustand des Referenz DALI-Vorschaltgerätes werden die DALI-Vorschaltgeräte auf den gewünschten Wert gesetzt.

Der Parameter nReferenceDeviceAddress wird ebenfalls verwendet, wenn im Hintergrund der Ausgangswert des Referenz DALI-Vorschaltgerätes zyklisch ausgelesen wird (tCycleActualLevel > 0 sec).

Soll mit dem Baustein ein einzelnes DALI-Vorschaltgerät angesteuert werden (eAddressType = E_DALIAddressType.Short) so wird kein Referenz DALI-Vorschaltgerät benötigt. Der Ausgangswert des einzelnen DALI-Vorschaltgerätes wird über nAddress ermittelt. Der Parameter nReferenceDeviceAddress ist in diesem Fall ohne Bedeutung.

Wird nReferenceDeviceAddress verwendet, so muss dieser immer die Kurzadresse eines DALI-Vorschaltgerätes enthalten, welches auch in der angesprochenen DALI-Gruppe enthalten ist. Bei Sammelruf muss sich an der DALI-Linie ein DALI-Vorschaltgerät mit entsprechender Kurzadresse befinden.

FB_DALI102Dimmer1Switch 2: Eingänge

VAR_INPUT
  bInitialize              : BOOL := FALSE;
  nAddress                 : BYTE;
  eAddressType             : E_DALIAddressType := E_DALIAddressType.Short;
  bSwitch                  : BOOL;
  bRecallMaxLevel          : BOOL;
  bRecallMinLevel          : BOOL;
  bOn                      : BOOL;
  bOff                     : BOOL;
  bToggle                  : BOOL;
  bGoToScene               : BOOL;
  nScene                   : BYTE;
  bSetLevel                : BOOL;
  nLevel                   : BYTE := 254;
  nLevelMemoryMode         : BYTE := 254;
  nReferenceDeviceAddress  : BYTE;
  tCycleActualLevel        : TIME := T#30S;
  nOptions                 : DWORD := 0;
END_VAR

Name

Typ

Beschreibung

bInitialize

BOOL

Über eine positive Flanke an diesem Eingang werden die Werte aller Eigenschaften in die DALI-Vorschaltgeräte geschrieben. Das Schreiben der Eigenschaften in die DALI-Vorschaltgeräte ist nur dann möglich, wenn keine anderen Funktionen von dem Baustein ausgeführt werden (bBusy = FALSE).

nAddress

BYTE

Adresse eines DALI-Vorschaltgerätes oder einer DALI-Gruppe.

eAddressType

E_DALIAddressType

Definiert, ob der Eingang nAddress eine Kurzadresse (0…63) oder eine Gruppenadresse (0…15) enthält. Der Eingang nAddress hat keine Bedeutung, wenn ein Sammelruf (Broadcast) oder ein Sammelruf an nicht adressierte Geräte (BroadcastUnaddr) ausgewählt wurde.

bSwitch

BOOL

Durch ein kurzes Signal an diesen Eingängen werden die DALI-Vorschaltgeräte ein- oder ausgeschaltet. Liegt das Signal länger an, so wird in den Dimmermodus gewechselt und die Ausgangswerte der DALI-Vorschaltgeräte fahren auf minLevel bzw. maxLevel.

bRecallMaxLevel

BOOL

Über eine positive Flanke an diesem Eingang werden die DALI-Vorschaltgeräte auf maxLevel gesetzt

bRecallMinLevel

BOOL

Über eine positive Flanke an diesem Eingang werden die DALI-Vorschaltgeräte auf minLevel gesetzt.

bOn

BOOL

Ist der Memory-Mode aktiv (siehe nOptions), so werden über eine positive Flanke an diesem Eingang die DALI-Vorschaltgeräte auf ihren Ausgangswert vor dem letzten Ausschalten gesetzt. Ist der Memory-Mode nicht aktiv, so werden die DALI-Vorschaltgeräte auf nLevelMemoryMode gesetzt.

bOff

BOOL

Über eine positive Flanke an diesem Eingang werden die DALI-Vorschaltgeräte ausgeschaltet. Der vorherige Ausgangswert wird intern gespeichert, um diesen für das Einschalten zu verwenden, falls der Memory-Mode aktiv (siehe nOptions) ist.

bToggle

BOOL

Durch jede positive Flanke an diesem Eingang wechseln die DALI-Vorschaltgeräte zwischen Aus und ihrem Ausgangswert vor dem letzten Ausschalten (Memory-Mode aktiv) oder nLevelMemoryMode (Memory-Mode nicht aktiv).

bGoToScene

BOOL

Durch eine positive Flanke an diesem Eingang wird der Ausgangswert der DALI-Vorschaltgeräte auf den Wert gesetzt, der in der Szene nScene gespeichert wurde.

nScene

BYTE

Szene (0…15) die in den DALI-Vorschaltgeräten durch bGoToScene aufgerufen werden soll. Jedes DALI-Vorschaltgerät besitzt für jede Szene seinen eigenen Ausgangswert.

bSetLevel

BOOL

Durch eine positive Flanke an diesem Eingang wird der Ausgangswert der DALI-Vorschaltgeräte auf den Wert gesetzt, der durch nLevel vorgegeben wird.

nLevel

BYTE

Ausgangswert (0, minLevel...maxLevel, 255) der in den DALI-Vorschaltgeräten durch bSetLevel aufgerufen werden soll. Durch den Wert 255 (MASK) bleibt der Ausgangswert unverändert.

nLevelMemoryMode

BYTE

Ausgangswert (minLevel...maxLevel) für das Einschalten der DALI-Vorschaltgeräte, wenn die Memory-Mode nicht aktiv ist.

nReferenceDeviceAddress

BYTE

Kurzadresse (0…63) des Referenz DALI-Vorschaltgerätes bei Gruppen- und Sammelruf. Bei eAddressType = E_DALIAddressType.Short wird dieser Parameter nicht ausgewertet. In diesem Fall wird über nAddress das Referenz DALI-Vorschaltgerät ausgelesen.

tCycleActualLevel

TIME

Zykluszeit, mit der im Hintergrund der aktuelle Ausgangswert des Referenz DALI-Vorschaltgerätes ausgelesen wird. Stellen Sie die Zykluszeit so ein, dass möglichst wenige DALI-Befehle versendet werden. Wird die Zeit auf 0 sec gesetzt, so wird das Auslesen nicht ausgeführt.

nOptions

DWORD

Optionen, die das Verhalten des Bausteins beeinflussen. Die einzelnen Konstanten müssen miteinander ODER-verknüpft werden.

Konstante

Beschreibung

Tc3_DALI.GVL.cMemoryMode

Aktiviert den Memory-Mode.

FB_DALI102Dimmer1Switch 3: Ausgänge

VAR_OUTPUT
  bError               : BOOL;
  ipResultMessage      : I_TcMessage;
  bBusy                : BOOL;
  bInitializing        : BOOL;
  nActualLevel         : BYTE;
END_VAR

Name

Typ

Beschreibung

bError

BOOL

Der Ausgang wird auf TRUE geschaltet, wenn bei der Ausführung ein Fehler aufgetreten ist. Weitere Informationen zu dem Fehler können über die Variable ipResultMessage abgefragt werden. Der Ausgang wird wieder auf FALSE gesetzt, sobald bBusy auf TRUE geht.

ipResultMessage

I_TcMessage

Interface-Pointer (siehe Fehlerauswertung) mit dem detaillierte Informationen über die Abarbeitung des Bausteins abgefragt werden können (siehe Laufzeitmeldungen). Der Interface-Pointer ist gültig, nachdem bBusy von TRUE auf FALSE gewechselt hat.

bBusy

BOOL

Der Ausgang wird gesetzt, sobald die Ausführung der DALI-Befehle gestartet wurde und bleibt so lange aktiv, bis alle DALI-Befehle abgearbeitet wurden.

bInitializing

BOOL

Der Ausgang wird gesetzt, sobald die Initialisierung der DALI-Vorschaltgeräte gestartet wurde und bleibt so lange aktiv, bis alle DALI-Befehle abgearbeitet wurden.

nActualLevel

BYTE

Aktueller Ausgangswert (0, minLevel...maxLevel, 255) des Referenz DALI-Vorschaltgerätes welches über nReferenceDeviceAddress angesprochen wird. Bei eAddressType = E_DALIAddressType.Short wird das Referenz DALI-Vorschaltgerät über nAddress ausgelesen. Ein Wert von 255 (MASK) kennzeichnet das beim Auslesen des Ausgangswertes aus dem Referenz DALI-Vorschaltgerät ein Fehler aufgetreten ist. Die Ursache kann z.B. ein technischer Defekt sein oder das DALI-Vorschaltgerät befindet sich in der Aufstartphase. In diesem Fall wird bError nicht auf TRUE gesetzt.

FB_DALI102Dimmer1Switch 4: Eigenschaften

Alle Parameter, die per bInitialize in das DALI-Steuergerät geschrieben werden, sind als Eigenschaften vorhanden.

Name

Typ

Zugriff

Initialwert

Beschreibung

nMaxLevel

BYTE

Get, Set

254

Siehe Variable maxLevel.

nMinLevel

BYTE

Get, Set

126

Siehe Variable minLevel.

eFadeRate

E_DALIFadeRate

Get, Set

N045StepsPerSec

Siehe Variable fadeRate.

eFadeTime

E_DALIFadeTime

Get, Set

Disabled

Siehe Variable fadeTime.

eExtendedFadeTimeBase

E_DALIExtendedFadeTimeBase

Get, Set

Base01

Siehe Variable extendedFadeTimeBase.

eExtendedFadeTimeMultiplier

E_DALIExtendedFadeTimeMultiplier

Get, Set

Disabled

Siehe Variable extendedFadeTimeMultiplier.

ipDALICommunication

I_DALICommunication

Get, Set

0

Interface-Pointer auf den Kommunikationsbaustein (siehe Übergabe der Referenz auf den Kommunikationsbaustein).

Voraussetzungen

Entwicklungsumgebung

Erforderliche SPS-Bibliothek

TwinCAT ab v3.1.4024.15

Tc3_DALI ab v3.6.2.0